This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Documentation

Welcome to GraXpert’s documentation!

1 - What are Gradients?

Translation Needed

Gradienten sind, wie der Name schon sagt, graduelle Helligkeitsverläufe die nicht zum Astrofoto dazu gehören, sondern durch äußere Störeinflüsse entstanden sind. Ursachen können z.B. Lichtverschmutzung oder eine falsche bzw. fehlende Flatkorrektur sein, aber auch natürliche Helligkeitsverläufe des Nachthimmels, sowie Eigenarten der verwendeten Optik (Abschattung in Form einer Vignette). Um Deep-Sky Fotos zu bearbeiten ist es sinnvoll solche Gradienten aus den Bildern zu entfernen. Das schaut nicht nur besser aus, sondern vereinfacht auch die weitere Bearbeitung des Bildes. Auch Farbstiche lassen sich auf diese Art und Weise entfernen und generell ist es sinnvoll das Astrofoto vom Betrag des Himmelshintergrundes zu befreien.

Kurzum: Eine Gradienten Entfernung ist sehr sinnvoll, beinahe zwingend notwendig. Verschiedene kostenpflichtige Astrosoftwares bieten sehr gute Werkzeuge zur Gradienten Entfernung wie etwa PixInsight (DBE,ABE) oder AstroPixelProcessor. Auch kann man kostenpflichtige PlugIns für die Softwares AdobePhotoshop oder Affinity Photo erwerben um das Problem zu lösen. GraXpert ist eine frei erhältliche Open Source Software, die ausschließlich für diese Zwecke programmiert wurde. Sie funktioniert Stand Alone, also nicht als PlugIn für irgendeine andere Software.

Im Bild ist ein deutlicher Farbgradient zu erkennen. Der untere Teil des Bildes weist einen roten Farbton auf, während der obere Teil grünlich gefärbt ist.

Im Bild ist der Gradient nach Anwendung von GraXpert vollständig entfernt.

2 - Download und Installation

TODO

Die aktuellste Version von GraXpert ist immer unter folgendem Link zu finden: Aktuelles GraXpert Release bei Github.

Folgende Betriebssysteme werden unterstützt:

  • Windows 10
  • Ubuntu 20.04 und neuer
  • MacOS 10.15 und neuer

Je nach Betriebssystem unterscheidet sich die Installation.

2.1 - Windows

TODO

Nach dem Download der Datei … Eventuell wird beim Starten des Programms eine Meldung angezeigt, dass der Microsoft Defender den Start des Programmes verhindert. Durch Klicken auf Weitere Informationen und anschließend Trotzdem ausführen kann das Programm gestartet werden.

2.2 - macOS

TODO

2.3 - Linux

TODO

3 - Load Image

TODO

4 - Stretch Options

TODO

5 - Cropping

TODO

6 - Sample Selection

TODO

7 - Interpolation Method

TODO

8 - Saving

TODO

9 - Advanced Settings

TODO

10 - Algorithms

Translation Needed

Berechnung des Hintergrundes

Der Hintergrundwert eines Samplepunktes wird mittels der sigma_clipped_stats(cenfunc=‘median’, stdfunc=‘std’, grow=4) Funktion des Astropy Packages berechnet. Hierbei werden zunächst alle Pixel im Samplepunkt aussortiert, deren Wert mehr als 3 Standardabweichungen vom Median entfernt ist. Diese Ausreißer können z.B. durch Sterne im Samplepunkt verursacht werden. Um die Ausreißer herum werden zusätzlich alle Pixel entfernt, die einen Abstand von weniger als 4 Pixel besitzen. Dieser Vorgang wird so lange wiederholt, bis es keine Ausreißer mehr gibt. Der Hintergrundwert wird dann bestimmt durch den Median der übrig gebliebenen Werte.

Berechnung des Hintergrundmodells

Die Berechnung des Hintergrundmodells (für einen Farbkanal) lässt sich mathematisch beschreiben durch die Suche nach einer Funktion \(f: \mathbb{R}^2 \to \mathbb{R}\), welche eine Bildkoordinate \( \bm{x}=(x_1,x_2) \) auf die Hintergrundhelligkeit abbildet. Als Stützstellen für diese Funktion dienen die Samplepunkte \((\bm{x}_i,y_i)\), wobei \(\bm{x}_i \) die Mittelpunktskoordinate des i-ten Samplepunktes ist und \(y_i\) der berechnete Hintergrundwert für diesen Samplepunkt. Für die Funktion \(f\) soll also gelten, dass \(f(\bm{x}_i) = y_i\). Zwischen den Samplepunkten soll die Funktion \(f\) stetig und möglichst glatt verlaufen. Dieses Problem der Findung einer geeigneten Funktion \(f\) nennt man Interpolation. Im Folgenden werden die verschiedenen in GraXpert verfügbaren Interpolationsverfahren vorgestellt.

Splines

Bei der Spline-Interpolation wird das Hintergrundmodell stückweise durch Polynome zwischen den Stützstellen approximiert. Hierbei wird die interpolate.bisplrep() Funktion des Scipy Packages verwendet.

Radiale Basisfunktionen (RBF)

Radiale Basisfunktionen sind Funktionen der Form \(\phi(\bm{x}) = \phi(|| \bm{x} ||)\), wobei wir in unserem Fall die euklidische Norm \(|| \bm{x} || = \sqrt{x_1^2 + x_2^2}\) verwenden. Die Funktion \(f\) kann nun als Linearkombination

$$\begin{equation} f(\bm{x}) = \sum_i w_i \, \phi(||\bm{x} - \bm{x_i}||) + o \end{equation}$$

aufgebaut werden, wobei \(w_i\) den Gewichten für die verschiedenen Samplepunkte und \(o\) einem konstanten Offset entspricht.

Aus der Forderung, dass die Funktion \(f\) die Samplepunkte durchlaufen soll, ergibt sich die Bedingung

$$\begin{equation} \begin{pmatrix} \phi(\bm{x}_1 - \bm{x}_1) & \phi(\bm{x}_1 - \bm{x}_2) & \dots & \phi(\bm{x}_1 - \bm{x}_N) & 1 \\ \phi(\bm{x}_2 - \bm{x}_1) & \phi(\bm{x}_2 - \bm{x}_2) & \dots & \phi(\bm{x}_2 - \bm{x}_N) & 1 \\ \vdots & \vdots & \ddots & \vdots \\ \phi(\bm{x}_N - \bm{x}_1) & \phi(\bm{x}_N - \bm{x}_2) & \dots & \phi(\bm{x}_N - \bm{x}_N) & 1 \\ 1 & 1 & \dots & 1 & 0 \end{pmatrix} \begin{pmatrix} w_1 \\ w_2 \\ \vdots \\ w_N \\ o \end{pmatrix} = \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_N \\ 0 \end{pmatrix} \, , \end{equation}$$

welche nur dann erfüllbar ist, wenn die Matrix auf der linken Seite invertierbar ist. Mit der richtigen Wahl der Funktion \(\phi\) kann dies immer gewährleistet werden~\cite{wright2003radial}. Zusätzlich haben wir hier gefordert, dass \(\sum_i o , w_i = 0\).

Zusätzlich wird zu der Matrix auf der linken Seite der Summand \(s , I\) addiert, wobei \(s\) ein Smoothingparameter ist und \(I\) die Einheitsmatrix.

Das Gleichungssystem (2) wird mittels der Funktion linalg.solve() des Scipy Packages gelöst.

Für die radiale Basisfunktion \(\phi\) gibt es die folgenden Optionen:

  • Thin-plate spline: \(\phi(|\bm{x}|) = |\bm{x}|^2 \log(|\bm{x}|)\)
  • linear: \(\phi(|\bm{x}|) = |\bm{x}|\)
  • cubic: \(\phi(|\bm{x}|) = |\bm{x}|^3\)
  • quintic: \(\phi(|\bm{x}|) = |\bm{x}|^5\)

Kriging

Das Kriging, oder auch Gaußprozess-Regression genannt, ist ein Interpolationsverfahren aus der Geostatistik. Anders als bei den beiden vorher genannten Interpolationsverfahren wird hier kein Smoothing angewandt und der Smoothingparameter hat somit keine Auswirkungen auf das Ergebnis. Für das Kriging wird die OrdinaryKriging(variogram_model=‘spherical’)-Klasse des Pykrige Packages verwendet.

Berechnung des fertigen Bildes

Falls in den erweiterten Einstellung ‘Subtraction’ als Korrektur ausgewählt ist, wird der Farbkanal \(c\) des fertigen Bilds nach der Ermittlung des Hintergrundmodells berechnet durch

$$\begin{equation} \mathrm{Fertiges \, Bild}[c] = \mathrm{Originalbild}[c] - \mathrm{Hintergrundmodell}[c] + \mathrm{Mittelwert(Hintergrundmodell)} \, , \end{equation}$$

wobei der Mittelwert des Hintergrundmodells über alle Farbkanäle bestimmt wird.

Bei Auswahl der Option ‘Division’ für die Korrektur, berechnet sich das fertige Bild durch

$$\begin{equation} \mathrm{Fertiges \, Bild}[c] = \mathrm{Originalbild}[c] \, / \, \mathrm{Hintergrundmodell}[c] \times \mathrm{Mittelwert(Hintergrundmodell)}[c] \, , \end{equation}$$

wobei der Mittelwert des Hintergrundmodells separat für die einzelnen Farbkanäle bestimmt wird.