zusammenfügen 30.1.
This commit is contained in:
@@ -83,9 +83,11 @@ class StochastischesModell:
|
||||
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]
|
||||
|
||||
if aufgeteilt_i[1] == "SD" or aufgeteilt_i[1] == "R" or aufgeteilt_i[1] == "ZW":
|
||||
beobachtungenID_i = int(aufgeteilt_i[0])
|
||||
instrumenteID_i = dict_beobachtungenID_instrumenteID[beobachtungenID_i]
|
||||
|
||||
beobachtungsart_i = str(aufgeteilt_i[1])
|
||||
|
||||
if beobachtungsart_i == "SD":
|
||||
@@ -96,7 +98,9 @@ class StochastischesModell:
|
||||
sigma = sp.sqrt(stabw_apriori_konstant ** 2 + (stabw_apriori_streckenprop * tachymeter_distanz / 1000000) ** 2)
|
||||
liste_standardabweichungen_symbole.append(sigma)
|
||||
|
||||
Qll[i, i] = sigma ** 2
|
||||
varianzkompontenschaetzung = sp.Symbol(f"varkomp_{instrumenteID_i}_Tachymeter_Streckenbeobachtungen")
|
||||
|
||||
Qll[i, i] = (1 / varianzkompontenschaetzung) * (sigma ** 2)
|
||||
|
||||
elif beobachtungsart_i == "R" or beobachtungsart_i == "ZW":
|
||||
stabw_apriori_konstant = sp.Symbol(f"stabw_apriori_konstant_{beobachtungsart_i}_{instrumenteID_i}")
|
||||
@@ -107,8 +111,14 @@ class StochastischesModell:
|
||||
sigma = sp.sqrt(
|
||||
stabw_apriori_konstant ** 2 + (stabw_apriori_konstant_distanz / tachymeter_distanz) ** 2)
|
||||
liste_standardabweichungen_symbole.append(sigma)
|
||||
if beobachtungsart_i == "R":
|
||||
varianzkompontenschaetzung = sp.Symbol(
|
||||
f"varkomp_{instrumenteID_i}_Tachymeter_Richtungsbeobachtungen")
|
||||
if beobachtungsart_i == "ZW":
|
||||
varianzkompontenschaetzung = sp.Symbol(
|
||||
f"varkomp_{instrumenteID_i}_Tachymeter_Zenitwinkelbeobachtungen")
|
||||
|
||||
Qll[i, i] = sigma ** 2
|
||||
Qll[i, i] = (1 / varianzkompontenschaetzung) * sigma ** 2
|
||||
|
||||
for j in range(i + 1, len(liste_beobachtungen_symbolisch)):
|
||||
beobachtung_symbolisch_j = liste_beobachtungen_symbolisch[j]
|
||||
@@ -119,14 +129,16 @@ class StochastischesModell:
|
||||
Qll[i, j] = 0
|
||||
Qll[j, i] = 0
|
||||
if aufgeteilt_i [1] == "gnssbx" or aufgeteilt_i[1] == "gnssby" or aufgeteilt_i[1] == "gnssbz":
|
||||
beobachtungenID_i = int(aufgeteilt_i[0])
|
||||
#beobachtungenID_i = int(aufgeteilt_i[0])
|
||||
beobachtungsart_i = str(aufgeteilt_i[1])
|
||||
varianzkompontenschaetzung = sp.Symbol(
|
||||
f"varkomp_{instrumenteID_i}_GNSS-Rover_Basislinienbeobachtungen")
|
||||
|
||||
if beobachtungsart_i == "gnssbx":
|
||||
cxx = sp.symbols(f"cxx_{beobachtungenID_i}")
|
||||
s0 = sp.symbols(f"s0_{beobachtungenID_i}")
|
||||
liste_standardabweichungen_symbole.append(cxx)
|
||||
Qll[i, i] = cxx * (s0 ** 2)
|
||||
Qll[i, i] = (1 / varianzkompontenschaetzung) * (cxx * (s0 ** 2))
|
||||
|
||||
cxy = sp.Symbol(f"cxy_{beobachtungenID_i}")
|
||||
s0 = sp.symbols(f"s0_{beobachtungenID_i}")
|
||||
@@ -135,8 +147,8 @@ class StochastischesModell:
|
||||
aufgeteilt_j = beobachtung_symbolisch_j.split("_")
|
||||
|
||||
if int(aufgeteilt_j[0]) == beobachtungenID_i and aufgeteilt_j[1] == "gnssby":
|
||||
Qll[i, j] = cxy * (s0 ** 2)
|
||||
Qll[j, i] = cxy * (s0 ** 2)
|
||||
Qll[i, j] = (1 / varianzkompontenschaetzung) * (cxy * (s0 ** 2))
|
||||
Qll[j, i] = (1 / varianzkompontenschaetzung) * (cxy * (s0 ** 2))
|
||||
break
|
||||
|
||||
cxz = sp.Symbol(f"cxz_{beobachtungenID_i}")
|
||||
@@ -146,15 +158,15 @@ class StochastischesModell:
|
||||
aufgeteilt_j = beobachtung_symbolisch_j.split("_")
|
||||
|
||||
if int(aufgeteilt_j[0]) == beobachtungenID_i and aufgeteilt_j[1] == "gnssbz":
|
||||
Qll[i, j] = cxz * (s0 ** 2)
|
||||
Qll[j, i] = cxz * (s0 ** 2)
|
||||
Qll[i, j] = (1 / varianzkompontenschaetzung) * (cxz * (s0 ** 2))
|
||||
Qll[j, i] = (1 / varianzkompontenschaetzung) * (cxz * (s0 ** 2))
|
||||
break
|
||||
|
||||
if beobachtungsart_i == "gnssby":
|
||||
cyy = sp.symbols(f"cyy_{beobachtungenID_i}")
|
||||
s0 = sp.symbols(f"s0_{beobachtungenID_i}")
|
||||
liste_standardabweichungen_symbole.append(cyy)
|
||||
Qll[i, i] = cyy * (s0 ** 2)
|
||||
Qll[i, i] = (1 / varianzkompontenschaetzung) * (cyy * (s0 ** 2))
|
||||
|
||||
cyz = sp.Symbol(f"cyz_{beobachtungenID_i}")
|
||||
s0 = sp.symbols(f"s0_{beobachtungenID_i}")
|
||||
@@ -163,21 +175,24 @@ class StochastischesModell:
|
||||
aufgeteilt_j = beobachtung_symbolisch_j.split("_")
|
||||
|
||||
if int(aufgeteilt_j[0]) == beobachtungenID_i and aufgeteilt_j[1] == "gnssbz":
|
||||
Qll[i, j] = cyz * (s0 ** 2)
|
||||
Qll[j, i] = cyz * (s0 ** 2)
|
||||
Qll[i, j] = (1 / varianzkompontenschaetzung) * (cyz * (s0 ** 2))
|
||||
Qll[j, i] = (1 / varianzkompontenschaetzung) * (cyz * (s0 ** 2))
|
||||
break
|
||||
|
||||
if beobachtungsart_i == "gnssbz":
|
||||
czz = sp.symbols(f"czz_{beobachtungenID_i}")
|
||||
s0 = sp.symbols(f"s0_{beobachtungenID_i}")
|
||||
liste_standardabweichungen_symbole.append(czz)
|
||||
Qll[i, i] = czz * (s0 ** 2)
|
||||
Qll[i, i] = (1 / varianzkompontenschaetzung) * (czz * (s0 ** 2))
|
||||
|
||||
if aufgeteilt_i[1] == "niv":
|
||||
beobachtungenID_i = int(aufgeteilt_i[0])
|
||||
instrumenteID_i = dict_beobachtungenID_instrumenteID[beobachtungenID_i]
|
||||
#beobachtungenID_i = int(aufgeteilt_i[0])
|
||||
#instrumenteID_i = dict_beobachtungenID_instrumenteID[beobachtungenID_i]
|
||||
beobachtungsart_i = str(aufgeteilt_i[1])
|
||||
|
||||
varianzkompontenschaetzung = sp.Symbol(
|
||||
f"varkomp_{instrumenteID_i}_Nivellier_Hoehendifferenzbeobachtungen")
|
||||
|
||||
stabw_apriori_konstant = sp.Symbol(f"stabw_apriori_konstant_{beobachtungsart_i}_{instrumenteID_i}")
|
||||
stabw_apriori_streckenprop = sp.Symbol(f"stabw_apriori_streckenprop_{beobachtungsart_i}_{instrumenteID_i}")
|
||||
nivellement_distanz = sp.Symbol(f"niv_distanz_{beobachtungenID_i}")
|
||||
@@ -186,7 +201,7 @@ class StochastischesModell:
|
||||
sigma = sp.sqrt(nivellement_anz_wechselpunkte * stabw_apriori_konstant ** 2 + stabw_apriori_streckenprop ** 2 * nivellement_distanz / 1000)
|
||||
liste_standardabweichungen_symbole.append(sigma)
|
||||
|
||||
Qll[i, i] = sigma ** 2
|
||||
Qll[i, i] = (1 / varianzkompontenschaetzung) * (sigma ** 2)
|
||||
|
||||
Export.matrix_to_csv(r"Zwischenergebnisse\Qll_Symbolisch.csv", liste_beobachtungen_symbolisch, liste_beobachtungen_symbolisch, Qll, "Qll")
|
||||
return Qll
|
||||
@@ -203,6 +218,8 @@ class StochastischesModell:
|
||||
liste_beobachtungen_gnss = db_zugriff.get_beobachtungen_gnssbasislinien()
|
||||
liste_beobachtungen_nivellement = db_zugriff.get_beobachtungen_nivellement()
|
||||
|
||||
liste_varianzkomponenten = db_zugriff.get_varianzkomponentenschaetzung()
|
||||
|
||||
dict_beobachtungenID_distanz = {}
|
||||
for standpunkt, zielpunkt, beobachtungenID, beobachtungsgruppeID, tachymeter_richtung, tachymeter_zenitwinkel, tachymeter_distanz in liste_beobachtungen_tachymeter:
|
||||
dict_beobachtungenID_distanz[int(beobachtungenID)] = tachymeter_distanz
|
||||
@@ -225,6 +242,9 @@ class StochastischesModell:
|
||||
if stabw_apriori_konstant is not None:
|
||||
dict_konstante_sd[instrumenteID] = float(stabw_apriori_konstant)
|
||||
|
||||
for (varianzkomponenteID, instrumenteID, beobachtungsgruppe, varianz_varianzkomponentenschaetzung) in liste_varianzkomponenten:
|
||||
substitutionen[sp.Symbol(f"varkomp_{instrumenteID}_{beobachtungsgruppe.strip()}")] = float(varianz_varianzkomponentenschaetzung)
|
||||
|
||||
for (instrumenteID, beobachtungsart), (stabw_apriori_konstant,
|
||||
stabw_apriori_streckenprop) in dict_genauigkeiten_neu.items():
|
||||
|
||||
@@ -347,12 +367,15 @@ class StochastischesModell:
|
||||
|
||||
return Qll_numerisch
|
||||
|
||||
def QAA_symbolisch(self, liste_beobachtungen_symbolisch: list) -> np.Matrix:
|
||||
def QAA_symbolisch(self, liste_beobachtungen_symbolisch: list, pfad_datenbank: str) -> np.Matrix:
|
||||
liste_standardabweichungen_symbole = []
|
||||
liste_beobachtungen_symbolisch = [str(b) for b in liste_beobachtungen_symbolisch]
|
||||
liste_beobachtungen_symbolisch = [b for b in liste_beobachtungen_symbolisch if b.startswith("lA_")]
|
||||
Qll = sp.zeros(len(liste_beobachtungen_symbolisch), len(liste_beobachtungen_symbolisch))
|
||||
|
||||
db_zugriff = Datenbankzugriff(pfad_datenbank)
|
||||
instrumente_id_anschlusspunkte = db_zugriff.get_instrument_liste("Anschlusspunkte")[0][0]
|
||||
|
||||
for i, beobachtung_symbolisch_i in enumerate(liste_beobachtungen_symbolisch):
|
||||
aufgeteilt_i = beobachtung_symbolisch_i.split("_")
|
||||
datumskoordinate = str(aufgeteilt_i[1])
|
||||
@@ -362,7 +385,11 @@ class StochastischesModell:
|
||||
sigma = sp.Symbol(f"StabwAA_{datumskoordinate}")
|
||||
liste_standardabweichungen_symbole.append(sigma)
|
||||
|
||||
Qll[i, i] = sigma ** 2
|
||||
varianzkompontenschaetzung = sp.Symbol(
|
||||
f"varkomp_{instrumente_id_anschlusspunkte}_Anschlusspunkte")
|
||||
liste_standardabweichungen_symbole.append(varianzkompontenschaetzung)
|
||||
|
||||
Qll[i, i] = (1 / varianzkompontenschaetzung) * sigma ** 2
|
||||
|
||||
Export.matrix_to_csv(r"Zwischenergebnisse\QAA_Symbolisch.csv", liste_beobachtungen_symbolisch, liste_beobachtungen_symbolisch, Qll, "Qll")
|
||||
return Qll
|
||||
@@ -374,11 +401,17 @@ class StochastischesModell:
|
||||
db_zugriff = Datenbankzugriff(pfad_datenbank)
|
||||
dict_stabwAA_vorinfo = db_zugriff.get_stabw_AA_Netzpunkte()
|
||||
|
||||
liste_varianzkomponenten = db_zugriff.get_varianzkomponentenschaetzung()
|
||||
|
||||
substitutionen = {}
|
||||
|
||||
for koordinate, stabwAA in dict_stabwAA_vorinfo.items():
|
||||
substitutionen[sp.Symbol(str(koordinate).strip())] = float(stabwAA)
|
||||
|
||||
for (varianzkomponenteID, instrumenteID, beobachtungsgruppe,
|
||||
varianz_varianzkomponentenschaetzung) in liste_varianzkomponenten:
|
||||
substitutionen[sp.Symbol(f"varkomp_{instrumenteID}_Anschlusspunkte")] = float(varianz_varianzkomponentenschaetzung)
|
||||
|
||||
if not hasattr(self, "func_QAA_numerisch"):
|
||||
self.func_QAA_numerisch = None
|
||||
if not hasattr(self, "liste_symbole_lambdify_QAA"):
|
||||
|
||||
Reference in New Issue
Block a user