簡體   English   中英

plot healpix binning我應該怎么處理

[英]How should I plot healpix binning

我正在繪制等面積分箱的天球。 我的第一個意圖是根據我從大學一年級微積分 class 中學到的基本微積分知識進行分箱。以下是我所做的。

import numpy as np
import matplotlib.pyplot as plt

def Drawpixel(lm,lM,bm,bM,co,w):
    l0=[lm,lM]
    b0=[bM,bM]
    l1=[lm,lM]
    b1=[bm,bm]
    l2=[lm,lm]
    b2=[bm,bM]
    l3=[lM,lM]
    b3=[bm,bM]
    plt.plot(l0,b0,c=co,linewidth=w)
    plt.plot(l1,b1,c=co,linewidth=w)
    plt.plot(l2,b2,c=co,linewidth=w)
    plt.plot(l3,b3,c=co,linewidth=w)

def Paint(lm,lM,bm,bM,co):
    l=[lm,lM]
    b1=[bM,bM]
    b2=[bm,bm]
    plt.fill_between(l,b1,b2,color=co)
    

plt.subplot(111,projection="aitoff")
plt.title("Equal Binning", fontsize = 30)
co='k'
w=1
for i in range(16):
    bM=np.pi/2-np.arccos((8-i)/8)
    bm=np.pi/2-np.arccos((7-i)/8)
    for j in range(32):
        lm=(j-16)/16*np.pi*-1
        lM=(j-15)/16*np.pi*-1
        Drawpixel(lm,lM,bm,bM,co,w)

ax=plt.gca()
plt.pause(0.1)
ax.set_xticklabels(ax.get_xticklabels()[::-1])
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.xlabel("L",fontsize=25)
plt.ylabel("B",fontsize=25)
plt.show()

有了這個我會得到這樣的東西在此處輸入圖像描述

在繪制我制作的 plot 后,我了解到有一種名為 healpix 的分箱方法,它可以提供不同形狀的等面積分箱。 我還了解到有一個名為 healpy 的 python 軟件,但是,我找不到如何從 healpy 指令中生成類似上面的 plot。 有沒有一種簡單的方法可以使用 healpix 制作 plot? (如果 healpy 支持一個簡單的 function,那也將不勝感激。)

Healpy 通常用於天體物理學中的所有天空數據。 您可以使用healpy中的函數來制作這樣的map。Healpy通常使用適合的文件進行輸入和output。

import healpy as hp 
import numpy as np 
import pyplot as plt 
nside = 128 # parameter that defines the pixel size 
npix = hp.nside2npix(nside) 
image = np.zeros(npix) # data needs to be an array of size npix or use hp.read_map
hp.mollview(image) # you can use another projection from hp.visufunc
hp.graticules()
plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM