0

nside=512 (= 巨大な numpy.ndarray、約 3.1E6 要素) の healpix マップがあります。2Dガウスで畳み込む必要があります。

Gausian の healpix マップを作成して、2 つの numpy.ndarray を乗算して合計を取得しようとしました。これは遅すぎます。

私が試した2番目のことは、ガウス関数(マップではない)を定義し、次に指定されたx、yに対して位置x、yでhuge_map * gausianの値を返す2D関数を定義することです。次に、scipy.integrate.nquad を使用して積分を取得しました。最初の方法よりも高速ですが...

球面調和関数への展開を使用して huge_map*Gaussian の積分をさらに速くする方法はありますか? huge_map を球状の害で展開する、Gaussian を球状の害で展開する、係数を掛ける、元に戻す、合計を取得するなどの方法があります。

a) 代わりに、huge_map の log と Gaussian の log を使用すると、係数に対して実行される操作は明らかに合計になります。b)逆変換なしで、係数から直接積分を取得しますか?c) 拡張をある数に制限し、全体を高速化しますか?

helpy を使用して正しく実装する方法は?

4

1 に答える 1

1

healpy.smoothingたとえば、次のように使用できます。

wmap_map_I_smoothed = hp.smoothing(wmap_map_I, fwhm=60, arcmin=True)
hp.mollview(wmap_map_I_smoothed, min=-1, max=1, title='Map smoothed 1 deg')

ドキュメント: http://healpy.readthedocs.org/en/latest/generated/healpy.sphtfunc.smoothing.html

于 2014-06-02T15:25:46.077 に答える