【发布时间】:2015-06-23 07:40:50
【问题描述】:
我正在使用 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,像素总数。
问题2:1024标准从何而来?就 HEALPIx 地图及其坐标而言,这意味着什么?一个 2-dim ndarray 条目(像素)如何与另一个相关(按角度、按 HEALPix 位置等)?
再举个例子,映射 Nside=1024。当我将其转换为二维 ndarray 时,我得到了形状 (12288, 1024)。
编辑:为什么存在这种 1024 元素数组的约定?这与地图上的像素坐标有何对应关系?
【问题讨论】:
-
取函数healpy.fitsfunc.write_map() 为什么将IDL_fits参数设置为“如果为真,则在1024行中重塑列,否则所有数据将在一列中。默认值:真。 "为什么是 1024 列,这与 HEALPix 全天地图的坐标有何对应关系?
-
1024 只是为了更快地读/写。与天空位置无关。