【问题标题】:Healpy: Rotate a mask together with the map in hp.ma() vs. separately produce different results?Healpy:在 hp.ma() 中将遮罩与地图一起旋转与分别产生不同的结果?
【发布时间】:2021-06-16 22:02:23
【问题描述】:

我想更好地理解 rotate_map_pixel() 在这种特殊情况下的行为。下面我尝试提供一个最小的玩具示例:

map = hp.ma(hp.read_map(mapFile))
map.mask = np.logical_not(hp.read_map(maskFile))
rot = hp.Rotator(coord=['G','C'])
map = rot.rotate_map_pixel(map)
mask = hp.read_map(maskFile)
mask = rot.rotate_map_pixel(mask)

这会产生稍微不同的 map.mask 和 mask。我所说的“不同”是指

skycut = np.where(map.mask[obj_pix]==False))

skycut = np.where(mask[obj_pix]==1.)

skycut = np.where(np.isclose(mask[obj_pix],1.))

都产生不同的skycut。我猜这是由于插值过程造成的?

如果我想使用蒙版进行选择,我应该怎么做?

【问题讨论】:

    标签: rotation mask healpy


    【解决方案1】:

    如果显示 2 个掩码,您可以看到在一种情况下掩码是浮点数,在另一种情况下是布尔值。

    现在一种情况healpyUNSEEN 填充地图,然后由HEALPix C++ 处理插值。我不知道 HEALPIx 在内部是如何处理的。 在另一种情况下,我们传递 0 和 1 的映射,HEALPIx 进行插值,但我们不会触发处理 UNSEEN 值的任何特殊情况。

    请参阅 https://zonca.dev/2021/06/healpy-rotate-mask.html 一个完整的笔记本调查。

    我通过实验发现,如果我用非常接近 1 的数字对掩码进行四舍五入,我会找到相同的掩码。

    【讨论】:

      猜你喜欢
      • 2013-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      • 1970-01-01
      相关资源
      最近更新 更多