2017-05-27 13 views
0

私は、R.A.sとDeclinationsのファイルが10M以上の大きなセットを持っています。私は、これらのログ密度のすべての空の地図を使用したい、私はヒアルピックス/ヒアルピアを想定しています。私の現在のコードは次のようになります。ヒープピックスのログ密度をすべて空の地図にしたいと思います

m = hp.ang2pix(512, ra, dec, lonlat=True) 
NSIDE = 512 
np.arange(hp.nside2npix(NSIDE)) 
hp.visufunc.mollview(m) 

と私はエラーを取得する:

ValueError: Wrong pixel number (it is not 12*nside**2) 

は私が間違って何をやっています?

おかげで、ここ

ニック
+0

Healpixマップポイントの固定数を必要とし、エラーによって与えられるように各画素に座っているデータの、好き通常、これらの点も空全体に均等に広がります)。あなたは正しいポイントを持っていません。 'np.arange(hp.nside2npix(NSIDE))'は、必要なポイント数(またはインデックス)を与えるが、何も割り当てないので空の関数呼び出しであることに注意してください。 – Evert

答えて

1

メートル、長さRA(及びDEC)の配列です。最初にmを長さ12 * NSIDE^2のヒーププリックスマップ[または配列]に変換する必要があります。

これを行うには、numpy.bincount [非常に速く、各ピクセル内のオブジェクトの数を指定する]またはscipy.stats.binned_statistic [非常に遅いですが、統計情報を計算することができます。 12 * N^2、nは整数(:np.stdなどのようにあなたがインクルードは

def gen_fast_map(ip_, nside=512): 
    npixel = hp.nside2npix(nside) 
    map_ = np.bincount(ip_,minlength=npixel) 
    return map_ 

map = gen_fast_map(m) 
hp.visufunc.mollview(map) 
関連する問題