Merge remote-tracking branch 'origin/main'

This commit is contained in:
2025-12-09 10:49:44 +01:00
13 changed files with 1937 additions and 15 deletions

View File

@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.14" jdkType="Python SDK" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.14 (Masterprojekt)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

10
.idea/Masterprojekt.iml generated Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.14 (Masterprojekt)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

18
.idea/dataSources.local.xml generated Normal file
View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="dataSourceStorageLocal" created-in="PY-252.28238.29">
<data-source name="Campusnetz.db" uuid="c385b2f5-c801-4154-bc11-62182a8396b3">
<database-info product="SQLite" version="3.45.1" jdbc-version="4.2" driver-name="SQLite JDBC" driver-version="3.45.1.0" dbms="SQLITE" exact-version="3.45.1" exact-driver-version="3.45">
<identifier-quote-string>&quot;</identifier-quote-string>
</database-info>
<case-sensitivity plain-identifiers="mixed" quoted-identifiers="mixed" />
<secret-storage>master_key</secret-storage>
<auth-provider>no-auth</auth-provider>
<schema-mapping>
<introspection-scope>
<node kind="schema" qname="@" />
</introspection-scope>
</schema-mapping>
</data-source>
</component>
</project>

12
.idea/dataSources.xml generated Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="Campusnetz.db" uuid="c385b2f5-c801-4154-bc11-62182a8396b3">
<driver-ref>sqlite.xerial</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.sqlite.JDBC</jdbc-driver>
<jdbc-url>jdbc:sqlite:$PROJECT_DIR$/Campusnetz.db</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
#n:main
!<md> [0, 0, null, null, -2147483648, -2147483648]

View File

@@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>

2
.idea/misc.xml generated
View File

@@ -3,5 +3,5 @@
<component name="Black">
<option name="sdkName" value="Python 3.14" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.14" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.14 (Masterprojekt)" project-jdk-type="Python SDK" />
</project>

BIN
Campusnetz.db Normal file

Binary file not shown.

View File

@@ -6,14 +6,15 @@
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-12-05T16:08:32.972973Z",
"start_time": "2025-12-05T16:08:32.962798Z"
"end_time": "2025-12-08T16:59:58.933024Z",
"start_time": "2025-12-08T16:59:58.578335Z"
}
},
"source": [
"# Hier werden alle verwendeten Pythonmodule importiert\n",
"import Datenbank\n",
"import Import"
"import Import\n",
"import importlib"
],
"outputs": [],
"execution_count": 1
@@ -21,18 +22,20 @@
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-05T16:08:32.981718Z",
"start_time": "2025-12-05T16:08:32.978622Z"
"end_time": "2025-12-08T17:00:01.134916Z",
"start_time": "2025-12-08T17:00:01.110846Z"
}
},
"cell_type": "code",
"source": [
"importlib.reload(Import)\n",
"# Anlegen der Datenbank, wenn nicht vorhanden\n",
"pfad_datenbank = r\"Campusnetz.db\"\n",
"Datenbank.Datenbank_anlegen(pfad_datenbank)\n",
"\n",
"# Import vervollständigen\n",
"imp = Import.Import(pfad_datenbank)"
"imp = Import.Import(pfad_datenbank)\n",
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)"
],
"id": "82d514cd426db78b",
"outputs": [],
@@ -41,15 +44,15 @@
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-05T16:08:32.992364Z",
"start_time": "2025-12-05T16:08:32.987964Z"
"end_time": "2025-12-08T17:00:02.698814Z",
"start_time": "2025-12-08T17:00:02.678346Z"
}
},
"cell_type": "code",
"source": [
"# Import der Koordinatendatei(en) vom Tachymeter\n",
"pfad_datei = r\"Daten\\campusnetz_koordinaten_25_11.csv\"\n",
"imp.import_koordinaten_lh_tachymeter(pfad_datei)\n"
"imp.import_koordinaten_lh_tachymeter(pfad_datei)"
],
"id": "d3bce3991a8962dc",
"outputs": [
@@ -57,11 +60,196 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Der Import wurde abgebrochen, weil mindestens ein Teil der Punktnummern aus der Datei Daten\\campusnetz_koordinaten_25_11.csv bereits in der Datenbank vorhanden ist. Bitte in der Datei ändern und Import wiederholen.\n"
"Der Import der Näherungskoordinaten wurde erfolgreich abgeschlossen\n"
]
}
],
"execution_count": 3
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-08T17:00:13.157273Z",
"start_time": "2025-12-08T17:00:13.147245Z"
}
},
"cell_type": "code",
"source": [
"importlib.reload(Datenbank)\n",
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)\n",
"# Transformationen in ETRS89 / DREF91 Realisierung 2025\n",
"print(db_zugriff.get_koordinaten(\"naeherung_lh\"))"
],
"id": "196ff0c8f8b5aea1",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'10009': Matrix([\n",
"[1000.0],\n",
"[2000.0],\n",
"[ 100.0]])}, {'10006': Matrix([\n",
"[ 1000.0],\n",
"[2032.6863],\n",
"[ 99.5825]])}, {'10010': Matrix([\n",
"[1011.8143],\n",
"[1973.3252],\n",
"[ 99.9259]])}, {'10018': Matrix([\n",
"[1008.5759],\n",
"[ 1942.762],\n",
"[ 100.2553]])}, {'10008': Matrix([\n",
"[979.7022],\n",
"[1991.401],\n",
"[ 99.732]])}, {'10005': Matrix([\n",
"[ 966.5154],\n",
"[2014.6496],\n",
"[ 99.72]])}, {'10003': Matrix([\n",
"[ 908.4312],\n",
"[1996.1248],\n",
"[ 99.7403]])}, {'10004': Matrix([\n",
"[ 954.1536],\n",
"[2021.6822],\n",
"[ 99.4916]])}, {'10007': Matrix([\n",
"[ 921.7481],\n",
"[1973.6201],\n",
"[ 99.9176]])}, {'10001': Matrix([\n",
"[ 833.9439],\n",
"[1978.3737],\n",
"[ 99.8946]])}, {'10002': Matrix([\n",
"[ 875.9684],\n",
"[1998.5174],\n",
"[ 99.5867]])}, {'100016': Matrix([\n",
"[ 928.2783],\n",
"[1944.0082],\n",
"[ 100.0459]])}, {'10011': Matrix([\n",
"[ 908.4308],\n",
"[1996.1277],\n",
"[ 99.7822]])}, {'10011a': Matrix([\n",
"[844.9567],\n",
"[1891.157],\n",
"[ 99.8117]])}, {'10026': Matrix([\n",
"[1020.0059],\n",
"[1913.8703],\n",
"[ 100.3059]])}, {'10027': Matrix([\n",
"[1016.9451],\n",
"[1866.2914],\n",
"[ 100.3251]])}, {'10043': Matrix([\n",
"[1031.2077],\n",
"[1822.4739],\n",
"[ 100.3035]])}, {'10044': Matrix([\n",
"[ 1025.976],\n",
"[1782.4835],\n",
"[ 100.5461]])}, {'10021': Matrix([\n",
"[ 992.7607],\n",
"[1904.8854],\n",
"[ 100.3533]])}, {'10020': Matrix([\n",
"[ 984.6187],\n",
"[1903.3601],\n",
"[ 100.3423]])}, {'10024': Matrix([\n",
"[ 997.4831],\n",
"[1881.7862],\n",
"[ 100.3032]])}, {'10025': Matrix([\n",
"[996.3241],\n",
"[1866.844],\n",
"[100.4102]])}, {'10022': Matrix([\n",
"[990.0679],\n",
"[1896.536],\n",
"[100.2194]])}, {'10023': Matrix([\n",
"[ 987.3223],\n",
"[1889.8762],\n",
"[ 100.343]])}, {'10019': Matrix([\n",
"[ 962.6387],\n",
"[1902.3565],\n",
"[ 99.9772]])}, {'10033': Matrix([\n",
"[ 964.0191],\n",
"[1860.8023],\n",
"[ 99.8551]])}, {'10017': Matrix([\n",
"[ 931.6761],\n",
"[1900.9945],\n",
"[ 99.9572]])}, {'10052': Matrix([\n",
"[ 1037.875],\n",
"[1757.2999],\n",
"[ 100.2737]])}, {'10042': Matrix([\n",
"[1017.3489],\n",
"[1803.0742],\n",
"[ 100.3441]])}, {'10053': Matrix([\n",
"[1033.3758],\n",
"[1723.4258],\n",
"[ 100.2774]])}, {'10037': Matrix([\n",
"[ 966.2253],\n",
"[1774.2051],\n",
"[ 99.9957]])}, {'10040': Matrix([\n",
"[ 990.8832],\n",
"[1780.9678],\n",
"[ 100.1677]])}, {'10041': Matrix([\n",
"[993.2769],\n",
"[1812.031],\n",
"[100.4749]])}, {'10038': Matrix([\n",
"[ 958.1899],\n",
"[1804.7135],\n",
"[ 100.0741]])}, {'10051': Matrix([\n",
"[1008.9811],\n",
"[1750.1838],\n",
"[ 100.288]])}, {'10036': Matrix([\n",
"[ 948.6403],\n",
"[1763.5807],\n",
"[ 100.0063]])}, {'10035': Matrix([\n",
"[ 910.1265],\n",
"[1768.0099],\n",
"[ 100.0781]])}, {'10039': Matrix([\n",
"[ 960.3884],\n",
"[1820.0543],\n",
"[ 100.0983]])}, {'10059': Matrix([\n",
"[1049.2587],\n",
"[1662.5451],\n",
"[ 100.0148]])}, {'10050': Matrix([\n",
"[1010.0246],\n",
"[1726.2445],\n",
"[ 100.1493]])}, {'10049': Matrix([\n",
"[ 984.7667],\n",
"[1714.5709],\n",
"[ 100.0101]])}, {'100': Matrix([\n",
"[ 957.3912],\n",
"[1716.2864],\n",
"[ 99.7777]])}, {'10013': Matrix([\n",
"[900.9076],\n",
"[1902.873],\n",
"[ 99.7911]])}, {'10028': Matrix([\n",
"[ 853.9608],\n",
"[1815.7417],\n",
"[ 99.7793]])}, {'10012': Matrix([\n",
"[ 895.3032],\n",
"[1924.1523],\n",
"[ 99.8758]])}, {'10014': Matrix([\n",
"[ 913.9706],\n",
"[1918.7731],\n",
"[ 99.8872]])}, {'10031': Matrix([\n",
"[ 937.1557],\n",
"[1855.2805],\n",
"[ 99.8479]])}, {'10015': Matrix([\n",
"[ 912.5157],\n",
"[1937.6471],\n",
"[ 99.9834]])}, {'10032': Matrix([\n",
"[ 954.6732],\n",
"[1845.9356],\n",
"[ 99.724]])}, {'10030': Matrix([\n",
"[ 908.4749],\n",
"[1828.8008],\n",
"[ 99.5581]])}, {'10029': Matrix([\n",
"[ 909.3343],\n",
"[1814.8767],\n",
"[ 99.5486]])}, {'10034': Matrix([\n",
"[ 860.2357],\n",
"[1758.9282],\n",
"[ 99.737]])}, {'10045': Matrix([\n",
"[867.2324],\n",
"[1705.063],\n",
"[ 99.7214]])}]\n"
]
}
],
"execution_count": 4
}
],
"metadata": {

View File

@@ -1,5 +1,6 @@
import os
import sqlite3
import sympy as sp
class Datenbank_anlegen:
@@ -25,4 +26,27 @@ class Datenbank_anlegen:
""");
con.commit()
cursor.close()
con.close()
con.close()
class Datenbankzugriff:
def __init__(self, pfad_datenbank):
self.pfad_datenbank = pfad_datenbank
def get_koordinaten(self, koordinatenart, ausgabeart = "Vektoren"):
con = sqlite3.connect(self.pfad_datenbank)
cursor = con.cursor()
if koordinatenart == "naeherung_lh":
values = "punktnummer, naeherungx_lh, naeherungy_lh, naeherungz_lh"
liste_koordinaten = cursor.execute(f"""
SELECT {values} FROM Netzpunkte;
""").fetchall()
cursor.close()
con.close()
if ausgabeart == "Vektoren":
liste_koordinaten_vektoren = []
for koordinate in liste_koordinaten:
liste_koordinaten_vektoren.append({koordinate[0]: sp.Matrix([float(koordinate[1]), float(koordinate[2]), float(koordinate[3])])})
liste_koordinaten = liste_koordinaten_vektoren
return liste_koordinaten

View File

@@ -6,6 +6,10 @@ class Import:
self.pfad_datenbank = pfad_datenbank
pass
def string_to_float(self, zahl):
zahl = zahl.replace(',', '.')
return float(zahl)
def import_koordinaten_lh_tachymeter(self, pfad_datei):
liste_punktnummern = []
liste_punktnummern_vorher = []
@@ -45,7 +49,7 @@ class Import:
for row in r:
cursor.execute(
"INSERT INTO Netzpunkte (punktnummer, naeherungx_lh, naeherungy_lh, naeherungz_lh) VALUES (?, ?, ?, ?)",
(row[0], row[1], row[2], row[3]))
(row[0], self.string_to_float(row[1]), self.string_to_float(row[2]), self.string_to_float(row[3])))
con.commit()
cursor.close()

0
identifier.sqlite Normal file
View File