From 74d467e9576c26dd74d613c7482a294f7c3f5a59 Mon Sep 17 00:00:00 2001 From: fabia Date: Mon, 8 Dec 2025 18:05:30 +0100 Subject: [PATCH] =?UTF-8?q?Datenimport=20angepasst=20und=20Abfrage=20N?= =?UTF-8?q?=C3=A4aherungskoordinaten=20lokales=20Horizontsystem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Campusnetz.db | Bin 12288 -> 12288 bytes Campusnetz.ipynb | 208 ++++++++++++++++++++++++++++++++++++++++++++--- Datenbank.py | 26 +++++- Import.py | 6 +- 4 files changed, 228 insertions(+), 12 deletions(-) diff --git a/Campusnetz.db b/Campusnetz.db index 687804ba418963c40345db577a938c6999a6e483..2595cf4dd10b949f46e8e818fa18b57c42f5c8ee 100644 GIT binary patch delta 2183 zcmYk7cTiMU6vlCZ-M4)KaRpo{dO<{G-xhYki8=NX6yv112I?yjS`|Ghtc?>pz-?>pxfWff&@3RX;^_yO|! z@;doid7(T*o-C(i*JQh8C9+&uADK$}TzXPkDJ_z+QjJtBxhbiUluEvn43NZ%o5iQa z>%~8bGsOn6LewbQFLH`ziH3;ch3|zIgj9JX`c;7dY0!g3zfefO(iS>CV|4q$4n`4ougsZ{Jv$0nRzw z3*`1PU>+s$Bm;LNErDrL!8~bwMZx#E;2JZprXs`*%#C)vyHpe)%}0#GRkdm`k3YU* z9RDS_N_0X04l-kIN2C1p3`BqAe3%9-XTS1Sb)B!3KImk@&1D3&Ey+V_0;Ba{E{;hU zF)AB8{YqD7-+T$oyT^RX&T5oQU|Je11A8=ZYd^mYuD8+MCyZ7B^P=~=u}kVvH-e*e zV747N`mnAA+%3w=h5HkLd3EIaeAtP)l9&b-H|IW!j_nE_h0}k7%qwZs^gJu-LSPyr zn5wFLX9HK}%Oc$r?l3SaIO+{NZofI*r4}i9cPU~ z9SKgG0+x#CFP)!J;Ixid6Ff2=SIsf13iqN81g59Kw&>!ZXOAy{li8CJq6-Grr=8w_ z;s{J@1k00R9JFu_T$)SX+We!qsy|aGmf&<)PGnFr*CW6+EV?%T&#l0=pRoUxVH=7e zF*R6UD(Vt5J>Wduz<;rUStva6H)Rp9eN%-@OOTeUOU4bQ-W7JLbDlaCP~jC4Ac~VB7dqr=oTQ zrq_VoP=x0@0GxT+wr_?F05+s}NUO9G6h$eyPg$Z3U{QTjsk-e1_m&U#GjIJ7M3ID? zRtwgc1l4WF8E}W`aXd!ivDx*U-Es;=5EzZ^4{s-{ZCDHLT~lNkK@oTgP1CP@y8*Q& zFb#+0E-ecU-opd;qIqdc*I>iKao$(gAtlLa!1{QxJfT_*?(&Y8lOtCFE5m_LUVz$= zm>z6#Wq;IEgn~OMtLHC+F@Wue z&0bo)65NTMaVU+zwmvy6t%XB!5=#NwRS6EsIB?&YlYBqp96oBv<+2w^@iHnxfc?kG zz}uCkv%!>8Ibu}SI&hm;9duUQ0Oo1aO{-}Jk`j6}jhFR|{(X&)z^k6`-%w1G+}B3D z1nYg2Q`2~0d8xi!fG3NZxU4E2Sl)*3F=O^cA|Z(xz&GIvP;FwGy*Ns*Wi zEcL#yjpV>vy4&{wOhf*-3meuW0m0A4k2F|9Lx=(59LXa(Yvm>#UUXp@k4 z1-u0-)i@~lWolh;t^Y<8Okzf`x;;^pg9l!f!@qPG?%~BYi;{RKh~Q`=*ovM0)#(|7 zAJt4fu!@Ycf2})-0!a+-YtI7wm?*$=7SHoiyiQtrHie#_8O@`VyiZP~1l|Sj{@O!R h#7TO8}yjIwG5w>2P8hBT5YC?I8;y<5kv6=t? literal 12288 zcmeHLPl#Pt8GkdAWZs{-=Omr9uah**ohJ9bndBrr|NpqrF$@yYL_3*+6?7PJw4uqQ zCNq#`;iiI7a3L;A5f|dZg+ftqAub9^7lPnIR1{o@3l)?iE>xu8@7#A!dNw9iy7NAG z%s1!$&Ue1=_x--_y!Wm?`^>eyo$}K+Z{675D^>4sZ)T?VfwJuNdb4=X;hkPHFb<@D z@HhVdu-9zw{Fjav^dG(1;~(yf-`d{ayV?Ao`QH-noE5*<_hU~L zc$@h*d-PZIb@~PR3F_!!@+a~m@-?zYE|b&6+r=-6?-Z{TA1g#LSoqz-4;H?%aBX32 z;n?VJqo0nxIl4P~c64SmJN(V?d&4gdw})YPWbntq8-rH|w+5F6r~7aBf7yS%f3LsY ze_wxb{?9n7dvy$S40H^140H^147?W%RHi>Zaq>7^3C^|g)-kE17LFUnt>PgtCxxzb z22kgjeSmof402JvK+qONir3Wjr}HNsiXI2705oEP=!9A|^}s3%vzDP}x(4Gtom zoXP`?;XssL2&faDz48$V@_GGK?hrNec#QKr2S-9R8FQ4SUe0hDC09&33ml|{^T8Bv z1Y4Im4v}+c10rx9^|QzzGH9KvPDWhYWXc5#f~7$sPBY0(qfnG{@?@R|&QXdfhzJ!? zOoQ?!4{Vy8$becRAV@*`n22IX04tzgYcY8u0~#!&B_K=SAs+N+L$yTbR>!jlAxkCD zYF0pi$Rz0490*WW$1<2w!D>he!i@94^Qr2M5!F%#Lw3-KRS-;+Gy1mi=A5h_kFZv$ z*zA#ol$aJiHjizyP`n=JxHwiYnjEqXmKkN6a-j2c{aB8}DHi^8jLxF9^|Wk)%lgqA zhrV%4dj*^q%=z|QG;@74$3eN6KcYzkb-}SymZho}a~$%O=s3tTKvrmZ-QbK;lSi^@ zpgLS)jsXe1$QVJRKZ6dO9La%E2m(5Bm{k%$hpvzH<;qMBXF!RDz$ieqrYXxHrbkO7 zCNu|H91RXJ^H4kmuA``{*!G1D;E5bb0kx@${}=x|q{l|XiYU-W5HW86ET8fE^tghrm3nC7?~a3$b! zs)jiXy^VRQ!AEfT@(dlv=z_M@AcwgiQCN+zgHy~(NEUL&7^(U>OvejGKv0qcZxKCU zxBzT5pTjVnW3Cvy(_GPa$Q5&`I+Vjq>~h>g8plC5I!v!C&Z~nt%m;_vTt;t#MU6&p zO7h8ptYVlvai|#=E2g8o;1v~<#;AHO0#hZhECecq0AsRBnwUk9sO)Tp!-dANA8#l@ zp*_8gSC;Y8OlGo!o9iOs+70pGxN(Rp#uRV$$j9l|={@>Y`a}9%`X>Dg{TBTh{X6|V z{T#hb-cPO)Lzc;3>96TQ{6ersmnfy@=qY-QZjp;*juhl98Iyk%|0G`~uacjTZXWltxZIF;7?Q>~@Na`DsXUR^R4I}ORXi<|+<1T(c=$ISetW?H 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()