问题标签 [healpy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
481 浏览

python - 降低 healpix 贴图的正确方法

我正在尝试将 healpix 格式的 CMB 映射从 Nside=4096 降级为 Nside=2048。据我所知,有两种方法可以实现这一点:

(a) 使用 map2alm 转换为 alm,然后使用 alm2map 转换回 Nside=2048 映射。(b) 在 healpix/healpy 中使用 ud_grade,

我已经测试了这两个,我得到了不同的结果。对于 (a),我恢复了正确的输入光谱,但我在梯度较大的像素周围(即点源周围)看到了“振铃”效应。当我使用 (b) 时,我不会恢复输入光谱。我尝试将输出频谱除以 pixwin(2048)**2 但这并不能解决问题。

什么是降低现实地图的正确方法,保留正确的光谱,并且不会在地图中引起振铃效应?

提前致谢,

频谱使用方法(b)

点源周围的振铃效应

0 投票
1 回答
288 浏览

python - Healpy map2alm 和 alm2map 错误

我正在研究healpy。具体来说,我对 map2alm 和 alm2map 感兴趣:我发现 提供了将函数“应用于双方”(作为答案)的示例的问题。如我们所见,在连续应用map2alm和alm2map后,与原始地图相比,我们得到了明显的错误。因此我想控制这些错误。所以我的问题是:

  1. 有什么方法可以减少错误,而不使用更高的 nside?(例如,如果我想使用某个 nside)
  2. 另外,也许还有另一种方法可以获得地图的“光谱特征”,不会有这么大的错误?
0 投票
1 回答
1258 浏览

python - 在 Windows 上 Healpy 安装 Python 3.4

当我尝试使用命令“pyp install healpy”安装 Healpy 时,出现以下错误消息:

文件“c:\python34\lib\distutils\msvc9compiler.py”,第 287 行,在 query_vcvarsall 中引发 ValueError(str(list(result.keys()))) ValueError: ['path']

在我安装 SDK 7.1 和 Microsoft Visual Studio C++ 2010 x64、Microsoft Visual Studio C++ 2010 x86、Microsoft Visual Studio C++ 2015 x64、Microsoft Visual Studio C++ 2015 x86 之前。

0 投票
1 回答
354 浏览

dictionary - 如何使用 healpix 制作部分情节?

我想放大天空的特定区域,并仅绘制该区域的地图(例如,冷点)。我怎么能用healpix做到这一点?我找不到 mollview 等选项。

0 投票
1 回答
690 浏览

python - Healpy query_polygon 返回不正确的区域

我正在使用healpy.query_polygon 来查找与矩形FOV 对应的像素索引。但是,返回的索引与我的输入不匹配——在 healpy 空间中创建一个比 FOV 大约 100 倍的多边形(或返回约 14000 像素而不是预期的约 30 像素)。

query_disc 函数按我的预期工作,但是,这不是我想要使用的函数。

对应的输出: 顶部(圆盘)、底部(多边形)

对于 hp.query_disc:

对于 hp.query_polygon:

谁能解释这种差异?总的来说,我没有看到任何错误,除非顶点被错误地实现到函数中。

0 投票
2 回答
2927 浏览

axes - Healpy 绘图:如何使用 healpy.mollview 投影制作带有子图的图形?

我最近才开始尝试使用healpy,但我不知道如何制作子图来包含我的地图。我有一个行星的热发射图作为时间的函数,我需要在几个时间点(比如说 9 个不同的时间)查看它并叠加一些坐标,以检查我的行星是否以正确的方式旋转。

到目前为止,我可以做两件事。

  1. 用叠加的坐标制作 9 个不同的图形。
  2. 制作一个包含 9 个子图的图形,其中包含 9 个不同的地图,但这会将我的所有坐标叠加在所有子图上,而不仅仅是时间合适的坐标。

我不确定这是否是一个非常简单的问题,但它一直让我发疯,我找不到任何可行的方法。

我会告诉你我的意思:

选项1:

这使得 9 个数字看起来很像这样:

在时间 = t 时与一些恒星叠加的通量图

但我需要很多,所以我想制作一个包含 9 个看起来像图像的子图的图像。

选项 2:

这给了我子图,但它在我的所有子图上绘制了所有 projplot 星!(见下图)

星数过多的子图

我知道我需要一种方法来调用具有 time = t 映射的轴并在适当的地图上绘制 time = t 的星星,但到目前为止我尝试的一切都失败了。我主要尝试使用 projaxes,认为我可以定义一个 matplotlib 轴并在其上绘制星星,但它不起作用。有什么建议吗?

另外,我也想在我的地图上画一些线,但我也不知道该怎么做。文档说 projplot 但如果我不告诉它我想要一个标记,它就不会画任何东西。

PS:此代码可能对您无用,因为如果您没有我的数组,它将无法工作。这是一个应该运行的更简单的版本:

所以这应该为每一帧给我一颗星,而这颗星应该是移动的。但相反,它在所有帧上绘制了所有星星。

我能做些什么?我不明白文档。

0 投票
2 回答
702 浏览

python - 插值后的 Healpy 坐标误差:平分线的出现

我有一个由 128 个点组成的粗略天空图,我想制作一个平滑的 healpix 地图(见附图,LHS)。文中引用的图:

这里

我加载我的数据,然后为最终地图制作具有适当像素长度的新经度和纬度数组(例如 nside=32)。

我的输入数据是:

基于 nside 像素数的新 lon/lat 数组大小:

然后我通过插值找到这些像素的新数据值,然后从角度转换回像素。

然后,我用插值构建一个 healpy 地图:

地图的结果是附图的上部RHS。

(请原谅使用 jet —— viridis 没有“白色”零,因此使用该颜色图会添加蓝色背景。)

地图看起来不太对:从图中粗略的地图可以看出,右下角应该有一个“热点”,但这里却出现在左上角。

作为完整性检查,我使用 matplotlib 制作了 mollview 投影中插值点的散点图,图 2,其中我删除了标记的边缘以使其看起来像一张地图;)

你可以看到这张地图,附图的右下角,完全符合我的预期!所以坐标没问题,我完全糊涂了。

有没有人遇到过这个?我能做些什么?我想在这个和未来的地图上使用 healpy 函数,所以只使用 matplotlib 不是一个选项。

谢谢!

0 投票
1 回答
538 浏览

python - Healpix 如何处理 NaN 以在天空图上插入数据?

datapoint[37][19]phi-theta空间中有这种格式的数据。但是因为我的数据不能覆盖整个天空,所以datapoint数组中有一些NaN。总共大约有一半 NaN datapoint。大约 9/10 的非 NaN 值datapoint是负数,其中大约 1/10 是正数。

我试过这个插值函数:

但它返回了错误。我在问如何将包含 NaN、正值和负值的数据插入到 Healpix 可以使用它来制作地图的级别。我有一张由底图制作的未平滑地图。

在此处输入图像描述

0 投票
1 回答
329 浏览

tensorflow - 球体上的模式识别(基于 HEALPY)

我正在使用 Tensorflow 和 Keras。是否有可能对球体表面的图像进行正确的模式识别?我正在使用(Healpy 框架)来创建模式识别应该在其上工作的天空图。问题是这些 Healpy 天空图是一维 numpy 数组,因此,紧凑的子模式可能分布在这个一维数组上。对于基本的机器学习算法来说,这实际上很难学习(我正在考虑卷积深度网络)。

在这种情况下,一项具体任务是计算球体表面上的斑点(见附图。对于这个特定的任务,正确的数字是 8。所以我创建了 10000 个天空图(Healpy 设置:nside=16 对应于 npix=3072),每个天空图的随机数介于 0 和 9 之间(因此有 10 种可能性)。我试图用一维 Healpy 数组和一个简单的前馈网络来解决这个问题:

然而,在使用 10,000 个天空图进行训练后,测试集的准确率仅为 38%。我想当提供 Healpy 单元的真实排列(如它出现在球体上)而不是仅提供一维数组时,这将显着增加。在这种情况下,可以使用卷积网络 (Convolution2d) 并像通常的图像识别一样操作。任何想法如何在二维阵列中正确映射 heappy 细胞或直接在球体上使用卷积网络?

谢谢!

0 投票
1 回答
256 浏览

python - 使用healpy进行角度分箱

假设我有三个量:theta、phi 和 v(theta,phi)。我想使用角度分箱,以便我可以插入任何未来的 theta 和 phi 来获得 v。我对 healpix 完全陌生,不明白如何去做。本质上,我想要一个 theta 和 phi 的网格,然后想使用 scipy.griddata 进行插值。谢谢。