Avatar

Kürzester Abstand zu 2 Punkten auf der Erdoberfläche (Geodäsie/Vermessung)

MichaeL ⌂, Bad Vilbel, Wednesday, 04.01.2012, 19:35 (vor 4706 Tagen) @ Adrian
bearbeitet von MichaeL, Thursday, 05.01.2012, 08:04

Hallo,

ich hoffe, Deine Problembeschreibung korrekt erfasst zu haben. Leider geizt Du ja etwas mit Zahlen, an denen man das Problem mal selbst nachvollziehen kann. Ich habe jetzt einfach mal ein Octave-Script erstellt, welches soweit plausible Ergebnisse abliefert.

Die ersten beiden Punkte sollen die Gerade definieren; vom dritten Punkt soll der Fußpunkt bestimmt werden und in XYZ und BLh ausgegeben werden.

XYZ = [4212855.11526001  1022089.08443182  4665979.64863968]
BLh = [47.2972409067586  13.6371534556038  2368.75282299053]

Ich gehe mal davon aus, dass das DLR auch eine MATLAB-Lizenz hat bzw. Octave verfügbar ist, wo Du das nachvollziehen und ausprobieren kannst. Ein konkretes Beispiel mit Zahlen Deinerseits wäre sicher zukünftig hilfreich. Zunächst würde ich Dich einfach mal bitten, mein Script mit einem Deiner Beispiele zu testen und dann entsprechendes Feedback zu liefern, ob ich Dein Problem auch verstanden habe. ;-) Mir ist u.a. nicht so ganz klar, warum Du scheinbar den 2D-Fußpunkt bestimmst - Deinem Link entnehme ich das zumindest im Moment so. Die Funktionen zum Umrechnen von kartesischen in ellipsoidische Koordinaten findest Du hier.

(Nachtrag, hier nun auch ein Plot von dem Beispiel. Der Punkt (Magenta) ist der Fußpunkt.)
[image]

Schöne Grüße
Micha

 
%% Geg. GPS-Koordinaten
phi = [47, 17, 39.8082; 47, 16, 42.6326; 47, 17,  1.7418];
lam = [13, 38, 35.0143; 13, 40, 33.4269; 13, 37, 23.1686];
hell =[2391.67; 2520.21; 2460.14];
 
X = zeros(3,1);
Y = zeros(3,1);
Z = zeros(3,1);
 
%% Umrechnung in XYZ (WGS84)
for i=1:3
    [x y z] = BLh2XYZ(phi(i,:), lam(i,:), hell(i), 'WGS84');
    X(i) = x;
    Y(i) = y;
    Z(i) = z;
end
 
%% Lotfußpunktbestimmung
P1 = [X(1) Y(1) Z(1)]';
P2 = [X(2) Y(2) Z(2)]';
P3 = [X(3) Y(3) Z(3)]';
 
s = ((P2-P1)'*(P3-P1))/((P2-P1)'*(P2-P1));
 
L = P1 + s*(P2-P1);
 
[Bl Ll, hl] = XYZ2BLh(L(1), L(2), L(3), 'WGS84');
 
disp([X Y Z]);
disp(L');
disp([Bl Ll hl]);

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Tags:
GPS, WGS84, Koordinaten, Matlab, kartesisch, Octave, Umrechnung, Ellipsoidisch, Lot, Fußpunkt


gesamter Thread:

 RSS-Feed dieser Diskussion