2012-09-18 50 views
1

我試圖將CATALOG.FIT轉換爲healpix適合圖像。我可以閱讀擬合目錄並將ra和dec轉換爲theta和phi。但是當我使用ang2pix,它拋出一個錯誤」healpy ang2pix:planckerror

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]) 

一定不會發生

終止叫做拋出的 'PlanckError' 中止實例後

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

請回復,如果有人也面臨類似的問題。

謝謝

費薩爾

+0

我可以在哪裏下載astro_util?或者你可以做一個不使用它的例子嗎? –

+0

astro_util,請訪問: 來源:http://sdss.physics.nyu.edu/esheldon/python/code/astro_code-2009-05-15/astro_util.py 而不是使用歐拉,你可以使用: PIX = healpy.ang2pix(512,np.radians(90 nvss_dec,np.radians(nvss_ra)) 它可能不是確切的轉換,但它可能是不夠好,測試ang2pix。 –

回答

0

發現問題,theta爲0和pi之間限定,如果你給ang2pix負值,它失敗的錯誤。

我將向healpy源代碼添加更有意義的錯誤消息。

+0

嗨 問題已解決。它與theta和phi慣例更相關。ang2pix函數theta,phi參數遵循相反的慣例和緯度約定我遵循的慣例:) 我檢查了庫中的euler代碼,然後檢查了ang2pix以實現什麼問題是。 謝謝 費薩爾 –