Transformationen

This commit is contained in:
2025-12-01 11:06:23 +01:00
parent 205d67f773
commit 11205c2468
5 changed files with 55 additions and 30 deletions

18
Einheitenumrechnung.py Normal file
View File

@@ -0,0 +1,18 @@
import sympy as sp
class Einheitenumrechnung:
def __init__(self):
pass
def mas_to_rad(mas):
umrechnungsfaktor = 1 / 1000 * 1 / 3600 * sp.pi / 180
grad = mas * umrechnungsfaktor
return grad
def mm_to_m(mm):
m = mm / 1000
return m
def ppb(ppb):
ppb *= 10 ** (-9)
return ppb

View File

@@ -0,0 +1,21 @@
import sympy as sp
#Beipsiel aus Luhmann S. 76
# Ausgangssystem
p1 = sp.Matrix([110, 100, 110])
p2 = sp.Matrix([150, 280, 100])
p3 = sp.Matrix([300, 300, 120])
p4 = sp.Matrix([170, 100, 100])
p5 = sp.Matrix([200, 200, 140])
# Zielsystem
P1 = sp.Matrix([153.559, 170.747, 150.768])
P2 = sp.Matrix([99.026, 350.313, 354.912])
P3 = sp.Matrix([215.054, 544.420, 319.003])
P4 = sp.Matrix([179.413, 251.030, 115.601])
P5 = sp.Matrix([213.431, 340.349, 253.036])
#1) Näherungswertberechnung
m0 = (P2 - P1).norm() / (p2 - p1).norm()
print(m0.evalf())

View File

@@ -1,36 +1,24 @@
# Transformation ITRF2020 --> ETRF89/DREF91 Realisierung 2025
import sympy as sp
def mas_to_rad(mas):
umrechnungsfaktor = 1 / 1000 * 1 / 3600 * sp.pi / 180
grad = mas * umrechnungsfaktor
return grad
def mm_to_m(mm):
m = mm / 1000
return m
def ppb(ppb):
ppb *= 10 ** (-9)
return ppb
from Einheitenumrechnung import Einheitenumrechnung
# Helmetert Paramteter zur Referenzepoche t0
t0 = 2015.0
T1 = mm_to_m(41.1393)
T2 = mm_to_m(51.9830)
T3 = mm_to_m(-101.1455)
D = ppb(7.8918)
R1 = mas_to_rad(0.8878)
R2 = mas_to_rad(12.7748)
R3 = mas_to_rad(-22.2616)
dotT1 = mm_to_m(0)
dotT2 = mm_to_m(0)
dotT3 = mm_to_m(0)
T1 = Einheitenumrechnung.mm_to_m(41.1393)
T2 = Einheitenumrechnung.mm_to_m(51.9830)
T3 = Einheitenumrechnung.mm_to_m(-101.1455)
D = Einheitenumrechnung.ppb(7.8918)
R1 = Einheitenumrechnung.mas_to_rad(0.8878)
R2 = Einheitenumrechnung.mas_to_rad(12.7748)
R3 = Einheitenumrechnung.mas_to_rad(-22.2616)
dotT1 = Einheitenumrechnung.mm_to_m(0)
dotT2 = Einheitenumrechnung.mm_to_m(0)
dotT3 = Einheitenumrechnung.mm_to_m(0)
dotD = 0
dotR1 = mas_to_rad(0.086)
dotR2 = mas_to_rad(0.519)
dotR3 = mas_to_rad(-0.753)
dotR1 = Einheitenumrechnung.mas_to_rad(0.086)
dotR2 = Einheitenumrechnung.mas_to_rad(0.519)
dotR3 = Einheitenumrechnung.mas_to_rad(-0.753)
# Testdatensatz der AdV
tc = 2021.48
@@ -57,7 +45,7 @@ D_c = D + dotD * dt
R_Matrix = sp.Matrix([[D_c, -R3_c, R2_c], [R3_c, D_c, -R1_c], [-R2_c, R1_c, D_c]])
T_Vektor = sp.Matrix([T1_c, T2_c, T3_c])
# 4 Helmerttransformation
# 4) Helmerttransformation
print(f"BRMG = {(BRMG + T_Vektor + R_Matrix * BRMG).evalf()}")
print(f"RANT = {(RANT + T_Vektor + R_Matrix * RANT).evalf()}")
print(f"TIT2 = {(TIT2 + T_Vektor + R_Matrix * TIT2).evalf()}")

View File

@@ -11,9 +11,7 @@
"source": [
"import csv\n",
"\n",
"from prompt_toolkit.utils import to_float\n",
"\n",
"import Datenbank_alt"
"from prompt_toolkit.utils import to_float\n"
],
"id": "9317c939b4662e39",
"outputs": [],