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 を使用して正しく実装する方法は?