Umrechnungsformeln oder ???
Moderator: Roland
- Hartmut
- Beiträge: 815
- Registriert: 25.05.2004 - 18:56
- Wohnort: Prachuab Khiri Khan 11°44'37"N 99°47'17"E
- Kontaktdaten:
moin,
hallo mctoolz, kannst du mir das nochmal schicken, mein virenscanner hat die mail geschrotet.
bis denn

hallo mctoolz, kannst du mir das nochmal schicken, mein virenscanner hat die mail geschrotet.
bis denn



ich bin zwar verantwortlich, für das was ich sage, aber nicht dafür, wie du es verstehst.
rechtschreibfehler sind gewollt und deswegen mit voller Absicht erstellt. wer welche findet, darf sie behalten, verschenken oder auch versteigern.
rechtschreibfehler sind gewollt und deswegen mit voller Absicht erstellt. wer welche findet, darf sie behalten, verschenken oder auch versteigern.
Hallo MacToolz,
zurück zum Programm.
Ich habe entnervt den g e k l a u t e n Code in die Tonne getreten und bin nach dem Skript der Uni Münster vorgegangen. Habe aber -widerstrebend...- Deine Transformations-Parameter genutzt. Bei der Eingabe der WGS84-Werte
Länge= 7.393538°
Breite= 47.355634°
Ell.Höhe= 351.5 m
habe ich z.Zt. für das Bessel-Ellipsoid
XYZ : 4292312, 556861.5, 4668461
Länge = 7.391959°
Breite = 47.35662°
Ell.Höhe= 298.3123
Ich bitte nur um KURZE Stellungnahme. Ich hatte auch gefragt, wo Du die o.g. Parameter her hast. Vom Bundesamt für Kartographie und Geodäsie sind sie wohl nicht.
Ob ich für die GK-Umrechnung den Code wieder aus der Tonne kratze ?
Grüße Roland
zurück zum Programm.
Ich habe entnervt den g e k l a u t e n Code in die Tonne getreten und bin nach dem Skript der Uni Münster vorgegangen. Habe aber -widerstrebend...- Deine Transformations-Parameter genutzt. Bei der Eingabe der WGS84-Werte
Länge= 7.393538°
Breite= 47.355634°
Ell.Höhe= 351.5 m
habe ich z.Zt. für das Bessel-Ellipsoid
XYZ : 4292312, 556861.5, 4668461
Länge = 7.391959°
Breite = 47.35662°
Ell.Höhe= 298.3123
Ich bitte nur um KURZE Stellungnahme. Ich hatte auch gefragt, wo Du die o.g. Parameter her hast. Vom Bundesamt für Kartographie und Geodäsie sind sie wohl nicht.
Ob ich für die GK-Umrechnung den Code wieder aus der Tonne kratze ?
Grüße Roland
Hi,
die Transformationsparameter habe ich aus dem Programm von Alltrans genommen.
Diese werden angegeben
WGS84->DHDN - Germany West (Bessel 1841)
Ich hoffe das ist die richtige Auswahl. Wenn nicht darfst du mal ganz leicht auf mich drauf kloppen
@Hartmut, bitte noch mal deine Mailadresse an mich
MacToolz
die Transformationsparameter habe ich aus dem Programm von Alltrans genommen.
Diese werden angegeben
WGS84->DHDN - Germany West (Bessel 1841)
Ich hoffe das ist die richtige Auswahl. Wenn nicht darfst du mal ganz leicht auf mich drauf kloppen

@Hartmut, bitte noch mal deine Mailadresse an mich
MacToolz
Hallo MacToolz,
ich frage nur aus fachlicher Neugier und das ist nicht unfreundlich gemeint.
Aber bei Alltrans finde ich genau die Parameter, die das Skript der Uni Münster anführt ?!
Nein, hier hätte ich merken müssen, dass rx und rz vertauscht sind
Und weiter geht's ...
Am Programm werde ich noch basteln, habe scheinbar die Rotation diesmal hinbekommen.
Grüße Roland
ich frage nur aus fachlicher Neugier und das ist nicht unfreundlich gemeint.
Aber bei Alltrans finde ich genau die Parameter, die das Skript der Uni Münster anführt ?!
Nein, hier hätte ich merken müssen, dass rx und rz vertauscht sind
Und weiter geht's ...
Am Programm werde ich noch basteln, habe scheinbar die Rotation diesmal hinbekommen.
Grüße Roland
Zuletzt geändert von Roland am 19.09.2006 - 22:36, insgesamt 1-mal geändert.
- Hartmut
- Beiträge: 815
- Registriert: 25.05.2004 - 18:56
- Wohnort: Prachuab Khiri Khan 11°44'37"N 99°47'17"E
- Kontaktdaten:
moin,
ist doch in meinen beiträgen unten miteingeblendet.
bis denn

ist doch in meinen beiträgen unten miteingeblendet.
bis denn



ich bin zwar verantwortlich, für das was ich sage, aber nicht dafür, wie du es verstehst.
rechtschreibfehler sind gewollt und deswegen mit voller Absicht erstellt. wer welche findet, darf sie behalten, verschenken oder auch versteigern.
rechtschreibfehler sind gewollt und deswegen mit voller Absicht erstellt. wer welche findet, darf sie behalten, verschenken oder auch versteigern.
Hallo,
erstmal zu den Parametern
Ich reite so drauf herum, weil der Maßstabsfaktor 15 x10 -6
größer ist als die Schmerzgrenze von sagen wir 10 x10-6. Dass hieße, unsere (meine
) Altvorderen hätten beim Vermessen geschlampt. Ich halte es für möglich, dass in dem einen oder anderen Bundesland regional schlechte Koordinaten existieren. Jetzt weiß ich nicht, wie ich z.B. Sachsen einschätzen soll, wo man 1870 (?) die sog. Nagelsche Basis gemessen hat, die zu den übrigen Netzen nicht passte. Warum auch immer.
Tja, solche Sorgen habe ich ...
Grüße Roland
erstmal zu den Parametern
Dass ich von der Alltrans-Version 2.32 die "Münster"-Werte erhalte und nicht "Deine". Dass ich eine falsche Auskunft erhalte, irritiert mich.Aber was möchtest du mir jetzt sagen wegen den Parametern. ???
Ich reite so drauf herum, weil der Maßstabsfaktor 15 x10 -6
größer ist als die Schmerzgrenze von sagen wir 10 x10-6. Dass hieße, unsere (meine

Tja, solche Sorgen habe ich ...

Grüße Roland
Zuletzt geändert von Roland am 13.09.2006 - 21:57, insgesamt 1-mal geändert.
Hi,
hier mal der Code als Formeln.
Schau mal dort rein.
'-------------------------------------------------------------------------------
Option Compare Database
'--- Die Halbachsen des WGS84 Ellipsoides
Public Const abess = 6377397.15508
Public Const bbess = 6356078.9629
Public Const cbess = 6398786.84763948
'--- Die Halbachsen des WGS84 Ellipsoides
Public Const awgs = 6378137#
Public Const bwgs = 6356752.31424
'-----------------------------------------------------------------------------------
Function wgs_ell_to_xyz(ByVal phi As Double, ByVal lamb As Double, ByVal H As Double) As Variant
'------------
'--- 1.Aufruf
'------------
Dim x, y, Z As Double
Dim EQ, N As Double
sinphi = sIn(phi * Pi / 180)
csphi = Cos(phi * Pi / 180)
sinlamb = sIn(lamb * Pi / 180)
cslamb = Cos(lamb * Pi / 180)
EQ = ((awgs * awgs) - (bwgs * bwgs)) / (awgs * awgs)
N = awgs / (Sqr(1 - (EQ * sinphi * sinphi)))
x = (N + H) * csphi * cslamb
y = (N + H) * csphi * sinlamb
Z = (((1 - EQ) * N) + H) * sinphi
wgs_ell_to_xyz = Array(x, y, Z)
Call uebergang(x, y, Z)
End Function
'------------------------------------------------------------------------------
Function uebergang(ByVal xinput As Double, ByVal yinput As Double, ByVal zinput As Double) As Variant
'------------
'--- 2.Aufruf
'------------
Dim xoutput, youtput, zoutput As Double
Dim dX, dY, dZ, rX, rY, rZ, sC As Double
Dim srx, crx, sry, cry, srz, crz As Double
'Daten von LVERMANRW Teil 2
'REGION KÖLN
'VIII 5504 / 4908 + 567.3 + 89.4 + 370.0 + 15.2 + 0.98 - 0.14 - 2.60 ± 7
'dX = -567.3
'dY = -89.4
'dZ = -370#
'rX = (0.98 / 3600) / 180 * Pi
'rY = (-0.14 / 3600) / 180 * Pi
'rZ = (-2.6 / 3600) / 180 * Pi
'sc = 1 - (15.2 / 1000000)
xoutput = dX_ + sC_ * (xinput * 1 + yinput * rZ_ + zinput * (-1) * rY_)
youtput = dY_ + sC_ * (xinput * (-1) * rZ_ + yinput * 1 + zinput * rX_)
zoutput = dZ_ + sC_ * (xinput * rY_ + yinput * (-1) * rX_ + zinput * 1)
uebergang = Array(xoutput, youtput, zoutput)
'Call bessel_xyz_to_ell(xoutput, youtput, zoutput)
End Function
'----------------------------------------------------------------------------------
Function bessel_xyz_to_ell(ByVal x As Double, ByVal y As Double, ByVal Z As Double) As Variant
'------------
'--- 3.Aufruf
'------------
Dim l, fi, EQ, phi, lam, H As Double
Dim i As Integer
EQ = ((abess * abess) - (bbess * bbess)) / (abess * abess)
'--- Start der näherung mit f0 = 45 °
fi = 45# * Pi / 180 'fi in rad
l = Sqr((x * x) + (y * y))
For i = 1 To 100
phi2 = (1 - (EQ * (abess * Cos(fi))) / (Sqr(1 - (EQ * sIn(fi) * sIn(fi))) * l))
phi = Atn(Z / l * (1 / phi2))
'phi = Atn((Z / l) * 1 / (1 - (EQ * (abess * Cos(fi)) / (Sqr(1 - (EQ * sIn(fi) * sIn(fi))) * l))))
H = l / Cos(phi) - (abess / Sqr(1 - (EQ * sIn(phi) * sIn(phi))))
'MsgBox (phi & "-" & (phi * 180 / Pi))
fi = phi
Next i
lam = Atn(y / x)
'--- Umrechnung RAD --> DEG
phi = phi * 180 / Pi
lam = lam * 180 / Pi
bessel_xyz_to_ell = Array(phi, lam, H)
End Function
'-------------------------------------------------------------------------------
Function bessel_ell_to_GK(ByVal Bin As Double, ByVal Lin As Double, ByVal hoehe As Double) As Variant
'------------
'--- 4.Aufruf
'------------
Dim g, g1, g2, t, H, s As Double
b = Bin * Pi / 180
l = Lin * Pi / 180
EQ = ((abess * abess) - (bbess * bbess)) / (bbess * bbess)
g = 111120.61962 * Bin - 15988.63853 * sIn(2 * b) + 16.72995 * sIn(4 * b) - 0.02178 * sIn(6 * b) + 0.00003 * sIn(8 * b)
g2 = EQ * Cos(b) * Cos(b)
g1 = cbess / Sqr(1 + g2)
co = Cos(b)
t = Tan(b)
L0 = 3 * Round((Lin) / 3)
dl = Lin - L0
fa = Cos(b) * dl * Pi / 180
x = g + (fa * fa * t * g1 / 2) + (fa * fa * fa * fa * t * g1 * (5 - t * t + 9 * g2) / 24)
rm = (fa * g1) + (fa * fa * fa * g1 * (1 - t * t + g2) / 6) + (fa * fa * fa * fa * fa * g1 * (5 - 18 * t * t + t * t * t * t) / 120)
'rm = (fa * g1) + (fa * fa * fa * g1 * (1 - t * t + g2) / 6) + (fa * fa * fa * fa * fa * g1 * (5 - 18 * t * t * t * t * t * t) / 120)
y = rm + (Round((Lin) / 3) * 1000000) + 500000
bessel_ell_to_GK = Array(y, x, hoehe)
End Function
'------------------------------------------------
hier mal der Code als Formeln.
Schau mal dort rein.
'-------------------------------------------------------------------------------
Option Compare Database
'--- Die Halbachsen des WGS84 Ellipsoides
Public Const abess = 6377397.15508
Public Const bbess = 6356078.9629
Public Const cbess = 6398786.84763948
'--- Die Halbachsen des WGS84 Ellipsoides
Public Const awgs = 6378137#
Public Const bwgs = 6356752.31424
'-----------------------------------------------------------------------------------
Function wgs_ell_to_xyz(ByVal phi As Double, ByVal lamb As Double, ByVal H As Double) As Variant
'------------
'--- 1.Aufruf
'------------
Dim x, y, Z As Double
Dim EQ, N As Double
sinphi = sIn(phi * Pi / 180)
csphi = Cos(phi * Pi / 180)
sinlamb = sIn(lamb * Pi / 180)
cslamb = Cos(lamb * Pi / 180)
EQ = ((awgs * awgs) - (bwgs * bwgs)) / (awgs * awgs)
N = awgs / (Sqr(1 - (EQ * sinphi * sinphi)))
x = (N + H) * csphi * cslamb
y = (N + H) * csphi * sinlamb
Z = (((1 - EQ) * N) + H) * sinphi
wgs_ell_to_xyz = Array(x, y, Z)
Call uebergang(x, y, Z)
End Function
'------------------------------------------------------------------------------
Function uebergang(ByVal xinput As Double, ByVal yinput As Double, ByVal zinput As Double) As Variant
'------------
'--- 2.Aufruf
'------------
Dim xoutput, youtput, zoutput As Double
Dim dX, dY, dZ, rX, rY, rZ, sC As Double
Dim srx, crx, sry, cry, srz, crz As Double
'Daten von LVERMANRW Teil 2
'REGION KÖLN
'VIII 5504 / 4908 + 567.3 + 89.4 + 370.0 + 15.2 + 0.98 - 0.14 - 2.60 ± 7
'dX = -567.3
'dY = -89.4
'dZ = -370#
'rX = (0.98 / 3600) / 180 * Pi
'rY = (-0.14 / 3600) / 180 * Pi
'rZ = (-2.6 / 3600) / 180 * Pi
'sc = 1 - (15.2 / 1000000)
xoutput = dX_ + sC_ * (xinput * 1 + yinput * rZ_ + zinput * (-1) * rY_)
youtput = dY_ + sC_ * (xinput * (-1) * rZ_ + yinput * 1 + zinput * rX_)
zoutput = dZ_ + sC_ * (xinput * rY_ + yinput * (-1) * rX_ + zinput * 1)
uebergang = Array(xoutput, youtput, zoutput)
'Call bessel_xyz_to_ell(xoutput, youtput, zoutput)
End Function
'----------------------------------------------------------------------------------
Function bessel_xyz_to_ell(ByVal x As Double, ByVal y As Double, ByVal Z As Double) As Variant
'------------
'--- 3.Aufruf
'------------
Dim l, fi, EQ, phi, lam, H As Double
Dim i As Integer
EQ = ((abess * abess) - (bbess * bbess)) / (abess * abess)
'--- Start der näherung mit f0 = 45 °
fi = 45# * Pi / 180 'fi in rad
l = Sqr((x * x) + (y * y))
For i = 1 To 100
phi2 = (1 - (EQ * (abess * Cos(fi))) / (Sqr(1 - (EQ * sIn(fi) * sIn(fi))) * l))
phi = Atn(Z / l * (1 / phi2))
'phi = Atn((Z / l) * 1 / (1 - (EQ * (abess * Cos(fi)) / (Sqr(1 - (EQ * sIn(fi) * sIn(fi))) * l))))
H = l / Cos(phi) - (abess / Sqr(1 - (EQ * sIn(phi) * sIn(phi))))
'MsgBox (phi & "-" & (phi * 180 / Pi))
fi = phi
Next i
lam = Atn(y / x)
'--- Umrechnung RAD --> DEG
phi = phi * 180 / Pi
lam = lam * 180 / Pi
bessel_xyz_to_ell = Array(phi, lam, H)
End Function
'-------------------------------------------------------------------------------
Function bessel_ell_to_GK(ByVal Bin As Double, ByVal Lin As Double, ByVal hoehe As Double) As Variant
'------------
'--- 4.Aufruf
'------------
Dim g, g1, g2, t, H, s As Double
b = Bin * Pi / 180
l = Lin * Pi / 180
EQ = ((abess * abess) - (bbess * bbess)) / (bbess * bbess)
g = 111120.61962 * Bin - 15988.63853 * sIn(2 * b) + 16.72995 * sIn(4 * b) - 0.02178 * sIn(6 * b) + 0.00003 * sIn(8 * b)
g2 = EQ * Cos(b) * Cos(b)
g1 = cbess / Sqr(1 + g2)
co = Cos(b)
t = Tan(b)
L0 = 3 * Round((Lin) / 3)
dl = Lin - L0
fa = Cos(b) * dl * Pi / 180
x = g + (fa * fa * t * g1 / 2) + (fa * fa * fa * fa * t * g1 * (5 - t * t + 9 * g2) / 24)
rm = (fa * g1) + (fa * fa * fa * g1 * (1 - t * t + g2) / 6) + (fa * fa * fa * fa * fa * g1 * (5 - 18 * t * t + t * t * t * t) / 120)
'rm = (fa * g1) + (fa * fa * fa * g1 * (1 - t * t + g2) / 6) + (fa * fa * fa * fa * fa * g1 * (5 - 18 * t * t * t * t * t * t) / 120)
y = rm + (Round((Lin) / 3) * 1000000) + 500000
bessel_ell_to_GK = Array(y, x, hoehe)
End Function
'------------------------------------------------
Wenn man in das von mir zitierte Skript der Uni Münster reinschauen würde sähe mandas verstehe ich jetzt leider nicht was du mir mit den Münsterwerten sagen willst.
dX= -582 m
dY= -105 m
dZ= -414 m
rot x= 3,08"
rot y= -0,35"
rot z= -1,04"
Hier hätte ich auf die Idee kommen müssen, dass in Münster kein geodätisches xyz-System beschrieben wird
dm = - 8,3 x 10-6
Die Vorzeichen unter Vorbehalt.
Das zu übertragen hat mir Mühen gekostet (PDF kann man nicht hier reinkopieren). Warum schaust Du nicht mal rein ?
Mit genau diesem Skript liege ich z.Zt. im Clinch. Da sind m.E. ein paar Böcke drin, wenn es um die Reihenentwicklungen der GK-Koordinaten geht.
Warum mache ich das - warum tue ich mir das an



Roland
Zuletzt geändert von Roland am 19.09.2006 - 22:40, insgesamt 2-mal geändert.
Ok,
die kryptischen Anmerkungen haben mich auf die Spur gebracht. Ein Blick nach NRW kann ja nicht schaden. Für alle anderen:
Transformationsparameter NRW- Teilnetz VIII
San halt a bisserl g'schlampert, die Rheinländer.
Letzter Tipp vorm Abschalten: die Rotationen umkehren ?
Grüße Roland
die kryptischen Anmerkungen haben mich auf die Spur gebracht. Ein Blick nach NRW kann ja nicht schaden. Für alle anderen:
Transformationsparameter NRW- Teilnetz VIII
San halt a bisserl g'schlampert, die Rheinländer.
Letzter Tipp vorm Abschalten: die Rotationen umkehren ?
Grüße Roland
Hallo MacToolz,
ja, "was dazulernen", dachte ich auch. Ganz ehrlich, wenn ich hier während der Problemlösung "Taylorentwicklung" oder "isometrische Breite" lese - nur schnell weiter, nur schnell ein paar Formeln, ja nicht tiefer einsteigen ...
Was ich vom Programmieren halte und weiß, habe ich hier im Forum schon mal erwähnt
1. X und Y sind bei der GK-Entwicklung vertauscht (X gehört in Meridianrichtung). Bis ich das gemerkt habe ...
2. Bei der Reihenentwicklung der Meridianbogenlänge B fehlt ein "Sin";
ok, das merkt man gerade noch
3. der dritte Term in der "y"-Entwicklung enthält einen Fehler:
das"4 x eta-Quadrat" ist -wahrscheinlich- fehl am Platze oder müsste 4 x eta^4 lauten
4. dann fand ich noch ein Potenzfehlerchen beim Parallelkreisradius p.
Nachtrag: wohl mathematisches, nicht geodätisches xyz-System
Da soll man nicht narrisch werden.
Deshalb wollte ich auf das Skript der TU München zurückgreifen -und alles was so Cauchy-Riemann-mäßig aussieht überlesen ! - aber da sind die Reihen nicht weitgenug entwickelt. Auch dem Großmann (das ist ein BUCH
) konnte ich noch nichts abgewinnen. Also Flickschustere ich z.Zt.
bzw. am Wochenende.
Nur soviel:
Mein Datumsübergang hat wohl eine Macke : wenn ich probehalber 10° WGS84-Länge eingebe, muss lt. Kontrollrechnung 10.0012... rauskommen, ich erhalte aber 9.9987. Sieht zwar wie Vorzeichenfehler aus - aber wo ?
Hinzu kommen meine Versuche, die Rechengenauigkeit entsprechend zu steuern, inzwischen schreibe ich schon s#i#n#
Grüße Roland
ja, "was dazulernen", dachte ich auch. Ganz ehrlich, wenn ich hier während der Problemlösung "Taylorentwicklung" oder "isometrische Breite" lese - nur schnell weiter, nur schnell ein paar Formeln, ja nicht tiefer einsteigen ...
Was ich vom Programmieren halte und weiß, habe ich hier im Forum schon mal erwähnt
Und mit dem Skript der Uni Münster habe ich genau in diese Sch*** gegriffen:Roland hat geschrieben:Meine Erfahrungen sind dahingehend: hast Du alles gerechnet, überprüfe die Vorzeichen (Quadranten!). Hast Du die Fehler beseitigt, suche weitere Vorzeichen- und Potenzfehler in den benutzten Formeln
1. X und Y sind bei der GK-Entwicklung vertauscht (X gehört in Meridianrichtung). Bis ich das gemerkt habe ...
2. Bei der Reihenentwicklung der Meridianbogenlänge B fehlt ein "Sin";
ok, das merkt man gerade noch
3. der dritte Term in der "y"-Entwicklung enthält einen Fehler:
das"4 x eta-Quadrat" ist -wahrscheinlich- fehl am Platze oder müsste 4 x eta^4 lauten
4. dann fand ich noch ein Potenzfehlerchen beim Parallelkreisradius p.
Nachtrag: wohl mathematisches, nicht geodätisches xyz-System
Da soll man nicht narrisch werden.
Deshalb wollte ich auf das Skript der TU München zurückgreifen -und alles was so Cauchy-Riemann-mäßig aussieht überlesen ! - aber da sind die Reihen nicht weitgenug entwickelt. Auch dem Großmann (das ist ein BUCH

bzw. am Wochenende.
Nur soviel:
Mein Datumsübergang hat wohl eine Macke : wenn ich probehalber 10° WGS84-Länge eingebe, muss lt. Kontrollrechnung 10.0012... rauskommen, ich erhalte aber 9.9987. Sieht zwar wie Vorzeichenfehler aus - aber wo ?
Hinzu kommen meine Versuche, die Rechengenauigkeit entsprechend zu steuern, inzwischen schreibe ich schon s#i#n#
Grüße Roland
Zuletzt geändert von Roland am 19.09.2006 - 22:43, insgesamt 1-mal geändert.