Healpy: Von Daten zur Healpix-Karte

Ich habe ein Datengitter, in dem die Zeilen Theta (0, pi) und die Spalten Phi (0, 2 * pi) darstellen und in dem f (Theta, phi) die Dichte der dunklen Materie an dieser Stelle ist. Ich wollte das Leistungsspektrum dafür berechnen und habe mich für healpy entschieden.

Was ich nicht verstehen kann ist, wie ich meine Daten formatiere, damit Healpy sie verwendet. Wenn jemand Code (aus offensichtlichen Gründen in Python) bereitstellen oder mich auf ein Tutorial verweisen könnte, wäre das großartig! Ich habe versucht, es mit dem folgenden Code zu tun:

#grid dimensions are Nrows*Ncols (subject to change)
theta = np.linspace(0, np.pi, num=grid.shape[0])[:, None]
phi = np.linspace(0, 2*np.pi, num=grid.shape[1])
nside = 512
print "Pixel area: %.2f square degrees" % hp.nside2pixarea(nside, degrees=True)
pix = hp.ang2pix(nside, theta, phi)
healpix_map = np.zeros(hp.nside2npix(nside), dtype=np.double)
healpix_map[pix] = grid 

Aber wenn ich versuche, den Code auszuführen, um das Leistungsspektrum zu machen. Insbesondere:

cl = hp.anafast(healpix_map[pix], lmax=1024)

Ich erhalte diesen Fehler:

TypeError: falsche Pixelanzahl

Wenn jemand mich auf ein gutes Tutorial hinweisen oder mir helfen könnte, meinen Code zu bearbeiten, wäre das großartig.

Mehr Spezifikationen: Meine Daten befinden sich in einem 2d np Array und ich kann die numRows / numCols ändern, wenn ich muss.

Bearbeiten

Ich habe dieses Problem gelöst, indem ich zuerst die Argumente von anafast in healpix_map geändert habe. Ich habe auch den Abstand verbessert, indem ich meine Nrows * Ncols = 12 * nside * nside gemacht habe. Aber mein Leistungsspektrum gibt immer noch Fehler. Wenn jemand Links zu einer guten Dokumentation / Anleitung zur Berechnung des Leistungsspektrums (Zustand von Theta / Phi-Args) hat, wäre das unglaublich hilfreich.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage