Ich habe eine Karte in galaktischen Koordinaten und ich muss es in äquatorialen Koordinaten in einer anderen Datei speichern. Ich weiß, dass ich verwenden können:Healpy: Ändern der Koordinaten in eine Karte und Speichern der neuen
import healpy as hp
map=hp.read_map('file.fits')
map_rot=hp.mollview(map, coord=['G','C'], return_projected_map=True)
und dies sollte ein 2D-Array numpy
in map_rot
gespeichert zurückzukehren. Aber wenn ich map_rot
lese, fand ich heraus, dass es ein masked_array ist, das NUR mit -inf
Werten gefüllt wird, und mask=False
, fill_value=-1.6735e+30
(so anscheinend ist -inf
keine Maske). Darüber hinaus stimmt die Gesamtzahl der Elemente von map_rot
nicht mit der Anzahl der Pixel überein, die ich für eine Karte erwarten würde (npix=12*nside**2
). Zum Beispiel wenn nside=256
würde ich erwarten, npix=786432
zu erhalten, während map_rot
400*800=320000
Elemente hat. Was ist los?
(ich habe schon this post gesehen, aber ich habe eine Karte in der Polarisation, also muß ich Stokes' Parameter drehen. Da mollview
weiß, wie das zu tun, ich habe versucht, die neue Karte von mollview
direkt zu erhalten.)
Vielen Dank Alex, das löst teilweise mein Problem. Ich brauche auch die neue Karte im .fits-Format. –
Haben Sie Astropie versucht? Sehen Sie sich den Abschnitt "Erstellen einer FITS-Datei von Grund auf neu" an: https://python4astronomers.github.io/astropy/fits.html. Map_rot in eine .fits-Datei umzuwandeln, sollte in ein paar Zeilen (mit einem Header Ihrer Wahl) machbar sein. – Alex