首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"alm“例程为什么返回长度相同的数组l和m?

"alm“例程为什么返回长度相同的数组l和m?
EN

Stack Overflow用户
提问于 2014-09-11 19:36:25
回答 2查看 1K关注 0票数 0

根据我对量子物理和大学数学的记忆,对于每一种模式的l,都存在着m = l-1, l, l+1。为什么疗愈(特别是健康)球面调和例程,例如healpy.sphtfunc.alm2map,返回长度相同的lm数组?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-11 21:53:56

我认为你指的是map2alm

让我们来看看一个例子:

代码语言:javascript
复制
import numpy as np
import healpy as hp
m = np.arange(12) # define a map
lmax = 2
alm = hp.map2alm(m, lmax=lmax) # spherical armonic transform
print(alm)
[  1.94198894e+01 +0.00000000e+00j  -1.22780488e+01 +0.00000000e+00j
  -3.22928935e-01 +0.00000000e+00j   6.85510448e-01 -2.13069336e+00j
   4.66136940e-16 +6.36302781e-18j  -6.44680479e-01 +1.16180552e+00j]
print(alm.shape)
(6,)

所以alm实际上是一个一维向量。

alm是如何索引的?

代码语言:javascript
复制
l, m = hp.Alm.getlm(lmax=lmax)
print(l)
[0 1 2 1 2 2]
print(m)
[0 0 0 1 1 2]

所以,对l = 2来说,m[0, 1, 2]

您可以在HEALPix引物中找到更多关于HEALPix的信息:http://healpix.jpl.nasa.gov/pdf/intro.pdf

票数 4
EN

Stack Overflow用户

发布于 2019-07-10 03:04:28

Andrea Zonca的回答中缺失的部分是:

  • 对于每一种模式lm的范围实际上是从-l+l (所以它们的2l+1 )。但是我们处理的是真实信号,对于相反的almm是复杂的共轭,因此HEALPix不存储m<0alm值(因此只有l+1 )。
  • 在由alm返回的hp.map2alm数组中,Andrea的示例表明排序是通过增加m然后增加l。您不需要进行簿记,要知道数组(l≥0,m≥0)中的alm索引,可以使用方便函数hp.Alm.getidx(lmax,l,m),其中是lmax = hp.Alm.getlmax(len(alm))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25795675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档