diff --git a/Campusnetz.db b/Campusnetz.db index 687804b..2595cf4 100644 Binary files a/Campusnetz.db and b/Campusnetz.db differ diff --git a/Campusnetz.ipynb b/Campusnetz.ipynb index 46c6400..9666cd6 100644 --- a/Campusnetz.ipynb +++ b/Campusnetz.ipynb @@ -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": { diff --git a/Datenbank.py b/Datenbank.py index c9ddc24..b6f9f70 100644 --- a/Datenbank.py +++ b/Datenbank.py @@ -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() \ No newline at end of file + 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 \ No newline at end of file diff --git a/Import.py b/Import.py index 6b1a692..1a33a7c 100644 --- a/Import.py +++ b/Import.py @@ -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()