1

私は 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)

しかし、正しい結果が得られないようです。

誰かが助けてくれることを願っています!

4

2 に答える 2

3

まず第一に、メソッドpix2ang(nside,indx)は番号 indx のピクセルの座標を提供します。ピクセル番号は、座標に直接関係していません。つまり、2 つの連続するピクセル番号が隣り合っているとは限りません。

次に、Healpix のマニュアル (healpy の基礎となるコード) ( http://healpix.sourceforge.net/html/csubnode2.htm ) に書かれているように、角度シータは [0,pi] の範囲で定義されているため、赤緯 [-pi/2,pi/2] を直接表すことはできません。

つまり、変換を定義し、それを 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

于 2015-04-29T12:35:52.457 に答える