【问题标题】:How can I partially plot a Healpix map using Healpy?如何使用 Healpy 部分绘制 Healpix 地图?
【发布时间】:2016-04-10 22:29:07
【问题描述】:

使用 healpy 时,我可以在 Mollview 中使用

绘制 Healpix 地图
import healpy
map = 'filename.fits'
healpy.visufunc.mollview(map)

或如教程中所述

>>> import numpy as np
>>> import healpy as hp
>>> NSIDE = 32
>>> m = np.arange(hp.nside2npix(NSIDE))
>>> hp.mollview(m, title="Mollview image RING")

哪个输出

有没有办法只显示地图的某些区域?例如,只有上半球,还是只有左侧?

我的想法是只查看一小块天空以查看小点源,或者类似于 LSST 的“半天空”投影

【问题讨论】:

  • 您可能还会发现reproject 包很有用,它允许您将 HEALPix 地图重新投影到更小的区域。该文档包含一些如何进行重投影和绘图的示例。

标签: python healpy


【解决方案1】:

你可以使用掩码,它是一个相同大小的布尔图,其中1被掩码,0不被掩码:

http://healpy.readthedocs.org/en/latest/tutorial.html#masked-map-partial-maps

例子:

import numpy as np
import healpy as hp
NSIDE = 32
m = hp.ma(np.arange(hp.nside2npix(NSIDE), dtype=np.double))
mask = np.zeros(hp.nside2npix(NSIDE), dtype=np.bool)
pixel_theta, pixel_phi = hp.pix2ang(NSIDE, np.arange(hp.nside2npix(NSIDE)))
mask[pixel_theta > np.pi/2] = 1
m.mask = mask
hp.mollview(m)

【讨论】:

  • 谢谢!有没有一种精确的方法可以知道我要屏蔽哪些像素? (我认为如果简单地根据上面的坐标定义掩码,那应该没问题,如果我知道各个像素的位置。)
  • 是的,pixel_theta, pixel_phi 是像素中心的坐标,theta 是纬度,phi 是经度。
猜你喜欢
  • 2015-10-12
  • 1970-01-01
  • 1970-01-01
  • 2018-11-02
  • 2021-07-08
  • 1970-01-01
  • 1970-01-01
  • 2014-08-29
  • 1970-01-01
相关资源
最近更新 更多