Meine Daten sind in einer Tabelle im Format Fits (example.fits) organisiert. Ich öffne diese Tabelle ('mappars') mit dem Python-Modul atpy
. Die Tabelle hat Spalten x, y, die Bildkoordinaten sind, und eine Datenspalte z. Die x, y sind gleichmäßig verteilt (Ereignisse auf einem CCD-Detektor), aber dazwischen gibt es Lücken.Effizient Mitte des Bildes in Python mit Astropie erhalten
Ich erhalte den Wert in der Mitte des Bildes wie folgt aus:
import atpy
import numpy as np
mappars = atpy.Table('example.fits')
#get midpoint value
midx = np.int((np.max(mappars['x'])+np.min(mappars['x']))/2)
midy = np.int((np.max(mappars['y'])+np.min(mappars['y']))/2)
midist = mappars.where((mappars.x == midx) & (mappars.y == midy)['z']
Gibt es eine effizientere Art und Weise, dies zu tun (ohne die .wo Funktion, die Teil atpy
ist)? Gibt es auch eine Funktion, die .where in astropy
.table, da ich von atpy
zu astropy
wechseln möchte?
Vielen Dank, das hat funktioniert! Ich habe nur zwei kleine Änderungen am Code vorgenommen, damit er mit dem spezifischen Format meines Tisches funktioniert. Auch 'from __future__ import division' funktionierte gut (mit Python 2.7). – Florian
Schön. Auch Ihre Bearbeitung war korrekt, wurde aber abgelehnt, weil sie so spezialisiert war, dass die Rezensenten den (offensichtlichen) Fehler, den ich gemacht hatte, und Ihre Korrektur nicht erkannt hatten. Das habe ich jetzt selbst behoben. – Evert