我试图用healpy绘制3个numpy数组。其中两个对应于角度位置θ和phi,另一个是温度。我已经使用了上一个答案中的信息:Plotting a numpy array in healpy来做这件事,我按照以下方式完成了这项工作:
NSIDE = 512
m_sm = numpy.arange(healpy.nside2npix(NSIDE) )
m_sm = m_sm*0.
indx = healpy.pixelfunc.ang2pix(NSIDE, theta, phi, lonlat=False)
m_sm[indx] = Temp
其中theta
,phi
和Temp
是我的数组(每个数组都有近100万个元素,但看起来与此行m_sm[indx] = Temp
没有任何不兼容性)。然后,我使用mollview
执行了投影:
gmap=healpy.smoothing(m_sm, sigma=numpy.radians(0.3),verbose=False)
cmap = cm.get_cmap('RdBu_r')
cmap.set_under('w')
healpy.mollview(gmap, title=ur"$T(\mathbf{x})$ for Reconstruction 1",
unit=ur"$T(\mathbf{x})$", nest=False, min=gmap.min(),
max=gmap.max(), remove_dip=False, cmap = cmap,
coord=['C','G'])
但是我获得了以下地图,其中有一条奇怪的白线图案通过了所有地图。
Temperature map in galactic coordinates with an strange patter of white lines
即使使用NSIDE = 256
,我也获得了相同的模式。我不知道是否可能是因为我正在使用立方体网格,并且对于网格的每个单元格,我计算从笛卡尔位置相对于框中心的角度位置。我能做什么?或者我的代码有什么问题?
提前谢谢。