Jakobimatrix Tachymeter Numerisch teilweise fertig. Tabelle Beobachtungen muss noch Substituiert werden
This commit is contained in:
57
Berechnungen.py
Normal file
57
Berechnungen.py
Normal file
@@ -0,0 +1,57 @@
|
||||
import sympy as sp
|
||||
|
||||
class Berechnungen:
|
||||
def __init__(self, a, b):
|
||||
self.a_wert = a
|
||||
self.b_wert = b
|
||||
self.e_quadrat_wert = self.e_quadrat()
|
||||
self.e_strich_quadrat_wert = self.e_strich_quadrat()
|
||||
|
||||
def e_quadrat(self):
|
||||
return (self.a_wert**2 - self.b_wert**2) / self.a_wert **2
|
||||
|
||||
def e_strich_quadrat(self):
|
||||
return (self.a_wert**2 - self.b_wert**2) / self.b_wert **2
|
||||
|
||||
def P(self, x, y):
|
||||
return sp.sqrt(x**2 + y**2)
|
||||
|
||||
def hilfswinkel(self, z, x, y):
|
||||
hw = sp.atan2(z * self.a_wert, self.P(x, y) * self.b_wert)
|
||||
return hw
|
||||
|
||||
def B(self, z, x, y):
|
||||
hilfswinkel = self.hilfswinkel(z, x, y)
|
||||
B = sp.atan2((z + self.e_strich_quadrat_wert * self.b_wert * sp.sin(hilfswinkel) ** 3), (self.P(x, y) - self.e_strich_quadrat_wert * self.a_wert * sp.cos(hilfswinkel) ** 3))
|
||||
return B
|
||||
|
||||
def L(self, x, y):
|
||||
return sp.atan2(y, x)
|
||||
|
||||
def H(self, x, y, z):
|
||||
B = self.B(z, x, y)
|
||||
H = (self.P(x, y) / sp.cos(B)) - self.a_wert / (sp.sqrt(1 - self.e_quadrat_wert * sp.sin(B) ** 2))
|
||||
return H
|
||||
|
||||
def geometrische_breite_laenge(self, dict_koordinaten):
|
||||
for punktnummer, matrix in dict_koordinaten.items():
|
||||
|
||||
dict_koordinaten[punktnummer] = [matrix, self.B(matrix[2], matrix[0], matrix[1]), self.L(matrix[0], matrix[1])]
|
||||
return dict_koordinaten
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user