Jakobimatrix Tachymeter Symbolisch fertig und kontrolliert
This commit is contained in:
721
Campusnetz.ipynb
721
Campusnetz.ipynb
File diff suppressed because one or more lines are too long
@@ -8,7 +8,7 @@ class FunktionalesModell:
|
|||||||
self.pfad_datenbank = pfad_datenbank
|
self.pfad_datenbank = pfad_datenbank
|
||||||
|
|
||||||
def jacobi_matrix_symbolisch(self):
|
def jacobi_matrix_symbolisch(self):
|
||||||
liste_beobachtungsarten = ["tachymeter_richtung"]
|
liste_beobachtungsarten = ["tachymeter_distanz", "tachymeter_richtung", "tachymeter_zenitwinkel"]
|
||||||
db_zugriff = Datenbankzugriff(self.pfad_datenbank)
|
db_zugriff = Datenbankzugriff(self.pfad_datenbank)
|
||||||
|
|
||||||
liste_beobachtungen_rohdaten = []
|
liste_beobachtungen_rohdaten = []
|
||||||
@@ -69,6 +69,10 @@ class FunktionalesModell:
|
|||||||
for beobachtungsart, beobachtungenID, beobachtungsgruppeID, standpunkt, zielpunkt in liste_beobachtungen_rohdaten:
|
for beobachtungsart, beobachtungenID, beobachtungsgruppeID, standpunkt, zielpunkt in liste_beobachtungen_rohdaten:
|
||||||
X_sp, Y_sp, Z_sp = dict_punkt_symbole[standpunkt]
|
X_sp, Y_sp, Z_sp = dict_punkt_symbole[standpunkt]
|
||||||
X_zp, Y_zp, Z_zp = dict_punkt_symbole[zielpunkt]
|
X_zp, Y_zp, Z_zp = dict_punkt_symbole[zielpunkt]
|
||||||
|
B_sp, L_sp = sp.symbols(f"B{standpunkt} L{standpunkt}")
|
||||||
|
alpha = sp.symbols(f"alpha{standpunkt}_{zielpunkt}")
|
||||||
|
zw = sp.symbols(f"zw{standpunkt}_{zielpunkt}")
|
||||||
|
s = sp.symbols(f"s{standpunkt}_{zielpunkt}")
|
||||||
|
|
||||||
if beobachtungsart == "tachymeter_distanz":
|
if beobachtungsart == "tachymeter_distanz":
|
||||||
beobachtungsgleichung = sp.sqrt(
|
beobachtungsgleichung = sp.sqrt(
|
||||||
@@ -81,11 +85,6 @@ class FunktionalesModell:
|
|||||||
|
|
||||||
if beobachtungsart == "tachymeter_richtung":
|
if beobachtungsart == "tachymeter_richtung":
|
||||||
#for beobachtungenID, beobachtungsgruppeID, standpunkt, zielpunkt in liste_id_standpunkt_zielpunkt:
|
#for beobachtungenID, beobachtungsgruppeID, standpunkt, zielpunkt in liste_id_standpunkt_zielpunkt:
|
||||||
B_sp, L_sp = sp.symbols(f"B{standpunkt} L{standpunkt}")
|
|
||||||
alpha = sp.symbols(f"alpha{standpunkt}_{zielpunkt}")
|
|
||||||
zw = sp.symbols(f"zw{standpunkt}_{zielpunkt}")
|
|
||||||
s = sp.symbols(f"s{standpunkt}_{zielpunkt}")
|
|
||||||
|
|
||||||
d_r_dX_zp = ((sp.sin(B_sp)*sp.cos(L_sp)*sp.sin(alpha) - sp.sin(L_sp)*sp.cos(alpha)) / (s * sp.sin(zw)))
|
d_r_dX_zp = ((sp.sin(B_sp)*sp.cos(L_sp)*sp.sin(alpha) - sp.sin(L_sp)*sp.cos(alpha)) / (s * sp.sin(zw)))
|
||||||
d_r_dX_sp = - d_r_dX_zp
|
d_r_dX_sp = - d_r_dX_zp
|
||||||
d_r_dY_zp = ((sp.sin(B_sp)*sp.sin(L_sp)*sp.sin(alpha) + sp.cos(L_sp)*sp.cos(alpha)) / (s * sp.sin(zw)))
|
d_r_dY_zp = ((sp.sin(B_sp)*sp.sin(L_sp)*sp.sin(alpha) + sp.cos(L_sp)*sp.cos(alpha)) / (s * sp.sin(zw)))
|
||||||
@@ -114,6 +113,31 @@ class FunktionalesModell:
|
|||||||
f"R {beobachtungsgruppeID} {standpunkt}-{zielpunkt}"
|
f"R {beobachtungsgruppeID} {standpunkt}-{zielpunkt}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if beobachtungsart == "tachymeter_zenitwinkel":
|
||||||
|
d_r_dX_zp = ((X_zp - X_sp) * sp.cos(zw) - s * sp.cos(B_sp) * sp.cos(L_sp)) / (s ** 2 * sp.sin(zw))
|
||||||
|
d_r_dX_sp = - d_r_dX_zp
|
||||||
|
d_r_dY_zp = ((Y_zp - Y_sp) * sp.cos(zw) - s * sp.cos(B_sp) * sp.sin(L_sp)) / (s ** 2 * sp.sin(zw))
|
||||||
|
d_r_dY_sp = - d_r_dY_zp
|
||||||
|
d_r_dZ_zp = ((Z_zp - Z_sp) * sp.cos(zw) - s * sp.sin(B_sp)) / (s ** 2 * sp.sin(zw))
|
||||||
|
d_r_dZ_sp = - d_r_dZ_zp
|
||||||
|
|
||||||
|
zeile_A_Matrix = []
|
||||||
|
for punkt in liste_punktnummern:
|
||||||
|
if punkt == standpunkt:
|
||||||
|
zeile_A_Matrix.extend([d_r_dX_sp, d_r_dY_sp, d_r_dZ_sp])
|
||||||
|
elif punkt == zielpunkt:
|
||||||
|
zeile_A_Matrix.extend([d_r_dX_zp, d_r_dY_zp, d_r_dZ_zp])
|
||||||
|
else:
|
||||||
|
zeile_A_Matrix.extend([0, 0, 0])
|
||||||
|
|
||||||
|
for orientierung in liste_orientierungsunbekannte:
|
||||||
|
zeile_A_Matrix.append(0)
|
||||||
|
|
||||||
|
liste_A_richtung_zeilen.append(zeile_A_Matrix)
|
||||||
|
liste_zeilenbeschriftungen_richtung.append(
|
||||||
|
f"ZW {beobachtungsgruppeID} {standpunkt}-{zielpunkt}"
|
||||||
|
)
|
||||||
|
|
||||||
if liste_beobachtungsgleichungen_distanz:
|
if liste_beobachtungsgleichungen_distanz:
|
||||||
f_matrix_dist = sp.Matrix(liste_beobachtungsgleichungen_distanz)
|
f_matrix_dist = sp.Matrix(liste_beobachtungsgleichungen_distanz)
|
||||||
unbekanntenvektor = sp.Matrix(liste_unbekannte)
|
unbekanntenvektor = sp.Matrix(liste_unbekannte)
|
||||||
|
|||||||
1752
Jacobi_Matrix.csv
1752
Jacobi_Matrix.csv
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user