【问题标题】:Healpy pix2ang: Convert from HEALPix index to RA,Dec or glong,glatHealpy pix2ang:从 HEALPix 索引转换为 RA、Dec 或 glong、glat
【发布时间】:2015-04-17 14:27:33
【问题描述】:

我是 HEALPIx 的新手,对 Python 也很陌生。我尝试使用 healpy 将 HEALPix 索引转换为 RA,Dec。 我知道我必须使用 pix2ang,但不知道如何将输出 theta,phi 转换为 RA,Dec... 我试过这个:

import healpy as hp
import numpy as np
theta, phi = hp.pix2ang(256, 632668    ,nest=True) 
ra= phi*180./np.pi
dec = 90.-(theta*180./np.pi)

但它似乎没有给出正确的结果。

希望有人能帮忙!

【问题讨论】:

    标签: python-2.7 astronomy healpy


    【解决方案1】:

    首先,pix2ang(nside,indx) 方法为您提供编号为 indx 的像素坐标。像素数与坐标没有直接关系,即两个连续的像素数不一定是相邻的。

    其次,正如 Healpix 手册中所写(这是 healpy 的底层代码)(http://healpix.sourceforge.net/html/csubnode2.htm),角度 theta 定义在 [0,pi] 范围内,因此它不能直接表示偏角 [-pi/2 ,pi/2]。

    所以我要做的是定义一个转换并在两个函数中实现它,例如:

    def IndexToDeclRa(index):
        theta,phi=hp.pixelfunc.pix2ang(NSIDE,index)
        return -np.degrees(theta-pi/2.),np.degrees(pi*2.-phi)
    
    def DeclRaToIndex(decl,RA):
        return hp.pixelfunc.ang2pix(NSIDE,np.radians(-decl+90.),np.radians(360.-RA))
    

    那么地图本身将不在 Decl&RA 中,但如果您坚持使用 IndexToDeclRaDeclRaToIndex,您将有效地拥有您需要的东西。

    【讨论】:

      【解决方案2】:

      你可以看到下面的例子,来自here

      ipix = 123
      theta, phi = hp.pix2ang(nside, ipix)
      ra = np.rad2deg(phi)
      dec = np.rad2deg(0.5 * np.pi - theta)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-12
        • 1970-01-01
        • 1970-01-01
        • 2014-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多