astronomy - 如何将healpy区域变成二维数组?

标签 astronomy healpy

基本上我想要的只是 hp.cartview 的功能,但我不希望我的机器每次调用 cartview 函数时都浪费内存来绘制实际 map 。如何在healpy中以二维数组的形式获得笛卡尔投影,而不必每次都绘制投影?

最佳答案

首先,我要指出reproject可能是完成这项工作的更好工具。

您可以构建一个 WCS对象或 FITS 标题,然后将 HEALPix map 重新投影到其上,然后使用 wcsaxes 进行绘制。 ,它为您提供对真实世界坐标像素的完全支持(而不仅仅是像素坐标)。

如果您确实想对这些cartview切口使用healpy,则可以使用底层healpy.projector.CartesianProj类:

from functools import partial

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

# Build a map
nside = 64
npix = hp.nside2npix(nside)
hpxmap = np.arange(npix)

# Get the cutout via a cartesian projection
lonra = [30, 40]
latra = [-10, 10]

proj = hp.projector.CartesianProj(
    lonra=lonra, latra=latra,
    coord='G',
    xsize=n_pixels, ysize=n_pixels)
reproj_im = proj.projmap(hpxmap, vec2pix_func=partial(hp.vec2pix, nside))

# Plot the cutout
plt.imshow(reproj_im, origin='lower', interpolation='nearest')

祝你好运,如果您有任何后续问题,请告诉我!

关于astronomy - 如何将healpy区域变成二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57619206/

相关文章:

python - 使用 `healpy` : Why does the output map appear "patchy"? 平滑 HEALPix 贴图

axes - Healpy 绘图 : How do i make a figure with subplots using the healpy. mollview 投影?

python - 平滑而不用零填充缺失值

python - 适合 WCS 来治愈

python - matplotlib热图反转数据?

python - 使用 matplotlib 的银河和赤道投影网格

python - 从 tzdata 中提取历史闰秒

python - 超大文件的优化处理

python - AstroPy距离红移转换精度