Qll Symbolisch für Distanzen fertig
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import sympy as sp
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Dict, Tuple, Iterable
|
||||
from Export import Export
|
||||
from Datenbank import Datenbankzugriff
|
||||
|
||||
@dataclass
|
||||
class StochastischesModell:
|
||||
@@ -48,8 +50,42 @@ class StochastischesModell:
|
||||
Q_ll[i, i] = q_ii #Diagonale
|
||||
return Q_ll
|
||||
|
||||
def Qll_aus_db(self):
|
||||
pass
|
||||
def Qll_symbolisch(self, pfad_datenbank, liste_beobachtungen_symbolisch):
|
||||
liste_standardabweichungen_symbole = []
|
||||
liste_beobachtungen_symbolisch = [str(b) for b in liste_beobachtungen_symbolisch]
|
||||
Qll = sp.zeros(len(liste_beobachtungen_symbolisch), len(liste_beobachtungen_symbolisch))
|
||||
|
||||
db_zugriff = Datenbankzugriff(pfad_datenbank)
|
||||
dict_beobachtungenID_instrumenteID = db_zugriff.get_instrumenteID_beobachtungenID_dict()
|
||||
|
||||
for i, beobachtung_symbolisch_i in enumerate(liste_beobachtungen_symbolisch):
|
||||
aufgeteilt_i = beobachtung_symbolisch_i.split("_")
|
||||
beobachtungenID_i = int(aufgeteilt_i[0])
|
||||
instrumenteID_i = dict_beobachtungenID_instrumenteID[beobachtungenID_i]
|
||||
beobachtungsart_i = str(aufgeteilt_i[1])
|
||||
|
||||
if beobachtungsart_i == "SD":
|
||||
stabw_apriori_konstant = sp.Symbol(f"stabw_apriori_konstant_{instrumenteID_i}")
|
||||
stabw_apriori_streckenprop = sp.Symbol(f"stabw_apriori_streckenprop_{instrumenteID_i}")
|
||||
tachymeter_distanz = sp.Symbol(f"SD_{beobachtungenID_i}")
|
||||
|
||||
sigma = sp.sqrt(stabw_apriori_konstant ** 2 + (stabw_apriori_streckenprop * tachymeter_distanz / 1000) ** 2)
|
||||
liste_standardabweichungen_symbole.append(sigma)
|
||||
|
||||
Qll[i, i] = sigma ** 2
|
||||
|
||||
for j in range (i + 1, len(liste_beobachtungen_symbolisch)):
|
||||
beobachtung_symbolisch_j =liste_beobachtungen_symbolisch[j]
|
||||
aufgeteilt_j = beobachtung_symbolisch_j.split("_")
|
||||
beobachtungsart_j = str(aufgeteilt_j[1])
|
||||
|
||||
if beobachtungsart_i == "SD" and beobachtungsart_j == "SD":
|
||||
Qll[i, j] = 0
|
||||
Qll[j, i] = 0
|
||||
Export.matrix_to_csv(r"Zwischenergebnisse\Qll_Symbolisch.csv", liste_beobachtungen_symbolisch, liste_beobachtungen_symbolisch, Qll, "Qll")
|
||||
return Qll
|
||||
|
||||
|
||||
|
||||
|
||||
def berechne_P(Q_ll):
|
||||
|
||||
Reference in New Issue
Block a user