簡體   English   中英

Healpy 中的正交投影

[英]Orthographic Projection in Healpy

我正在嘗試使用 healpy 地圖,但遇到了正交投影問題。 我想在 healpy mollview 投影圖中分配“N”個像素,假設值為 100。但是,當我對地圖進行正交投影時,並非此處所有“N”個像素的值為 100。可以有人幫我嗎? healpy中正交投影的像素面積是多少?

找到下面的偽代碼。

import healpy as hp
import numpy as np
import matplotlib.pyplot as plt

nside =64
npix = hp.nside2npix(nside)
hpxmap = np.arange(npix)

theta = np.pi/2. - np.deg2rad(0)
phi = np.deg2rad(35)
vec = hp.ang2vec(theta, phi, lonlat=False)
disc = hp.query_disc(nside, vec, radius=np.radians(10), nest=False)        
hpxmap[disc] = 100
hp.mollview(hpxmap, coord = ['C'], nest = False, cbar = True)
print(len(disc))


orth_proj = hp.orthview(hpxmap, half_sky=True,return_projected_map=True, rot=(0, 0), xsize= 100, norm = 'log', coord=[ 'C'])
orth_proj[np.where(orth_proj == orth_proj[0,0])] = 0
len(np.where(orth_proj == 100)[0][:])

根據上面給出的代碼,問題是圓盤的長度和 orth_proj 二維數組中值為 100 的像素數不相同。 有什么想法嗎?

當你繪制地圖時,你正在重新投影它,無論是使用 mollweide 還是 orthview,你都會得到具有不同形狀、大小和中心的像素,沒有一對一的映射。

不確定應用程序是什么,但也許您可以使用矩形像素,例如 CAR? 在這種情況下,地圖不需要重新投影即可繪制。 您可以使用https://github.com/simonsobs/pixell來處理 CAR 地圖,例如,如果您從 HEALPix 地圖開始,您可以執行hp.map2alm然后pixell有 alm2map。

暫無
暫無

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

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