2016-05-10 10 views
-3

Ich habe eine passt Datei mit Daten der Dimension (180, 360), die 180 Zeilen mit 360 Elementen in jeder Zeile ist. Wenn ich es grafisch darstelle, ist der Bereich der X-Achse von 0 bis 360 und der der Y-Achse von 0 bis 180. Ich möchte den Y-Achsenbereich von -90 in 90 umwandeln, da die x- und y-Achse tatsächlich den Breitengrad und Längengrad. Ich benutze Astropie.Arbeiten mit passt Dateien in Python (Astropy)

+3

Hallo und willkommen auf [SO]. Bitte nehmen Sie sich Zeit für eine [Tour] und gehen Sie durch die [Hilfe] – Sampada

Antwort

1

Angenommen, Sie haben eine FITS-Datei mit dem Namen: 'filename.fits':

from astropy.io import fits 
from astropy.wcs import WCS 

with fits.open('filename.fits') as hdus: 
    data = hdus[0].data # sometimes data is also saved in the extension 1 or "sci" 
    header = hdus[0].header 
    wcs = WCS(hdus[0].header) 

pixel = np.array([[10, 10], [20, 20]]) # pixel 10/10 and 20/20 
world = w.wcs_pix2world(pixcrd, 1) # convert the list of pixel to coordinates 

Jetzt können Sie auch tun, was Sie mit data mögen, header und wcs und falls gewünscht können Sie eine neue Datei schreiben danach:

hdulist = fits.HDUList([fits.PrimaryHDU(data, header=header)]) 
hdulist.writeto('new_name.fits') 
# hdulist.writeto('filename.fits', clobber=True) # or replace the original 

Schauen Sie sich die Astropy-Dokumentation an - wo im Wesentlichen die gleichen und weitere Informationen vorliegen:

+0

Vielen Dank für die Antwort. Ich verwende Astropy, das Problem liegt bei meiner Fit-Datei - in der Kopfzeile ist keine WCS-Information vorhanden. Um die Figur richtig zu koordinieren, muss ich also mit Gitter manipulieren - und ich verstehe nicht, wie das geht. – Madhusudan

+0

@Madhusudan Können Sie Ihre Frage bearbeiten, um zu erläutern, was Sie noch ein bisschen mehr machen möchten? – MSeifert

+0

sicher, In einem Diagramm aus Fits Datei x und y Achsen erhalten die Pixel ... Ich will X-und Y-Achsen Länge (0 bis 360 Grad) und Breitengrad (-90 bis 90 Grad). Mein Fit-Header enthält keine WCS-Informationen. – Madhusudan