Python healpy ang2pix:planckerror
我正在尝试将CATALOG.FIT转换为healpix fits图像。我能够阅读fits目录并将ra和dec转换为θ和φ。但当我使用ang2pix时,它会抛出一个错误“Python healpy ang2pix:planckerror,python,Python,我正在尝试将CATALOG.FIT转换为healpix fits图像。我能够阅读fits目录并将ra和dec转换为θ和φ。但当我使用ang2pix时,它会抛出一个错误“ 如果有人也面临类似问题,请回复 谢谢 费萨尔发现了问题,θ定义在0和π之间,如果给ang2pix一个负值,它将失败并出现该错误 我将在healpy源代码中添加一条更有意义的错误消息。我可以在哪里下载astro_util?或者您可以制作一个不使用它的示例?astro_util位于:source:您可以使用:pix=healpy.
如果有人也面临类似问题,请回复 谢谢
费萨尔发现了问题,
θ
定义在0和π之间,如果给ang2pix
一个负值,它将失败并出现该错误
我将在healpy源代码中添加一条更有意义的错误消息。我可以在哪里下载astro_util?或者您可以制作一个不使用它的示例?astro_util位于:source:您可以使用:pix=healpy.ang2pix(512,np.弧度(90-nvss_dec,np.弧度(nvss_ra))而不是使用euler)它可能不是精确的转换,但可能足以测试ang2pix。问题已经解决。它与θ和φ约定更相关。ang2pix函数θ和φ参数遵循与I遵循的约定相反的经纬度约定:)我检查了库中的euler代码,然后检查了ang2pix以了解问题所在。谢谢Faisal
Error encountered at /home/faisal/healpy/healpy-healpy-aa5f605/hpbeta
/Healpix_cxx/healpix_base.cc, line 829
(function I T_Healpix_Base<I>::loc2pix(double, double, double, bool) const [with I =
long int])
-------------------
import numpy as np
import string as s
from scipy.interpolate import interp1d
import matplotlib.pyplot as plt
import healpy as hp
from numpy import sin, cos, arccos, arcsin, arctan2
import astro_util as au
#start healpy---------------------------
nvss_ra=np.arange(1,100,1)
nvss_dec=np.arange(1,100,1)
print nvss_ra
theta,phi= au.euler(nvss_ra,nvss_dec,1)
print theta
theta1=theta/(57.3248)
phi1=phi/(57.3248)+((3.14159265359)/2)
nvssmap=np.zeros(hp.nside2npix(512))
#Working till this point
pix=hp.pixelfunc.ang2pix(512,theta1, phi1)
nvssmap[pix]=1
hp.fitsfunc.write_map("nvss_map.fits",nvssmap)