zusammenfügen 30.1.

This commit is contained in:
2026-01-30 18:41:46 +01:00
parent 1561eb242e
commit d069b7ca81
10 changed files with 65708 additions and 35899 deletions

View File

@@ -85,7 +85,7 @@ class Datenbank_anlegen:
name TEXT(200),
CONSTRAINT pk_Instrumente PRIMARY KEY (instrumenteID)
);
""")
""");
cursor.executescript("""CREATE TABLE Genauigkeiten(
genauigkeitenID INTEGER,
instrumenteID INTEGER,
@@ -95,7 +95,18 @@ class Datenbank_anlegen:
CONSTRAINT pk_Genauigkeiten PRIMARY KEY (genauigkeitenID),
CONSTRAINT fk_Genauigkeiten_Instrumente FOREIGN KEY (instrumenteID) REFERENCES Instrumente(instrumenteID)
);
""");
cursor.executescript("""CREATE TABLE Varianzkomponentenschaetzung(
varianzkomponenteID INTEGER,
instrumenteID INTEGER,
beobachtungsgruppe TEXT(50),
varianz_varianzkomponentenschaetzung NUMERIC(3, 16) DEFAULT 1,
s0_apriori_vorherige_iteration NUMERIC(3, 16) DEFAULT 1,
CONSTRAINT pk_Varianzkomponentenschaetzung PRIMARY KEY (varianzkomponenteID),
CONSTRAINT fk_Varianzkomponentenschaetzung_Instrumente FOREIGN KEY (instrumenteID) REFERENCES Instrumente(instrumenteID)
);
""")
con.commit()
cursor.close()
con.close()
@@ -128,7 +139,7 @@ class Datenbankzugriff:
cursor.close()
con.close()
def set_instrument(self, typ: str, name: str) -> None:
def set_instrument(self, typ: str, name: str, liste_beobachtungsarten: list) -> None:
con = sqlite3.connect(self.pfad_datenbank)
cursor = con.cursor()
liste_instrumente = cursor.execute("SELECT * FROM Instrumente WHERE typ = ? AND name =?", (typ, name)).fetchall()
@@ -136,7 +147,25 @@ class Datenbankzugriff:
cursor.execute(
"INSERT INTO Instrumente (typ, name) VALUES (?, ?)", (typ, name)
)
id_instrument = cursor.lastrowid
print(f"Das Instrument {name} wurde erfolgreich hinzugefügt.")
if self.get_varianzkomponentenschaetzung() == []:
cursor.execute(
"INSERT INTO Instrumente (typ, name) VALUES (?, ?)", ("Anschlusspunkte", "lA")
)
id_instrument_anschlusspunkte = cursor.lastrowid
cursor.execute(
"INSERT INTO Varianzkomponentenschaetzung (instrumenteID, beobachtungsgruppe) VALUES (?, ?)",
(id_instrument_anschlusspunkte, "Anschlusspunkte")
)
for beobachtungsart in liste_beobachtungsarten:
cursor.execute(
"INSERT INTO Varianzkomponentenschaetzung (instrumenteID, beobachtungsgruppe) VALUES (?, ?)",
(id_instrument, beobachtungsart)
)
else:
id_instrument = cursor.execute(
"SELECT instrumenteID FROM Instrumente WHERE typ = ? AND name =?", (typ, name))
@@ -414,6 +443,33 @@ class Datenbankzugriff:
cursor.close()
con.close()
def set_varianzkomponente(self, liste_varianzkomponten_anpassen: list) -> None:
con = sqlite3.connect(self.pfad_datenbank)
cursor = con.cursor()
if liste_varianzkomponten_anpassen != []:
for varianzkomponente in liste_varianzkomponten_anpassen:
cursor.execute(
f"UPDATE Varianzkomponentenschaetzung SET varianz_varianzkomponentenschaetzung = ? WHERE instrumenteID = ? AND beobachtungsgruppe = ?",
(varianzkomponente[2], varianzkomponente[0], varianzkomponente[1]))
print(f"Folgende Varianzkomponente wurde für die nächste Iteration gespeichert: {liste_varianzkomponten_anpassen}.")
con.commit()
cursor.close()
con.close()
def set_s0_apriori(self, liste_s0_apriori_anpassen: list) -> None:
con = sqlite3.connect(self.pfad_datenbank)
cursor = con.cursor()
if liste_s0_apriori_anpassen != []:
for s0_apriori in liste_s0_apriori_anpassen:
cursor.execute(
f"UPDATE Varianzkomponentenschaetzung SET s0_apriori_vorherige_iteration = ? WHERE instrumenteID = ? AND beobachtungsgruppe = ?",
(s0_apriori[2], s0_apriori[0], s0_apriori[1]))
print(f"Folgende S0_apriori wurde für die nächste Iteration gespeichert: {liste_s0_apriori_anpassen}.")
con.commit()
cursor.close()
con.close()
def get_koordinaten(self, koordinatenart: str, ausgabeart: str = "Dict") -> dict[Any, MutableDenseMatrix] | None:
con = sqlite3.connect(self.pfad_datenbank)
cursor = con.cursor()
@@ -612,3 +668,20 @@ class Datenbankzugriff:
con.close()
return liste_nivellement_beobachtungen
def get_varianzkomponentenschaetzung(self) -> list[Any]:
con = sqlite3.connect(self.pfad_datenbank)
cursor = con.cursor()
liste_varianzkomponenten = cursor.execute(f"SELECT varianzkomponenteID, instrumenteID, beobachtungsgruppe, varianz_varianzkomponentenschaetzung FROM Varianzkomponentenschaetzung").fetchall()
cursor.close()
con.close()
return liste_varianzkomponenten
def get_s0_apriori(self) -> list[Any]:
con = sqlite3.connect(self.pfad_datenbank)
cursor = con.cursor()
liste_s0_apriori = cursor.execute(f"SELECT varianzkomponenteID, instrumenteID, beobachtungsgruppe, varianz_varianzkomponentenschaetzung, s0_apriori_vorherige_iteration FROM Varianzkomponentenschaetzung").fetchall()
cursor.close()
con.close()
return liste_s0_apriori