Tabelle Genauigkeiten und Import für Strecken und Richtungen fertig
This commit is contained in:
2459
.idea/dataSources/c385b2f5-c801-4154-bc11-62182a8396b3.xml
generated
2459
.idea/dataSources/c385b2f5-c801-4154-bc11-62182a8396b3.xml
generated
File diff suppressed because it is too large
Load Diff
@@ -62,4 +62,10 @@ class Einheitenumrechnung:
|
||||
gon = Decimal(gon)
|
||||
pi = Decimal(str(math.pi))
|
||||
rad = (gon / Decimal(200)) * pi
|
||||
return rad
|
||||
|
||||
def mgon_to_rad_Decimal(gon):
|
||||
gon = Decimal(gon)
|
||||
pi = Decimal(str(math.pi))
|
||||
rad = (gon / Decimal(200000)) * pi
|
||||
return rad
|
||||
BIN
Campusnetz.db
BIN
Campusnetz.db
Binary file not shown.
@@ -274,6 +274,26 @@
|
||||
"outputs": [],
|
||||
"execution_count": null
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"#Importieren der apriori Genauigkeitsinformationen\n",
|
||||
"#Zulässige Beobachtungsarten = \"Tachymeter_Richtung\", \"Tachymeter_Strecke\"\n",
|
||||
"# Wenn Beobachtungsart = \"Tachymeter_Richtung\" --> Übergabe in Milligon und nur Stabw_apriori_konst\n",
|
||||
"# Wenn Beobachtungsart = \"Tachymeter_Strecke\" --> Übergabe Stabw_apriori_konst in Millimeter und Stabw_apriori_streckenprop in ppm\n",
|
||||
"\n",
|
||||
"importlib.reload(Datenbank)\n",
|
||||
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)\n",
|
||||
"importlib.reload(Berechnungen)\n",
|
||||
"\n",
|
||||
"db_zugriff.set_genauigkeiten(1, \"Tachymeter_Richtung\", 0.15)\n",
|
||||
"db_zugriff.set_genauigkeiten(1, \"Tachymeter_Strecke\", 0.8, 1)"
|
||||
],
|
||||
"id": "97e24245ce3398a2",
|
||||
"outputs": [],
|
||||
"execution_count": null
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"cell_type": "code",
|
||||
|
||||
99
Datenbank.py
99
Datenbank.py
@@ -1,6 +1,9 @@
|
||||
import os
|
||||
import sqlite3
|
||||
import sympy as sp
|
||||
from Berechnungen import Einheitenumrechnung
|
||||
from decimal import Decimal
|
||||
|
||||
|
||||
|
||||
class Datenbank_anlegen:
|
||||
@@ -34,7 +37,10 @@ class Datenbank_anlegen:
|
||||
tachymeter_zenitwinkel NUMERIC(8, 6),
|
||||
tachymeter_distanz NUMERIC(8, 4),
|
||||
dateiname TEXT(200),
|
||||
CONSTRAINT pk_Beobachtunen PRIMARY KEY (beobachtungenID)
|
||||
CONSTRAINT pk_Beobachtungen PRIMARY KEY (beobachtungenID),
|
||||
CONSTRAINT fk_Beobachtungen_Netzpunktesp FOREIGN KEY (punktnummer_sp) REFERENCES Netzpunkte(punktnummer),
|
||||
CONSTRAINT fk_Beobachtungen_Netzpunktezp FOREIGN KEY (punktnummer_zp) REFERENCES Netzpunkte(punktnummer),
|
||||
CONSTRAINT fk_Beobachtungen_Instrumente FOREIGN KEY (instrumenteID) REFERENCES Instrumente(instrumenteID)
|
||||
);
|
||||
""");
|
||||
cursor.executescript("""CREATE TABLE Instrumente(
|
||||
@@ -44,6 +50,16 @@ class Datenbank_anlegen:
|
||||
CONSTRAINT pk_Instrumente PRIMARY KEY (instrumenteID)
|
||||
);
|
||||
""")
|
||||
cursor.executescript("""CREATE TABLE Genauigkeiten(
|
||||
genauigkeitenID INTEGER,
|
||||
instrumenteID INTEGER,
|
||||
beobachtungsart TEXT(25),
|
||||
stabw_apriori_konstant NUMERIC(3, 8),
|
||||
stabw_apriori_streckenprop NUMERIC(3, 8),
|
||||
CONSTRAINT pk_Genauigkeiten PRIMARY KEY (genauigkeitenID),
|
||||
CONSTRAINT fk_Genauigkeiten_Instrumente FOREIGN KEY (instrumenteID) REFERENCES Instrumente(instrumenteID)
|
||||
);
|
||||
""")
|
||||
con.commit()
|
||||
cursor.close()
|
||||
con.close()
|
||||
@@ -114,6 +130,87 @@ class Datenbankzugriff:
|
||||
cursor.close()
|
||||
con.close()
|
||||
|
||||
def set_genauigkeiten(self, instrumenteID, beobachtungsart, stabw_apriori_konstant =None, stabw_apriori_streckenprop =None):
|
||||
con = sqlite3.connect(self.pfad_datenbank)
|
||||
cursor = con.cursor()
|
||||
|
||||
instrumentenname = cursor.execute("SELECT name FROM Instrumente WHERE instrumenteID = ?",
|
||||
(instrumenteID, )).fetchone()
|
||||
if instrumentenname is None:
|
||||
print(
|
||||
f"Die InstumentenID {instrumenteID} ist in der Datenbank nicht vorhanden. Bitte zuerst das Instrument hinzufügen.")
|
||||
cursor.close()
|
||||
con.close()
|
||||
return
|
||||
instrumentenname = instrumentenname[0]
|
||||
|
||||
if stabw_apriori_konstant is None and stabw_apriori_streckenprop is None:
|
||||
print(
|
||||
"Es wurden keine Genauigkeiten importiert. Bitte stabw_apriori_konstant und / oder stabw_apriori_streckenprop angeben.")
|
||||
cursor.close()
|
||||
con.close()
|
||||
return
|
||||
|
||||
if beobachtungsart == "Tachymeter_Richtung":
|
||||
stabw_apriori_konstant = Einheitenumrechnung.mgon_to_rad_Decimal(stabw_apriori_konstant)
|
||||
|
||||
if beobachtungsart == "Tachymeter_Strecke":
|
||||
stabw_apriori_konstant = Einheitenumrechnung.mm_to_m(stabw_apriori_konstant)
|
||||
|
||||
if isinstance(stabw_apriori_konstant, Decimal):
|
||||
stabw_apriori_konstant = float(stabw_apriori_konstant)
|
||||
|
||||
if isinstance(stabw_apriori_streckenprop, Decimal):
|
||||
stabw_apriori_streckenprop = float(stabw_apriori_streckenprop)
|
||||
|
||||
sql = "SELECT 1 FROM Genauigkeiten WHERE instrumenteID = ? AND beobachtungsart = ?"
|
||||
params = [instrumenteID, beobachtungsart]
|
||||
|
||||
if stabw_apriori_konstant is None:
|
||||
sql += " AND stabw_apriori_konstant IS NULL"
|
||||
else:
|
||||
sql += " AND stabw_apriori_konstant = ?"
|
||||
params.append(stabw_apriori_konstant)
|
||||
|
||||
if stabw_apriori_streckenprop is None:
|
||||
sql += " AND stabw_apriori_streckenprop IS NULL"
|
||||
else:
|
||||
sql += " AND stabw_apriori_streckenprop = ?"
|
||||
params.append(stabw_apriori_streckenprop)
|
||||
|
||||
liste_genauigkeiten = cursor.execute(sql, tuple(params)).fetchall()
|
||||
|
||||
if liste_genauigkeiten == []:
|
||||
if stabw_apriori_konstant is not None and stabw_apriori_streckenprop is not None:
|
||||
cursor.execute(
|
||||
"INSERT INTO Genauigkeiten (instrumenteID, beobachtungsart, stabw_apriori_konstant, stabw_apriori_streckenprop) VALUES (?, ?, ?, ?)",
|
||||
(instrumenteID, beobachtungsart, stabw_apriori_konstant, stabw_apriori_streckenprop)
|
||||
)
|
||||
print(
|
||||
f"Die Genauigkeitsangabe für die Beobachtungsart {beobachtungsart} des Instrumentes {instrumentenname} wurde erfolgreich hinzugefügt.")
|
||||
|
||||
elif stabw_apriori_konstant is None and stabw_apriori_streckenprop is not None:
|
||||
cursor.execute(
|
||||
"INSERT INTO Genauigkeiten (instrumenteID, beobachtungsart, stabw_apriori_streckenprop) VALUES (?, ?, ?)",
|
||||
(instrumenteID, beobachtungsart, stabw_apriori_streckenprop)
|
||||
)
|
||||
print(
|
||||
f"Die Genauigkeitsangabe für die Beobachtungsart {beobachtungsart} des Instrumentes {instrumentenname} wurde erfolgreich hinzugefügt.")
|
||||
|
||||
elif stabw_apriori_streckenprop is None and stabw_apriori_konstant is not None:
|
||||
cursor.execute(
|
||||
"INSERT INTO Genauigkeiten (instrumenteID, beobachtungsart, stabw_apriori_konstant) VALUES (?, ?, ?)",
|
||||
(instrumenteID, beobachtungsart, stabw_apriori_konstant)
|
||||
)
|
||||
print(
|
||||
f"Die Genauigkeitsangabe für die Beobachtungsart {beobachtungsart} des Instrumentes {instrumentenname} wurde erfolgreich hinzugefügt.")
|
||||
else:
|
||||
print("Die Genauigkeitsangabe ist bereits in der Datenbank vorhanden.")
|
||||
|
||||
con.commit()
|
||||
cursor.close()
|
||||
con.close()
|
||||
|
||||
def get_instrument(self, typ):
|
||||
con = sqlite3.connect(self.pfad_datenbank)
|
||||
cursor = con.cursor()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user