Montag, 11. November 2019

Scripting Pixinsight - die Reise beginnt

Astrofotografie ohne Pixinsight ist wie Autofahren ohne Auto. Die Einstiegshürde ist jedoch wesentlich höher und wenn man glaubt es bedienen zu können scheitert man auf einmal an den vermeintlichen Basics der Ausarbeitung von Astrobildern. Die Standardprozesse und einige der mitgelieferten Scripts leisten hervorragende Arbeit - sie sind mehr oder weniger gut dokumentiert und letztendlich kommt man irgendwann zu der Erkenntnis, dass man sich auch mit den mathematischen Hintergründen dieser Prozesse und Skripte auseinandersetzen muss um bei diesem Tool weiterzukommen. Aber das ist eine andere Geschichte und gewonnene Erkenntnisse in dieser Richtung werden sicher zukünftig in diesem Blog Einzug halten und näher erläutert. 

Noch schwieriger wird es, wenn man in die Programmierung von Skripten für PixInsight einsteigen will. Warum man das will? Nun, sagen wir es ist Informatikerehre die einen dazu treiben könnte. Noch dazu, wenn Astrofreunde einen dazu nach dem Motto "Sag mal, du als Informatiker kannst das sicher ..." bitten, ein bestehendes Skript zu erweitern. So geschehen letzte Woche - zwei bestehende Skripts sollen durch ein User-Interface erweitert werden, da für die Ausführung diese Skripts bisher zuvor editiert werden mussten. Das UI soll diese Konfigurationen nun grafisch möglich machen.

Konfiguration vor Start des Skripts


PixInsight hat eine Java-Script-basierte Scriptengine mit einer umfangreichen API. Javascript ist mir sehr geläufig, weshalb ich dafür nichts neues lernen muss. Aber - und jetzt kommt das Aber - es gibt keinerlei Dokumentation über die PI-API. PixInsight hat zwar einen "Objectbrowser" eingebaut, der liefert aber nur die vorhandenen Objekte, deren Eigenschaften und Methoden, sowie allfälliger Events, die von diesem Objekt empfangen werden können. All das als "Überschriften" ohne weitere Dokumentation.
Pixinsight - Objectbrowser
So startet man eine Odyssee in die Tiefen bereits vorhandener Skripts und fängt, Schritt für Schritt an, neue Erkenntnisse und "Aha's" iterativ in die gewünschte Erweiterung zu integrieren. Allzuoft gelangt man in eine Sackgasse aus der man dank GIT kann immer wieder auf frühere Versionen zurückkehren kann.

Neben der fehlenden Dokumentation gibt es auch noch ein weiteres Manko - ich bin es gewohnt, meine Javascript-Programme ausführlich testen bzw. debuggen zu können. Das Fehlen eines Debuggers schmerzt am meisten, den Zustand des Programms kann man nur durch einzubauende Commandline-Ausgaben feststellen - mühsam, und von mir zuletzt Anfang der 90er-Jahre so praktiziert.

Scripteditor

Der Scripteditor kann zwar Syntax-highlighting, das wars aber schon mit Komfort. Eine Navigation in den Sourcen ist nur über "Suche" möglich.

Was jedoch sehr versöhnlich stimmt ist, dass trotz dieser Schwierigkeiten die Erweiterung binnen kurzer Zeit fertig gestellt werden und meinen Astrofreunden übergeben werden konnte. Das positive Feedback freut dann umso mehr, wenn man an die letzten Tage dieser begonnenen Reise zurück denkt.
einer der fertigen UI-Prototypen

Wendet man sich wieder seinen gewohnten Entwicklungsumgebungen, Programmen und Testwerkzeugen zu, macht programmieren wieder so richtig Spass.

.

1 Kommentar:

  1. Servus Christian!

    Das ist eine sehr erfreuliche Nachricht, dass du dich
    für PixInsight engagierst.

    Bin schon neugierig, welche neuen Skripts von dir und deinen
    Astrofreunden kommen werden.

    Beste Grüße!
    Herbert Walter

    AntwortenLöschen