Ich habe ein Datenraster, wo die Zeilen Theta (0, Pi) und die Spalten repräsentieren Phi (0, 2 * Pi) und wo f (Theta, Phi) ist die Dichte der dunklen Materie an diesem Ort. Ich wollte das Leistungsspektrum dafür berechnen und habe mich dazu entschieden, healty zu verwenden.Healpy: Von Daten zu Healpix Karte
Was ich nicht verstehen kann ist, wie meine Daten für healpy zu verwenden formatieren. Wenn jemand Code zur Verfügung stellen könnte (aus offensichtlichen Gründen in Python) oder mich auf ein Tutorial verweisen würde, wäre das großartig! Ich habe meine Hand 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 tun. Insbesondere:
cl = hp.anafast(healpix_map[pix], lmax=1024)
ich diesen Fehler:
Typeerror: schlecht Anzahl der Pixel
Wenn jemand mir ein gutes Tutorial zeigen könnte oder helfen, meinen Code zu bearbeiten, das wäre toll.
Weitere Spezifikationen: meine Daten sind in einem 2d NP-Array und ich kann die numRows/numCols ändern, wenn ich muss.
Edit:
Ich habe dieses Problem, indem zuerst die args von anafast healpix_map Ändern gelöst. Ich verbesserte auch den Abstand, indem ich meine Nows * Ncols = 12 * nside * nside machte. 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.