用healpy mollweide投影获得奇怪的图案

时间:2017-02-17 02:58:48

标签: python arrays numpy healpy

我试图用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

其中thetaphiTemp是我的数组(每个数组都有近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,我也获得了相同的模式。我不知道是否可能是因为我正在使用立方体网格,并且对于网格的每个单元格,我计算从笛卡尔位置相对于框中心的角度位置。我能做什么?或者我的代码有什么问题? 提前谢谢。

0 个答案:

没有答案