diff --git a/Ausgleichungsprogramm.ipynb b/Ausgleichungsprogramm.ipynb index 95b988a..c56ac43 100644 --- a/Ausgleichungsprogramm.ipynb +++ b/Ausgleichungsprogramm.ipynb @@ -3,8 +3,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:17.692794Z", - "start_time": "2026-02-06T09:42:13.883643Z" + "end_time": "2026-02-06T19:46:15.755371Z", + "start_time": "2026-02-06T19:46:12.805923Z" } }, "cell_type": "code", @@ -38,8 +38,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:17.709875Z", - "start_time": "2026-02-06T09:42:17.706455Z" + "end_time": "2026-02-06T19:46:15.768613Z", + "start_time": "2026-02-06T19:46:15.764544Z" } }, "cell_type": "code", @@ -60,7 +60,7 @@ "pfad_datenbank = r\"Campusnetz_final.db\"\n", "\n", "# Pfad zum Quasigeoid-Modell GCG 2016 des BKG\n", - "pfad_tif_quasigeoidundolation = r\"Daten\\GCG2016v2023.tif\"\n", + "pfad_tif_quasigeoidundulation = r\"Daten\\GCG2016v2023.tif\"\n", "\n", "# Alle während jeder Iteration der Parameterschätzung erstellten Vektoren und Matrizenin einer CSV-Datei im Ordner Zwischenergebnisse speichern (Auf True setzen, wenn gewünscht)\n", "speichern_in_csv = False" @@ -72,8 +72,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:17.959731Z", - "start_time": "2026-02-06T09:42:17.718544Z" + "end_time": "2026-02-06T19:46:16.105554Z", + "start_time": "2026-02-06T19:46:15.778126Z" } }, "cell_type": "code", @@ -85,9 +85,9 @@ "\n", "# Klassen aus eigenen Pythondateien initialisieren\n", "db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)\n", - "fm = Funktionales_Modell.FunktionalesModell(pfad_datenbank, a, b, pfad_tif_quasigeoidundolation)\n", + "fm = Funktionales_Modell.FunktionalesModell(pfad_datenbank, a, b, pfad_tif_quasigeoidundulation)\n", "imp = Import.Import(pfad_datenbank, a, b)\n", - "iterat = Iterationen(pfad_datenbank, pfad_tif_quasigeoidundolation, a, b)\n", + "iterat = Iterationen(pfad_datenbank, pfad_tif_quasigeoidundulation, a, b)\n", "trafos = Koordinatentransformationen.Transformationen(pfad_datenbank)\n", "vks = Varianzkomponentenschaetzung.VKS(pfad_datenbank)" ], @@ -98,8 +98,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:18.768269Z", - "start_time": "2026-02-06T09:42:17.966442Z" + "end_time": "2026-02-06T19:46:16.808189Z", + "start_time": "2026-02-06T19:46:16.115086Z" } }, "cell_type": "code", @@ -113,39 +113,39 @@ { "data": { "text/plain": [ - "" + "" ], "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", "
InstrumenteIDTypBezeichnungInstrumenteIDTypBezeichnung
1TachymeterTrimble S91TachymeterTrimble S9
2AnschlusspunktelA2AnschlusspunktelA
3NivellierTrimble DiNi 0.33NivellierTrimble DiNi 0.3
4GNSSGNSS-Rover4GNSSGNSS-Rover
\n" @@ -163,8 +163,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:19.068861Z", - "start_time": "2026-02-06T09:42:19.059866Z" + "end_time": "2026-02-06T19:46:16.830619Z", + "start_time": "2026-02-06T19:46:16.822436Z" } }, "cell_type": "code", @@ -203,8 +203,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:19.245496Z", - "start_time": "2026-02-06T09:42:19.237323Z" + "end_time": "2026-02-06T19:46:16.874601Z", + "start_time": "2026-02-06T19:46:16.865619Z" } }, "cell_type": "code", @@ -218,44 +218,44 @@ { "data": { "text/plain": [ - "" + "" ], "text/html": [ "\n", - "\n", + "
\n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
instrumenteIDbeobachtungsartstabw_apriori_konstantstabw_apriori_streckenpropinstrumenteIDbeobachtungsartstabw_apriori_konstantstabw_apriori_streckenprop
1Tachymeter_Richtung0.000002nan1Tachymeter_Richtung0.000002nan
1Tachymeter_Strecke0.0008001.0000001Tachymeter_Strecke0.0008001.000000
1Tachymeter_Zenitwinkel0.000002nan1Tachymeter_Zenitwinkel0.000002nan
3Geometrisches_Nivellement0.0001000.3000003Geometrisches_Nivellement0.0001000.300000
\n" @@ -273,8 +273,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:19.348901Z", - "start_time": "2026-02-06T09:42:19.338452Z" + "end_time": "2026-02-06T19:46:16.898900Z", + "start_time": "2026-02-06T19:46:16.889493Z" } }, "cell_type": "code", @@ -318,8 +318,8 @@ "id": "b28afe0c64aa59d6", "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:19.739180Z", - "start_time": "2026-02-06T09:42:19.411162Z" + "end_time": "2026-02-06T19:46:17.104704Z", + "start_time": "2026-02-06T19:46:16.909560Z" } }, "source": [ @@ -362,8 +362,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:19.878582Z", - "start_time": "2026-02-06T09:42:19.859885Z" + "end_time": "2026-02-06T19:46:17.118859Z", + "start_time": "2026-02-06T19:46:17.111801Z" } }, "cell_type": "code", @@ -404,8 +404,8 @@ "id": "2d8a0533726304a8", "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:41.110837Z", - "start_time": "2026-02-06T09:42:19.889255Z" + "end_time": "2026-02-06T19:46:33.084378Z", + "start_time": "2026-02-06T19:46:17.124889Z" } }, "source": [ @@ -517,8 +517,8 @@ "id": "ed9be38e35cfc619", "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:41.207157Z", - "start_time": "2026-02-06T09:42:41.202225Z" + "end_time": "2026-02-06T19:46:33.218115Z", + "start_time": "2026-02-06T19:46:33.211219Z" } }, "source": [ @@ -548,8 +548,8 @@ "id": "2d2156381d974d94", "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:41.544069Z", - "start_time": "2026-02-06T09:42:41.213929Z" + "end_time": "2026-02-06T19:46:33.231199Z", + "start_time": "2026-02-06T19:46:33.226982Z" } }, "source": [ @@ -579,8 +579,8 @@ "id": "c2db29680c53f8c4", "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T09:42:41.770655Z", - "start_time": "2026-02-06T09:42:41.576320Z" + "end_time": "2026-02-06T19:46:33.245734Z", + "start_time": "2026-02-06T19:46:33.239155Z" } }, "source": [ @@ -612,8 +612,8 @@ { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:05:16.543192Z", - "start_time": "2026-02-06T16:54:30.597465Z" + "end_time": "2026-02-06T19:58:46.946097Z", + "start_time": "2026-02-06T19:46:33.260647Z" } }, "cell_type": "code", @@ -639,31 +639,31 @@ "ITERATION 0\n", " -> berechne A(x_0)\n", " -> berechne l0(x_0)\n", - " -> max|dx_xyz| [m] = 0.7768582546899173\n", + " -> max|dx_xyz| [m] = 0.776858254689872\n", "\n", "============================================================\n", "ITERATION 1\n", " -> berechne A(x_1)\n", " -> berechne l0(x_1)\n", - " -> max|dx_xyz| [m] = 0.005556669300657643\n", + " -> max|dx_xyz| [m] = 0.005556669300664377\n", "\n", "============================================================\n", "ITERATION 2\n", " -> berechne A(x_2)\n", " -> berechne l0(x_2)\n", - " -> max|dx_xyz| [m] = 3.9680649898955875e-06\n", + " -> max|dx_xyz| [m] = 3.968064989513482e-06\n", "\n", "KONVERGENZ ERREICHT (XYZ)\n" ] } ], - "execution_count": 197 + "execution_count": 14 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:05:16.639339Z", - "start_time": "2026-02-06T17:05:16.584741Z" + "end_time": "2026-02-06T19:58:47.113847Z", + "start_time": "2026-02-06T19:58:47.065481Z" } }, "cell_type": "code", @@ -687,32 +687,32 @@ ] } ], - "execution_count": 198 + "execution_count": 15 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:05:16.650724Z", - "start_time": "2026-02-06T17:05:16.647799Z" + "end_time": "2026-02-06T19:58:47.137222Z", + "start_time": "2026-02-06T19:58:47.133438Z" } }, "cell_type": "code", "source": "# ------------------------------- Netzqualitätsmaße -------------------------------", "id": "7d53274224166103", "outputs": [], - "execution_count": 199 + "execution_count": 16 }, { "cell_type": "code", "id": "84075bea1f2c44d7", "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:05:16.673603Z", - "start_time": "2026-02-06T17:05:16.670043Z" + "end_time": "2026-02-06T19:58:47.150673Z", + "start_time": "2026-02-06T19:58:47.147402Z" } }, "source": [ - "# Zelle 16: Gesamtredundanz r\n", + "# Zelle 16: Berechnung der Gesamtredundanz\n", "\n", "r_gesamt = Netzqualitaet_Zuverlaessigkeit.Zuverlaessigkeit.gesamtredundanz(A_matrix_numerisch.shape[0], A_matrix_numerisch.shape[1])" ], @@ -725,19 +725,19 @@ ] } ], - "execution_count": 200 + "execution_count": 17 }, { "cell_type": "code", "id": "1797726c5b3af9bf", "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:05:16.727087Z", - "start_time": "2026-02-06T17:05:16.717965Z" + "end_time": "2026-02-06T19:58:47.170582Z", + "start_time": "2026-02-06T19:58:47.160494Z" } }, "source": [ - "# Zelle 17: s0 a posteriori\n", + "# Zelle 17: Berechnung des s0 a posteriori\n", "\n", "s0_aposteriori = Netzqualitaet_Genauigkeit.Genauigkeitsmaße.berechne_s0apost(ausgabe_parameterschaetzung[\"v\"], ausgabe_parameterschaetzung[\"P\"], r_gesamt)" ], @@ -750,19 +750,19 @@ ] } ], - "execution_count": 201 + "execution_count": 18 }, { "cell_type": "code", "id": "a2fe23d9a19ac2f9", "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:05:17.491428Z", - "start_time": "2026-02-06T17:05:16.769522Z" + "end_time": "2026-02-06T19:58:48.190055Z", + "start_time": "2026-02-06T19:58:47.194545Z" } }, "source": [ - "# Zelle 18: Redundanzanteile ri\n", + "# Zelle 18: Berechnung der Redundanzanteile\n", "\n", "R, ri, EVi, Redundanzanteile = Netzqualitaet_Zuverlaessigkeit.Zuverlaessigkeit.redundanzanteile_ri(ausgabe_parameterschaetzung[\"Q_vv\"], ausgabe_parameterschaetzung[\"P\"], Jacobimatrix_symbolisch_liste_beobachtungsvektor)" ], @@ -20042,15 +20042,15 @@ } } ], - "execution_count": 202 + "execution_count": 19 }, { "cell_type": "code", "id": "14db90a3d4d9118b", "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:05:35.868633Z", - "start_time": "2026-02-06T17:05:18.030323Z" + "end_time": "2026-02-06T19:58:57.121679Z", + "start_time": "2026-02-06T19:58:48.283172Z" } }, "source": [ @@ -20120,13 +20120,13 @@ ] } ], - "execution_count": 203 + "execution_count": 20 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:05:40.483756Z", - "start_time": "2026-02-06T17:05:36.211948Z" + "end_time": "2026-02-06T19:59:02.750297Z", + "start_time": "2026-02-06T19:58:57.255208Z" } }, "cell_type": "code", @@ -20295,12 +20295,12 @@ { "data": { "text/plain": [ - "VBox(children=(, HBox(children=(Button(description='Auswah…" + "VBox(children=(, HBox(children=(Button(description='Auswah…" ], "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "eba51491619e42f08bd121349c7cec9f" + "model_id": "b187a517a8e1493abcfc07c6dece8ee3" } }, "metadata": {}, @@ -20310,13 +20310,13 @@ } } ], - "execution_count": 204 + "execution_count": 21 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T16:52:59.333308Z", - "start_time": "2026-02-06T16:52:59.312506Z" + "end_time": "2026-02-06T19:59:02.807474Z", + "start_time": "2026-02-06T19:59:02.803309Z" } }, "cell_type": "code", @@ -20335,13 +20335,13 @@ ] } ], - "execution_count": 194 + "execution_count": 22 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:06:49.021739Z", - "start_time": "2026-02-06T17:06:48.947368Z" + "end_time": "2026-02-06T19:59:02.874338Z", + "start_time": "2026-02-06T19:59:02.813909Z" } }, "cell_type": "code", @@ -20409,13 +20409,13 @@ } } ], - "execution_count": 205 + "execution_count": 23 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T16:53:12.591024Z", - "start_time": "2026-02-06T16:53:12.539695Z" + "end_time": "2026-02-06T19:59:02.954227Z", + "start_time": "2026-02-06T19:59:02.905271Z" } }, "cell_type": "code", @@ -20435,7 +20435,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "66af629945be4f99b2d66d90b481c1d4" + "model_id": "c6fedef0f1bb41258d438f53c812c8b4" } }, "metadata": {}, @@ -20445,18 +20445,18 @@ } } ], - "execution_count": 196 + "execution_count": 24 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:08:08.728717Z", - "start_time": "2026-02-06T17:07:56.882528Z" + "end_time": "2026-02-06T19:59:12.591835Z", + "start_time": "2026-02-06T19:59:03.004131Z" } }, "cell_type": "code", "source": [ - "# Zelle 24: Äußere Zuverlässigkeit\n", + "# Zelle 24: Parameter der äußeren Zuverlässigkeit\n", "importlib.reload(Netzqualitaet_Zuverlaessigkeit)\n", "bezeichnungen = [str(s) for s in Jacobimatrix_symbolisch_liste_beobachtungsvektor]\n", "\n", @@ -41731,9 +41731,9 @@ " 0.499999\n", " 2.223908e-01\n", " 4.386490\n", - " 1.422191e-14\n", + " 3.291024e-14\n", " 3.272127\n", - " 4.653589e-14\n", + " 1.076865e-13\n", " \n", " \n", " 1035_R_73_10008_FH13\n", @@ -41742,9 +41742,9 @@ " 0.500001\n", " 2.223902e-01\n", " 4.386478\n", - " 1.484357e-14\n", + " 3.315073e-14\n", " 3.272127\n", - " 4.857004e-14\n", + " 1.084734e-13\n", " \n", " \n", " 1038_R_74_10033_10032\n", @@ -55606,18 +55606,18 @@ } } ], - "execution_count": 206 + "execution_count": 25 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:08:46.034271Z", - "start_time": "2026-02-06T17:08:43.282944Z" + "end_time": "2026-02-06T19:59:17.666668Z", + "start_time": "2026-02-06T19:59:12.715436Z" } }, "cell_type": "code", "source": [ - "# Zelle 25: Standardabweichungen der einzelnen Punkte und Helmert'scher Punktfehler (3D)\n", + "# Zelle 25: Standardabweichungen und Helmert'scher Punktfehler\n", "\n", "Helmertscher_Punktfehler = Netzqualitaet_Genauigkeit.Genauigkeitsmaße.helmert_punktfehler(ausgabe_parameterschaetzung[\"Q_xx\"], s0_aposteriori,Jacobimatrix_symbolisch_liste_unbekannte)" ], @@ -56169,18 +56169,18 @@ } } ], - "execution_count": 207 + "execution_count": 26 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:09:32.841846Z", - "start_time": "2026-02-06T17:09:32.803910Z" + "end_time": "2026-02-06T19:59:17.878435Z", + "start_time": "2026-02-06T19:59:17.833313Z" } }, "cell_type": "code", "source": [ - "# Zelle 26: Standardellipse bzw. Helmert'sche Fehlerellipsen\n", + "# Zelle 26: Standardellipse (Helmert'sche Fehlerellipsen)\n", "\n", "Standardellipse = Netzqualitaet_Genauigkeit.Genauigkeitsmaße.standardellipse(ausgabe_parameterschaetzung[\"Q_xx\"], s0_aposteriori, Jacobimatrix_symbolisch_liste_unbekannte)" ], @@ -56882,15 +56882,15 @@ } } ], - "execution_count": 208 + "execution_count": 27 }, { "cell_type": "code", "id": "7de561d7eaebb1c2", "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:10:24.551119Z", - "start_time": "2026-02-06T17:10:19.955737Z" + "end_time": "2026-02-06T19:59:23.097536Z", + "start_time": "2026-02-06T19:59:18.042279Z" } }, "source": [ @@ -57602,13 +57602,13 @@ } } ], - "execution_count": 209 + "execution_count": 28 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:10:46.088700Z", - "start_time": "2026-02-06T17:10:41.747465Z" + "end_time": "2026-02-06T19:59:27.144015Z", + "start_time": "2026-02-06T19:59:23.264550Z" } }, "cell_type": "code", @@ -58323,13 +58323,13 @@ } } ], - "execution_count": 210 + "execution_count": 29 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:11:07.099259Z", - "start_time": "2026-02-06T17:11:03.958449Z" + "end_time": "2026-02-06T19:59:33.983933Z", + "start_time": "2026-02-06T19:59:27.318839Z" } }, "cell_type": "code", @@ -58359,7 +58359,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "f74f5cb6cf6d46ad856be2c9172fd575" + "model_id": "724bc54f235040d8b98f14bec77dd798" }, "text/plain": [ "FigureWidget({\n", @@ -58367,7 +58367,7 @@ " 'mode': 'lines',\n", " 'name': 'GNSS-Basislinien',\n", " 'type': 'scatter',\n", - " 'uid': '1113eb29-9d0f-4235-a1be-528efcdebd7e',\n", + " 'uid': '8ecbc2a4-dc6f-4562-b706-d04cb43803b4',\n", " 'x': [-50770.0582306675, -331.75291731833397, None, ...,\n", " -202.03505382454205, 54192.32572711194, None],\n", " 'y': [10258.913776395624, 352.28449571628886, None, ...,\n", @@ -58376,7 +58376,7 @@ " 'mode': 'lines',\n", " 'name': 'Tachymeter-Beob',\n", " 'type': 'scatter',\n", - " 'uid': 'ac32a355-1f87-4892-8c48-e98ce642aeed',\n", + " 'uid': 'ba82fdce-daad-45ac-aca0-1e4b07900b29',\n", " 'x': [-452.11717938177435, -420.1598136722217, None, ...,\n", " -279.0229650584462, -294.69410025087126, None],\n", " 'y': [357.652703391177, 350.7926873557013, None, ...,\n", @@ -58388,7 +58388,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': True,\n", " 'type': 'scatter',\n", - " 'uid': '8c3d51b4-a865-437d-aa50-af462cc3c8b1',\n", + " 'uid': '22f1e45e-395e-4629-b112-40648b9a9b8d',\n", " 'x': {'bdata': ('+4tDWoAuesClT3iiuTl6wJVpyIgMRX' ... 'QzNNwYesBAB1s+gSN6wPuLQ1qALnrA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('bxpwHAx4dkAUmXdL23h2QCcstOQTeH' ... 'xW9bdxdkDqwZGwqHV2QG8acBwMeHZA'),\n", @@ -58400,7 +58400,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'a2e4bd52-6c2a-4e29-bdd1-9f27fff3a7fe',\n", + " 'uid': 'bba103ab-a656-4abd-8d4c-391e6c108271',\n", " 'x': {'bdata': ('whUoDukmfMAeGtQIGTJ8wDOAwcZ2PX' ... '+LTJMRfMDRhfJJBxx8wMIVKA7pJnzA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('N9L8ByfrdkDHBhWJY+x2QKyrcLb463' ... 'BEJMvjdkBYAjTJRuh2QDfS/Acn63ZA'),\n", @@ -58412,7 +58412,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'b7d5b51a-f653-4f38-8e45-0134c45c351e',\n", + " 'uid': 'c5f3a3c4-4e18-42a0-9bf1-6fad84060f8d',\n", " 'x': {'bdata': ('0nMC/jBoeMCQQRalbXN4wM8Snk+8fn' ... 'JLh29SeMB8ZlryJl14wNJzAv4waHjA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('ZD6xvL/XdkDhkdAtWdh2QNp+v6Bb13' ... 'eja9PRdkAopXMKkdV2QGQ+sby/13ZA'),\n", @@ -58424,7 +58424,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'a7dd578a-c22c-4232-ae9f-74b374d5ad2d',\n", + " 'uid': '2361223b-847c-47c3-a718-ebe39f3e481f',\n", " 'x': {'bdata': ('hseJutOddsCGsOAQFKl2wHrHqHVMtH' ... '8vfL2HdsDNy0sVrJJ2wIbHibrTnXbA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('4hsVvAE8dkDF0chT7Dt2QOqbi85IOn' ... 'nxwIU3dkAVbFjJiDp2QOIbFbwBPHZA'),\n", @@ -58436,7 +58436,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '8d900372-3bcb-43ad-9442-c2376ff3036e',\n", + " 'uid': 'b6040f78-f4d3-464c-a7eb-7fb53b781d91',\n", " 'x': {'bdata': ('M1YQbBryecAL0nbwWf15wGqxYKWhCH' ... 'qF/zXcecASC3S4A+d5wDNWEGwa8nnA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('b2+gtGIedUDl6Qq0th51QM2yV2RzHX' ... 'uwMf0YdUDcsLxZeBx1QG9voLRiHnVA'),\n", @@ -58448,7 +58448,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '89657459-021a-4400-8c2b-428aa3bca0c2',\n", + " 'uid': '61c5ccdf-a10f-4e48-b412-6834403dbc78',\n", " 'x': {'bdata': ('sDX588+Me8AtK3b4EJh7wHfXNT9So3' ... 'vb5NB2e8A62F/Wr4F7wLA1+fPPjHvA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('GZzneZmhdEDJlpCiq6F0QJ7YvzMdoH' ... 'Wa7JicdEDAunDu5p90QBmc53mZoXRA'),\n", @@ -58460,7 +58460,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'a4b1c3e7-d767-47f7-ab74-1faedaa232a3',\n", + " 'uid': '235ac0bf-89be-42af-b846-b584ddbfd737',\n", " 'x': {'bdata': ('/yoMz/k/e8ArJpjOz0p7wH6aC1RzVX' ... 'jAUTQqe8D8dJ3DEDV7wP4qDM/5P3vA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('fWzGAQvXcEDUXDpSu9VwQMkShzDO0n' ... 'vwjcfUcEB0IXxxudZwQH1sxgEL13BA'),\n", @@ -58472,7 +58472,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '715de8e3-0072-44bc-990f-5d2a445bedf2',\n", + " 'uid': '6c8e8761-fd4d-44f9-94fe-923371bf5cd3',\n", " 'x': {'bdata': ('SsG+3wMnfMAt3DX1RDJ8wK036JJ+PX' ... 'TEl+0QfMCZBlX32xt8wErBvt8DJ3zA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('RfiSUDj7c0BgYICjDPtzQAbVEjw3+X' ... 'w0VZX2c0Cq/ZrEuflzQEX4klA4+3NA'),\n", @@ -58484,7 +58484,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '0bf7c1a7-ea8a-455a-afe9-cc9cb2cfb00f',\n", + " 'uid': '43b92bbe-227b-4fde-8a4e-167b06579187',\n", " 'x': {'bdata': ('fsNClemqecB0aG1IzrV5wDmm22GYwH' ... 'Wktk6VecC3MzbhCaB5wH7DQpXpqnnA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('3V+8+o1VcUDFN2dR6VRxQMOg8G63Un' ... 'gksSxScUA741KNo1RxQN1fvPqNVXFA'),\n", @@ -58496,7 +58496,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '611b1fea-ee04-464d-b618-329e9e3f3d6d',\n", + " 'uid': 'f7836976-d464-400f-8157-8e48ead9879d',\n", " 'x': {'bdata': ('jDv/g75Be8BGg1kKEk17wKxaiafcV3' ... 'TdUgEqe8Cc9cnuAjZ7wIw7/4O+QXvA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('mYqbIpITaEDrXgoYDwxoQL+NJtB4AW' ... '2rghAZaEAuj+kl7BdoQJmKmyKSE2hA'),\n", @@ -58508,7 +58508,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '124a046b-9beb-4a7d-a657-fa77b70ee0d6',\n", + " 'uid': '7109ccd1-ce4e-4cf5-bf4e-5b5a88e3189c',\n", " 'x': {'bdata': ('ptNpaCnhe8Aq8I4K0ux7wOIecAsb+H' ... 'BROEHJe8BPhC32QtV7wKbTaWgp4XvA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('IpS1OBnKbUD/V9VSAMVtQBO7f0apvG' ... 'MIAF/KbUCkrSkv5cttQCKUtTgZym1A'),\n", @@ -58520,7 +58520,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '5fae8428-27a1-4039-b5ed-41f359ca5f40',\n", + " 'uid': 'b14bfa12-a6f8-4a0a-9845-c0f6d5cad923',\n", " 'x': {'bdata': ('svF1vrjFd8Du4IFxndB3wAIGIJFn23' ... 'js8h2wd8CbW9YQ2bp3wLLxdb64xXfA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('+7g/whBVcUCwVNK+cVRxQN5IT7pOUn' ... 'iW+79RcUCSN1z3KVRxQPu4P8IQVXFA'),\n", @@ -58532,7 +58532,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'fb9a54e4-5046-4c28-9810-99c86fcd3db9',\n", + " 'uid': '8d0045ea-fd96-464c-942e-be1564b3551d',\n", " 'x': {'bdata': ('TXjIqe64dcDucVmJ6cR1wLVwhmmG0H' ... '41l2qgdcAnbYuKuKx1wE14yKnuuHXA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('T5NTrG8OZ0AH/0urJwlnQJSB7Sb/AG' ... 'K4YikQZ0BD62rYxxBnQE+TU6xvDmdA'),\n", @@ -58544,7 +58544,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '103796ed-9a92-4054-a6a0-f21c83df2f4f',\n", + " 'uid': '81b539aa-75a2-45e6-867b-724259010337',\n", " 'x': {'bdata': ('/uAEgBS4dMAbBVBvUsN0wIFOUER7zn' ... 'Ltn9uhdMCsox4S4qx0wP7gBIAUuHTA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('NggLJLGHdkC5UBnTSYd2QAvE7UtnhX' ... 'vgww2EdkCrkxUTnIZ2QDYICySxh3ZA'),\n", @@ -58556,7 +58556,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '45c033d9-ed02-4292-8e90-890a7bb8f3fa',\n", + " 'uid': '626a269e-d5aa-47da-977a-f7be7411bf0e',\n", " 'x': {'bdata': ('pwb8NXfjccAGZBdapu5xwL3JtSKl+X' ... 'SUzAnNccA7ZyonONhxwKcG/DV343HA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('UBqMIla7dUBkVC4OHrp1QEexpv9jt3' ... '3BoTa5dUAAoYmzCLt1QFAajCJWu3VA'),\n", @@ -58568,7 +58568,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'e615f5f8-6702-4e2a-8983-0a0992b4b901',\n", + " 'uid': '1b32127e-fd33-475e-b269-c47193c4f02f',\n", " 'x': {'bdata': ('pylkmQcXbsCptGa+SC1uwE57GvIJQ2' ... '93ZwjqbcCnPBwQhwBuwKcpZJkHF27A'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('bCD3WbkJdkDh+5o5Dgh2QFigGxTaBH' ... 'WisWUIdkCJvUWe1gl2QGwg91m5CXZA'),\n", @@ -58580,7 +58580,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '561f4283-3f36-4283-8166-4066724d1552',\n", + " 'uid': 'd8bea503-d8ea-4a2c-8792-07f6819716ce',\n", " 'x': {'bdata': ('nuvzRahcacAzWep4KnJpwBAEKmoeh2' ... '9Jj/MwacAOt3U01kZpwJ7r80WoXGnA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('knmGOEg1dUAww+uIbDN1QHgpNMv/L3' ... 'NBeTs0dUA/I0B2jTV1QJJ5hjhINXVA'),\n", @@ -58592,7 +58592,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '6d6765f7-e5b7-418c-bfdb-1b96f73fc268',\n", + " 'uid': '78b5b026-32c5-4622-9921-1bb29cc127ce',\n", " 'x': {'bdata': ('E5gQPB6KdMCbYijir5V0wLmaMjwioX' ... 'gwPyNzdMDByGzYjn50wBOYEDweinTA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('vdt0L2C/dEDfuTh9s750QDeiLzOMvH' ... 'ypSEa8dEApm/hUkL50QL3bdC9gv3RA'),\n", @@ -58604,7 +58604,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'fa36ab42-aaf1-4dcf-aa73-a66629c0e47f',\n", + " 'uid': 'ff1b9cc6-14e8-44d6-88c8-62e5bf416762',\n", " 'x': {'bdata': ('AJgARuKQdMDcELGdbpx0wDq4GhzSp3' ... 'CUHNV5dMD0sSaUToV0wACYAEbikHTA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('lRFH2Ns6dECq7bVn5Dl0QAS/m0hzN3' ... 'OOxlY4dECvCZfMVjp0QJURR9jbOnRA'),\n", @@ -58616,7 +58616,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '43c0b6be-307e-41b4-ab74-7631101d35ff',\n", + " 'uid': '535febfa-e641-483c-93d6-71eae8301605',\n", " 'x': {'bdata': ('eJCf1hQZc8AVW0AuliRzwNPvMq7gL3' ... 'RvW/MBc8CgvIUGfg1zwHiQn9YUGXPA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('ZKIlTcS+dEAoNmifXr10QJxcBsB3un' ... 'LWRgC9dECSqsS7pL50QGSiJU3EvnRA'),\n", @@ -58628,7 +58628,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '1128ac63-2b25-41fc-a303-c4439823749f',\n", + " 'uid': '892b1bcd-3464-4ccb-9576-b77ccf0c5b74',\n", " 'x': {'bdata': ('obdgLi00csBjnEbhqz9ywMPr/PjwSn' ... '+QmwgdcsDZgNU3lihywKG3YC4tNHLA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('WvInZ296dEA0BSaX9Hh0QP2t0vz4dX' ... 'Ws5dV4dECKkREiZXp0QFryJ2dvenRA'),\n", @@ -58640,7 +58640,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '1bb90c5f-e22b-431c-ac5e-eb8085bbc365',\n", + " 'uid': '93746759-fbd2-482a-9ac7-923573301d9f',\n", " 'x': {'bdata': ('PeuSEbESdMBpSZN3Px50wFfEA1GoKX' ... '/iv6n7c8CtqhakHgd0wD3rkhGxEnTA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('Zq3M4Xh8dEB1rbVfl3t0QCH+dZoyeX' ... 'DHTqx5dECeHaCS1Ht0QGatzOF4fHRA'),\n", @@ -58652,7 +58652,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '5da6b630-2a3b-408d-8ad7-76876cb5ab64',\n", + " 'uid': '2e87925b-de07-4499-bc42-2a6b603a6457',\n", " 'x': {'bdata': ('zm0xNwi0c8Bj8DIRlr9zwBX69nH9yn' ... '3QM/+cc8CjYXBndahzwM5tMTcItHPA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('xwjGJSc7dEDe3peTPjp0QJHTfNXSN3' ... 'Kopmg4dEAM7W/piTp0QMcIxiUnO3RA'),\n", @@ -58664,7 +58664,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '953e5fe3-c220-4ef9-8875-b5c7b5161f98',\n", + " 'uid': 'a77e005c-97be-4bdf-bfa3-f1d44f9de06a',\n", " 'x': {'bdata': ('2zJ9fS/MdMCoI6RAYtd0wHiv5nxp4n' ... 'Oqb8m1dMA9i7mu8cB0wNsyfX0vzHTA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('jM81LJnfckAr2NmSh95yQDqrsa3823' ... 'WEZEjdckBr1yxgLt9yQIzPNSyZ33JA'),\n", @@ -58676,7 +58676,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'd060e1a1-52e3-4db2-87f9-6932ffc1bf7a',\n", + " 'uid': 'b89c2ef0-f5d5-478a-bb02-79a2bbcb5f1e',\n", " 'x': {'bdata': ('XVWy2os6csCMUwX2w0VywMLXWeHYUH' ... '7dRjQkcsBICikaUS9ywF1VstqLOnLA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('Xl5NLBxtckBZXm3CRWxyQGr5LfLraX' ... 'j4fzlqckADYOHBbGxyQF5eTSwcbXJA'),\n", @@ -58688,7 +58688,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'da0f2ff1-2b28-4941-832b-fede85b2bd57',\n", + " 'uid': 'eaa0cd44-20a6-416e-828b-a6e48de520ed',\n", " 'x': {'bdata': ('LbJ9Yl0AZsBFOtg4yBVmwMP6p6KPKm' ... 'KsE5fUZcCcHgQ/jeplwC2yfWJdAGbA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('LxJoJ32fdUCqf6ugXp11QIVLL0yemX' ... 'rEAsGedUBomsC68591QC8SaCd9n3VA'),\n", @@ -58700,7 +58700,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'f22e66e9-2e1f-462e-9938-f710ea22b375',\n", + " 'uid': 'ea9d1545-d216-4d69-a5af-cb71484faf05',\n", " 'x': {'bdata': ('kpeMyowTbMDgzu9u1ClswHDM5JuhP2' ... 'XKQpHma8BnTJ1OC/1rwJKXjMqME2zA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('3Bbq1+nydECPKCCrUvF0QBKJ87oo7n' ... 'PJEFLxdEC68UWk6fJ0QNwW6tfp8nRA'),\n", @@ -58712,7 +58712,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '5119e12b-854b-4662-ac82-6a2510a6cf8e',\n", + " 'uid': 'b87e8d8e-ef84-4f54-bf32-d1bfc6bcfc43',\n", " 'x': {'bdata': ('U4S3Bsn2YcAA3YPYQwxiwN7fHeclIW' ... 'oHVwPLYcBVJIC/8+BhwFOEtwbJ9mHA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('Hz7akKfvdEB3mWkUr+10QBBs/BQB6n' ... 'YtKWbudEBprADT5O90QB8+2pCn73RA'),\n", @@ -58724,7 +58724,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '1ce48d41-0ff8-4c37-ab4c-2108d1743077',\n", + " 'uid': 'fbe72188-63b4-4bfb-9967-a62f2c63b3dd',\n", " 'x': {'bdata': ('GHgQYz/MacCrBN0PCOJpwNs1tsmZ92' ... 'sk1wWhacCqYOvyfrZpwBd4EGM/zGnA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('ZY74EWhzcUAelJL6t3JxQLl0WYBxcH' ... 'bEvQFwcUBh4sbHf3JxQGWO+BFoc3FA'),\n", @@ -58736,7 +58736,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '84958806-981f-49c4-b507-6bd5ddea6dc4',\n", + " 'uid': '5fa2150b-d2cf-4a24-962c-d9903b364e56',\n", " 'x': {'bdata': ('2714XUMCasATb9MQrhhqwHGHagfJLm' ... 'hyAYPVacDROu3yyetpwNu9eF1DAmrA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('54Hk7NcLc0BJswr91wpzQAsJnp1CCH' ... 'fRhBAJc0DQvM2GPwtzQOeB5OzXC3NA'),\n", @@ -58748,7 +58748,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '35b6a6d2-3685-4420-a8de-70c3813ad25c',\n", + " 'uid': '8b0a509d-a162-4b25-a12f-5519bd622f6c',\n", " 'x': {'bdata': ('FZfUfcfObcCPX2GFDOVtwKxgVofU+m' ... 'VybsmhbcBeKP4IRrhtwBWX1H3Hzm3A'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('ryL4VoiYc0Dw6jMe6JZzQEUXT1S1k3' ... 'tV1QKXc0AwrVJHkZhzQK8i+FaImHNA'),\n", @@ -58760,7 +58760,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'f76de47c-f20c-4327-b388-48f25fcb5198',\n", + " 'uid': '1b13bafc-a997-4248-b204-c55ec6e2176f',\n", " 'x': {'bdata': ('PTuZoL7AbcADgfEuhNZtwHrA4gkM7G' ... 'C6/3aVbcBCxGiF+qptwD07maC+wG3A'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('C1ZeiHVbcUCDHiVHrlpxQDPpIeFQWH' ... 'c7NT1YcUB8HNlipFpxQAtWXoh1W3FA'),\n", @@ -58772,7 +58772,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '3591d533-410b-436f-b3ac-58f76a0c5963',\n", + " 'uid': '9f1dd517-8927-48c6-a825-4e86c558b147',\n", " 'x': {'bdata': ('rwRiRgfbZcDzlUbzPPFlwACFKr7lBm' ... 'Vz0/etZcCOwEEjhcRlwK4EYkYH22XA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('sgFUSonFc0Cba5Nes8NzQEhys4U5wH' ... 'rD3zjEc0C/3+n1tcVzQLIBVEqJxXNA'),\n", @@ -58784,7 +58784,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '4349b231-5d70-4762-80cd-88697e64dca2',\n", + " 'uid': 'f809a043-6a1a-4adc-ad49-58cda3829761',\n", " 'x': {'bdata': ('jGc65JbkaMBePKwDGftowCwPKN6TEW' ... 'U3VIG4aMAQf1XJTs5owIxnOuSW5GjA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('OWcICYo/cEA/dlxEgT9wQDCwQOzXPX' ... 'TvKr46cEBHqNUg8j1wQDlnCAmKP3BA'),\n", @@ -58796,7 +58796,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'dc24217c-b659-4f01-9d9a-1edf393f83d4',\n", + " 'uid': 'ff6b0c2b-fd17-4ea7-a7a8-6519863a078d',\n", " 'x': {'bdata': ('Qo4VAP1aasDZ5j7HF3JqwN0uWRtriW' ... '9ew3suasC4AirKXURqwEKOFQD9WmrA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('vBQ5Tc/ea0Bxcwlcu+BrQMgVZHB632' ... 'Yss4/Ra0DRFTTXu9lrQLwUOU3P3mtA'),\n", @@ -58808,7 +58808,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'd3158caf-1d62-45b1-b563-1d7e67da61bd',\n", + " 'uid': '3e973484-be12-42a1-abd8-f8b50f941d3c',\n", " 'x': {'bdata': ('pJPfmjaRb8CMZunS+qZvwCH6sq1+vG' ... 'dToellb8Awc0MocXtvwKST35o2kW/A'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('2n11XbCucUA/YRGE5K1xQCDfU9uLq3' ... '2/6pyrcUCCLzgY7a1xQNp9dV2wrnFA'),\n", @@ -58820,7 +58820,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'e6b8da1e-5846-43d5-8f2a-b058290fd466',\n", + " 'uid': '6db82414-fcf5-498c-80e5-297bb826e395',\n", " 'x': {'bdata': ('pqSVvGA9VMC7xpF5TmhUwGD6vFj5kV' ... 'gN+7DlU8DGcGymrBFUwKWklbxgPVTA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('3N6CTA8pdUBVqou2ASd1QGk9L6YQI3' ... 'zgwm0ndUCQm5NzMyl1QNzegkwPKXVA'),\n", @@ -58832,7 +58832,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '913236fc-0ed6-4bdf-943b-510e939cc1bb',\n", + " 'uid': '37a0dab9-bdb6-41ae-ac3e-84b8f054d5cf',\n", " 'x': {'bdata': ('ceh0mIrYYsCHHtDQ6e5iwAsb6kXoBG' ... '6Ey62rYsCbcR6BC8JiwHHodJiK2GLA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('U4XAoGqHc0C7LlqvJ4ZzQLVU1HE0g3' ... 'LR7NWEc0CjWE6d+YZzQFOFwKBqh3NA'),\n", @@ -58844,7 +58844,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '938f5922-4ecb-4521-aea0-293f729150a0',\n", + " 'uid': '52d1b4f1-d69c-4043-944a-5653c8216d8c',\n", " 'x': {'bdata': ('qtkK+xGmdcDbaKUsP7F1wHZFkdk5vH' ... '/M6qGPdcBzWuKv0pp1wKrZCvsRpnXA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('1L3RFZQ2bkBLd8ifBjRuQKfyylCILm' ... 'mHdscybkAn3HtLKTZuQNS90RWUNm5A'),\n", @@ -58856,7 +58856,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'c21cfc3c-4986-464a-a56e-bcb91a91361b',\n", + " 'uid': '92d59199-7c80-4aeb-aeb3-63505013943e',\n", " 'x': {'bdata': ('ARat/pQfdcA3+Drcbip1wOpDS68bNX' ... 'ooMdgJdcBkAg+QrRR1wAEWrf6UH3XA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('YXb9q6b2cEDEyBcuhfVwQBMNYafq8n' ... 'iwvXX0cEDqOmDZS/ZwQGF2/aum9nBA'),\n", @@ -58868,7 +58868,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'adef9122-8f98-47ec-81b9-094558dec5f7',\n", + " 'uid': 'feab7c19-5fe4-42d1-bec7-5b1f8292cb66',\n", " 'x': {'bdata': ('wfhfffrUcMA6iZPlheFwwBzUcWAr7n' ... 'Wbu8K8cMAYb8qKrchwwMH4X3361HDA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('gkZH74wzZkCBrKeEFDZmQHVu9yiTNW' ... 'gbA4klZkDvwjS/Ay5mQIJGR++MM2ZA'),\n", @@ -58880,7 +58880,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '28c545bd-b1d1-4a8a-a0e9-83c12cee3c6b',\n", + " 'uid': 'edc08a62-10f3-43a6-aa23-701ccbcc7066',\n", " 'x': {'bdata': ('7Za1uUAMd8Dd8hvJWRd3wCFEX2UtIn' ... 'R8cL/1dsCXweZnAgF3wO2WtblADHfA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('4d5/Eu4VbkBjlWOrQBJuQBfyJnqoC2' ... 'XwbGYUbkD0Dd4EphZuQOHefxLuFW5A'),\n", @@ -58892,7 +58892,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '582c20fb-f827-44be-94a6-dc46675d0355',\n", + " 'uid': '963784b0-65eb-402b-acdb-792d5fb44bcc',\n", " 'x': {'bdata': ('FdtvzhtwdsC1NfQF+Hp2wAAWlmSqhX' ... '3A82NadsAhdkg+NWV2wBXbb84bcHbA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('wM6ZC3wdcECMayoVchxwQIwowLfuGX' ... 'IsBRwbcEBNA5yXCR1wQMDOmQt8HXBA'),\n", @@ -58904,7 +58904,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'b60f5358-f51b-4961-ab99-125dcdd4e232',\n", + " 'uid': '9e5ffde4-8df3-4214-8106-5ed9f6edceef',\n", " 'x': {'bdata': ('igHopqQ9csBCbkGuhkhywNNP+l5IU3' ... 'b82v0ncsAqDgnawTJywIoB6KakPXLA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('GX5PCAK2cEDusUyZObVwQHaIQ5ntsn' ... 'mEiAOzcECuHeygRLVwQBl+TwgCtnBA'),\n", @@ -58916,7 +58916,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '7f52e268-2bb0-434c-928b-4c330b4af14a',\n", + " 'uid': '016ec592-99eb-4005-9124-38ff6e19a660',\n", " 'x': {'bdata': ('noBovDaZd8DWLeCpGKR3wK9e2A7arn' ... 'cIjo+Dd8D9SEHXU453wJ6AaLw2mXfA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('lTNHXiVJcEA3v8SIW0hwQGZtaCYORn' ... 'DBpylGcEBfIIBdaUhwQJUzR14lSXBA'),\n", @@ -58928,7 +58928,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '18c23660-4915-4849-b1c5-d00a3c109dc6',\n", + " 'uid': '02e14050-51f4-48b7-bd9e-f394261e4920',\n", " 'x': {'bdata': ('OdGMfihzccDjjyFEBn5xwExTsWy8iH' ... '7XRnRdccBgJbWgQmhxwDnRjH4oc3HA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('ittv4BOpcUAedyMkF6hxQIC/14OXpX' ... 'E8o32mcUCPYqjbiqhxQIrbb+ATqXFA'),\n", @@ -58940,7 +58940,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'd19de4db-e0f8-4439-8be3-0322617b0295',\n", + " 'uid': '6b5da4ff-0a0a-46a3-9aea-3e65a5c2196a',\n", " 'x': {'bdata': ('zJhKrB3ycMAvMDn3sv1wwEMHiGBNCX' ... '+OZYjbcMB/lc8Yr+ZwwMyYSqwd8nDA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('n0AHN303bUB5ggtcRThtQOqIIGoDNm' ... 'SrhOAsbUBB8pw/rTNtQJ9ABzd9N21A'),\n", @@ -58952,7 +58952,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '2ebafa44-49a0-4e6a-b775-52c8b7b19f17',\n", + " 'uid': '02998a9e-0940-4737-9099-367702a65222',\n", " 'x': {'bdata': ('HD9KEw4ZcMBe0ZFOpSRwwAGZyT44MH' ... 'BH4VgCcMAM6aUrlA1wwBw/ShMOGXDA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('aJ9REpb8bECejz4bu/xsQNPPo6PD+W' ... 'irMQHzbECaM0n0VPlsQGifURKW/GxA'),\n", @@ -58964,7 +58964,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'af3410d2-e29e-49ab-b619-516286fc92dc',\n", + " 'uid': '7e30f9df-9e38-4c2a-89c9-f4ebef052b48',\n", " 'x': {'bdata': ('u7mIHN1aasBXgOs5NHNqwP6tA4FTjG' ... 'D1tJ4tasDm0rfClENqwLu5iBzdWmrA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('K2QMl/aCZUAADiP9k4llQD7cW+4HjW' ... 'XiH5VsZUB0ju/rQnllQCtkDJf2gmVA'),\n", @@ -58976,7 +58976,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'a92256f7-daa5-4256-85a6-cd8256a45ce8',\n", + " 'uid': 'a5c6a166-b0e8-4411-97a6-4c5c5bb040c2',\n", " 'x': {'bdata': ('z81gjTGHY8B8li3OWp9jwByr6OB4uG' ... 'uEQ9JaY8C2QFgzQ3BjwM/NYI0xh2PA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('0QgmAZcEZUD5cmVm2wtlQN6Q8CfJD2' ... 'tFDmjsZEB3Q20MEfpkQNEIJgGXBGVA'),\n", @@ -58988,7 +58988,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '3e45122b-78da-4046-a87d-54f2022ec38f',\n", + " 'uid': '587bf48d-928b-4acd-b0af-45fd26481609',\n", " 'x': {'bdata': ('caTv+/UQYsByFqonzyhiwLMk2257QG' ... 'akYtHhYcC1sjgYNflhwHGk7/v1EGLA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('bxoE+gHkcUDRrsNXduNxQLqJWe0u4X' ... 'zEneTfcUDF2hU/0OJxQG8aBPoB5HFA'),\n", @@ -59000,7 +59000,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'd9c209fb-a16e-4625-a3c3-6f15b7aa8dfb',\n", + " 'uid': '46303f4b-19af-4f78-b91b-dec647e1df6c',\n", " 'x': {'bdata': ('NfObGRgHY8ABE9G5hh9jwIBY3/pEOG' ... 'twf0PYYsBEiE74P+9iwDXzmxkYB2PA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('0T/nglPibEDzVztDv+RsQKf65Lu142' ... 'pENULTbEDuboyAedxsQNE/54JT4mxA'),\n", @@ -59012,7 +59012,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '1bc8947c-9ebf-4bee-a862-c6d7863add2d',\n", + " 'uid': '6745293a-d1de-42b2-a4f0-217736025aeb',\n", " 'x': {'bdata': ('jGXymQjjY8A2tUFM//tjwGJhE1FrFW' ... 'h8qZqzY8C0L+Oiz8pjwIxl8pkI42PA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('wMKMbO6nakBw7k0il6tqQAlmDZvOq2' ... 'Rbm32WakDfAcsW36BqQMDCjGzup2pA'),\n", @@ -59024,7 +59024,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'ea641fe7-d5ee-4430-9298-26ddd3d9ff96',\n", + " 'uid': '3914fb28-ebfc-4fb4-a23e-c27ddc142331',\n", " 'x': {'bdata': ('0BzQVvfjYsAOqY7w1ftiwFLfivS/E2' ... 'FQaXC1YsC3+ZtjacxiwNAc0Fb342LA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('q5DdWVsxcEC+B5BYkTFwQOdeQAcLMH' ... 'Hn5cErcECI2ManaS9wQKuQ3VlbMXBA'),\n", @@ -59036,7 +59036,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'ec6e68f5-c947-41ca-976f-765e7ffa14d1',\n", + " 'uid': '7903eb80-5462-4dc0-a146-470ec9bc1880',\n", " 'x': {'bdata': ('DngyAyI9VsBYaWDa4WxWwP27UAvmnF' ... '4lC5fgVcDzSwgGMQ5WwA54MgMiPVbA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('VJrItcQtcEBqcmJNGy5wQC6s5giRLH' ... 'HtTn4ncEBSF0Q9jitwQFSayLXELXBA'),\n", @@ -59048,7 +59048,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'd5ac11c8-f79a-4f44-b225-66be5388771d',\n", + " 'uid': '4bece71e-d75e-4728-b352-001d56b8320b',\n", " 'x': {'bdata': ('On3ekKtQVsCto2akI4FWwHvjndPnsl' ... 'dYvMz1VcDP6aovDCJWwDp93pCrUFbA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('H6bZ0kGAakDLAv9XRoRqQDZ3fCSEhG' ... 'MSDh5takBrBVs8gnhqQB+m2dJBgGpA'),\n", @@ -59060,7 +59060,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '6f3ed4d1-0ea9-4b9c-b0c2-1173a5739e6e',\n", + " 'uid': '714d83ac-9d2a-43b8-86a8-126671503137',\n", " 'x': {'bdata': ('yP34n55cVsAzxdCs04tWwFv0XmvpvV' ... '8jbPAIVsCnV4Yy0zBWwMj9+J+eXFbA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('JUcf4biFYkCbabsvsI5iQIkxuaPyk2' ... 'q/Lx5pYkCc6Z65JnliQCVHH+G4hWJA'),\n", @@ -59072,7 +59072,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '7e409288-1e5c-4ce3-99cc-dfb2da124097',\n", + " 'uid': 'e7594d2c-3b02-434e-90ea-915fdced8513',\n", " 'x': {'bdata': ('q5y3jjkEUsBz4Jt20DNSwOv1AaDOYl' ... 'Ay1GmlUcAHhdrxk9RRwKuct445BFLA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('h4t2kDLEckAs4cSaIcNyQLFyyocewH' ... 'XScnfAckBHcSFRTsNyQIeLdpAyxHJA'),\n", @@ -59084,7 +59084,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'b087bbc1-5ebe-46fb-8416-ea5636b2308b',\n", + " 'uid': '99852763-ea80-431b-8384-7b1f546cca1e',\n", " 'x': {'bdata': ('VuCSs7LYUsDXPNUCdglTwPst5VhAO1' ... '69V3J8UsC8/vvbg6lSwFbgkrOy2FLA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('Z5N/WkpIbECwoHw+UEtsQKBsSYl3Sm' ... '/E+dA2bEAm/w2ibkFsQGeTf1pKSGxA'),\n", @@ -59096,7 +59096,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'caffebcb-861b-42f5-ac95-0dd3975b5277',\n", + " 'uid': '3f4d9ea8-5f84-4496-8ac4-148fb55d8120',\n", " 'x': {'bdata': ('X8sw911kZMAl7z6oq4FkwEusEKPcnm' ... 'o1zL8qZMAZXiyPSEdkwF/LMPddZGTA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('YR7jeaoeakDVbGbcxh5qQG9VDKVpG2' ... 'QGRBAUakB2iNfPFBtqQGEe43mqHmpA'),\n", @@ -59108,7 +59108,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '81dc1ac2-672e-4c5e-ac23-f4330b9782fb',\n", + " 'uid': '0e46f493-e4f6-460c-988d-c95ffaca4b13',\n", " 'x': {'bdata': ('XTRrezyQZMBYXzQwxqhkwAYnebZlwW' ... 'r8KoZgZMDJuLjED3hkwF00a3s8kGTA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('T3Hrrb9Qb0BcOJ/fklFvQKoMSnvtTm' ... 'U7JcNEb0BFvMRKdkxvQE9x662/UG9A'),\n", @@ -59120,7 +59120,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'e34dd508-4cca-4629-a891-4583a7d29155',\n", + " 'uid': '4f091670-a0c7-474b-a13f-e019b95e0fae',\n", " 'x': {'bdata': ('AfenDPwKY8CM57NY5CdjwOXuqRjRRW' ... 'RQToTVYsDjybENbO9iwAH3pwz8CmPA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('5uIu8GcVcEComTGHhBpwQEetUl33HX' ... 'AidnEGcEC4u/ZrsA5wQObiLvBnFXBA'),\n", @@ -59132,7 +59132,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '9906242a-3e44-4c4d-8a74-d8b964af8ff5',\n", + " 'uid': '15989b4c-b1f5-4cfa-b405-617acdb50559',\n", " 'x': {'bdata': ('GvBDvGzzVsDkbEN7kClXwHDlI/aSYl' ... 'GWfCuSVsD09HrCxMBWwBnwQ7xs81bA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('MXOtKFnXZUDVK8Ehm+JlQJukWqI66m' ... 'rhlnq2ZUAtz4VelchlQDFzrShZ12VA'),\n", @@ -59144,7 +59144,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'bbd772b5-fa03-45c5-9bc2-51081a46294e',\n", + " 'uid': '63157d82-61dd-4016-97d4-19c65e6609f2',\n", " 'x': {'bdata': ('O3nBj5HUaMCrkPwOje1owNAO5m5WB2' ... '2l5iKmaMD4G99nrLxowDt5wY+R1GjA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('zVwBKhp1akBU8LyW83tqQKjiBdqRf2' ... 'GicQ5eakAVD8dxGWtqQM1cASoadWpA'),\n", @@ -59156,7 +59156,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'c8263149-0585-4082-a36b-729e3bc19de8',\n", + " 'uid': 'f0b285e3-2ae1-485a-8a69-c49e7b0c6d81',\n", " 'x': {'bdata': ('DKRTiHn7aMCYSxCmPxRpwMGdPZyPLW' ... '865afMaMDXFtweheNowAykU4h5+2jA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('+WifJC9kakADLE1i7GhqQF5Yn0Jzam' ... 'sTt1FRakBh+7BISVxqQPlonyQvZGpA'),\n", @@ -59168,7 +59168,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '53ee8938-6429-40e2-8984-9cfa78c752fb',\n", + " 'uid': '5994df23-cebc-42d1-8cc8-b3c7353be8c1',\n", " 'x': {'bdata': ('JpfrP0FtZsAvyHB+A4RmwKZlj9YZmm' ... 'vQUMI+ZsD8B4AeFVZmwCaX6z9BbWbA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('SFk0LZ9Xc0DuKfwtYlVzQNijaE1xUX' ... 'WckuhWc0D41wrNIVhzQEhZNC2fV3NA'),\n", @@ -59180,7 +59180,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '7fa8b6d0-16f1-4c63-bdad-c7c84aef4268',\n", + " 'uid': '16c2e252-a5f7-4232-a33b-3c8a8a3c9d02',\n", " 'x': {'bdata': ('fZtdO8LsecCzeMKA//d5wNbYnxglA3' ... 'on9YLWecD7MzTijeF5wH2bXTvC7HnA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('NhxYer9McUD4FRwbMkxxQAjX+wcOSn' ... 'E3VRRJcUBgQqCLtEtxQDYcWHq/THFA'),\n", @@ -59192,7 +59192,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'bfc0d48b-87af-4cb3-af20-53469cd963e2',\n", + " 'uid': 'ed769f89-0dcc-49d1-8520-55fbd70a8782',\n", " 'x': {'bdata': ('0y1Pz88PcsDTiSf23hpywGIALNfWJn' ... 'gAAOn8ccBVAaB2yQVywNMtT8/PD3LA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('sACZ5s3lckDyBmbsLe1yQE7jnt4d83' ... 'ROHxfTckBcR5UxE91yQLAAmebN5XJA'),\n", @@ -59204,7 +59204,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '3f170748-2c9b-4b7c-aad9-b01c41abfe7f',\n", + " 'uid': '921ce7f1-bada-40d2-8207-aa6654ba4a2b',\n", " 'x': {'bdata': ('43XDjWDK6MBDfI42fsrowNjfTDCbyu' ... 'wniCTK6MAgUvOLQsrowON1w41gyujA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('VbrBXVYPxEBCWkcbRA/EQJMyOP8gD8' ... 'SWs0cPxEB9nbCRVw/EQFW6wV1WD8RA'),\n", @@ -59216,7 +59216,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '50b1432f-cd85-40b8-9d4e-2fbd28684956',\n", + " 'uid': '0c3cb98d-14f5-4cbe-8446-63385b052a0f',\n", " 'x': {'bdata': ('HgIRzw8zZsBwLPC+hklmwKMb3RLFX2' ... '/xpnwGZsCfg1BsoRxmwB4CEc8PM2bA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('bja9LnSJbkAMnpWmIohuQFECsb+2g2' ... 'zo4cGCbkDa1B2Fp4duQG42vS50iW5A'),\n", @@ -59228,7 +59228,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '926e9782-86e2-45e4-897f-aefb1b73c0a5',\n", + " 'uid': '2b3089aa-9be2-4fe5-b219-c27e5080fb90',\n", " 'x': {'bdata': ('nt7QhnMD5ECLjS43VgPkQNgcXxE5A+' ... 'r3T60D5ECaJ0GrkAPkQJ7e0IZzA+RA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('x5LJaoLTusCZ1DbsiNO6wDpeI9Cv07' ... 'rBfNbTusDfTbpenNO6wMeSyWqC07rA'),\n", @@ -59240,7 +59240,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': '61ca68ac-1312-4230-9c71-cf11751d15d6',\n", + " 'uid': '0af4f992-87fe-4c2e-b845-403d684d9dad',\n", " 'x': {'bdata': ('zLwGeHoqz0BuNLjOCirPQNgsETOcKc' ... 'ev5Fcrz0ATvRrr6SrPQMy8Bnh6Ks9A'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('MyKowPDP2cAkSeDp88/ZwL80oN7+z9' ... 'vF3gHQ2cD+9CJs9c/ZwDMiqMDwz9nA'),\n", @@ -59252,7 +59252,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'd2146dbc-90e9-4637-82b5-3743b46e99b3',\n", + " 'uid': 'b7942408-d5fd-41d9-ba3f-75069718d0d2',\n", " 'x': {'bdata': ('PATIG3il5MC0EuoElKXkwI/RzKevpe' ... 'd7ukCl5MAGsls9XKXkwDwEyBt4peTA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('7BpyO4Sy08AaJ9F3h7LTwOfhcFqSst' ... 'u1xJSy08Cvf7auiLLTwOwacjuEstPA'),\n", @@ -59264,7 +59264,7 @@ " 'name': 'Ellipsen (×2000)',\n", " 'showlegend': False,\n", " 'type': 'scatter',\n", - " 'uid': 'aa593283-a835-4a62-a748-28dd5740661b',\n", + " 'uid': '8322b3e6-3b09-4e61-89a3-7e7b61ee2f62',\n", " 'x': {'bdata': ('W4LkT/B16kB0gS9V1XXqQNjPePS6de' ... '9n2SZ26kCuWVaWC3bqQFuC5E/wdepA'),\n", " 'dtype': 'f8'},\n", " 'y': {'bdata': ('qEYqQrsi2EA8Jro6syLYQO3o5sWjIt' ... 'GIwbQi2ECgUu3EuyLYQKhGKkK7IthA'),\n", @@ -59382,7 +59382,7 @@ " ESTE, FH11, FH13, FH14, FH15, FH3, FH4, GNA2],\n", " 'textposition': 'top center',\n", " 'type': 'scatter',\n", - " 'uid': '3fa5a82c-adcb-4144-b8cd-c55d16d420d8',\n", + " 'uid': '8c01a293-c473-46b3-9044-a5d1fcd76088',\n", " 'x': [-50770.0582306675, -177.6878083756096, 40987.14483240216,\n", " -433.8668328724431, -444.74070319887574, -435.5880875060455,\n", " -450.98092276876804, -441.50972032462516, -452.11717938177435,\n", @@ -59464,13 +59464,13 @@ } } ], - "execution_count": 211 + "execution_count": 30 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:15:29.076550Z", - "start_time": "2026-02-06T17:15:26.015894Z" + "end_time": "2026-02-06T19:59:36.773605Z", + "start_time": "2026-02-06T19:59:34.242342Z" } }, "cell_type": "code", @@ -59486,108 +59486,44 @@ "output_type": "stream", "text": [ "✅ Aktuelle Ansicht wurde erfolgreich gespeichert: Netzqualitaet\\netzplot_ellipsen_zoom_ansicht.png\n", - "Ausschnitt: E[-482.29 bis -41.27], N[54.08 bis 432.55]\n" + "Hinweis: Es wurde die Standardansicht (kein Zoom) gespeichert.\n" ] } ], - "execution_count": 212 + "execution_count": 31 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:15:33.901070Z", - "start_time": "2026-02-06T17:15:33.840483Z" - } - }, - "cell_type": "code", - "source": [ - "from Koordinatentransformationen import Transformationen\n", - "trafos = Transformationen(pfad_datenbank)\n", - "\n", - "dict_koordinaten_utm = trafos.ecef_to_utm(\n", - " dict_koordinaten_ausgleichungsergebnis,\n", - " pfad_tif_quasigeoidundolation)\n", - "koordinaten_utm = (dict_koordinaten_utm)\n", - "print(koordinaten_utm)" - ], - "id": "93948fb31a67c186", - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'10009': (446396.94620834, 5888520.08088791, 4.1148254), '10006': (446365.07880617, 5888527.29267384, 3.69280355), '10010': (446425.55737645, 5888525.72077607, 4.03449329), '10018': (446454.64452018, 5888515.81549438, 4.36423477), '10008': (446400.85298208, 5888498.39470126, 3.84070467), '10005': (446375.2762638, 5888490.66598513, 3.83019594), '10003': (446380.52182282, 5888429.94816207, 3.85537315), '10004': (446365.69137394, 5888480.16504168, 3.6035064), '10007': (446405.40159353, 5888437.96759332, 4.0251001), '10001': (446381.3926228, 5888353.40803674, 4.00417345), '10002': (446371.02644349, 5888398.82624538, 3.70200289), '10016': (446435.71423344, 5888437.80038117, 4.16324885), '10011': (446468.85614381, 5888344.89491673, 3.92166909), '10026': (446485.33136046, 5888520.59073922, 4.40938074), '10027': (446531.04679773, 5888507.11815086, 4.43530388), '10043': (446576.91622782, 5888511.32670749, 4.42065917), '10044': (446614.75198409, 5888497.44811668, 4.64895857), '10021': (446488.08527746, 5888492.04563793, 4.45826783), '10020': (446487.77770229, 5888483.77069987, 4.44455833), '10024': (446511.64866866, 5888491.55859771, 4.40922242), '10025': (446525.96183279, 5888487.13378557, 4.52113904), '10022': (446495.63300588, 5888487.5820238, 4.32540063), '10023': (446501.52140534, 5888483.43567314, 4.44847787), '10019': (446483.9115988, 5888462.11852846, 4.08301143), '10033': (446524.73362571, 5888454.30873121, 3.96097605), '10052': (446641.92475149, 5888503.40516188, 4.3907001), '10042': (446592.76252359, 5888493.52548294, 4.45932629), '10053': (446673.96674489, 5888491.64787911, 4.37894668), '10037': (446609.64972035, 5888437.36452896, 4.09746076), '10040': (446608.49300353, 5888462.89773073, 4.27004518), '10041': (446578.70518416, 5888472.0415132, 4.59139447), '10038': (446578.07938443, 5888436.21841394, 4.19199757), '10051': (446642.49440409, 5888473.75799582, 4.38853226), '10036': (446616.13424901, 5888417.87812696, 4.1049165), '10035': (446603.32578073, 5888381.3029106, 4.17897873), '10039': (446563.65983753, 5888441.77871786, 4.19996428), '10059': (446736.81515904, 5888493.54140208, 4.13559965), '10050': (446666.03582263, 5888469.38469569, 4.26706788), '10013': (446469.78273378, 5888402.03063012, 3.90378206), '10017': (446478.41670334, 5888431.63158004, 4.07499469), '10028': (446544.36993129, 5888337.02691615, 3.8927335), '10012': (446447.80769959, 5888401.28480521, 3.9989639), '10014': (446457.17286341, 5888418.29660677, 4.00254071), '10031': (446524.19517885, 5888426.8791664, 3.96630763), '10015': (446438.43787854, 5888421.02969454, 4.08995956), '10032': (446537.17137005, 5888441.92401556, 3.83220507), '10030': (446543.68319329, 5888393.0732505, 3.67794707), '10029': (446557.42300528, 5888390.862321, 3.64867538), '10034': (446601.18191018, 5888330.65684636, 3.83845832), '10045': (446655.24859118, 5888325.64227403, 3.82218134), '10049': (446671.37209307, 5888442.91789075, 4.09790689), '10047': (446661.71358848, 5888387.99880723, 3.69714592), '10046': (446654.22399384, 5888370.34487872, 3.63685358), '10048': (446663.87285996, 5888415.8797555, 3.89050529), '10057': (446725.75822799, 5888414.18905125, 3.87044583), '10055': (446723.50215803, 5888367.42667887, 3.55525963), '10054': (446720.4521218, 5888303.99816891, 3.8048657), '10058': (446744.28751929, 5888454.91282021, 3.97216059), '10056': (446737.89306505, 5888381.22525678, 3.52878251), '812': (446651.57132732, 5888365.88519618, 3.99088897), '816': (446650.26743143, 5888407.48509998, 3.98806784), 'FH3': (446659.80327168, 5888414.88450806, 4.70333978), '666': (446718.29679161, 5888330.83425901, 3.88295049), 'FH11': (446613.72888814, 5888369.88870766, 4.05694535), 'FH14': (446613.24672774, 5888369.35128293, 4.11103907), 'FH4': (446638.16334518, 5888466.56973211, 4.72158136), 'FH13': (446401.19514054, 5888437.26552547, 4.54041939), 'FH15': (446521.73709218, 5888462.81239175, 4.7261625), '0645': (396176.37438172, 5898983.77551799, 25.02256272), '0656': (446638.03623146, 5888402.34175404, 28.64098241), '0995': (487705.36189513, 5880834.40647916, 32.63724634), '1675': (462469.68714225, 5861557.08782138, 32.26702462), 'ESTE': (404322.13942081, 5868460.7077902, 29.624297), 'GNA2': (501255.69135013, 5912256.28939745, 18.33084165)}\n" - ] - } - ], - "execution_count": 213 - }, - { - "metadata": { - "ExecuteTime": { - "end_time": "2026-02-06T17:15:36.292996Z", - "start_time": "2026-02-06T17:15:36.272729Z" - } - }, - "cell_type": "code", - "source": [ - "# 1. Wir nutzen dein existierendes 'dict_koordinaten'\n", - "# Da stehen nur die echten Punkte drin (74 Stück)\n", - "namen = list(dict_koordinaten_ausgleichungsergebnis.keys())\n", - "\n", - "# Die SymPy-Matrizen aus dem Dictionary in flache Listen umwandeln\n", - "koordinaten_liste = []\n", - "for k in namen:\n", - " matrix_werte = dict_koordinaten_ausgleichungsergebnis[k]\n", - " # Umwandlung von SymPy Matrix zu einfachen Floats\n", - " koordinaten_liste.append([float(matrix_werte[0]), float(matrix_werte[1]), float(matrix_werte[2])])\n", - "\n", - "# 2. DataFrame direkt aus der gefilterten Liste erstellen\n", - "# Hier passen index (74) und Daten (74 Zeilen) nun perfekt zusammen!\n", - "df_x_final = pd.DataFrame(koordinaten_liste, columns=['X [m]', 'Y [m]', 'Z [m]'], index=namen)\n", - "df_x_final.index.name = 'Punktnummer'\n", - "\n", - "# 3. UTM-Daten aufbereiten (wie gehabt)\n", - "# Wir stellen sicher, dass wir die Werte aus koordinaten_utm flachklopfen\n", - "utm_flach = {k: np.array(v).flatten().tolist() for k, v in koordinaten_utm.items()}\n", - "df_utm_final = pd.DataFrame.from_dict(utm_flach, orient='index', columns=['Rechtswert [m]', 'Hochwert [m]', 'Höhe [m]'])\n", - "df_utm_final.index.name = 'Punktnummer'\n", - "\n", - "# 4. Zahlenformatierung (Wissenschaftliche Notation unterdrücken)\n", - "df_x_final = df_x_final.map(lambda val: f\"{val:.4f}\")\n", - "df_utm_final = df_utm_final.map(lambda val: f\"{val:.4f}\")\n", - "\n", - "# 5. Export-Dictionary\n", - "ergebnisse = {\n", - " \"df_globaltest\": globaltest,\n", - " \"df_redundanz\": Redundanzanteile,\n", - " \"df_ellipsen\": Standardellipse,\n", - " \"df_konfidenzellipsen\": Konfidenzellipse,\n", - " \"df_koordinaten_geozentrisch_kartesisch\": df_x_final,\n", - " \"df_koordinaten_utm\": df_utm_final\n", - "}\n", - "\n", - "# Für die geozentrischen Koordinaten\n", - "df_x_final.index.name = 'Punktnummer'\n", - "\n", - "# Für die UTM-Koordinaten\n", - "df_utm_final.index.name = 'Punktnummer'" - ], - "id": "f44e8e8200728203", - "outputs": [], - "execution_count": 214 - }, - { - "metadata": { - "ExecuteTime": { - "end_time": "2026-02-06T17:15:59.584240Z", - "start_time": "2026-02-06T17:15:40.694437Z" + "end_time": "2026-02-06T19:59:37.132957Z", + "start_time": "2026-02-06T19:59:37.104632Z" } }, "cell_type": "code", "source": [ + "# Zelle 31: Ergebnisse als Dataframe speichern\n", "importlib.reload(Export)\n", - "# Zelle 30: Erzeugung eines Protokolls der hybriden Netzausgleichung\n", + "\n", + "df_x_final, df_utm_final = Export.Export.erzeuge_ergebnis_datenframes(\n", + " pfad_datenbank,\n", + " pfad_tif_quasigeoidundulation,\n", + " dict_koordinaten_ausgleichungsergebnis\n", + ")" + ], + "id": "49bb115b13f724fd", + "outputs": [], + "execution_count": 32 + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2026-02-06T19:59:54.435374Z", + "start_time": "2026-02-06T19:59:37.139506Z" + } + }, + "cell_type": "code", + "source": [ + "# Zelle 32: Erzeugung eines Protokolls der hybriden Netzausgleichung\n", "\n", "# Eingaben des Bearbeiters\n", "bearbeiter = input(\"Bearbeiter: \")\n", @@ -59616,9 +59552,7 @@ " \"netzplot_zoom\": r\"Netzqualitaet\\netzplot_ellipsen_zoom_ansicht.png\",\n", " \"df_koordinaten_geozentrisch_kartesisch\": df_x_final,\n", " \"df_koordinaten_utm\": df_utm_final\n", - "\n", "}\n", - "\n", "Export.Export.speichere_html_protokoll(metadaten, ergebnisse)" ], "id": "9322606534ef6546", @@ -59627,22 +59561,22 @@ "name": "stdout", "output_type": "stream", "text": [ - "✅ Protokoll wurde gespeichert unter: C:\\Users\\fabia\\Desktop\\Masterprojekt_V3\\Protokolle\\Protokoll_Campusnetz.html\n" + "✅ Protokoll wurde gespeichert unter: C:\\Users\\miche\\PycharmProjects\\Masterprojekt_V3\\Protokolle\\Protokoll_Campusnetz.html\n" ] } ], - "execution_count": 215 + "execution_count": 33 }, { "metadata": { "ExecuteTime": { - "end_time": "2026-02-06T17:17:03.195762Z", - "start_time": "2026-02-06T17:17:03.181445Z" + "end_time": "2026-02-06T19:59:54.876319Z", + "start_time": "2026-02-06T19:59:54.860781Z" } }, "cell_type": "code", "source": [ - "# Export der ausgeglichenen Koordinaten\n", + "# Zelle 33: Export der ausgeglichenen Koordinaten\n", "\n", "# Ausgabe der Koordinaten in geozentrisch kartesischen System\n", "df_x_final.to_csv(r\"Endergebnisse\\Koordinate_geozentrisch_kartesisch.csv\", index=True)\n", @@ -59652,7 +59586,7 @@ ], "id": "a7ebf29bd6b6cd6e", "outputs": [], - "execution_count": 216 + "execution_count": 34 } ], "metadata": { diff --git a/Export.py b/Export.py index 0007134..8ff1c02 100644 --- a/Export.py +++ b/Export.py @@ -1,5 +1,6 @@ import csv from datetime import datetime +from Koordinatentransformationen import Transformationen import numpy as np import os import pandas as pd @@ -61,6 +62,83 @@ class Export: zeile_als_text.append(eintrag_text) writer.writerow(zeile_als_text) + + + @staticmethod + def erzeuge_ergebnis_datenframes( + pfad_datenbank, + pfad_tif_quasigeoidundulation, + dict_koordinaten_ausgleichungsergebnis + ): + """ + Erzeugt Ergebnis-DataFrames für ausgeglichene Koordinaten in ECEF (XYZ) und UTM. + + Die Funktion nimmt ein Dictionary mit ausgeglichenen geozentrisch-kartesischen Koordinaten + (ECEF/XYZ) entgegen, transformiert diese über die Transformationen-Klasse nach ETRS89/UTM + (inkl. Höhenangabe; optional unter Nutzung einer Quasigeoidundulations-Datei) und erstellt + zwei tabellarische Ergebnisdarstellungen: + + - df_x_final: Geozentrische Koordinaten X/Y/Z [m], + - df_utm_final: UTM-Koordinaten (Rechtswert/Hochwert/Höhe) [m]. + + :param pfad_datenbank: Pfad zur SQLite-Datenbank (für Koordinaten-/Transformationszugriffe). + :type pfad_datenbank: str + :param pfad_tif_quasigeoidundulation: Pfad zu Quasigeoidundulationsdaten als GeoTIFF (optional, für Höhen/PROJ). + :type pfad_tif_quasigeoidundulution: str | None + :param dict_koordinaten_ausgleichungsergebnis: Dictionary der ausgeglichenen ECEF-Koordinaten je Punkt. + :type dict_koordinaten_ausgleichungsergebnis: dict + :return: Tuple aus DataFrame der ECEF-Koordinaten (XYZ) und DataFrame der UTM-Koordinaten. + :rtype: tuple[pandas.DataFrame, pandas.DataFrame] + """ + + # Transformation initialisieren + trafos = Transformationen(pfad_datenbank) + + dict_koordinaten_utm = trafos.ecef_to_utm( + dict_koordinaten_ausgleichungsergebnis, + pfad_tif_quasigeoidundulation + ) + + namen = list(dict_koordinaten_ausgleichungsergebnis.keys()) + + # SymPy-Matrizen zu Liste + koordinaten_liste = [] + for k in namen: + matrix_werte = dict_koordinaten_ausgleichungsergebnis[k] + koordinaten_liste.append([ + float(matrix_werte[0]), + float(matrix_werte[1]), + float(matrix_werte[2]) + ]) + + # DataFrame geozentrisch + df_x_final = pd.DataFrame( + koordinaten_liste, + columns=['X [m]', 'Y [m]', 'Z [m]'], + index=namen + ) + df_x_final.index.name = 'Punktnummer' + + # DataFrame UTM + utm_flach = { + k: np.array(v).flatten().tolist() + for k, v in dict_koordinaten_utm.items() + } + + df_utm_final = pd.DataFrame.from_dict( + utm_flach, + orient='index', + columns=['Rechtswert [m]', 'Hochwert [m]', 'Höhe [m]'] + ) + df_utm_final.index.name = 'Punktnummer' + + # Zahlenformatierung + df_x_final = df_x_final.map(lambda val: f"{val:.4f}") + df_utm_final = df_utm_final.map(lambda val: f"{val:.4f}") + + return df_x_final, df_utm_final + + def speichere_html_protokoll(metadaten: dict, ergebnisse: dict) -> None: """Erzeugt ein HTML-Protokoll der Ausgleichungsergebnisse und speichert es als Datei. @@ -79,7 +157,6 @@ class Export: :return: None :rtype: None """ - for key in ergebnisse: wert = ergebnisse[key] @@ -92,7 +169,7 @@ class Export: elif isinstance(wert, dict): ergebnisse[key] = pd.DataFrame([wert]) - # Pfad für den Ordner erstellen + # Pfad für den Ordner ordner = "Protokolle" if not os.path.exists(ordner): os.makedirs(ordner) @@ -100,7 +177,7 @@ class Export: dateiname = f"{ordner}/Protokoll_{metadaten['projekt']}.html" abs_path = os.path.abspath(dateiname) - # HTML Inhalt zusammenbauen + # HTML Inhalt html_content = f""" @@ -211,39 +288,6 @@ class Export:

13. Koordinaten UTM

{ergebnisse['df_koordinaten_utm'].to_html(index=True)} -

1. Globaltest

- {ergebnisse['df_globaltest'].to_html(index=False)} - -

2. Redundanzanteile

- {ergebnisse['df_redundanz'].to_html(index=False)} - -

2. Lokaltest (data snooping)

- {ergebnisse['df_lokaltest'].to_html(index=False)} - -

2. Varianzkomponentenschätzung

- {ergebnisse['df_vks'].to_html(index=False)} - -

2. Äussere Zuverlässigkeit

- {ergebnisse['df_aeussere_zuver'].to_html(index=False)} - -

2. Standardabweichungen und Helmert'scher Punktfehler

- {ergebnisse['df_punktfehler'].to_html(index=False)} - -

3. Standardellipsen

- {ergebnisse['df_ellipsen'].to_html(index=False)} - -

3. Konfidenzellipsen

- {ergebnisse['df_konfidenzellipsen'].to_html(index=False)} - -

3. Konfidenzellipsen im ENU-System

- {ergebnisse['df_konfidenzellipsen_enu'].to_html(index=False)} - -

3. Koordinaten Geozentrisch Kartesisch

- {ergebnisse['df_koordinaten_geozentrisch_kartesisch'].to_html(index=True)} - -

3. Koordinaten UTM

- {ergebnisse['df_koordinaten_utm'].to_html(index=True)} - diff --git a/Funktionales_Modell.py b/Funktionales_Modell.py index 65d1078..6db91d8 100644 --- a/Funktionales_Modell.py +++ b/Funktionales_Modell.py @@ -28,7 +28,7 @@ class FunktionalesModell: 2) In jeder Iteration Substituieren der Symbolischen Matrizen in Numerische np.asarrays """ - def __init__(self, pfad_datenbank: str, a: float, b: float, pfad_tif_quasigeoidundolation: str = None) -> None: + def __init__(self, pfad_datenbank: str, a: float, b: float, pfad_tif_quasigeoidundulation: str = None) -> None: """Initialisiert das funktionale Modell. Legt die Ellipsoidparameter a und b fest, initialisiert Hilfsklassen (Berechnungen, Datenbankzugriff, Transformationen) @@ -40,8 +40,8 @@ class FunktionalesModell: :type a: float :param b: Kleine Halbachse b des Referenzellipsoids in Meter. :type b: float - :param pfad_tif_quasigeoidundolation: Pfad zu Quasigeoidundulationsdaten als GeoTIFF vom BKG für Transformationen (optional). - :type pfad_tif_quasigeoidundolation: str | None + :param pfad_tif_quasigeoidundulation: Pfad zu Quasigeoidundulationsdaten als GeoTIFF vom BKG für Transformationen (optional). + :type pfad_tif_quasigeoidundulation: str | None :return: None :rtype: None """ @@ -51,7 +51,7 @@ class FunktionalesModell: self.berechnungen = Berechnungen(self.a, self.b) self.db_zugriff = Datenbankzugriff(self.pfad_datenbank) self.trafos = Transformationen(pfad_datenbank) - self.pfad_tif_quasigeoidundolation = pfad_tif_quasigeoidundolation + self.pfad_tif_quasigeoidundulation = pfad_tif_quasigeoidundulation self.substitutionen_dict = self.dict_substitutionen_uebergeordnetes_system() self.dict_punkt_symbole = {} self.liste_symbole_lambdify = sorted(self.substitutionen_dict.keys(), key=lambda s: str(s)) @@ -889,7 +889,7 @@ class FunktionalesModell: dict_koordinaten_utm = self.trafos.ecef_to_utm( dict_koordinaten_niv, - self.pfad_tif_quasigeoidundolation) + self.pfad_tif_quasigeoidundulation) # Zuweisen der Symbole zu dem jeweiligen numerischen Wert. Gespeichert wird dies in einem Dictionary. substitutionen = {} diff --git a/Koordinatentransformationen.py b/Koordinatentransformationen.py index c0fb9f8..447e250 100644 --- a/Koordinatentransformationen.py +++ b/Koordinatentransformationen.py @@ -350,7 +350,7 @@ class Transformationen: ]) return dict_transformiert - def utm_to_XYZ(self, pfad_tif_quasigeoidundolation: str, liste_utm: list) -> dict[Any, Any]: + def utm_to_XYZ(self, pfad_tif_quasigeoidundulation: str, liste_utm: list) -> dict[Any, Any]: """Rechnet UTM-Koordinaten (ETRS89 / UTM + DHHN2016) in ECEF-Koordinaten (ETRS89 geozentrisch-kartesisch) um. Es wird ein PROJ-Transformer von: @@ -361,15 +361,15 @@ class Transformationen: initialisiert. Zusätzlich wird ein BKG-GeoTIFF (Quasigeoidunndulation) in den PROJ-Datenpfad eingebunden, indem eine Kopie mit dem erwarteten Dateinamen "de_bkg_gcg2016.tif" im selben Ordner erzeugt wird. - :param pfad_tif_quasigeoidundolation: Pfad zur BKG-GeoTIFF-Datei (Quasigeoidundulation). - :type pfad_tif_quasigeoidundolation: str + :param pfad_tif_quasigeoidundulation: Pfad zur BKG-GeoTIFF-Datei (Quasigeoidundulation). + :type pfad_tif_quasigeoidundulation: str :param liste_utm: Liste von UTM-Koordinaten in der Form [(punktnummer, E, N, Normalhoehe), ...]. :type liste_utm: list :return: Dictionary {punktnummer: sp.Matrix([X, Y, Z])} mit ECEF-Koordinaten (Meter). :rtype: dict[Any, Any] """ - # tif vom BKG zur Quasigeoidundolation übergeben - pfad_gcg_tif = Path(pfad_tif_quasigeoidundolation) + # tif vom BKG zur Quasigeoidundulation übergeben + pfad_gcg_tif = Path(pfad_tif_quasigeoidundulation) pfad_gcg_tif_proj = pfad_gcg_tif.with_name("de_bkg_gcg2016.tif") # Kopie des TIF anlegen (Dies ist voraussetzung für die Transformer-Bibliothek @@ -423,7 +423,7 @@ class Transformationen: :rtype: dict """ - # Kopie des TIF vom BKG mit der Quasigeoidundolation erstellen + # Kopie des TIF vom BKG mit der Quasigeoidundulation erstellen pfad_gcg_tif = Path(pfad_gcg_tif).resolve() pfad_proj_grid = pfad_gcg_tif.with_name("de_bkg_gcg2016.tif") if ( diff --git a/Parameterschaetzung.py b/Parameterschaetzung.py index 957f498..ea7271b 100644 --- a/Parameterschaetzung.py +++ b/Parameterschaetzung.py @@ -26,7 +26,7 @@ class Iterationen: Die Iteration verwendet bei weicher Lagerung eine erweiterte Kovarianzmatrix (Q_ext) inklusive Anschlusspunkten (lA_*), aus der die Gewichtsmatrix P abgeleitet wird. """ - def __init__(self, pfad_datenbank: str, pfad_tif_quasigeoidundolation: str, a: float, b: float) -> None: + def __init__(self, pfad_datenbank: str, pfad_tif_quasigeoidundulation: str, a: float, b: float) -> None: """Initialisiert die Iterationssteuerung. Speichert Datenbankpfade und Ellipsoidparameter, initialisiert das funktionale Modell sowie das stochastische Modell @@ -34,8 +34,8 @@ class Iterationen: :param pfad_datenbank: Pfad zur SQLite-Datenbank. :type pfad_datenbank: str - :param pfad_tif_quasigeoidundolation: Pfad zum GeoTIFF der Quasigeoidundulation (BKG), benötigt für UTM/Normalhöhen in Transformationen. - :type pfad_tif_quasigeoidundolation: str + :param pfad_tif_quasigeoidundulation: Pfad zum GeoTIFF der Quasigeoidundulation (BKG), benötigt für UTM/Normalhöhen in Transformationen. + :type pfad_tif_quasigeoidundulation: str :param a: Große Halbachse a des Referenzellipsoids in Meter. :type a: float :param b: Kleine Halbachse b des Referenzellipsoids in Meter. @@ -44,13 +44,13 @@ class Iterationen: :rtype: None """ self.pfad_datenbank = pfad_datenbank - self.pfad_tif_quasigeoidundolation = pfad_tif_quasigeoidundolation + self.pfad_tif_quasigeoidundulation = pfad_tif_quasigeoidundulation self.a = a self.b = b self.stoch_modell = Stochastisches_Modell.StochastischesModell(pfad_datenbank) self.db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank) - self.fm = Funktionales_Modell.FunktionalesModell(self.pfad_datenbank, self.a, self.b, self.pfad_tif_quasigeoidundolation) + self.fm = Funktionales_Modell.FunktionalesModell(self.pfad_datenbank, self.a, self.b, self.pfad_tif_quasigeoidundulation) def ausgleichung_global(self, A, dl, Q_ext, P):