KoordTrans3D Java
Mithilfe
KoordTrans3D Java
von KoordTrans3D JAVA ist es möglich, 2D und 3D-Koordinaten zwischen zwei verschiedenen Systemen zu transformieren. Solche Transformationen werden in der Geodäsie häufig auch als Datumstransformation bezeichnet. Hierzu bietet die Software über zehn verschiedene Transformationstypen an. Die wohl bekanntesten Vertreter sind die Helmerttransformation und die Affintransformation. KoordTrans3D unterstützt folgende 2D-Transformationen:
- 2 Parameter (Rx, Ry)
- 3 Parameter (R, Tx, Ty)
- 4 Parameter (M, R, Tx, Ty) - Helmert
- 4 Parameter (Rx, Ry, Tx, Ty)
- 5 Parameter (Mx, My, R, Tx, Ty)
- 5 Parameter (Mx, My, R, Tx, Ty) - BW
- 5 Parameter (M, Rx, Ry, Tx, Ty)
- 6 Parameter (Mx, My, Rx, Ry, Tx, Ty) - Affin
Ferner sind nachfolgende 3D-Transformationen derzeit implementiert:
- 3 Parameter (Rx, Ry, Ry)
- 4 Parameter (M, Rx, Ry, Ry)
- 6 Parameter (Rx, Ry, Ry, Tx, Ty, Tz)
- 7 Parameter (M, Rx, Ry, Ry, Tx, Ty, Tz) - Helmert
- 9 Parameter (Mx, My, Mz, Rx, Ry, Rz, Tx, Ty, Tz)
Nachfolgende Transformationen habe ich gefunden und ebenfalls hinzugefügt. Aus meiner Studienzeit sind diese mir jedoch weniger geläufig, sodass ich kaum etwas zu deren Eigenschaften sagen kann und verweise deshalb auf die in der Hilfe aufgeführten Quellen. Sie scheinen gerade in der Photogrammetrie und Kartographie beim Entzerren von Bildern bzw. Karten eine Rolle zu spielen. Ein paar Versuche meinerseits haben jedoch gezeigt, dass das Normalgleichungssystem bei diesen Sonderformen nicht immer zu einer Lösung konvergiert. Hinweise zur Optimierung oder Behebung nehme ich gern entgegen.
- polynomiale Transformation (a0, a1,... ,b0, b1,...)
- bilineare Transformation (a1-a4, b1-b4)
- projektive Transformation (a1-a8)
Die Koordinatentransformation zwischen den beiden System erfolgt über Punkt, die in beiden System bekannte Koordinaten besitzen, die sogenannten Stütz- oder Passpunkte. Die Software ermittelt selbstständig die Transformationsparameter: Translation, Rotation und Maßstab durch eine Ausgleichungsrechnung. Der Nutzer kann hier zwischen zwei Ausgleichungsmodellen wählen:
- Gauß-Markov-Modell (GMM) vgl. [Jäger et al., 2005]
- Gauß-Helmert-Modell (GHM) vgl. [Niemeier, 2002].
Beim GHM ist es möglich, sowohl die Passpunkte im Startsystem als auch im Zielsystem unterschiedlich zu gewichten.
Icon: sf.net
Dieses Softwareprojekt wird von sourceforge.net* unterstützt und ist dort mit seinen zurückliegenden Versionen verfügbar.
KoordTrans3D erlaubt die Eingabe von Näherungswerten für die 2D und 3D Standardtransformationen um eine schneller Berechnung zu ermöglichen. Mithilfe der in [Schwarz et al., 2006] beschriebenen Methode nach Levenberg und Marquardt wird eine Vorauswertung bzw. Vortransformation durchgeführt, die zu robusteren Startwerten führen soll. Darüberhinaus kann auch ein bereits ermittelter Parametersatz vorgegeben werden. Die Punkte, die unter Startsystem eingelesen wurden, werden hierbei transformiert.
Als Ergebnis liefert KoordTrans3D JAVA neben den Transformationsparametern mit zugehöriger Standardabweichung, die transformierten Punkte des Startsystems im Zielsystem sowie deren Abweichungen.
Die Passpunkte werden dabei automatisch aus einer bzw. zwei CSV-Dateien, die das Start- bzw. Zielsystem repräsentieren, gewonnen, sofern diese identische Punktnummern in beiden Systemen haben.
Formelmäßige Zusammenhänge sind sehr anschaulich beim Landesvermessungsamt NRW* zusammengestellt. Für die Regewichtung der Punktgewichte, die, wenn das Gleichungssystem konvergiert, zu einer L1-Norm-Lösung führt, habe ich auf den AVN-Artikel: Kampmann, G..: Robuster Ausreißertest mit Hilfe der L1-Methode, Allgemeine Vermessungsnachrichten (AVN), 4/1986, zurückgegriffen. Weitere Quelle entnehme bitte der Programmhilfe.
Die bloße Umformung der Koordinatendarstellung (geographischen Koordinaten in Gauß-Krüger oder UTM-Koordinaten) kann mit dem Java-Programm CoordsCalculator durchgeführt werden.
Es kann nicht garantiert werden, das KoordTrans3D JAVA vollfunktionsfähig ist, alle durchgeführten Tests verliefen jedoch zufriedenstellend! KoordTrans3D JAVA unterliegt den Bestimmungen der GNU-GPL* und darf im Sinne dieser Lizenz verändert und weitergegeben werden!
KoordTrans3D JAVA benötigt die JAVA Laufzeitumgebung 1.6 oder höher. Diese kann kostenlos unter java.com* bezogen werden. Dem Downloadpaket liegen Transformationsbeispiele bei, mit denen KoordTrans3D JAVA ausprobiert werden kann.
Aktuelle Version herunterladen: KoordTrans3D Java von downloads.sourceforge.net
Weiterführende Links
- Java
- JavaScript
- PHP
- Plugin