Helmert-Transformation mit 3D Koordinaten (Geodäsie/Vermessung)
Liebe Geo-Forum Mitglieder,
ich habe mit VB ein Programm geschrieben bei dem ich meinen Tachymeter mit einem Laptop verbinden und über die RS232-Schnittstelle den GSI String der Messung direkt auslese und die Koordinaten daraus ableite. Das klappt alles soweit.
Nun würde ich gerne eine Freie Stationierung in mein Programm implementieren und brauche dazu Eure Hilfe bzw. einen kleinen Denkanstoss.
3 Passpunkt Koordinaten lade ich aus einer xyz Koordinatendatei und diese 3 Koordinaten messe ich dann mit meinem Tachy an. Ich habe also 3 Koordinaten im Startssystem und 3 Koordinaten im Zielsystem.
Ich würde gerne die 7-Parameter Helmert transformation
V = t + T · v
v , V sind die Ortsvektoren der Punkte im Start- und Zielsystem.
t ist der Translationsvektor (= Verschiebungsvektor).
T ist die Transformationsmatrix.
wie hier beschrieben
http://www.in-dubio-pro-geo.de/index.php?file=guide/contp#spatial
verwenden.
Das Studium ist schon etwas her und wir haben die Matrizen damals glaub ich einfach durch Matlab gejagt und haben damit die 7 unbekannten bestimmt. Dies kann ich mit VB nicht machen. Wie gehe ich nun also vor um das ganze zu programmieren ?
Soll ich die Matrizen jeweils nach einer Unbekannten also tx , ty , tz , m , εx , εy , εz umformen und dann wieder in die Formel V = t + T · v einsetzen? (ich würde auch ohne die unbekannt m auskommen da Maßstab im Ziel-/Starsystem der selbe ist)
Das Ganze sollte dann auch noch flexibel sein mit Bezug auf die Anzahl der Punkte im Start- und Zielsystem. Also es sollte dann auch noch mit 4,5... identischen Punkten im Start-/Zielsystem funktionieren (und am besten gleich noch die Verbesserungen anzeigen).
Ist mein oben beschriebener Ansatz richtig ? oder gibt es evtl. eine einfachere/bessere Lösung um an die Unbekannten zu kommen?
Für Eure Hilfe oder einen kleinen Denkanstoss bin ich sehr Dankbar !
Schöne Grüsse
David