问题标签 [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.
python - healpy.cartview:避免最大 xsize
我正在使用 cartview 提取更大的 Healpy 数组的一部分,如下所示:
我之前指定了 lonra、latra、xsize 和 ysize。如果 xsize,ysize < 2000,一切正常,上面的代码打印:
但是,如果它们大于 2000,我会发现:
所以尺寸似乎限制在2000,但保持纵横比。有没有办法强制cartview() 使用我的xsize 和ysize,即在像素级别上保持图像与原始图像一样?
PS:在https://github.com/healpy/healpy/blob/master/healpy/visufunc.py的 healpy 源代码中,我找不到关于 2000 年这个任意阈值的任何信息,文档也没有说明它.
python - CMB 地图的 HEALPIx FITS 文件如何转换为 ndarrays?坐标是多少?
我正在使用 Healpy(用 Python 开发的 HEALPIx 工具)来读取和编写全天空 CMB 地图。
我对天空地图上的像素坐标如何转换为 numpy ndarray 的条目感到困惑。FITS 文件中的一个 HEALPix 像素如何转换为 ndarray 条目?
例如,假设我有一个生成的 CMB 图,Nside=64,lmax=64,使用默认的 RING 方案。总像素数由 Npix=12*Nside**2 给出。因此,在我的示例中,总像素数为 49152。
我拥有的 FITS 文件格式为 1 列乘 48 行。(第 1 列是所有温度值。)所以,我将此文件转换为 n-dim numpy ndarray。这个数组的形状是 (48,1024)。
问题1:这个二维数组是把天空上的所有地图像素投影成“矩阵”形式吗?我觉得是这样的。使用我的示例,48*1024 = 49152,像素总数。
问题二:1024标准从何而来?就 HEALPIx 地图及其坐标而言,这意味着什么?一个 2-dim ndarray 条目(像素)如何与另一个相关(按角度、按 HEALPix 位置等)?
再举一个例子,映射 Nside=1024。当我将其转换为二维 ndarray 时,我得到了形状 (12288, 1024)。
编辑:为什么存在这种 1024 元素数组的约定?这与地图上的像素坐标有何对应关系?
fits - 了解 Healpy 的 getformat 函数
我有一个 CMB 全天地图的 FITS 文件,其中包含 T、Q、U 值。
使用函数healpy.fitsfunc.getformat(t),输出是“数据类型t的FITS约定格式字符串”。
对于我的 FITS 文件,我得到“A29”。这是标准化的 FITS 约定吗?
python-2.7 - Healpy pix2ang:从 HEALPix 索引转换为 RA、Dec 或 glong、glat
我是 HEALPIx 的新手,对 Python 也很陌生。我尝试使用 healpy 将 HEALPix 索引转换为 RA,Dec。我知道我必须使用 pix2ang,但不知道如何将输出 theta,phi 转换为 RA,Dec ......我试过这个:
但它似乎没有给出正确的结果。
希望有人能帮忙!
python - Healpy pix2ang 如何读取像素索引?
这是此问题的延续:CMB 地图的 HEALPix FITS 文件如何转换为 ndarray?坐标是多少?
CMB 地图以 FITS 文件的形式提供。该图是像素温度值的一维向量。
我想使用 Healpy 的 pix2ang 函数来读取每个像素的位置,并知道哪个像素是哪个。
http://healpy.readthedocs.org/en/latest/generated/healpy.pixelfunc.pix2ang.html
对于这个函数,“像素索引”的输入到底是什么?我是否必须首先将每个温度值像素转换为球谐函数?
我知道在球谐函数中,每个 a_lm 对应于创建的 FITS 文件扩展名将包含一个整数列,索引 = l^2+l+m+1。但是不使用 l 和 m 的像素数组呢?
plot - mollview 命令不返回绘图图像
我是 healpy 的新手,我正在尝试在 iPython27 中绘制以下内容:
这不会像我预期的那样返回图像。可能是什么问题呢?
python - lmax的Healpy默认格式
我在 Healpy 文档中发现healpy.anafast
lmax 的默认值为 3*nside-1
这个标准有原因吗?它是 HEALPIx 中的标准、CMB 实验的标准,还是有物理原因?
编辑:当我anafast
在天空图上运行时Nside=4
,我得到的 Cl 值的长度为 12。这让我认为 lmax 应该是lmax=3Nside
。
但是,当使用生成的 Cl 值时,前两个数字等于零:单极子为零,偶极子为零。
因此,当我通过 设置 l 值时np.arange(len(Clvalues))
,我是否还应该删除[0,1]
单极子和偶极子的术语?
python - Healpy/Healpix:总像素和总球谐系数之间有什么关系?
根据 Healpy/Healpix 文档,我无法理解天空图中的一个像素(这是一些测量值)与 Healpyhealpy.sphtfunc.map2alm
函数产生的球谐系数之间的关系,该函数计算给定地图的 a_lm 系数数组。(这个问题也适用于 anafast。)
我的理解是一个给定的像素应该对应一个球谐系数。然而,事实并非如此。完全没有。
拿一张地图nside = 8
。本程序使用Healpy读取FITS格式的CMB图,手动设置nside
值,读入图,显示,然后计算球谐系数。
到目前为止,一切都很好。该hp.map2alm()
函数现在返回 300 个值,即 300 个球谐系数 a_lm。
输出“ (300,) ”。
为什么 768 像素会计算为 300 a_lm 值?nside
球谐系数和球谐系数总数之间是否存在数学关系?每个都nside
给出不同数量的 a_lm 系数吗?
计算一个a_lm需要多少像素?非常感谢任何帮助/解释!
编辑:如下所述,像素总数为npix = 12*nside**2
. map2alm
使用默认值lmax = 3*nside-1
。所以,球谐系数的总数应该是奇数之和,直到3*nside-1=23
. 球谐系数的总数应该是(2*lmax+1)**2 = (6*nside-1)**2。(2*lmax+1)^2=(2*23+1)^2 = (47)^2 = 2209。那么,这个数字 300 是从哪里来的呢?究竟在map2alm
做什么?这怎么可能只是一个近似值?
我预计 2209 a_lm。我算了300。
healpy - Healpy map2alm 函数不返回预期数量的 alm 值
healpy.map2alm
计算输入 Healpix 映射的 alm 值数组。
功能是
该参数lmax
确定 alm 系数的数量。一个设置输入lmax
,代码返回 '(lmax+1)**2` 数量的 alm 系数。
l=0
返回a00
。
l=1
返回a11, a10, a1-1
+ a00
,即 4 个系数。
l=2
返回a22, a21, a20, a2-1, a2-2
,即 5+3+1 = 9 个系数。那就是(lmax+1)**2 = 3**2 = 9
系数。
但是,使用healpy
,这不是我得到的输出,无论我选择的地图是什么。
我的输出不是我所期望的 (lmax+1)**2。
你看到差异了吗?
对于lmax=0
,我预计总共有 1 个。healpy
输出 1
对于lmax=1
,我预计总共有 4 个。healpy
输出 3
对于lmax=2
,我预计总共有 9个。healpy
输出 6
对于lmax=3
,我预计总共有 16个。healpy
输出 10
对于lmax=4
,我预计总共有 25 个。healpy
输出 15
对于lmax=32
,我预计总共有 1089 个。healpy
输出 561
问题:为了获得正确的数组总数,我应该一起输出吗?
请问如何map2alm
执行这个操作。
python - Healpy:从数据到 Healpix 地图
我有一个数据网格,其中行代表 theta (0, pi),列代表 phi (0, 2*pi),其中 f(theta,phi) 是该位置的暗物质密度。我想为此计算功率谱并决定使用healpy。
我无法理解的是如何格式化我的数据以供 healpy 使用。如果有人可以提供代码(出于明显的原因在 python 中)或指向我的教程,那就太好了!我已经尝试使用以下代码进行操作:
但是,当我尝试执行代码来计算功率谱时。具体来说, :
我收到此错误:
TypeError:错误的像素数
如果有人可以向我指出一个好的教程或帮助编辑我的代码,那就太好了。
更多规格:我的数据位于 2d np 数组中,如果需要,我可以更改 numRows/numCols。
编辑:
我通过首先将anafast的参数更改为healpix_map解决了这个问题。我还通过设置 Nrows*Ncols=12*nside*nside 来改进间距。但是,我的功率谱仍然出现错误。如果有人有关于如何计算功率谱(theta/phi args 的条件)的良好文档/教程的链接,那将非常有帮助。