961 lines
31 KiB
Plaintext
961 lines
31 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"id": "initial_id",
|
|
"metadata": {
|
|
"collapsed": true,
|
|
"ExecuteTime": {
|
|
"end_time": "2025-12-23T08:39:33.840440Z",
|
|
"start_time": "2025-12-23T08:39:33.100346Z"
|
|
}
|
|
},
|
|
"source": [
|
|
"# Hier werden alle verwendeten Pythonmodule importiert\n",
|
|
"import Datenbank\n",
|
|
"import Import\n",
|
|
"import importlib\n",
|
|
"import Koordinatentransformationen\n",
|
|
"import sqlite3\n",
|
|
"import Funktionales_Modell\n",
|
|
"import Berechnungen\n",
|
|
"import Parameterschaetzung\n",
|
|
"import Stochastisches_Modell\n",
|
|
"from Stochastisches_Modell import StochastischesModell\n",
|
|
"import Export\n",
|
|
"import Netzqualität_Genauigkeit"
|
|
],
|
|
"outputs": [],
|
|
"execution_count": 1
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2025-12-23T08:39:34.656550Z",
|
|
"start_time": "2025-12-23T08:39:34.647503Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"importlib.reload(Datenbank)\n",
|
|
"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)\n",
|
|
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)"
|
|
],
|
|
"id": "82d514cd426db78b",
|
|
"outputs": [],
|
|
"execution_count": 2
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2025-12-23T08:39:35.391343Z",
|
|
"start_time": "2025-12-23T08:39:35.385408Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Import der Koordinatendatei(en) vom Tachymeter\n",
|
|
"pfad_datei = r\"Daten\\campsnetz_koordinaten_bereinigt.csv\"\n",
|
|
"imp.import_koordinaten_lh_tachymeter(pfad_datei)"
|
|
],
|
|
"id": "d3bce3991a8962dc",
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Der Import wurde abgebrochen, weil mindestens ein Teil der Punktnummern aus der Datei Daten\\campsnetz_koordinaten_bereinigt.csv bereits in der Datenbank vorhanden ist. Bitte in der Datei ändern und Import wiederholen.\n"
|
|
]
|
|
}
|
|
],
|
|
"execution_count": 3
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2025-12-23T08:39:35.987063Z",
|
|
"start_time": "2025-12-23T08:39:35.973195Z"
|
|
}
|
|
},
|
|
"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]]), '10016': Matrix([\n",
|
|
"[ 928.2783],\n",
|
|
"[1944.0082],\n",
|
|
"[ 100.0459]]), '10011': 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]]), '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]]), '10049': Matrix([\n",
|
|
"[ 985.2561],\n",
|
|
"[1715.2109],\n",
|
|
"[ 99.9965]]), '10048': Matrix([\n",
|
|
"[ 957.3889],\n",
|
|
"[1716.2949],\n",
|
|
"[ 99.7212]]), '10047': Matrix([\n",
|
|
"[ 929.5334],\n",
|
|
"[1712.6429],\n",
|
|
"[ 99.6076]]), '10046': Matrix([\n",
|
|
"[ 910.663],\n",
|
|
"[1716.0969],\n",
|
|
"[ 99.5459]]), '10057': Matrix([\n",
|
|
"[969.6876],\n",
|
|
"[1655.597],\n",
|
|
"[ 99.7039]]), '10055': Matrix([\n",
|
|
"[ 922.4731],\n",
|
|
"[1647.7452],\n",
|
|
"[ 99.4658]]), '10054': Matrix([\n",
|
|
"[ 860.4481],\n",
|
|
"[1636.6722],\n",
|
|
"[ 99.7093]]), '10058': Matrix([\n",
|
|
"[1013.2592],\n",
|
|
"[1646.6356],\n",
|
|
"[ 99.8513]]), '10056': Matrix([\n",
|
|
"[ 939.9763],\n",
|
|
"[1636.4179],\n",
|
|
"[ 99.4027]])}\n"
|
|
]
|
|
}
|
|
],
|
|
"execution_count": 4
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2025-12-23T08:39:36.705490Z",
|
|
"start_time": "2025-12-23T08:39:36.690491Z"
|
|
}
|
|
},
|
|
"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_us\"))"
|
|
],
|
|
"id": "3989b7b41874c16a",
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"{'10009': Matrix([\n",
|
|
"[3794767.4719546097],\n",
|
|
"[ 546740.0869962516],\n",
|
|
"[ 5080165.952124462]]), '10006': Matrix([\n",
|
|
"[3794766.3557482935],\n",
|
|
"[ 546707.6385009313],\n",
|
|
"[5080169.7334700795]]), '10010': Matrix([\n",
|
|
"[3794758.6366199246],\n",
|
|
"[ 546767.6665772106],\n",
|
|
"[5080169.4644999765]]), '10018': Matrix([\n",
|
|
"[3794762.2481267513],\n",
|
|
"[ 546797.6912507551],\n",
|
|
"[ 5080163.980380166]]), '10008': Matrix([\n",
|
|
"[3794783.8581],\n",
|
|
"[ 546746.6347],\n",
|
|
"[5080152.7404]]), '10005': Matrix([\n",
|
|
"[3794793.841662743],\n",
|
|
"[546722.3209011297],\n",
|
|
"[5080147.930942906]]), '10003': Matrix([\n",
|
|
"[3794841.051609108],\n",
|
|
"[546735.1152754558],\n",
|
|
"[5080111.543399332]]), '10004': Matrix([\n",
|
|
"[3794803.4594055074],\n",
|
|
"[ 546714.1406417021],\n",
|
|
"[ 5080141.382390101]]), '10007': Matrix([\n",
|
|
"[3794831.046531049],\n",
|
|
"[546758.7254701178],\n",
|
|
"[5080116.663324944]]), '10001': Matrix([\n",
|
|
"[3794901.5252],\n",
|
|
"[ 546745.559],\n",
|
|
"[5080065.7672]]), '10002': Matrix([\n",
|
|
"[3794866.9711],\n",
|
|
"[ 546729.5958],\n",
|
|
"[5080092.6364]]), '10016': Matrix([\n",
|
|
"[3794826.658374741],\n",
|
|
"[546788.7275390101],\n",
|
|
"[5080116.868237535]]), '10011': Matrix([\n",
|
|
"[3794894.922579663],\n",
|
|
"[546833.1159754294],\n",
|
|
"[5080061.151341954]]), '10026': Matrix([\n",
|
|
"[3794753.8595],\n",
|
|
"[ 546827.4296],\n",
|
|
"[5080167.0938]]), '10027': Matrix([\n",
|
|
"[3794757.591261769],\n",
|
|
"[546874.3314003296],\n",
|
|
"[5080159.317534195]]), '10043': Matrix([\n",
|
|
"[3794747.2737986287],\n",
|
|
"[ 546919.1497828952],\n",
|
|
"[ 5080162.149716094]]), '10044': Matrix([\n",
|
|
"[3794752.6696],\n",
|
|
"[ 546958.3218],\n",
|
|
"[5080154.2579]]), '10021': Matrix([\n",
|
|
"[3794776.0295716925],\n",
|
|
"[ 546833.7406948799],\n",
|
|
"[ 5080150.012973846]]), '10020': Matrix([\n",
|
|
"[ 3794782.610580881],\n",
|
|
"[ 546834.470509102],\n",
|
|
"[5080145.0361413695]]), '10024': Matrix([\n",
|
|
"[3794772.816135807],\n",
|
|
"[ 546857.095708699],\n",
|
|
"[5080149.834714163]]), '10025': Matrix([\n",
|
|
"[3794774.2085619094],\n",
|
|
"[ 546871.8107307912],\n",
|
|
"[ 5080147.359175114]]), '10022': Matrix([\n",
|
|
"[3794778.3371531744],\n",
|
|
"[ 546841.7501872958],\n",
|
|
"[ 5080147.275074134]]), '10023': Matrix([\n",
|
|
"[3794780.7952114563],\n",
|
|
"[ 546848.1012091675],\n",
|
|
"[ 5080144.924922213]]), '10019': Matrix([\n",
|
|
"[3794800.0946706245],\n",
|
|
"[ 546833.3239614451],\n",
|
|
"[ 5080131.724532257]]), '10033': Matrix([\n",
|
|
"[3794800.0160474544],\n",
|
|
"[ 546874.6524563388],\n",
|
|
"[ 5080127.204744104]]), '10017': Matrix([\n",
|
|
"[3794825.016154114],\n",
|
|
"[546831.6998861503],\n",
|
|
"[5080113.374792286]]), '10052': Matrix([\n",
|
|
"[3794743.6262089056],\n",
|
|
"[ 546984.415934838],\n",
|
|
"[ 5080157.831166813]]), '10042': Matrix([\n",
|
|
"[ 3794758.957179171],\n",
|
|
"[ 546937.0599021759],\n",
|
|
"[5080151.6103044115]]), '10053': Matrix([\n",
|
|
"[ 3794748.14608301],\n",
|
|
"[547017.5748381803],\n",
|
|
"[5080150.930072506]]), '10037': Matrix([\n",
|
|
"[3794800.5693],\n",
|
|
"[ 546960.7477],\n",
|
|
"[ 5080117.665]]), '10040': Matrix([\n",
|
|
"[3794780.720877459],\n",
|
|
"[546956.4249913145],\n",
|
|
"[5080133.161471092]]), '10041': Matrix([\n",
|
|
"[3794778.153328699],\n",
|
|
"[ 546925.877928891],\n",
|
|
"[5080138.722313838]]), '10038': Matrix([\n",
|
|
"[3794806.3233483736],\n",
|
|
"[ 546929.7308726012],\n",
|
|
"[ 5080116.89880491]]), '10051': Matrix([\n",
|
|
"[3794767.0574626415],\n",
|
|
"[ 546988.6993708528],\n",
|
|
"[ 5080139.997874675]]), '10036': Matrix([\n",
|
|
"[3794815.0546409036],\n",
|
|
"[ 546969.5966706082],\n",
|
|
"[ 5080106.064114862]]), '10035': Matrix([\n",
|
|
"[3794845.948751911],\n",
|
|
"[ 546961.512678588],\n",
|
|
"[5080084.087510971]]), '10039': Matrix([\n",
|
|
"[3794804.1623731344],\n",
|
|
"[ 546914.7316360716],\n",
|
|
"[ 5080120.139242563]]), '10059': Matrix([\n",
|
|
"[3794736.9649],\n",
|
|
"[ 547079.4678],\n",
|
|
"[5080152.3224]]), '10050': Matrix([\n",
|
|
"[3794766.7719544796],\n",
|
|
"[ 547012.5266236273],\n",
|
|
"[ 5080137.484970744]]), '10013': Matrix([\n",
|
|
"[3794849.6087244693],\n",
|
|
"[ 546826.8685540904],\n",
|
|
"[ 5080095.43002485]]), '10028': Matrix([\n",
|
|
"[3794889.7348],\n",
|
|
"[ 546908.7636],\n",
|
|
"[5080056.9381]]), '10012': Matrix([\n",
|
|
"[3794853.6002710722],\n",
|
|
"[ 546805.2364847381],\n",
|
|
"[ 5080094.889461209]]), '10014': Matrix([\n",
|
|
"[3794838.7464],\n",
|
|
"[ 546812.3658],\n",
|
|
"[ 5080105.2]]), '10031': Matrix([\n",
|
|
"[3794821.7594477106],\n",
|
|
"[ 546877.5480584177],\n",
|
|
"[ 5080110.746046175]]), '10015': Matrix([\n",
|
|
"[3794839.4650256806],\n",
|
|
"[ 546793.5165545414],\n",
|
|
"[5080106.7712153485]]), '10032': Matrix([\n",
|
|
"[3794807.848210704],\n",
|
|
"[546888.4861254627],\n",
|
|
"[5080119.745908576]]), '10030': Matrix([\n",
|
|
"[3794845.353156385],\n",
|
|
"[546901.0274418414],\n",
|
|
"[5080090.356531718]]), '10029': Matrix([\n",
|
|
"[3794845.026354165],\n",
|
|
"[546914.9167077399],\n",
|
|
"[5080089.099946169]]), '10034': Matrix([\n",
|
|
"[3794886.104894752],\n",
|
|
"[546965.6987415539],\n",
|
|
"[ 5080053.40592357]]), '10045': Matrix([\n",
|
|
"[3794881.900452307],\n",
|
|
"[547019.7835874384],\n",
|
|
"[5080050.715777841]]), '10049': Matrix([\n",
|
|
"[3794786.8907962884],\n",
|
|
"[ 547021.0765699627],\n",
|
|
"[ 5080121.444681106]]), '10048': Matrix([\n",
|
|
"[3794809.106679632],\n",
|
|
"[547017.3023106218],\n",
|
|
"[5080105.014391199]]), '10047': Matrix([\n",
|
|
"[3794831.5349817923],\n",
|
|
"[ 547018.2393882351],\n",
|
|
"[ 5080088.124038595]]), '10046': Matrix([\n",
|
|
"[3794846.5803718665],\n",
|
|
"[ 547012.9971156706],\n",
|
|
"[ 5080077.440420756]]), '10057': Matrix([\n",
|
|
"[3794800.819370702],\n",
|
|
"[ 547078.671611169],\n",
|
|
"[ 5080104.57270624]]), '10055': Matrix([\n",
|
|
"[3794838.851977278],\n",
|
|
"[ 547081.903863645],\n",
|
|
"[5080075.698247853]]), '10054': Matrix([\n",
|
|
"[3794889.0494],\n",
|
|
"[ 547086.9874],\n",
|
|
"[5080038.1528]]), '10058': Matrix([\n",
|
|
"[3794766.1088143717],\n",
|
|
"[ 547091.7542871874],\n",
|
|
"[ 5080129.120881729]]), '10056': Matrix([\n",
|
|
"[3794825.041003442],\n",
|
|
"[547094.8115741647],\n",
|
|
"[5080084.488768324]]), '0645': Matrix([\n",
|
|
"[3793994.4529],\n",
|
|
"[ 495758.0093],\n",
|
|
"[5085958.2047]]), '0648': Matrix([\n",
|
|
"[3762551.5682],\n",
|
|
"[ 538424.8576],\n",
|
|
"[5104809.1503]]), '0656': Matrix([\n",
|
|
"[3794838.5802],\n",
|
|
"[ 546995.3112],\n",
|
|
"[5080116.5503]]), '0995': Matrix([\n",
|
|
"[3794519.9177],\n",
|
|
"[ 588539.9138],\n",
|
|
"[5075743.9332]]), '1675': Matrix([\n",
|
|
"[3813621.0427],\n",
|
|
"[ 566004.8947],\n",
|
|
"[ 5064056.93]]), 'ESTE': Matrix([\n",
|
|
"[3816914.711],\n",
|
|
"[ 507636.812],\n",
|
|
"[5067733.467]]), 'GNA2': Matrix([\n",
|
|
"[3767530.6335],\n",
|
|
"[ 597990.0978],\n",
|
|
"[5094563.5073]])}\n"
|
|
]
|
|
}
|
|
],
|
|
"execution_count": 5
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2025-12-23T08:39:37.518112Z",
|
|
"start_time": "2025-12-23T08:39:37.508774Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"importlib.reload(Import)\n",
|
|
"imp = Import.Import(pfad_datenbank)\n",
|
|
"\n",
|
|
"pfad_koordinaten_gnss = r\"Daten\\Koordinaten_OL_umliegend_bereinigt.csv\"\n",
|
|
"# X, Y, Z der SAPOS-Stationen\n",
|
|
"genauigkeit_sapos_referenzstationen = [0.05, 0.04, 0.09]\n",
|
|
"\n",
|
|
"imp.import_koordinaten_gnss(pfad_koordinaten_gnss, genauigkeit_sapos_referenzstationen)\n"
|
|
],
|
|
"id": "7b6a359712fe858e",
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"'Import der Koordinaten aus stationärem GNSS abgeschlossen.'"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"execution_count": 6
|
|
},
|
|
{
|
|
"metadata": {
|
|
"ExecuteTime": {
|
|
"end_time": "2025-12-23T08:50:23.112559Z",
|
|
"start_time": "2025-12-23T08:50:23.042100Z"
|
|
}
|
|
},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Datumsgebende Koordinaten bestimmen\n",
|
|
"importlib.reload(Datenbank)\n",
|
|
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)\n",
|
|
"\n",
|
|
"liste_koordinaten_x = [10026]\n",
|
|
"liste_koordinaten_y = [10059]\n",
|
|
"liste_koordinaten_z = [10028]\n",
|
|
"liste_koordinaten_x_y_z = [10008, 10001]\n",
|
|
"\n",
|
|
"db_zugriff.set_datumskoordinaten(liste_koordinaten_x, liste_koordinaten_y, liste_koordinaten_z, liste_koordinaten_x_y_z)\n",
|
|
"\n",
|
|
"# Datumgebende Koordinaten entfernen\n",
|
|
"liste_koordinaten_x = [10026]\n",
|
|
"liste_koordinaten_y = [10059]\n",
|
|
"liste_koordinaten_z = [10028]\n",
|
|
"liste_koordinaten_x_y_z = [10001]\n",
|
|
"\n",
|
|
"db_zugriff.set_datumskoordinaten_to_neupunkte(liste_koordinaten_x, liste_koordinaten_y, liste_koordinaten_z, liste_koordinaten_x_y_z)"
|
|
],
|
|
"id": "5f786757ba89d5d0",
|
|
"outputs": [],
|
|
"execution_count": 17
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# ToDo: Sobald GNSS vorliegend Koordinaten im ETRS89 / DREF 91 (2025) daraus berechnen!\n",
|
|
"#liste_koordinaten_naeherung_us = {\n",
|
|
"# 10001: (3794874.984, 546741.752, 5080029.990),\n",
|
|
"# 10002: (3794842.533, 546726.907, 5080071.133),\n",
|
|
"# 10037: (3794774.148, 546955.423, 5080040.520),\n",
|
|
"# 10044: (3794725.786, 546954.557, 5080084.411),\n",
|
|
"#}\n",
|
|
"\n",
|
|
"\n",
|
|
"#con = sqlite3.connect(pfad_datenbank)\n",
|
|
"#cursor = con.cursor()\n",
|
|
"#sql = \"\"\"\n",
|
|
"#UPDATE Netzpunkte\n",
|
|
"#SET naeherungx_us = ?, naeherungy_us = ?, naeherungz_us = ?\n",
|
|
"#WHERE punktnummer = ?\n",
|
|
"#\"\"\"\n",
|
|
"#for punktnummer, (x, y, z) in #liste_koordinaten_naeherung_us.items():\n",
|
|
"# cursor.execute(sql, (x, y, z, punktnummer))\n",
|
|
"#con.commit()\n",
|
|
"#cursor.close()\n",
|
|
"#con.close()"
|
|
],
|
|
"id": "f64d9c01318b40f1",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# ToDo: Sobald GNSS-Daten vorliegen und die Berechnungen richtig sind, aufräumen!!!\n",
|
|
"\n",
|
|
"importlib.reload(Koordinatentransformationen)\n",
|
|
"trafos = Koordinatentransformationen.Transformationen(pfad_datenbank)\n",
|
|
"\n",
|
|
"\n",
|
|
"import numpy as np\n",
|
|
"\n",
|
|
"import itertools\n",
|
|
"import numpy as np\n",
|
|
"import sympy as sp\n",
|
|
"\n",
|
|
"db = Datenbank.Datenbankzugriff(pfad_datenbank)\n",
|
|
"dict_ausgangssystem = db.get_koordinaten(\"naeherung_lh\", \"Dict\")\n",
|
|
"dict_zielsystem = db.get_koordinaten(\"naeherung_us\", \"Dict\")\n",
|
|
"\n",
|
|
"gemeinsame_punktnummern = sorted(set(dict_ausgangssystem.keys()) & set(dict_zielsystem.keys()))\n",
|
|
"anzahl_gemeinsame_punkte = len(gemeinsame_punktnummern)\n",
|
|
"\n",
|
|
"liste_punkte_ausgangssystem = [dict_ausgangssystem[i] for i in gemeinsame_punktnummern]\n",
|
|
"liste_punkte_zielsystem = [dict_zielsystem[i] for i in gemeinsame_punktnummern]\n",
|
|
"\n",
|
|
"def dist(a, b):\n",
|
|
" return float((a - b).norm())\n",
|
|
"\n",
|
|
"print(\"d(p2,p1)=\", dist(liste_punkte_ausgangssystem[1], liste_punkte_ausgangssystem[0]))\n",
|
|
"print(\"d(P2,P1)=\", dist(liste_punkte_zielsystem[1], liste_punkte_zielsystem[0]))\n",
|
|
"print(\"m0 ~\", dist(liste_punkte_zielsystem[1], liste_punkte_zielsystem[0]) /\n",
|
|
" dist(liste_punkte_ausgangssystem[1], liste_punkte_ausgangssystem[0]))\n",
|
|
"\n",
|
|
"\n",
|
|
"def dist(a, b):\n",
|
|
" return float((a - b).norm())\n",
|
|
"\n",
|
|
"ratios = []\n",
|
|
"pairs = list(itertools.combinations(range(len(liste_punkte_ausgangssystem)), 2))\n",
|
|
"\n",
|
|
"for i, j in pairs:\n",
|
|
" d_loc = dist(liste_punkte_ausgangssystem[i], liste_punkte_ausgangssystem[j])\n",
|
|
" d_ecef = dist(liste_punkte_zielsystem[i], liste_punkte_zielsystem[j])\n",
|
|
" if d_loc > 1e-6:\n",
|
|
" ratios.append(d_ecef / d_loc)\n",
|
|
"\n",
|
|
"print(\"Anzahl Ratios:\", len(ratios))\n",
|
|
"print(\"min/mean/max:\", min(ratios), sum(ratios)/len(ratios), max(ratios))\n",
|
|
"print(\"std:\", float(np.std(ratios)))\n",
|
|
"\n",
|
|
"S_loc = sum(liste_punkte_ausgangssystem, sp.Matrix([0,0,0])) / anzahl_gemeinsame_punkte\n",
|
|
"S_ecef = sum(liste_punkte_zielsystem, sp.Matrix([0,0,0])) / anzahl_gemeinsame_punkte\n",
|
|
"\n",
|
|
"print(\"S_loc:\", S_loc)\n",
|
|
"print(\"S_ecef:\", S_ecef)\n",
|
|
"print(\"Delta:\", (S_ecef - S_loc).evalf(6))\n",
|
|
"\n",
|
|
"\n",
|
|
"def dist(a, b):\n",
|
|
" return float((a - b).norm())\n",
|
|
"\n",
|
|
"n = len(liste_punkte_ausgangssystem)\n",
|
|
"\n",
|
|
"scores = []\n",
|
|
"for i in range(n):\n",
|
|
" d_loc = []\n",
|
|
" d_ecef = []\n",
|
|
" for j in range(n):\n",
|
|
" if i == j:\n",
|
|
" continue\n",
|
|
" d_loc.append(dist(liste_punkte_ausgangssystem[i], liste_punkte_ausgangssystem[j]))\n",
|
|
" d_ecef.append(dist(liste_punkte_zielsystem[i], liste_punkte_zielsystem[j]))\n",
|
|
"\n",
|
|
" d_loc = np.array(d_loc)\n",
|
|
" d_ecef = np.array(d_ecef)\n",
|
|
"\n",
|
|
" # Verhältnisvektor; robust gegen Nullschutz\n",
|
|
" r = d_ecef / np.where(d_loc == 0, np.nan, d_loc)\n",
|
|
"\n",
|
|
" # Streuung der Ratios für Punkt i\n",
|
|
" score = np.nanstd(r)\n",
|
|
" scores.append(score)\n",
|
|
"\n",
|
|
"for pn, sc in sorted(zip(gemeinsame_punktnummern, scores), key=lambda x: -x[1]):\n",
|
|
" print(pn, round(sc, 4))\n",
|
|
"\n",
|
|
"\n",
|
|
"\n",
|
|
"transformationsparameter = trafos.Helmerttransformation_Euler_Transformationsparameter_berechne()"
|
|
],
|
|
"id": "21d60465e432c649",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"importlib.reload(Koordinatentransformationen)\n",
|
|
"trafos = Koordinatentransformationen.Transformationen(pfad_datenbank)\n",
|
|
"\n",
|
|
"koordinaten_transformiert = trafos.Helmerttransformation(transformationsparameter)\n",
|
|
"print(koordinaten_transformiert)"
|
|
],
|
|
"id": "df0dcccb73299fcf",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"importlib.reload(Datenbank)\n",
|
|
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)\n",
|
|
"\n",
|
|
"db_zugriff.set_koordinaten(koordinaten_transformiert, \"naeherung_us\")"
|
|
],
|
|
"id": "f6993d81c8a145dd",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Importieren der tachymetrischen Beobachtungen\n",
|
|
"importlib.reload(Datenbank)\n",
|
|
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)\n",
|
|
"\n",
|
|
"db_zugriff.get_instrument_liste(\"Tachymeter\")\n",
|
|
"db_zugriff.set_instrument(\"Tachymeter\", \"Trimble S9\")\n",
|
|
"db_zugriff.get_instrument_liste(\"Tachymeter\")"
|
|
],
|
|
"id": "e376b4534297016c",
|
|
"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)\n",
|
|
"db_zugriff.set_genauigkeiten(1, \"Tachymeter_Zenitwinkel\", 0.15)"
|
|
],
|
|
"id": "97e24245ce3398a2",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Importieren der tachymetrischen Beobachtungen\n",
|
|
"importlib.reload(Import)\n",
|
|
"imp = Import.Import(pfad_datenbank)\n",
|
|
"\n",
|
|
"pfad_datei_tachymeterbeobachtungen = r\"Daten\\campsnetz_beobachtungen_bereinigt.csv\"\n",
|
|
"\n",
|
|
"imp.import_beobachtungen_tachymeter(pfad_datei_tachymeterbeobachtungen, 1)"
|
|
],
|
|
"id": "509e462917e98145",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Jacobimatrix aufstellen\n",
|
|
"importlib.reload(Datenbank)\n",
|
|
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)\n",
|
|
"\n",
|
|
"# Parameter des GRS80-ellipsoids (Bezugsellipsoid des ETRS89 / DREF 91 (2025)\n",
|
|
"# ToDo: Quelle mit möglichst genauen Parametern heraussuchen!\n",
|
|
"a = 6378137.0 #m\n",
|
|
"b = 63567552.314 #m\n",
|
|
"\n",
|
|
"importlib.reload(Funktionales_Modell)\n",
|
|
"fm = Funktionales_Modell.FunktionalesModell(pfad_datenbank, a, b)\n",
|
|
"\n",
|
|
"#db_zugriff.get_beobachtungen_id_standpunkt_zielpunkt(\"tachymeter_distanz\")\n",
|
|
"Jacobimatrix_symbolisch = fm.jacobi_matrix_symbolisch()[0]\n",
|
|
"Jacobimatrix_symbolisch_liste_unbekannte = fm.jacobi_matrix_symbolisch()[1]\n",
|
|
"Jacobimatrix_symbolisch_liste_beobachtungsvektor = fm.jacobi_matrix_symbolisch()[2]"
|
|
],
|
|
"id": "d38939f7108e1788",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"importlib.reload(Datenbank)\n",
|
|
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)\n",
|
|
"importlib.reload(Funktionales_Modell)\n",
|
|
"fm = Funktionales_Modell.FunktionalesModell(pfad_datenbank, a, b)\n",
|
|
"\n",
|
|
"A_matrix_numerisch_iteration0 = fm.jacobi_matrix_zahlen_iteration_0(Jacobimatrix_symbolisch, \"naeherung_us\", Jacobimatrix_symbolisch_liste_unbekannte, Jacobimatrix_symbolisch_liste_beobachtungsvektor)"
|
|
],
|
|
"id": "4a0b1790c65d59ee",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"importlib.reload(Funktionales_Modell)\n",
|
|
"fm = Funktionales_Modell.FunktionalesModell(pfad_datenbank, a, b)\n",
|
|
"\n",
|
|
"beobachtungsvektor_numerisch = fm.beobachtungsvektor_numerisch(Jacobimatrix_symbolisch_liste_beobachtungsvektor)"
|
|
],
|
|
"id": "38f698b6694bebe7",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"importlib.reload(Funktionales_Modell)\n",
|
|
"fm = Funktionales_Modell.FunktionalesModell(pfad_datenbank, a, b)\n",
|
|
"\n",
|
|
"beobachtungsvektor_naeherung_symbolisch = fm.beobachtungsvektor_naeherung_symbolisch(Jacobimatrix_symbolisch_liste_beobachtungsvektor)"
|
|
],
|
|
"id": "e5cca13bbb6b95c5",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"importlib.reload(Funktionales_Modell)\n",
|
|
"fm = Funktionales_Modell.FunktionalesModell(pfad_datenbank, a, b)\n",
|
|
"\n",
|
|
"beobachtungsvektor_naeherung_numerisch_iteration0 = fm.beobachtungsvektor_naeherung_numerisch_iteration0(Jacobimatrix_symbolisch_liste_beobachtungsvektor, beobachtungsvektor_naeherung_symbolisch)"
|
|
],
|
|
"id": "eb0452c52e7afa6b",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Auftstellen der Qll-Matrix\n",
|
|
"importlib.reload(Stochastisches_Modell)\n",
|
|
"stoch_modell = Stochastisches_Modell.StochastischesModell(A_matrix_numerisch_iteration0.rows)\n",
|
|
"\n",
|
|
"Qll_matrix_symbolisch = stoch_modell.Qll_symbolisch(pfad_datenbank, Jacobimatrix_symbolisch_liste_beobachtungsvektor)\n",
|
|
"Qll_matrix_numerisch = stoch_modell.Qll_numerisch(pfad_datenbank, Qll_matrix_symbolisch,Jacobimatrix_symbolisch_liste_beobachtungsvektor)"
|
|
],
|
|
"id": "40a3df8fe549c81",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": "",
|
|
"id": "8e2aa544249c9d29",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": "",
|
|
"id": "b479d3a946400ff6",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": "",
|
|
"id": "5d47e0771b22eb0b",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"importlib.reload(Funktionales_Modell)\n",
|
|
"fm = Funktionales_Modell.FunktionalesModell(pfad_datenbank, a, b)\n",
|
|
"\n",
|
|
"importlib.reload(Parameterschaetzung)\n",
|
|
"importlib.reload(Stochastisches_Modell)\n",
|
|
"\n",
|
|
"importlib.reload(Netzqualität_Genauigkeit)\n",
|
|
"importlib.reload(Export)\n",
|
|
"\n",
|
|
"\n",
|
|
"stoch_modell = Stochastisches_Modell.StochastischesModell(A_matrix_numerisch_iteration0.rows)\n",
|
|
"\n",
|
|
"dx = Parameterschaetzung.ausgleichung_global(A_matrix_numerisch_iteration0, fm.berechnung_dl(beobachtungsvektor_numerisch, beobachtungsvektor_naeherung_numerisch_iteration0), stoch_modell)[1]"
|
|
],
|
|
"id": "f53849ee4757d5e8",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"metadata": {},
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Von Fabian\n",
|
|
"\n",
|
|
"importlib.reload(Funktionales_Modell)\n",
|
|
"fm = Funktionales_Modell.FunktionalesModell(pfad_datenbank, a, b)\n",
|
|
"importlib.reload(Export)\n",
|
|
"importlib.reload(Datenbank)\n",
|
|
"\n",
|
|
"unbekanntenvektor_symbolisch = (fm.unbekanntenvektor_symbolisch(Jacobimatrix_symbolisch_liste_unbekannte))\n",
|
|
"unbekanntenvektor_numerisch_iteration0 = fm.unbekanntenvektor_numerisch(Jacobimatrix_symbolisch_liste_unbekannte, unbekanntenvektor_symbolisch)\n",
|
|
"print(unbekanntenvektor_numerisch_iteration0)\n",
|
|
"print(\"-----\")\n",
|
|
"unbekanntenvektor_numerisch = fm.unbekanntenvektor_numerisch(Jacobimatrix_symbolisch_liste_unbekannte, unbekanntenvektor_symbolisch, dx, unbekanntenvektor_numerisch_iteration0)\n",
|
|
"print(unbekanntenvektor_numerisch)"
|
|
],
|
|
"id": "122dca077d1d267c",
|
|
"outputs": [],
|
|
"execution_count": null
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 2
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython2",
|
|
"version": "2.7.6"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|