Files
Masterprojekt-Campusnetz/Campusnetz.ipynb

1206 lines
52 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-12-19T12:43:47.958058Z",
"start_time": "2025-12-19T12:43:46.309123Z"
}
},
"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": 2
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:43:47.974497Z",
"start_time": "2025-12-19T12:43:47.965201Z"
}
},
"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": 3
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:43:47.988133Z",
"start_time": "2025-12-19T12:43:47.980686Z"
}
},
"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": 4
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:43:48.016777Z",
"start_time": "2025-12-19T12:43:48.001013Z"
}
},
"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": 5
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:43:48.034685Z",
"start_time": "2025-12-19T12:43:48.022255Z"
}
},
"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",
"[3794753.662988071],\n",
"[546753.9367637949],\n",
"[5080143.386677202]]), '10006': Matrix([\n",
"[3794754.4896177407],\n",
"[ 546723.9921318174],\n",
"[ 5080154.649178403]]), '10010': Matrix([\n",
"[3794744.056289807],\n",
"[ 546780.742811981],\n",
"[5080141.163673801]]), '10018': Matrix([\n",
"[3794745.6185563155],\n",
"[ 546808.0432620639],\n",
"[ 5080128.604555877]]), '10008': Matrix([\n",
"[3794768.085065894],\n",
"[546757.4334968549],\n",
"[5080127.714551505]]), '10005': Matrix([\n",
"[3794778.527441427],\n",
"[546733.4402395741],\n",
"[5080127.827096725]]), '10003': Matrix([\n",
"[3794820.511758894],\n",
"[546738.1215455689],\n",
"[5080085.660271364]]), '10004': Matrix([\n",
"[3794787.6803909624],\n",
"[ 546724.3555399023],\n",
"[ 5080122.571979241]]), '10007': Matrix([\n",
"[3794810.1060299976],\n",
"[ 546761.5106092368],\n",
"[ 5080086.002076505]]), '10001': Matrix([\n",
"[3794874.984],\n",
"[ 546741.752],\n",
"[ 5080029.99]]), '10002': Matrix([\n",
"[3794842.533],\n",
"[ 546726.907],\n",
"[5080071.133]]), '10016': Matrix([\n",
"[3794804.406675659],\n",
"[546789.9420781326],\n",
"[5080079.636495427]]), '10011': Matrix([\n",
"[3794863.580492221],\n",
"[ 546820.559672293],\n",
"[5080009.689041209]]), '10026': Matrix([\n",
"[3794736.3000356155],\n",
"[ 546836.8268835127],\n",
"[ 5080125.447080448]]), '10027': Matrix([\n",
"[3794736.960008056],\n",
"[546879.6025181431],\n",
"[5080106.777201966]]), '10043': Matrix([\n",
"[3794725.0166116133],\n",
"[ 546922.5812446327],\n",
"[ 5080100.037039967]]), '10044': Matrix([\n",
"[3794725.786],\n",
"[ 546954.557],\n",
"[5080084.411]]), '10021': Matrix([\n",
"[3794756.007978388],\n",
"[546839.3032465314],\n",
"[5080105.589359214]]), '10020': Matrix([\n",
"[3794761.920156639],\n",
"[ 546838.977847251],\n",
"[5080100.047656914]]), '10024': Matrix([\n",
"[3794751.737303274],\n",
"[ 546861.360519194],\n",
"[5080100.294253004]]), '10025': Matrix([\n",
"[3794752.154987486],\n",
"[546874.7814536445],\n",
"[5080094.377907591]]), '10022': Matrix([\n",
"[3794757.615620013],\n",
"[546846.3167290309],\n",
"[5080100.897628256]]), '10023': Matrix([\n",
"[3794759.485496209],\n",
"[ 546851.850918009],\n",
"[5080096.944400053]]), '10019': Matrix([\n",
"[3794777.7678170092],\n",
"[ 546835.1621077962],\n",
"[ 5080085.960456316]]), '10033': Matrix([\n",
"[3794775.2817534585],\n",
"[ 546873.3349687136],\n",
"[ 5080072.047854735]]), '10017': Matrix([\n",
"[3794800.413909602],\n",
"[546829.8809366617],\n",
"[5080066.468759774]]), '10052': Matrix([\n",
"[3794717.9206994777],\n",
"[ 546983.4459180598],\n",
"[ 5080081.08810058]]), '10042': Matrix([\n",
"[3794734.554388196],\n",
"[546937.3770063668],\n",
"[5080084.709433899]]), '10053': Matrix([\n",
"[3794720.085392712],\n",
"[547013.4090397687],\n",
"[5080066.365756604]]), '10037': Matrix([\n",
"[3794774.148],\n",
"[ 546955.423],\n",
"[ 5080040.52]]), '10040': Matrix([\n",
"[ 3794753.10534012],\n",
"[546951.9265840759],\n",
"[5080060.544109294]]), '10041': Matrix([\n",
"[3794752.5916562714],\n",
"[ 546924.1738739341],\n",
"[ 5080073.192051816]]), '10038': Matrix([\n",
"[ 3794777.815586322],\n",
"[ 546923.349922253],\n",
"[5080048.8088312065]]), '10051': Matrix([\n",
"[3794738.8789104675],\n",
"[ 546983.8605122707],\n",
"[ 5080060.856497383]]), '10036': Matrix([\n",
"[3794783.3937713057],\n",
"[ 546958.852789368],\n",
"[ 5080028.375683213]]), '10035': Matrix([\n",
"[3794811.830974887],\n",
"[546946.7238359943],\n",
"[5080006.358480608]]), '10039': Matrix([\n",
"[3794776.7340096105],\n",
"[ 546909.8215799981],\n",
"[ 5080055.592469811]]), '10059': Matrix([\n",
"[3794706.225008511],\n",
"[547072.2297731125],\n",
"[ 5080054.43002136]]), '10050': Matrix([\n",
"[3794737.2203678135],\n",
"[ 547005.884569236],\n",
"[ 5080052.947562701]]), '10013': Matrix([\n",
"[ 3794822.93179095],\n",
"[546821.6420313995],\n",
"[5080048.141902982]]), '10028': Matrix([\n",
"[3794854.4255897156],\n",
"[ 546891.2604669487],\n",
"[ 5079988.554852184]]), '10012': Matrix([\n",
"[3794827.8105639764],\n",
"[ 546801.0695727703],\n",
"[ 5080052.276465297]]), '10014': Matrix([\n",
"[3794813.9486643546],\n",
"[ 546809.9110713875],\n",
"[ 5080061.837625159]]), '10031': Matrix([\n",
"[3794794.7905896883],\n",
"[ 546872.7161265102],\n",
"[ 5080053.610634492]]), '10015': Matrix([\n",
"[3794815.711342138],\n",
"[546792.4102238796],\n",
"[5080067.676337123]]), '10032': Matrix([\n",
"[3794781.551156347],\n",
"[546884.8955067778],\n",
"[5080060.974089937]]), '10030': Matrix([\n",
"[3794814.745621184],\n",
"[546890.7575186054],\n",
"[5080026.464896545]]), '10029': Matrix([\n",
"[3794813.6419235766],\n",
"[ 546903.6411063377],\n",
"[ 5080022.067753642]]), '10034': Matrix([\n",
"[3794847.8899375866],\n",
"[ 546944.410223245],\n",
"[ 5079972.309638362]]), '10045': Matrix([\n",
"[3794840.9412449836],\n",
"[ 546995.0293108278],\n",
"[ 5079957.566682608]]), '10049': Matrix([\n",
"[3794754.9137046253],\n",
"[ 547010.6945388399],\n",
"[ 5080033.750437016]]), '10048': Matrix([\n",
"[3794775.2066675387],\n",
"[ 547003.7601902599],\n",
"[ 5080016.849210949]]), '10047': Matrix([\n",
"[3794795.4368398967],\n",
"[ 547001.1959608953],\n",
"[ 5079998.391751167]]), '10046': Matrix([\n",
"[3794809.350397248],\n",
"[546994.0540568152],\n",
"[5079987.992043806]]), '10057': Matrix([\n",
"[3794764.1396034313],\n",
"[ 547061.7296312195],\n",
"[ 5080002.94483388]]), '10055': Matrix([\n",
"[3794798.344048102],\n",
"[547058.8865967724],\n",
"[5079971.042090028]]), '10054': Matrix([\n",
"[3794843.6128397244],\n",
"[ 547056.002453676],\n",
"[ 5079929.240302954]]), '10058': Matrix([\n",
"[3794731.9834108665],\n",
"[ 547079.1214681087],\n",
"[ 5080026.612704653]]), '10056': Matrix([\n",
"[3794785.0879494334],\n",
"[ 547072.8892187019],\n",
"[ 5079977.737701344]])}\n"
]
}
],
"execution_count": 6
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:43:48.048661Z",
"start_time": "2025-12-19T12:43:48.041445Z"
}
},
"cell_type": "code",
"source": [
"# ToDo: Sobald GNSS vorliegend Koordinaten im ETRS89 / DREF 91 (2025) daraus berechnen!\n",
"liste_koordinaten_naeherung_us_alt = {\n",
" 10001: (3794874.98408291, 546741.751930012, 5079995.3838),\n",
" 10002: (3794842.53340714, 546726.907150697, 5080039.8778),\n",
" 10008: (3794757.41294192, 546742.822339098, 5080107.3198),\n",
" 10012: (3794827.11937161, 546801.412652168, 5080028.5852),\n",
" 10026: (3794727.06042449, 546823.571170112, 5080134.2029),\n",
" 10028: (3794862.91900719, 546904.943464041, 5079920.8994),\n",
" 10037: (3794774.14751515, 546955.423068316, 5079960.9426),\n",
" 10044: (3794725.78597473, 546954.557211544, 5080009.9234),\n",
" 10054: (3794852.07416848, 547094.399826613, 5079715.1737),\n",
" 10059: (3794710.34348443, 547075.630380075, 5080119.6491),\n",
"}\n",
"\n",
"liste_koordinaten_naeherung_us_V2 = {\n",
" 10001: (3794874.984, 546741.752, 5080029.990),\n",
" 10002: (3794842.533, 546726.907, 5080071.133),\n",
" 10008: (3794757.413, 546742.822, 5080135.400),\n",
" 10012: (3794827.119, 546801.413, 5080065.404),\n",
" 10026: (3794727.060, 546823.571, 5080179.951),\n",
" 10028: (3794862.919, 546904.943, 5079963.214),\n",
" 10037: (3794774.148, 546955.423, 5080040.520),\n",
" 10044: (3794725.786, 546954.557, 5080084.411),\n",
" 10054: (3794852.074, 547094.400, 5079771.845),\n",
" 10059: (3794710.343, 547075.630, 5080153.653),\n",
"}\n",
"\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": 7
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:44:10.813823Z",
"start_time": "2025-12-19T12:43:48.056561Z"
}
},
"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": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"d(p2,p1)= 46.60388451996242\n",
"d(P2,P1)= 54.462720048072995\n",
"m0 ~ 1.1686304823956102\n",
"Anzahl Ratios: 1711\n",
"min/mean/max: 0.7614345916032296 0.9794088114462783 1.1686304823956102\n",
"std: 0.013420503874278246\n",
"S_loc: Matrix([[956.308098305085], [1838.78964237288], [99.9601016949153]])\n",
"S_ecef: Matrix([[3794780.2653894138], [546891.8276136060], [5080059.6128838661]])\n",
"Delta: Matrix([[3.79382e+6], [545053.], [5.07996e+6]])\n",
"10037 0.0506\n",
"10044 0.0394\n",
"10002 0.0328\n",
"10036 0.0288\n",
"10001 0.0284\n",
"10040 0.0226\n",
"10042 0.0182\n",
"10051 0.0152\n",
"10043 0.0147\n",
"10052 0.0141\n",
"10003 0.014\n",
"10041 0.0133\n",
"10038 0.0103\n",
"10048 0.0096\n",
"10047 0.0092\n",
"10035 0.0092\n",
"10050 0.0091\n",
"10046 0.0085\n",
"10004 0.0085\n",
"10039 0.0082\n",
"10053 0.0079\n",
"10011 0.0079\n",
"10049 0.0079\n",
"10027 0.0078\n",
"10005 0.0072\n",
"10025 0.007\n",
"10024 0.0061\n",
"10045 0.006\n",
"10034 0.0059\n",
"10006 0.0058\n",
"10008 0.0056\n",
"10033 0.0055\n",
"10032 0.0054\n",
"10023 0.0054\n",
"10009 0.0053\n",
"10055 0.0053\n",
"10057 0.0053\n",
"10026 0.0053\n",
"10012 0.0052\n",
"10022 0.0052\n",
"10021 0.005\n",
"10056 0.0049\n",
"10028 0.0049\n",
"10007 0.0048\n",
"10020 0.0048\n",
"10010 0.0047\n",
"10054 0.0046\n",
"10018 0.0046\n",
"10013 0.0045\n",
"10058 0.0042\n",
"10019 0.004\n",
"10031 0.0039\n",
"10059 0.0038\n",
"10014 0.0035\n",
"10029 0.0034\n",
"10017 0.0033\n",
"10015 0.0032\n",
"10030 0.0032\n",
"10016 0.0025\n",
"Anzahl gemeinsame Punkte: 59\n",
"\n",
"Erste Zielpunkte:\n",
"10001 [3794874.984, 546741.752, 5080029.99]\n",
"10002 [3794842.533, 546726.907, 5080071.133]\n",
"10003 [3794820.511758894, 546738.1215455689, 5080085.660271364]\n",
"10004 [3794787.6803909624, 546724.3555399023, 5080122.571979241]\n",
"10005 [3794778.527441427, 546733.4402395741, 5080127.827096725]\n",
"\n",
"Erste Ausgangspunkte:\n",
"10001 [833.9439, 1978.3737, 99.8946]\n",
"10002 [875.9684, 1998.5174, 99.5867]\n",
"10003 [908.4312, 1996.1248, 99.7403]\n",
"10004 [954.1536, 2021.6822, 99.4916]\n",
"10005 [966.5154, 2014.6496, 99.72]\n",
"min/mean/max: 0.7614345916032296 0.9794088114462783 1.1686304823956102\n",
"R ist nicht Orthonormal!\n",
"Iteration Nr.1 abgeschlossen\n",
"Matrix([[154.], [42.5], [251.], [-0.265], [-0.956], [0.0318], [0.464]])\n",
"Iteration Nr.2 abgeschlossen\n",
"Matrix([[129.], [-43.2], [-153.], [0.260], [-0.120], [-0.0849], [-0.0123]])\n",
"Iteration Nr.3 abgeschlossen\n",
"Matrix([[2.89], [2.18], [-3.01], [0.00353], [0.0346], [0.0241], [-0.00102]])\n",
"Iteration Nr.4 abgeschlossen\n",
"Matrix([[0.326], [0.250], [-0.491], [0.000587], [0.000114], [0.000254], [-0.000579]])\n",
"Iteration Nr.5 abgeschlossen\n",
"Matrix([[0.000525], [0.000162], [0.000407], [1.55e-7], [3.36e-7], [-8.42e-7], [-1.72e-7]])\n",
"Iteration Nr.6 abgeschlossen\n",
"Matrix([[-1.19e-6], [-5.32e-7], [-1.12e-6], [8.11e-14], [-8.37e-10], [6.95e-10], [4.64e-10]])\n",
"Iteration Nr.7 abgeschlossen\n",
"Matrix([[1.79e-9], [6.83e-10], [1.06e-9], [1.89e-13], [7.60e-13], [-1.07e-12], [-5.40e-13]])\n",
"Matrix([[3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6]])\n",
"Matrix([[3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.46e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6], [3.79e+6], [5.47e+5], [5.08e+6]])\n",
"x = Matrix([[3.80e+6], [5.48e+5], [5.08e+6], [0.979], [-0.481], [0.677], [3.42]])\n",
"\n",
"l_berechnet_final:\n",
"10001: 3794874.637, 546738.682, 5080033.793\n",
"10002: 3794844.297, 546729.060, 5080066.484\n",
"10003: 3794820.512, 546738.122, 5080085.660\n",
"10004: 3794787.680, 546724.356, 5080122.572\n",
"10005: 3794778.527, 546733.440, 5080127.827\n",
"10006: 3794754.490, 546723.992, 5080154.649\n",
"10007: 3794810.106, 546761.511, 5080086.002\n",
"10008: 3794768.085, 546757.433, 5080127.715\n",
"10009: 3794753.663, 546753.937, 5080143.387\n",
"10010: 3794744.056, 546780.743, 5080141.164\n",
"10011: 3794863.580, 546820.560, 5080009.689\n",
"10012: 3794827.811, 546801.070, 5080052.276\n",
"10013: 3794822.932, 546821.642, 5080048.142\n",
"10014: 3794813.949, 546809.911, 5080061.838\n",
"10015: 3794815.711, 546792.410, 5080067.676\n",
"10016: 3794804.407, 546789.942, 5080079.636\n",
"10017: 3794800.414, 546829.881, 5080066.469\n",
"10018: 3794745.619, 546808.043, 5080128.605\n",
"10019: 3794777.768, 546835.162, 5080085.960\n",
"10020: 3794761.920, 546838.978, 5080100.048\n",
"10021: 3794756.008, 546839.303, 5080105.589\n",
"10022: 3794757.616, 546846.317, 5080100.898\n",
"10023: 3794759.485, 546851.851, 5080096.944\n",
"10024: 3794751.737, 546861.361, 5080100.294\n",
"10025: 3794752.155, 546874.781, 5080094.378\n",
"10026: 3794736.300, 546836.827, 5080125.447\n",
"10027: 3794736.960, 546879.603, 5080106.777\n",
"10028: 3794854.426, 546891.260, 5079988.555\n",
"10029: 3794813.642, 546903.641, 5080022.068\n",
"10030: 3794814.746, 546890.758, 5080026.465\n",
"10031: 3794794.791, 546872.716, 5080053.611\n",
"10032: 3794781.551, 546884.896, 5080060.974\n",
"10033: 3794775.282, 546873.335, 5080072.048\n",
"10034: 3794847.890, 546944.410, 5079972.310\n",
"10035: 3794811.831, 546946.724, 5080006.358\n",
"10036: 3794783.394, 546958.853, 5080028.376\n",
"10037: 3794770.848, 546952.857, 5080042.910\n",
"10038: 3794777.816, 546923.350, 5080048.809\n",
"10039: 3794776.734, 546909.822, 5080055.592\n",
"10040: 3794753.105, 546951.927, 5080060.544\n",
"10041: 3794752.592, 546924.174, 5080073.192\n",
"10042: 3794734.554, 546937.377, 5080084.709\n",
"10043: 3794725.017, 546922.581, 5080100.037\n",
"10044: 3794727.668, 546958.039, 5080082.867\n",
"10045: 3794840.941, 546995.029, 5079957.567\n",
"10046: 3794809.350, 546994.054, 5079987.992\n",
"10047: 3794795.437, 547001.196, 5079998.392\n",
"10048: 3794775.207, 547003.760, 5080016.849\n",
"10049: 3794754.914, 547010.695, 5080033.750\n",
"10050: 3794737.220, 547005.885, 5080052.948\n",
"10051: 3794738.879, 546983.861, 5080060.856\n",
"10052: 3794717.921, 546983.446, 5080081.088\n",
"10053: 3794720.085, 547013.409, 5080066.366\n",
"10054: 3794843.613, 547056.002, 5079929.240\n",
"10055: 3794798.344, 547058.887, 5079971.042\n",
"10056: 3794785.088, 547072.889, 5079977.738\n",
"10057: 3794764.140, 547061.730, 5080002.945\n",
"10058: 3794731.983, 547079.121, 5080026.613\n",
"10059: 3794706.225, 547072.230, 5080054.430\n",
"Streckendifferenzen:\n",
"[4.899982, 5.418896, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.814927, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.248968, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]\n",
"\n",
"Differenz Schwerpunkt (Vektor):\n",
"Matrix([[-1.09e-10], [-2.54e-11], [-8.49e-10]])\n",
"Betrag der Schwerpunkt-Differenz:\n",
"0.000m\n"
]
}
],
"execution_count": 8
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:44:10.939670Z",
"start_time": "2025-12-19T12:44:10.923828Z"
}
},
"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": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{}\n"
]
}
],
"execution_count": 9
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:44:10.952423Z",
"start_time": "2025-12-19T12:44:10.945422Z"
}
},
"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": 10
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:44:10.986957Z",
"start_time": "2025-12-19T12:44:10.977672Z"
}
},
"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": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Das Instrument Trimble S9 ist bereits in der Datenbank vorhanden.\n",
"Es hat die ID 1\n"
]
},
{
"data": {
"text/plain": [
"[(1, 'Tachymeter', 'Trimble S9')]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 11
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:44:11.019856Z",
"start_time": "2025-12-19T12:44:11.010256Z"
}
},
"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": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Die Genauigkeitsangabe ist bereits in der Datenbank vorhanden.\n",
"Die Genauigkeitsangabe ist bereits in der Datenbank vorhanden.\n"
]
}
],
"execution_count": 12
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:44:11.059146Z",
"start_time": "2025-12-19T12:44:11.053522Z"
}
},
"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": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Der Import wurde abgebrochen, weil die Beobachtungen aus der Datei Daten\\campsnetz_beobachtungen_bereinigt.csv bereits in der Datenbank vorhanden sind.\n"
]
}
],
"execution_count": 13
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:44:57.904643Z",
"start_time": "2025-12-19T12:44:11.065967Z"
}
},
"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": 14
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:45:06.438885Z",
"start_time": "2025-12-19T12:45:05.250033Z"
}
},
"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": 15
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:45:06.513369Z",
"start_time": "2025-12-19T12:45:06.443933Z"
}
},
"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": 16
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:45:07.040680Z",
"start_time": "2025-12-19T12:45:06.518416Z"
}
},
"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": 17
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:45:07.247565Z",
"start_time": "2025-12-19T12:45:07.045390Z"
}
},
"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": 18
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T13:14:28.601474Z",
"start_time": "2025-12-19T13:14:17.935238Z"
}
},
"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": 26
},
{
"metadata": {},
"cell_type": "code",
"outputs": [],
"execution_count": null,
"source": "",
"id": "8e2aa544249c9d29"
},
{
"metadata": {},
"cell_type": "code",
"outputs": [],
"execution_count": null,
"source": "",
"id": "b479d3a946400ff6"
},
{
"metadata": {},
"cell_type": "code",
"outputs": [],
"execution_count": null,
"source": "",
"id": "5d47e0771b22eb0b"
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:47:56.291839Z",
"start_time": "2025-12-19T12:45:34.983401Z"
}
},
"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": 20
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-19T12:48:06.105111Z",
"start_time": "2025-12-19T12:48:05.878101Z"
}
},
"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": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Matrix([[3794753.662988071], [546753.9367637949], [5080143.386677202], [3794754.4896177407], [546723.9921318174], [5080154.649178403], [3794744.056289807], [546780.742811981], [5080141.163673801], [3794745.6185563155], [546808.0432620639], [5080128.604555877], [3794768.085065894], [546757.4334968549], [5080127.714551505], [3794778.527441427], [546733.4402395741], [5080127.827096725], [3794820.511758894], [546738.1215455689], [5080085.660271364], [3794787.6803909624], [546724.3555399023], [5080122.571979241], [3794810.1060299976], [546761.5106092368], [5080086.002076505], [3794874.98400000], [546741.752000000], [5080029.99000000], [3794842.53300000], [546726.907000000], [5080071.13300000], [3794804.406675659], [546789.9420781326], [5080079.636495427], [3794863.580492221], [546820.559672293], [5080009.689041209], [3794736.3000356155], [546836.8268835127], [5080125.447080448], [3794736.960008056], [546879.6025181431], [5080106.777201966], [3794725.0166116133], [546922.5812446327], [5080100.037039967], [3794725.78600000], [546954.557000000], [5080084.41100000], [3794756.007978388], [546839.3032465314], [5080105.589359214], [3794761.920156639], [546838.977847251], [5080100.047656914], [3794751.737303274], [546861.360519194], [5080100.294253004], [3794752.154987486], [546874.7814536445], [5080094.377907591], [3794757.615620013], [546846.3167290309], [5080100.897628256], [3794759.485496209], [546851.850918009], [5080096.944400053], [3794777.7678170092], [546835.1621077962], [5080085.960456316], [3794775.2817534585], [546873.3349687136], [5080072.047854735], [3794800.413909602], [546829.8809366617], [5080066.468759774], [3794717.9206994777], [546983.4459180598], [5080081.08810058], [3794734.554388196], [546937.3770063668], [5080084.709433899], [3794720.085392712], [547013.4090397687], [5080066.365756604], [3794774.14800000], [546955.423000000], [5080040.52000000], [3794753.10534012], [546951.9265840759], [5080060.544109294], [3794752.5916562714], [546924.1738739341], [5080073.192051816], [3794777.815586322], [546923.349922253], [5080048.8088312065], [3794738.8789104675], [546983.8605122707], [5080060.856497383], [3794783.3937713057], [546958.852789368], [5080028.375683213], [3794811.830974887], [546946.7238359943], [5080006.358480608], [3794776.7340096105], [546909.8215799981], [5080055.592469811], [3794706.225008511], [547072.2297731125], [5080054.43002136], [3794737.2203678135], [547005.884569236], [5080052.947562701], [3794822.93179095], [546821.6420313995], [5080048.141902982], [3794854.4255897156], [546891.2604669487], [5079988.554852184], [3794827.8105639764], [546801.0695727703], [5080052.276465297], [3794813.9486643546], [546809.9110713875], [5080061.837625159], [3794794.7905896883], [546872.7161265102], [5080053.610634492], [3794815.711342138], [546792.4102238796], [5080067.676337123], [3794781.551156347], [546884.8955067778], [5080060.974089937], [3794814.745621184], [546890.7575186054], [5080026.464896545], [3794813.6419235766], [546903.6411063377], [5080022.067753642], [3794847.8899375866], [546944.410223245], [5079972.309638362], [3794840.9412449836], [546995.0293108278], [5079957.566682608], [3794754.9137046253], [547010.6945388399], [5080033.750437016], [3794795.4368398967], [547001.1959608953], [5079998.391751167], [3794809.350397248], [546994.0540568152], [5079987.992043806], [3794775.2066675387], [547003.7601902599], [5080016.849210949], [3794764.1396034313], [547061.7296312195], [5080002.94483388], [3794798.344048102], [547058.8865967724], [5079971.042090028], [3794843.6128397244], [547056.002453676], [5079929.240302954], [3794731.9834108665], [547079.1214681087], [5080026.612704653], [3794785.0879494334], [547072.8892187019], [5079977.737701344]])\n",
"-----\n",
"Matrix([[3794737.8261094868], [546742.68877082553], [5080128.3507065025], [3794737.3173918251], [546711.81881005680], [5080139.1948981553], [3794749.9062764374], [546779.89873060947], [5080150.0065082129], [3794746.3410212440], [546805.36274589579], [5080131.2606735807], [3794766.3320322788], [546753.35065436338], [5080126.6029089628], [3794766.1208143157], [546724.06052930078], [5080116.5199339003], [3794815.3173410210], [546732.77828696876], [5080080.1724589822], [3794777.6376987905], [546715.83150049957], [5080113.1123126568], [3794837.5286159980], [546770.79318297003], [5080113.7809357923], [3794877.4442163322], [546736.00280125012], [5080033.9233738090], [3794847.2705692228], [546727.23776782755], [5080068.6550395742], [3794821.5493086762], [546795.35855828324], [5080096.3781247181], [3794865.2733347461], [546819.04011517813], [5080007.2618007053], [3794745.3602895556], [546838.50900056992], [5080137.0151585320], [3794739.3149203953], [546879.33793638616], [5080111.1458846316], [3794734.8351122441], [546926.68930651186], [5080112.5813005353], [3794729.0623322332], [546959.86250598939], [5080088.3333714346], [3794756.6131819634], [546837.75365389517], [5080107.5121020472], [3794765.2080349228], [546838.53030298970], [5080104.5111676977], [3794750.8358620867], [546859.63394459803], [5080100.5394282307], [3794751.7663267483], [546873.57347223762], [5080095.0451717615], [3794759.1895938955], [546845.28401077731], [5080103.5899291664], [3794761.9526928161], [546851.33336517339], [5080100.5059386708], [3794800.8740875486], [546840.94087227260], [5080110.3273932595], [3794796.8531006654], [546879.07184937566], [5080094.0204517832], [3794800.7678644184], [546828.68122233710], [5080065.2825882381], [3794730.1960150051], [546990.10831652910], [5080096.2656965254], [3794728.5162126020], [546934.34006903819], [5080079.7273739038], [3794719.6916959078], [547015.48054781071], [5080068.7703563867], [3794772.9778814467], [546952.92013359477], [5080046.8109239414], [3794739.6030496521], [546947.75984157427], [5080048.1969198893], [3794730.1824448139], [546914.19811434475], [5080049.3500350653], [3794782.7017423193], [546922.48386199018], [5080051.8118791558], [3794745.1460916233], [546988.18094585355], [5080068.9972397214], [3794786.0750212390], [546959.93132156577], [5080032.2974019706], [3794812.6082424349], [546947.26188674066], [5080006.7163449917], [3794777.7914583969], [546907.18289460418], [5080055.0958695237], [3794705.8658490042], [547076.03198452389], [5080058.6055812442], [3794734.7983456069], [547006.91683443581], [5080052.2874619229], [3794826.9382148853], [546821.50874597263], [5080049.8667718192], [3794859.0233499698], [546892.27846656784], [5079987.7607363630], [3794821.3323145389], [546795.84225596000], [5080043.3879320889], [3794813.7871761550], [546807.87279685993], [5080059.9679990845], [3794800.9671774456], [546875.13272652383], [5080058.5378277475], [3794825.3025951464], [546794.34543982906], [5080076.0668343443], [3794744.6965562960], [546866.50282400186], [5080024.1065637068], [3794813.4354968976], [546887.79185455695], [5080021.1584832004], [3794812.4058714940], [546901.17878684785], [5080017.3976387208], [3794851.7492064292], [546947.45549867210], [5079974.2108252074], [3794857.0124008224], [547004.59141104372], [5079971.9726825530], [3794751.2572443298], [547011.56194730279], [5080031.2696144487], [3794794.0888480879], [547003.25526369818], [5079996.4270136360], [3794809.3628738735], [546996.66390205411], [5079986.7426119278], [3794772.8513984394], [547004.79019417693], [5080014.6234130393], [3794763.2886457477], [547065.11840483252], [5080003.6886467107], [3794799.7076102519], [547064.35354224121], [5079974.0101138130], [3794845.9912677171], [547061.68456488943], [5079930.5760331770], [3794736.1075504871], [547085.20337710682], [5080034.3588629889], [3794790.3311639278], [547079.62319395720], [5079984.3166781181]])\n"
]
}
],
"execution_count": 21
}
],
"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
}