[英]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.