Files
Masterprojekt-Campusnetz/Campusnetz.ipynb
2025-12-29 18:09:12 +01:00

1674 lines
78 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-12-29T13:46:25.300010Z",
"start_time": "2025-12-29T13:46:25.296440Z"
}
},
"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\n",
"import Datumsfestlegung"
],
"outputs": [],
"execution_count": 31
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:09:30.585227Z",
"start_time": "2025-12-29T13:09:30.575719Z"
}
},
"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": 5
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:09:33.764847Z",
"start_time": "2025-12-29T13:09:33.759865Z"
}
},
"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": 6
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:09:42.762900Z",
"start_time": "2025-12-29T13:09:42.749264Z"
}
},
"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": 7
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:09:47.101361Z",
"start_time": "2025-12-29T13:09:47.085989Z"
}
},
"cell_type": "code",
"source": [
"importlib.reload(Datenbank)\n",
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)\n",
"# Transformationen in ETRS89 / DREF91 Realisierung 2025\n",
"print(db_zugriff.get_koordinaten(\"naeherung_us\"))"
],
"id": "3989b7b41874c16a",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'10009': Matrix([\n",
"[3794767.4719546097],\n",
"[ 546740.0869962516],\n",
"[ 5080165.952124462]]), '10006': Matrix([\n",
"[3794766.3557482935],\n",
"[ 546707.6385009313],\n",
"[5080169.7334700795]]), '10010': Matrix([\n",
"[3794758.6366199246],\n",
"[ 546767.6665772106],\n",
"[5080169.4644999765]]), '10018': Matrix([\n",
"[3794762.2481267513],\n",
"[ 546797.6912507551],\n",
"[ 5080163.980380166]]), '10008': Matrix([\n",
"[3794783.8581],\n",
"[ 546746.6347],\n",
"[5080152.7404]]), '10005': Matrix([\n",
"[3794793.841662743],\n",
"[546722.3209011297],\n",
"[5080147.930942906]]), '10003': Matrix([\n",
"[3794841.051609108],\n",
"[546735.1152754558],\n",
"[5080111.543399332]]), '10004': Matrix([\n",
"[3794803.4594055074],\n",
"[ 546714.1406417021],\n",
"[ 5080141.382390101]]), '10007': Matrix([\n",
"[3794831.046531049],\n",
"[546758.7254701178],\n",
"[5080116.663324944]]), '10001': Matrix([\n",
"[3794901.5252],\n",
"[ 546745.559],\n",
"[5080065.7672]]), '10002': Matrix([\n",
"[3794866.9711],\n",
"[ 546729.5958],\n",
"[5080092.6364]]), '10016': Matrix([\n",
"[3794826.658374741],\n",
"[546788.7275390101],\n",
"[5080116.868237535]]), '10011': Matrix([\n",
"[3794894.922579663],\n",
"[546833.1159754294],\n",
"[5080061.151341954]]), '10026': Matrix([\n",
"[3794753.8595],\n",
"[ 546827.4296],\n",
"[5080167.0938]]), '10027': Matrix([\n",
"[3794757.591261769],\n",
"[546874.3314003296],\n",
"[5080159.317534195]]), '10043': Matrix([\n",
"[3794747.2737986287],\n",
"[ 546919.1497828952],\n",
"[ 5080162.149716094]]), '10044': Matrix([\n",
"[3794752.6696],\n",
"[ 546958.3218],\n",
"[5080154.2579]]), '10021': Matrix([\n",
"[3794776.0295716925],\n",
"[ 546833.7406948799],\n",
"[ 5080150.012973846]]), '10020': Matrix([\n",
"[ 3794782.610580881],\n",
"[ 546834.470509102],\n",
"[5080145.0361413695]]), '10024': Matrix([\n",
"[3794772.816135807],\n",
"[ 546857.095708699],\n",
"[5080149.834714163]]), '10025': Matrix([\n",
"[3794774.2085619094],\n",
"[ 546871.8107307912],\n",
"[ 5080147.359175114]]), '10022': Matrix([\n",
"[3794778.3371531744],\n",
"[ 546841.7501872958],\n",
"[ 5080147.275074134]]), '10023': Matrix([\n",
"[3794780.7952114563],\n",
"[ 546848.1012091675],\n",
"[ 5080144.924922213]]), '10019': Matrix([\n",
"[3794800.0946706245],\n",
"[ 546833.3239614451],\n",
"[ 5080131.724532257]]), '10033': Matrix([\n",
"[3794800.0160474544],\n",
"[ 546874.6524563388],\n",
"[ 5080127.204744104]]), '10017': Matrix([\n",
"[3794825.016154114],\n",
"[546831.6998861503],\n",
"[5080113.374792286]]), '10052': Matrix([\n",
"[3794743.6262089056],\n",
"[ 546984.415934838],\n",
"[ 5080157.831166813]]), '10042': Matrix([\n",
"[ 3794758.957179171],\n",
"[ 546937.0599021759],\n",
"[5080151.6103044115]]), '10053': Matrix([\n",
"[ 3794748.14608301],\n",
"[547017.5748381803],\n",
"[5080150.930072506]]), '10037': Matrix([\n",
"[3794800.5693],\n",
"[ 546960.7477],\n",
"[ 5080117.665]]), '10040': Matrix([\n",
"[3794780.720877459],\n",
"[546956.4249913145],\n",
"[5080133.161471092]]), '10041': Matrix([\n",
"[3794778.153328699],\n",
"[ 546925.877928891],\n",
"[5080138.722313838]]), '10038': Matrix([\n",
"[3794806.3233483736],\n",
"[ 546929.7308726012],\n",
"[ 5080116.89880491]]), '10051': Matrix([\n",
"[3794767.0574626415],\n",
"[ 546988.6993708528],\n",
"[ 5080139.997874675]]), '10036': Matrix([\n",
"[3794815.0546409036],\n",
"[ 546969.5966706082],\n",
"[ 5080106.064114862]]), '10035': Matrix([\n",
"[3794845.948751911],\n",
"[ 546961.512678588],\n",
"[5080084.087510971]]), '10039': Matrix([\n",
"[3794804.1623731344],\n",
"[ 546914.7316360716],\n",
"[ 5080120.139242563]]), '10059': Matrix([\n",
"[3794736.9649],\n",
"[ 547079.4678],\n",
"[5080152.3224]]), '10050': Matrix([\n",
"[3794766.7719544796],\n",
"[ 547012.5266236273],\n",
"[ 5080137.484970744]]), '10013': Matrix([\n",
"[3794849.6087244693],\n",
"[ 546826.8685540904],\n",
"[ 5080095.43002485]]), '10028': Matrix([\n",
"[3794889.7348],\n",
"[ 546908.7636],\n",
"[5080056.9381]]), '10012': Matrix([\n",
"[3794853.6002710722],\n",
"[ 546805.2364847381],\n",
"[ 5080094.889461209]]), '10014': Matrix([\n",
"[3794838.7464],\n",
"[ 546812.3658],\n",
"[ 5080105.2]]), '10031': Matrix([\n",
"[3794821.7594477106],\n",
"[ 546877.5480584177],\n",
"[ 5080110.746046175]]), '10015': Matrix([\n",
"[3794839.4650256806],\n",
"[ 546793.5165545414],\n",
"[5080106.7712153485]]), '10032': Matrix([\n",
"[3794807.848210704],\n",
"[546888.4861254627],\n",
"[5080119.745908576]]), '10030': Matrix([\n",
"[3794845.353156385],\n",
"[546901.0274418414],\n",
"[5080090.356531718]]), '10029': Matrix([\n",
"[3794845.026354165],\n",
"[546914.9167077399],\n",
"[5080089.099946169]]), '10034': Matrix([\n",
"[3794886.104894752],\n",
"[546965.6987415539],\n",
"[ 5080053.40592357]]), '10045': Matrix([\n",
"[3794881.900452307],\n",
"[547019.7835874384],\n",
"[5080050.715777841]]), '10049': Matrix([\n",
"[3794786.8907962884],\n",
"[ 547021.0765699627],\n",
"[ 5080121.444681106]]), '10048': Matrix([\n",
"[3794809.106679632],\n",
"[547017.3023106218],\n",
"[5080105.014391199]]), '10047': Matrix([\n",
"[3794831.5349817923],\n",
"[ 547018.2393882351],\n",
"[ 5080088.124038595]]), '10046': Matrix([\n",
"[3794846.5803718665],\n",
"[ 547012.9971156706],\n",
"[ 5080077.440420756]]), '10057': Matrix([\n",
"[3794800.819370702],\n",
"[ 547078.671611169],\n",
"[ 5080104.57270624]]), '10055': Matrix([\n",
"[3794838.851977278],\n",
"[ 547081.903863645],\n",
"[5080075.698247853]]), '10054': Matrix([\n",
"[3794889.0494],\n",
"[ 547086.9874],\n",
"[5080038.1528]]), '10058': Matrix([\n",
"[3794766.1088143717],\n",
"[ 547091.7542871874],\n",
"[ 5080129.120881729]]), '10056': Matrix([\n",
"[3794825.041003442],\n",
"[547094.8115741647],\n",
"[5080084.488768324]]), '0645': Matrix([\n",
"[3793994.4529],\n",
"[ 495758.0093],\n",
"[5085958.2047]]), '0648': Matrix([\n",
"[3762551.5682],\n",
"[ 538424.8576],\n",
"[5104809.1503]]), '0656': Matrix([\n",
"[3794838.5802],\n",
"[ 546995.3112],\n",
"[5080116.5503]]), '0995': Matrix([\n",
"[3794519.9177],\n",
"[ 588539.9138],\n",
"[5075743.9332]]), '1675': Matrix([\n",
"[3813621.0427],\n",
"[ 566004.8947],\n",
"[ 5064056.93]]), 'ESTE': Matrix([\n",
"[3816914.711],\n",
"[ 507636.812],\n",
"[5067733.467]]), 'GNA2': Matrix([\n",
"[3767530.6335],\n",
"[ 597990.0978],\n",
"[5094563.5073]])}\n"
]
}
],
"execution_count": 8
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:09:52.833233Z",
"start_time": "2025-12-29T13:09:52.822777Z"
}
},
"cell_type": "code",
"source": [
"importlib.reload(Import)\n",
"imp = Import.Import(pfad_datenbank)\n",
"\n",
"pfad_koordinaten_gnss = r\"Daten\\Koordinaten_OL_umliegend_bereinigt.csv\"\n",
"# X, Y, Z der SAPOS-Stationen\n",
"genauigkeit_sapos_referenzstationen = [0.05, 0.04, 0.09]\n",
"\n",
"imp.import_koordinaten_gnss(pfad_koordinaten_gnss, genauigkeit_sapos_referenzstationen)\n"
],
"id": "7b6a359712fe858e",
"outputs": [
{
"data": {
"text/plain": [
"'Import der Koordinaten aus stationärem GNSS abgeschlossen.'"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 9
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:09:56.446775Z",
"start_time": "2025-12-29T13:09:56.427918Z"
}
},
"cell_type": "code",
"source": [
"# Datumsgebende Koordinaten bestimmen\n",
"importlib.reload(Datenbank)\n",
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)\n",
"\n",
"liste_koordinaten_x = [10026]\n",
"liste_koordinaten_y = [10059]\n",
"liste_koordinaten_z = [10028]\n",
"liste_koordinaten_x_y_z = [10008, 10001]\n",
"\n",
"db_zugriff.set_datumskoordinaten(liste_koordinaten_x, liste_koordinaten_y, liste_koordinaten_z, liste_koordinaten_x_y_z)\n",
"\n",
"# Datumgebende Koordinaten entfernen\n",
"liste_koordinaten_x = [10026]\n",
"liste_koordinaten_y = [10059]\n",
"liste_koordinaten_z = [10028]\n",
"liste_koordinaten_x_y_z = [10001]\n",
"\n",
"db_zugriff.set_datumskoordinaten_to_neupunkte(liste_koordinaten_x, liste_koordinaten_y, liste_koordinaten_z, liste_koordinaten_x_y_z)"
],
"id": "5f786757ba89d5d0",
"outputs": [],
"execution_count": 10
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:10:06.185244Z",
"start_time": "2025-12-29T13:10:06.181284Z"
}
},
"cell_type": "code",
"source": [
"# ToDo: Sobald GNSS vorliegend Koordinaten im ETRS89 / DREF 91 (2025) daraus berechnen!\n",
"#liste_koordinaten_naeherung_us = {\n",
"# 10001: (3794874.984, 546741.752, 5080029.990),\n",
"# 10002: (3794842.533, 546726.907, 5080071.133),\n",
"# 10037: (3794774.148, 546955.423, 5080040.520),\n",
"# 10044: (3794725.786, 546954.557, 5080084.411),\n",
"#}\n",
"\n",
"\n",
"#con = sqlite3.connect(pfad_datenbank)\n",
"#cursor = con.cursor()\n",
"#sql = \"\"\"\n",
"#UPDATE Netzpunkte\n",
"#SET naeherungx_us = ?, naeherungy_us = ?, naeherungz_us = ?\n",
"#WHERE punktnummer = ?\n",
"#\"\"\"\n",
"#for punktnummer, (x, y, z) in #liste_koordinaten_naeherung_us.items():\n",
"# cursor.execute(sql, (x, y, z, punktnummer))\n",
"#con.commit()\n",
"#cursor.close()\n",
"#con.close()"
],
"id": "f64d9c01318b40f1",
"outputs": [],
"execution_count": 12
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:10:20.358701Z",
"start_time": "2025-12-29T13:10:08.609908Z"
}
},
"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)= 46.59145296840883\n",
"m0 ~ 0.999733250743331\n",
"Anzahl Ratios: 1711\n",
"min/mean/max: 0.9966158797615429 0.9999420515348254 1.0007101135088199\n",
"std: 0.0001589676515447617\n",
"S_loc: Matrix([[956.308098305085], [1838.78964237288], [99.9601016949153]])\n",
"S_ecef: Matrix([[3794806.8636068002], [546895.7494793105], [5080119.9940889809]])\n",
"Delta: Matrix([[3.79385e+6], [545057.], [5.08002e+6]])\n",
"10059 0.0006\n",
"10058 0.0004\n",
"10054 0.0004\n",
"10055 0.0003\n",
"10057 0.0003\n",
"10056 0.0002\n",
"10037 0.0002\n",
"10049 0.0002\n",
"10048 0.0001\n",
"10028 0.0001\n",
"10044 0.0001\n",
"10040 0.0001\n",
"10036 0.0001\n",
"10047 0.0001\n",
"10014 0.0001\n",
"10046 0.0001\n",
"10026 0.0001\n",
"10050 0.0001\n",
"10029 0.0001\n",
"10051 0.0001\n",
"10030 0.0001\n",
"10035 0.0001\n",
"10045 0.0001\n",
"10038 0.0001\n",
"10034 0.0001\n",
"10012 0.0001\n",
"10052 0.0001\n",
"10001 0.0001\n",
"10053 0.0001\n",
"10041 0.0001\n",
"10039 0.0001\n",
"10013 0.0001\n",
"10042 0.0001\n",
"10018 0.0001\n",
"10031 0.0001\n",
"10032 0.0001\n",
"10043 0.0001\n",
"10008 0.0001\n",
"10002 0.0001\n",
"10011 0.0001\n",
"10017 0.0001\n",
"10027 0.0001\n",
"10033 0.0001\n",
"10024 0.0001\n",
"10025 0.0\n",
"10016 0.0\n",
"10023 0.0\n",
"10019 0.0\n",
"10022 0.0\n",
"10010 0.0\n",
"10020 0.0\n",
"10021 0.0\n",
"10005 0.0\n",
"10015 0.0\n",
"10007 0.0\n",
"10003 0.0\n",
"10004 0.0\n",
"10009 0.0\n",
"10006 0.0\n",
"Anzahl gemeinsame Punkte: 59\n",
"\n",
"Erste Zielpunkte:\n",
"10001 [3794901.5252, 546745.559, 5080065.7672]\n",
"10002 [3794866.9711, 546729.5958, 5080092.6364]\n",
"10003 [3794841.051609108, 546735.1152754558, 5080111.543399332]\n",
"10004 [3794803.4594055074, 546714.1406417021, 5080141.3823901005]\n",
"10005 [3794793.841662743, 546722.3209011297, 5080147.930942906]\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.9966158797615429 0.9999420515348254 1.0007101135088199\n",
"R ist nicht Orthonormal!\n",
"Iteration Nr.1 abgeschlossen\n",
"Matrix([[-12.2], [2.70], [-2.05], [-0.0294], [-0.302], [0.0123], [0.236]])\n",
"Iteration Nr.2 abgeschlossen\n",
"Matrix([[5.71], [-4.20], [-6.60], [0.0294], [-0.00421], [-0.0138], [0.00255]])\n",
"Iteration Nr.3 abgeschlossen\n",
"Matrix([[-0.0369], [0.0586], [0.0315], [2.78e-5], [0.000148], [0.000408], [-0.000136]])\n",
"Iteration Nr.4 abgeschlossen\n",
"Matrix([[-6.79e-5], [4.31e-5], [-7.44e-6], [3.17e-8], [1.62e-8], [2.83e-8], [-5.66e-8]])\n",
"Iteration Nr.5 abgeschlossen\n",
"Matrix([[-8.17e-10], [2.40e-10], [3.50e-10], [-4.99e-15], [6.67e-13], [2.62e-12], [3.47e-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.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",
"x = Matrix([[3.80e+6], [5.49e+5], [5.08e+6], [1.00], [-0.156], [0.627], [3.26]])\n",
"\n",
"l_berechnet_final:\n",
"10001: 3794901.510, 546745.579, 5080065.739\n",
"10002: 3794867.000, 546729.613, 5080092.680\n",
"10003: 3794841.052, 546735.115, 5080111.543\n",
"10004: 3794803.459, 546714.141, 5080141.382\n",
"10005: 3794793.842, 546722.321, 5080147.931\n",
"10006: 3794766.356, 546707.639, 5080169.733\n",
"10007: 3794831.047, 546758.725, 5080116.663\n",
"10008: 3794783.863, 546746.642, 5080152.749\n",
"10009: 3794767.472, 546740.087, 5080165.952\n",
"10010: 3794758.637, 546767.667, 5080169.464\n",
"10011: 3794894.923, 546833.116, 5080061.151\n",
"10012: 3794853.600, 546805.236, 5080094.889\n",
"10013: 3794849.609, 546826.869, 5080095.430\n",
"10014: 3794838.739, 546812.364, 5080105.171\n",
"10015: 3794839.465, 546793.517, 5080106.771\n",
"10016: 3794826.658, 546788.728, 5080116.868\n",
"10017: 3794825.016, 546831.700, 5080113.375\n",
"10018: 3794762.248, 546797.691, 5080163.980\n",
"10019: 3794800.095, 546833.324, 5080131.725\n",
"10020: 3794782.611, 546834.471, 5080145.036\n",
"10021: 3794776.030, 546833.741, 5080150.013\n",
"10022: 3794778.337, 546841.750, 5080147.275\n",
"10023: 3794780.795, 546848.101, 5080144.925\n",
"10024: 3794772.816, 546857.096, 5080149.835\n",
"10025: 3794774.209, 546871.811, 5080147.359\n",
"10026: 3794753.855, 546827.443, 5080167.088\n",
"10027: 3794757.591, 546874.331, 5080159.318\n",
"10028: 3794889.666, 546908.762, 5080056.912\n",
"10029: 3794845.026, 546914.917, 5080089.100\n",
"10030: 3794845.353, 546901.027, 5080090.357\n",
"10031: 3794821.759, 546877.548, 5080110.746\n",
"10032: 3794807.848, 546888.486, 5080119.746\n",
"10033: 3794800.016, 546874.652, 5080127.205\n",
"10034: 3794886.105, 546965.699, 5080053.406\n",
"10035: 3794845.949, 546961.513, 5080084.088\n",
"10036: 3794815.055, 546969.597, 5080106.064\n",
"10037: 3794800.626, 546960.749, 5080117.708\n",
"10038: 3794806.323, 546929.731, 5080116.899\n",
"10039: 3794804.162, 546914.732, 5080120.139\n",
"10040: 3794780.721, 546956.425, 5080133.161\n",
"10041: 3794778.153, 546925.878, 5080138.722\n",
"10042: 3794758.957, 546937.060, 5080151.610\n",
"10043: 3794747.274, 546919.150, 5080162.150\n",
"10044: 3794752.687, 546958.324, 5080154.240\n",
"10045: 3794881.900, 547019.784, 5080050.716\n",
"10046: 3794846.580, 547012.997, 5080077.440\n",
"10047: 3794831.535, 547018.239, 5080088.124\n",
"10048: 3794809.107, 547017.302, 5080105.014\n",
"10049: 3794786.891, 547021.077, 5080121.445\n",
"10050: 3794766.772, 547012.527, 5080137.485\n",
"10051: 3794767.057, 546988.699, 5080139.998\n",
"10052: 3794743.626, 546984.416, 5080157.831\n",
"10053: 3794748.146, 547017.575, 5080150.930\n",
"10054: 3794889.165, 547086.950, 5080038.116\n",
"10055: 3794838.852, 547081.904, 5080075.698\n",
"10056: 3794825.041, 547094.812, 5080084.489\n",
"10057: 3794800.819, 547078.672, 5080104.573\n",
"10058: 3794766.109, 547091.754, 5080129.121\n",
"10059: 3794736.836, 547079.449, 5080152.372\n",
"Streckendifferenzen:\n",
"[0.037854, 0.054708, 0.0, 0.0, 0.0, 0.0, 0.0, 0.012057, 0.0, 0.0, 0.0, 0.0, 0.0, 0.029525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.015332, 0.0, 0.073156, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.071369, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.025069, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.127425, 0.0, 0.0, 0.0, 0.0, 0.139397]\n",
"\n",
"Differenz Schwerpunkt (Vektor):\n",
"Matrix([[7.73e-11], [9.13e-12], [-5.84e-10]])\n",
"Betrag der Schwerpunkt-Differenz:\n",
"0.000m\n"
]
}
],
"execution_count": 13
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:10:24.157067Z",
"start_time": "2025-12-29T13:10:24.140150Z"
}
},
"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": 14
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:10:27.297216Z",
"start_time": "2025-12-29T13:10:27.286302Z"
}
},
"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": 15
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:10:30.201069Z",
"start_time": "2025-12-29T13:10:30.189607Z"
}
},
"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": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 16
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:10:32.995106Z",
"start_time": "2025-12-29T13:10:32.986293Z"
}
},
"cell_type": "code",
"source": [
"#Importieren der apriori Genauigkeitsinformationen\n",
"#Zulässige Beobachtungsarten = \"Tachymeter_Richtung\", \"Tachymeter_Strecke\"\n",
"# Wenn Beobachtungsart = \"Tachymeter_Richtung\" --> Übergabe in Milligon und nur Stabw_apriori_konst\n",
"# Wenn Beobachtungsart = \"Tachymeter_Strecke\" --> Übergabe Stabw_apriori_konst in Millimeter und Stabw_apriori_streckenprop in ppm\n",
"\n",
"importlib.reload(Datenbank)\n",
"db_zugriff = Datenbank.Datenbankzugriff(pfad_datenbank)\n",
"importlib.reload(Berechnungen)\n",
"\n",
"db_zugriff.set_genauigkeiten(1, \"Tachymeter_Richtung\", 0.15)\n",
"db_zugriff.set_genauigkeiten(1, \"Tachymeter_Strecke\", 0.8, 1)\n",
"db_zugriff.set_genauigkeiten(1, \"Tachymeter_Zenitwinkel\", 0.15)"
],
"id": "97e24245ce3398a2",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Die Genauigkeitsangabe ist bereits in der Datenbank vorhanden.\n",
"Die Genauigkeitsangabe ist bereits in der Datenbank vorhanden.\n",
"Die Genauigkeitsangabe ist bereits in der Datenbank vorhanden.\n"
]
}
],
"execution_count": 17
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:10:35.929702Z",
"start_time": "2025-12-29T13:10:35.921330Z"
}
},
"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": 18
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:12:42.526508Z",
"start_time": "2025-12-29T13:10:38.393137Z"
}
},
"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": 19
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:13:18.510164Z",
"start_time": "2025-12-29T13:13:11.710417Z"
}
},
"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": 20
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:13:48.405156Z",
"start_time": "2025-12-29T13:13:48.269184Z"
}
},
"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": 21
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:14:25.071524Z",
"start_time": "2025-12-29T13:14:22.267261Z"
}
},
"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": 22
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:14:57.047099Z",
"start_time": "2025-12-29T13:14:56.136028Z"
}
},
"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": 23
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:16:10.264427Z",
"start_time": "2025-12-29T13:15:28.535100Z"
}
},
"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": 24
},
{
"metadata": {},
"cell_type": "code",
"source": "",
"id": "8e2aa544249c9d29",
"outputs": [],
"execution_count": null
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T14:28:18.492319Z",
"start_time": "2025-12-29T14:28:18.482749Z"
}
},
"cell_type": "code",
"source": [
"import importlib\n",
"import Netzqualität_Genauigkeit\n",
"importlib.reload(Netzqualität_Genauigkeit)\n",
"\n",
"import Parameterschaetzung\n",
"importlib.reload(Parameterschaetzung)\n"
],
"id": "b479d3a946400ff6",
"outputs": [
{
"data": {
"text/plain": [
"<module 'Parameterschaetzung' from 'C:\\\\Users\\\\miche\\\\PycharmProjects\\\\Masterprojekt-Campusnetz\\\\Parameterschaetzung.py'>"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 38
},
{
"metadata": {},
"cell_type": "code",
"source": "",
"id": "5d47e0771b22eb0b",
"outputs": [],
"execution_count": null
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:17:14.383119Z",
"start_time": "2025-12-29T13:17:14.116559Z"
}
},
"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": [
{
"ename": "NameError",
"evalue": "name 'liste_beobachtungsvektor_symbolisch' is not defined",
"output_type": "error",
"traceback": [
"\u001B[31m---------------------------------------------------------------------------\u001B[39m",
"\u001B[31mNameError\u001B[39m Traceback (most recent call last)",
"\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[25]\u001B[39m\u001B[32m, line 13\u001B[39m\n\u001B[32m 8\u001B[39m importlib.reload(Export)\n\u001B[32m 11\u001B[39m stoch_modell = Stochastisches_Modell.StochastischesModell(A_matrix_numerisch_iteration0.rows)\n\u001B[32m---> \u001B[39m\u001B[32m13\u001B[39m dx = Parameterschaetzung.ausgleichung_global(A_matrix_numerisch_iteration0, \u001B[43mfm\u001B[49m\u001B[43m.\u001B[49m\u001B[43mberechnung_dl\u001B[49m\u001B[43m(\u001B[49m\u001B[43mbeobachtungsvektor_numerisch\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mbeobachtungsvektor_naeherung_numerisch_iteration0\u001B[49m\u001B[43m)\u001B[49m, stoch_modell)[\u001B[32m1\u001B[39m]\n",
"\u001B[36mFile \u001B[39m\u001B[32m~\\PycharmProjects\\Masterprojekt-Campusnetz\\Funktionales_Modell.py:636\u001B[39m, in \u001B[36mFunktionalesModell.berechnung_dl\u001B[39m\u001B[34m(self, beobachtungsvektor_numerisch, beobachtungsvektor_naeherung_numerisch)\u001B[39m\n\u001B[32m 634\u001B[39m \u001B[38;5;28;01mdef\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[34mberechnung_dl\u001B[39m(\u001B[38;5;28mself\u001B[39m, beobachtungsvektor_numerisch, beobachtungsvektor_naeherung_numerisch):\n\u001B[32m 635\u001B[39m dl = beobachtungsvektor_numerisch - beobachtungsvektor_naeherung_numerisch\n\u001B[32m--> \u001B[39m\u001B[32m636\u001B[39m \u001B[38;5;28;01mfor\u001B[39;00m i, name \u001B[38;5;129;01min\u001B[39;00m \u001B[38;5;28menumerate\u001B[39m(\u001B[43mliste_beobachtungsvektor_symbolisch\u001B[49m):\n\u001B[32m 637\u001B[39m \u001B[38;5;28;01mif\u001B[39;00m \u001B[33m\"\u001B[39m\u001B[33m_R_\u001B[39m\u001B[33m\"\u001B[39m \u001B[38;5;129;01min\u001B[39;00m name:\n\u001B[32m 638\u001B[39m dl[i] = sp.atan2(sp.sin(dl[i]), sp.cos(dl[i])) \u001B[38;5;66;03m# wrap auf (-pi, pi]\u001B[39;00m\n",
"\u001B[31mNameError\u001B[39m: name 'liste_beobachtungsvektor_symbolisch' is not defined"
]
}
],
"execution_count": 25
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T13:02:47.802282Z",
"start_time": "2025-12-29T13:02:47.633015Z"
}
},
"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": [
{
"ename": "NameError",
"evalue": "name 'importlib' is not defined",
"output_type": "error",
"traceback": [
"\u001B[31m---------------------------------------------------------------------------\u001B[39m",
"\u001B[31mNameError\u001B[39m Traceback (most recent call last)",
"\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[1]\u001B[39m\u001B[32m, line 3\u001B[39m\n\u001B[32m 1\u001B[39m \u001B[38;5;66;03m# Von Fabian\u001B[39;00m\n\u001B[32m----> \u001B[39m\u001B[32m3\u001B[39m \u001B[43mimportlib\u001B[49m.reload(Funktionales_Modell)\n\u001B[32m 4\u001B[39m fm = Funktionales_Modell.FunktionalesModell(pfad_datenbank, a, b)\n\u001B[32m 5\u001B[39m importlib.reload(Export)\n",
"\u001B[31mNameError\u001B[39m: name 'importlib' is not defined"
]
}
],
"execution_count": 1
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-12-29T16:44:01.619913Z",
"start_time": "2025-12-29T16:06:35.877681Z"
}
},
"cell_type": "code",
"source": [
"import sympy as sp\n",
"\n",
"# -----------------------------\n",
"# 1) Punktliste aus Unbekannten ableiten (konsistent zur A-Matrix!)\n",
"# -----------------------------\n",
"liste_punktnummern = []\n",
"for sym in Jacobimatrix_symbolisch_liste_unbekannte:\n",
" name = str(sym)\n",
" if name.startswith(\"X\"): # X10001, X10002, ...\n",
" liste_punktnummern.append(name[1:]) # \"10001\", ...\n",
"\n",
"# -----------------------------\n",
"# 2) idx_X / idx_Y / idx_Z passend zur Punktliste\n",
"# (weil Unbekanntenreihenfolge pro Punkt: X,Y,Z)\n",
"# -----------------------------\n",
"nP = len(liste_punktnummern)\n",
"idx_X = [3*p for p in range(nP)]\n",
"idx_Y = [3*p + 1 for p in range(nP)]\n",
"idx_Z = [3*p + 2 for p in range(nP)]\n",
"\n",
"# -----------------------------\n",
"# 3) Datumsauswahl (gemischt möglich) -> aktive Indizes\n",
"# -----------------------------\n",
"auswahl = [(pt, c) for pt in liste_punktnummern for c in (\"X\",\"Y\",\"Z\")]\n",
"\n",
"aktive_unbekannte_indices = Datumsfestlegung.Datumsfestlegung.datumskomponenten(\n",
" auswahl,\n",
" liste_punktnummern\n",
")\n",
"\n",
"# -----------------------------\n",
"# 4) Startwerte x(0) aus den vorhandenen Substitutionen (Iteration 0)\n",
"# Alles, was nicht im Dict ist (z.B. Orientierungen), wird 0.0 gesetzt.\n",
"# -----------------------------\n",
"basis_subs = fm.substitutionen_dict\n",
"\n",
"x = sp.Matrix([[float(basis_subs.get(sym, 0.0))] for sym in Jacobimatrix_symbolisch_liste_unbekannte])\n",
"\n",
"# -----------------------------\n",
"# 5) Iteration (Gauss-Newton) mit lokaler Ausgleichung + Teilspur\n",
"# -----------------------------\n",
"max_iter = 1\n",
"tol = 1e-4 # m; z.B. 0.1 mm. Wenn zu streng/locker: anpassen.\n",
"\n",
"for it in range(max_iter):\n",
"\n",
" # a) Substitutionen für diese Iteration: Basis + aktuelle Unbekannte\n",
" subs_it = dict(basis_subs)\n",
" for sym, val in zip(Jacobimatrix_symbolisch_liste_unbekannte, list(x)):\n",
" subs_it[sym] = float(val)\n",
"\n",
" # b) A(x) numerisch aus symbolischer Jacobi\n",
" A_it = Jacobimatrix_symbolisch.xreplace(subs_it)\n",
"\n",
" # c) l0(x) numerisch aus symbolischem Näherungs-Beobachtungsvektor\n",
" l0_it = beobachtungsvektor_naeherung_symbolisch.xreplace(subs_it)\n",
"\n",
" # d) dl = l - l0\n",
" dl_it = beobachtungsvektor_numerisch - l0_it\n",
"\n",
" # e) lokale Ausgleichung (dein bestehender Code!)\n",
" res_dict, dx = Parameterschaetzung.ausgleichung_lokal(\n",
" A=A_it,\n",
" dl=dl_it,\n",
" Q_ll=Qll_matrix_numerisch,\n",
" x0=x,\n",
" liste_punktnummern=liste_punktnummern,\n",
" auswahl=auswahl,\n",
" mit_massstab=False\n",
" )\n",
"\n",
" x = x + dx\n",
"\n",
" # f) Abbruchkriterium\n",
" max_abs_dx = max(abs(float(v)) for v in dx)\n",
" print(\n",
" f\"Iter {it}: max|dx| = {max_abs_dx:.3e} m, \"\n",
" f\"r_gesamt={res_dict.get('r_gesamt', None)}, \"\n",
" f\"sigma0={res_dict.get('sigma0_apost', None)}\"\n",
" )\n",
" print(\"l :\", float(beobachtungsvektor_numerisch[0]))\n",
" print(\"l0 :\", float(l0_it[0]))\n",
" print(\"dl :\", float(dl_it[0]))\n",
"\n",
"\n",
" if max_abs_dx < tol:\n",
" print(\"Konvergenz erreicht.\")\n",
" break\n",
"\n",
"# Ergebnis: x enthält die geschätzten Unbekannten nach letzter Iteration\n",
"x\n"
],
"id": "c37670a07848d977",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Iter 0: max|dx| = 5.576e+05 m, r_gesamt=2398, sigma0=66747.54343977304\n",
"l : 32.6886\n",
"l0 : 32.687143340662246\n",
"dl : 0.001456659337755184\n"
]
},
{
"data": {
"text/plain": [
"Matrix([\n",
"[ 3818893.1002578018 - 737.85522492468756*pi],\n",
"[ 4328.5899825261752*pi + 405439.44364535676],\n",
"[ 13983.221436640867*pi + 4622232.9307992837],\n",
"[ 3821365.1355666628 - 815.1367077051672*pi],\n",
"[ 4693.5933350529297*pi + 393815.81005406208],\n",
"[ 17033.51311415252*pi + 4523665.7075796323],\n",
"[ 3819750.9318870091 - 763.80932478612284*pi],\n",
"[ 4661.8419277058513*pi + 394532.92184573532],\n",
"[ 11255.817225216372*pi + 4710277.7910063666],\n",
"[ 3816590.6876307908 - 666.42676459907178*pi],\n",
"[ 4141.3744529303095*pi + 411402.92644731695],\n",
"[ 8496.9078016419607*pi + 4800306.6638647233],\n",
"[ 3812920.8368677677 - 554.01050487679109*pi],\n",
"[ 3075.8456001039343*pi + 446202.35193865415],\n",
"[ 13574.265890078105*pi + 4635023.5928000105],\n",
"[ 3811410.1901551241 - 507.56249695896202*pi],\n",
"[ 2616.1954269968116*pi + 461117.38283065111],\n",
"[ 16015.912455154882*pi + 4556362.5346609247],\n",
"[ 3795084.5338148024 - 3.6082157173559446*pi],\n",
"[ 573503.46976725843 - 850.24507365770406*pi],\n",
"[ 15452.714103801781*pi + 4574601.808911155],\n",
"[ 3808735.0231794869 - 423.57652974495208*pi],\n",
"[ 1982.2221860747791*pi + 481351.00540286555],\n",
"[ 16924.960312279039*pi + 4527125.8845619729],\n",
"[ 3796750.9910023427 - 56.348466380947585*pi],\n",
"[ 557624.93528503361 - 350.14718251030153*pi],\n",
"[ 13072.562976037087*pi + 4651100.1517888608],\n",
"[ 622.7489041222588*pi + 3774696.6535086434],\n",
"[ 714846.64091410942 - 5188.5837266806048*pi],\n",
"[ 15285.078291066407*pi + 4579804.7845831453],\n",
"[ 251.32839046082268*pi + 3786913.1381044779],\n",
"[ 631869.37834933362 - 2668.6217740395293*pi],\n",
"[ 16328.826579745884*pi + 4546274.3357638907],\n",
"[ 3796092.8220385821 - 36.233314432102818*pi],\n",
"[ 556917.45487524402 - 327.60441215518087*pi],\n",
"[ 10192.500790740601*pi + 4744691.4776616818],\n",
"[ 749.39077289083794*pi + 3770486.3543850614],\n",
"[ 728825.3899275877 - 5598.9760283467376*pi],\n",
"[ 6996.8312342426291*pi + 4850041.4685192714],\n",
"[ 3817216.2494106891 - 685.19405585169178*pi],\n",
"[ 4434.6816673358821*pi + 401739.83923355447],\n",
"[ 5592.7006355323527*pi + 4894904.4228892043],\n",
"[ 3812631.1520275447 - 545.33823253528673*pi],\n",
"[ 3706.9142002870764*pi + 425601.03008599522],\n",
"[ 1284.2201935297601*pi + 5036385.1131891192],\n",
"[ 3812758.2367058692 - 548.61170798862256*pi],\n",
"[ 3972.078998157546*pi + 416758.66260245343],\n",
"[ 5177894.5635556449 - 3028.4351052516466*pi],\n",
"[ 3808309.9111087778 - 413.74124580370839*pi],\n",
"[ 3235.6531514305249*pi + 441036.52399321919],\n",
"[ 5295090.2117770848 - 6571.1829037749283*pi],\n",
"[ 3809549.8572247747 - 451.2642576974755*pi],\n",
"[ 2827.7690290963704*pi + 454451.51185483087],\n",
"[ 5302.8476712363046*pi + 4904395.0620705043],\n",
"[ 3807345.9261833101 - 383.80126260782683*pi],\n",
"[ 2358.1022618979169*pi + 469793.5688573912],\n",
"[ 5330.6612520204948*pi + 4903691.7432894132],\n",
"[ 3808891.2350194483 - 431.13559176860655*pi],\n",
"[ 2812.6221422189965*pi + 454929.80127991237],\n",
"[ 3091.2769590025688*pi + 4977111.7334320142],\n",
"[ 3807434.4254229034 - 386.81417842372429*pi],\n",
"[ 2580.6717141994041*pi + 462546.16580124491],\n",
"[ 1748.4802993797597*pi + 5021416.3646937196],\n",
"[ 3808147.244500995 - 408.42280645085846*pi],\n",
"[ 2570.3459949321803*pi + 462869.84172599539],\n",
"[ 4595.2542246266394*pi + 4927804.6709259286],\n",
"[ 3806955.7753766209 - 372.21680855586368*pi],\n",
"[ 2350.3260129764263*pi + 470110.95952792385],\n",
"[ 4040.6237678027655*pi + 4946099.1592044648],\n",
"[ 3801521.975101219 - 204.40762016200714*pi],\n",
"[ 1093.8524735055163*pi + 510875.88121078314],\n",
"[ 5675.2518919218967*pi + 4892499.3432324009],\n",
"[ 3798498.0234904131 - 113.23406666888274*pi],\n",
"[ 677.45184211957092*pi + 524753.46252488057],\n",
"[ 1834.2522633708213*pi + 5018763.5065807811],\n",
"[ 42.054541050774524*pi + 3793488.9832267601],\n",
"[ 567563.82857808568 - 644.74405808649457*pi],\n",
"[ 6174.6787551591896*pi + 4876617.7007747009],\n",
"[ 3809233.4397486384 - 440.35065784776428*pi],\n",
"[ 3563.140710442087*pi + 429924.91437161088],\n",
"[ 5378732.2696185045 - 9113.2024074409515*pi],\n",
"[ 3807674.6187771416 - 393.82755841768026*pi],\n",
"[ 2981.850049451916*pi + 449258.48153918348],\n",
"[ 5227392.8210816115 - 4517.3955257703656*pi],\n",
"[ 3805369.7599582796 - 324.55680890170997*pi],\n",
"[ 2927.7910145615879*pi + 451154.97410330447],\n",
"[ 5477970.5368492504 - 12094.866402395949*pi],\n",
"[ 78.936084750327761*pi + 3792157.9805809473],\n",
"[ 553960.58519070875 - 206.64439062007353*pi],\n",
"[ 5281315.789992503 - 6145.7257180167937*pi],\n",
"[ 3799078.6533275386 - 131.64303654608462*pi],\n",
"[ 1247.1020216374694*pi + 506149.37429221254],\n",
"[ 5276897.2493565852 - 6012.3781033184775*pi],\n",
"[ 3802285.7614159859 - 229.61944223998547*pi],\n",
"[ 1769.2187067134015*pi + 489075.87524924479],\n",
"[ 5184756.061464847 - 3213.5710696892556*pi],\n",
"[ 66.810768699510771*pi + 3792593.7019851589],\n",
"[ 556423.59948131974 - 288.70664273928808*pi],\n",
"[ 5184064.6120676582 - 3190.7709859346396*pi],\n",
"[ 3801284.992470933 - 200.11077353592079*pi],\n",
"[ 1900.9329837896768*pi + 484954.24980601934],\n",
"[ 5381504.1864594443 - 9188.4238955546918*pi],\n",
"[ 240.83890270384008*pi + 3786834.3865799124],\n",
"[ 589765.18505728991 - 1294.7833053638013*pi],\n",
"[ 5301952.8141132837 - 6761.8514466332249*pi],\n",
"[ 530.55542670515943*pi + 3777373.764369206],\n",
"[ 657625.0800745653 - 3370.632238637531*pi],\n",
"[ 5263588.7616881222 - 5601.2767998747568*pi],\n",
"[ 11.501198492917698*pi + 3794390.007142749],\n",
"[ 18.727189418943683*pi + 546476.50998538384],\n",
"[ 5139325.8780376326 - 1838.0661185421392*pi],\n",
"[ 3804441.4178271467 - 294.06594501001473*pi],\n",
"[ 3046.445232026672*pi + 446684.9784821154],\n",
"[ 5671901.5879124684 - 17966.234679724164*pi],\n",
"[ 3799581.0823876432 - 148.97283095317598*pi],\n",
"[ 1669.7884660414067*pi + 492669.85693256252],\n",
"[ 5454362.6090994895 - 11384.300186264696*pi],\n",
"[ 280.42941900467754*pi + 3785713.9408972453],\n",
"[ 623002.4855995276 - 2343.1815974434071*pi],\n",
"[ 6959.9385310761425*pi + 4850975.4820240314],\n",
"[ 858.98888407042201*pi + 3766750.8236660621],\n",
"[ 741581.5342283135 - 5958.279240640573*pi],\n",
"[ 5083313.6847096839 - 117.55450307245135*pi],\n",
"[ 271.35978565719198*pi + 3786015.9587982511],\n",
"[ 624722.88999439351 - 2396.8165882840486*pi],\n",
"[ 9031.154540092889*pi + 4783159.8657129565],\n",
"[ 137.8410685494196*pi + 3790372.1573156521],\n",
"[ 592871.36235537477 - 1421.4697453865929*pi],\n",
"[ 8164.3898054348224*pi + 4811475.4571943544],\n",
"[ 111.65820002911889*pi + 3791188.8154603363],\n",
"[ 575554.74108085381 - 885.20202061393402*pi],\n",
"[ 1872.1159710909274*pi + 5018016.8435657948],\n",
"[ 103.11027534877328*pi + 3791531.987376912],\n",
"[ 588082.13545869006 - 1279.6940106298627*pi],\n",
"[ 9926.8550229206505*pi + 4753643.4791559134],\n",
"[ 3794872.0678150185 - 2.5448239302629139*pi],\n",
"[ 547740.68359333013 - 24.344946490171877*pi],\n",
"[ 658.7181951254788*pi + 5057539.1552539563],\n",
"[ 403.3189560283431*pi + 3781640.1773559118],\n",
"[ 638396.65416181283 - 2803.3649392444056*pi],\n",
"[ 2.2772586531434744*pi + 5079308.1121780763],\n",
"[ 429.57702397978187*pi + 3780737.285623705],\n",
"[ 642268.89486047349 - 2912.1772498675434*pi],\n",
"[ 5121840.784950068 - 1300.56440239387*pi],\n",
"[ 946.67940440290328*pi + 3763781.2306354953],\n",
"[ 752291.68579507206 - 6266.0312817743146*pi],\n",
"[ 5258684.0237641824 - 5447.500177191033*pi],\n",
"[ 1020.0218109697184*pi + 3761254.8812526641],\n",
"[ 760401.1393968886 - 6489.4519609027861*pi],\n",
"[ 5425674.7855797137 - 10508.475500122781*pi],\n",
"[ 70.717210922407746*pi + 3792316.1004227222],\n",
"[ 174.92620270065951*pi + 542144.72324536371],\n",
"[ 5471587.7140386902 - 11903.393827219654*pi],\n",
"[ 515.55920326436488*pi + 3777735.7728592655],\n",
"[ 644974.15306775392 - 2959.5849118375791*pi],\n",
"[ 5443221.6791245478 - 11043.446643937264*pi],\n",
"[ 656.33626466486609*pi + 3773170.9248678584],\n",
"[ 677937.51559866852 - 3975.2878875704991*pi],\n",
"[ 5420592.9380733427 - 10349.219323321096*pi],\n",
"[ 288.35220371295286*pi + 3785184.0545391556],\n",
"[ 592859.92809965671 - 1370.9832203050586*pi],\n",
"[ 5450274.7665355827 - 11261.558526724744*pi],\n",
"[ 340.87280870663539*pi + 3783462.0388330287],\n",
"[ 594059.50926314589 - 1409.8403412880893*pi],\n",
"[ 5641194.125799583 - 17032.789515004675*pi],\n",
"[ 728.09661705980331*pi + 3770684.691853563],\n",
"[ 683145.87588589017 - 4109.3258167104909*pi],\n",
"[ 5634231.8816169482 - 16824.447875311255*pi],\n",
"[ 1235.6978432928199*pi + 3754058.482992764],\n",
"[ 798957.2200615535 - 7641.641191753143*pi],\n",
"[ 5627581.2942685697 - 16625.401449392794*pi],\n",
"[ 22.205799809667697*pi + 3793936.1599356934],\n",
"[ 894.61946863638508*pi + 518236.40670643007],\n",
"[ 5696494.6455597901 - 18701.659693237619*pi],\n",
"[ 618.05701754385964*pi + 3774230.9045512002],\n",
"[ 655970.88165317531 - 3265.78083132944*pi],\n",
"[ 5679744.8257114995 - 18201.466493859699*pi],\n",
"[-3087.7092034152009 + 95.835169100884458*pi],\n",
"[-3089.6010723727716 + 96.319364055495075*pi],\n",
"[ -3090.0180666619282 + 95.70056891924761*pi],\n",
"[-3089.0447856590387 + 95.592288999661545*pi],\n",
"[ -3090.021407481698 + 96.164140652120263*pi],\n",
"[-3088.1365412371227 + 95.387051590778469*pi],\n",
"[-3092.5059680094975 + 95.466020667519175*pi],\n",
"[-3087.4583833992397 + 95.016203012985122*pi],\n",
"[ -3089.3619874016117 + 95.38742411984956*pi],\n",
"[-3090.2070514238138 + 95.144655561581601*pi],\n",
"[-3089.6030210839002 + 94.818418778986256*pi],\n",
"[-3087.0944164692242 + 94.351089199759365*pi],\n",
"[-3087.3555628687028 + 94.043896855083688*pi],\n",
"[ -3090.059194451668 + 94.545422754575815*pi],\n",
"[-3091.3807677951668 + 94.339055797210841*pi],\n",
"[-3086.5026131044292 + 93.842483361050271*pi],\n",
"[ -3088.1658778107423 + 93.8421692938099*pi],\n",
"[-3086.4934186289911 + 93.529908630994933*pi],\n",
"[-3090.1391075904576 + 93.283246210616056*pi],\n",
"[-3088.0853195433528 + 94.028959215310073*pi],\n",
"[-3088.4221910434936 + 93.569841265500657*pi],\n",
"[ -3087.921032708929 + 93.855244588010057*pi],\n",
"[ -3086.616487439335 + 93.971018358610754*pi],\n",
"[ -3087.6406393811471 + 93.65029611576464*pi],\n",
"[-3089.6038362965968 + 93.864448496073746*pi],\n",
"[-3088.3590411893442 + 94.052578822073155*pi],\n",
"[-3087.0555427823384 + 93.095221566821635*pi],\n",
"[-3088.5659245645107 + 94.837941334127363*pi],\n",
"[-3088.9861840582078 + 94.072416368365833*pi],\n",
"[ -3088.553847330092 + 94.008192111748531*pi],\n",
"[-3088.2979651990735 + 95.226554317449151*pi],\n",
"[-3089.3762181721012 + 94.752515882583911*pi],\n",
"[-3087.2885035510767 + 94.646041939574036*pi],\n",
"[-3087.7600959793191 + 93.878547300805326*pi],\n",
"[-3086.1530800398392 + 94.178642670465249*pi],\n",
"[-3088.8235993491317 + 94.364007489542616*pi],\n",
"[-3087.1747155971306 + 94.450895042276775*pi],\n",
"[-3087.7148791675133 + 94.521303328376727*pi],\n",
"[-3087.5411528567279 + 94.061232845640438*pi],\n",
"[ -3087.994321019267 + 93.870348763419301*pi],\n",
"[-3087.5819961570363 + 93.777387141271429*pi],\n",
"[-3088.9550131320961 + 93.323243317564416*pi],\n",
"[-3087.3553550863342 + 94.387263414053699*pi],\n",
"[-3086.7157169351504 + 94.248446841101663*pi],\n",
"[-3087.9327096084813 + 94.860558927084883*pi],\n",
"[-3088.1441039784309 + 94.156371118973366*pi],\n",
"[-3087.3840698167245 + 92.883104785590973*pi],\n",
"[-3087.3074801052229 + 93.170662189583167*pi],\n",
"[ -3088.302667171492 + 92.952409005390843*pi],\n",
"[-3086.3524711796787 + 93.774017778822494*pi],\n",
"[-3085.9616979884583 + 93.672853384650204*pi],\n",
"[-3086.1849784493064 + 94.583860793301836*pi],\n",
"[ -3086.582389987148 + 94.105513473816875*pi],\n",
"[-3088.2555729031685 + 93.251867643877662*pi],\n",
"[-3088.5533996168343 + 92.452832580642813*pi],\n",
"[-3086.8592040191163 + 93.236225282301728*pi],\n",
"[-3086.5817016715091 + 93.415951576228109*pi],\n",
"[ -3086.556369573041 + 93.161261607577971*pi],\n",
"[ -3084.736839721816 + 93.908133579137429*pi]])"
],
"text/latex": "$\\displaystyle \\left[\\begin{matrix}3818893.1002578018 - 737.85522492468756 \\pi\\\\4328.5899825261752 \\pi + 405439.44364535676\\\\13983.221436640867 \\pi + 4622232.9307992837\\\\3821365.1355666628 - 815.1367077051672 \\pi\\\\4693.5933350529297 \\pi + 393815.81005406208\\\\17033.51311415252 \\pi + 4523665.7075796323\\\\3819750.9318870091 - 763.80932478612284 \\pi\\\\4661.8419277058513 \\pi + 394532.92184573532\\\\11255.817225216372 \\pi + 4710277.7910063666\\\\3816590.6876307908 - 666.42676459907178 \\pi\\\\4141.3744529303095 \\pi + 411402.92644731695\\\\8496.9078016419607 \\pi + 4800306.6638647233\\\\3812920.8368677677 - 554.01050487679109 \\pi\\\\3075.8456001039343 \\pi + 446202.35193865415\\\\13574.265890078105 \\pi + 4635023.5928000105\\\\3811410.1901551241 - 507.56249695896202 \\pi\\\\2616.1954269968116 \\pi + 461117.38283065111\\\\16015.912455154882 \\pi + 4556362.5346609247\\\\3795084.5338148024 - 3.6082157173559446 \\pi\\\\573503.46976725843 - 850.24507365770406 \\pi\\\\15452.714103801781 \\pi + 4574601.808911155\\\\3808735.0231794869 - 423.57652974495208 \\pi\\\\1982.2221860747791 \\pi + 481351.00540286555\\\\16924.960312279039 \\pi + 4527125.8845619729\\\\3796750.9910023427 - 56.348466380947585 \\pi\\\\557624.93528503361 - 350.14718251030153 \\pi\\\\13072.562976037087 \\pi + 4651100.1517888608\\\\622.7489041222588 \\pi + 3774696.6535086434\\\\714846.64091410942 - 5188.5837266806048 \\pi\\\\15285.078291066407 \\pi + 4579804.7845831453\\\\251.32839046082268 \\pi + 3786913.1381044779\\\\631869.37834933362 - 2668.6217740395293 \\pi\\\\16328.826579745884 \\pi + 4546274.3357638907\\\\3796092.8220385821 - 36.233314432102818 \\pi\\\\556917.45487524402 - 327.60441215518087 \\pi\\\\10192.500790740601 \\pi + 4744691.4776616818\\\\749.39077289083794 \\pi + 3770486.3543850614\\\\728825.3899275877 - 5598.9760283467376 \\pi\\\\6996.8312342426291 \\pi + 4850041.4685192714\\\\3817216.2494106891 - 685.19405585169178 \\pi\\\\4434.6816673358821 \\pi + 401739.83923355447\\\\5592.7006355323527 \\pi + 4894904.4228892043\\\\3812631.1520275447 - 545.33823253528673 \\pi\\\\3706.9142002870764 \\pi + 425601.03008599522\\\\1284.2201935297601 \\pi + 5036385.1131891192\\\\3812758.2367058692 - 548.61170798862256 \\pi\\\\3972.078998157546 \\pi + 416758.66260245343\\\\5177894.5635556449 - 3028.4351052516466 \\pi\\\\3808309.9111087778 - 413.74124580370839 \\pi\\\\3235.6531514305249 \\pi + 441036.52399321919\\\\5295090.2117770848 - 6571.1829037749283 \\pi\\\\3809549.8572247747 - 451.2642576974755 \\pi\\\\2827.7690290963704 \\pi + 454451.51185483087\\\\5302.8476712363046 \\pi + 4904395.0620705043\\\\3807345.9261833101 - 383.80126260782683 \\pi\\\\2358.1022618979169 \\pi + 469793.5688573912\\\\5330.6612520204948 \\pi + 4903691.7432894132\\\\3808891.2350194483 - 431.13559176860655 \\pi\\\\2812.6221422189965 \\pi + 454929.80127991237\\\\3091.2769590025688 \\pi + 4977111.7334320142\\\\3807434.4254229034 - 386.81417842372429 \\pi\\\\2580.6717141994041 \\pi + 462546.16580124491\\\\1748.4802993797597 \\pi + 5021416.3646937196\\\\3808147.244500995 - 408.42280645085846 \\pi\\\\2570.3459949321803 \\pi + 462869.84172599539\\\\4595.2542246266394 \\pi + 4927804.6709259286\\\\3806955.7753766209 - 372.21680855586368 \\pi\\\\2350.3260129764263 \\pi + 470110.95952792385\\\\4040.6237678027655 \\pi + 4946099.1592044648\\\\3801521.975101219 - 204.40762016200714 \\pi\\\\1093.8524735055163 \\pi + 510875.88121078314\\\\5675.2518919218967 \\pi + 4892499.3432324009\\\\3798498.0234904131 - 113.23406666888274 \\pi\\\\677.45184211957092 \\pi + 524753.46252488057\\\\1834.2522633708213 \\pi + 5018763.5065807811\\\\42.054541050774524 \\pi + 3793488.9832267601\\\\567563.82857808568 - 644.74405808649457 \\pi\\\\6174.6787551591896 \\pi + 4876617.7007747009\\\\3809233.4397486384 - 440.35065784776428 \\pi\\\\3563.140710442087 \\pi + 429924.91437161088\\\\5378732.2696185045 - 9113.2024074409515 \\pi\\\\3807674.6187771416 - 393.82755841768026 \\pi\\\\2981.850049451916 \\pi + 449258.48153918348\\\\5227392.8210816115 - 4517.3955257703656 \\pi\\\\3805369.7599582796 - 324.55680890170997 \\pi\\\\2927.7910145615879 \\pi + 451154.97410330447\\\\5477970.5368492504 - 12094.866402395949 \\pi\\\\78.936084750327761 \\pi + 3792157.9805809473\\\\553960.58519070875 - 206.64439062007353 \\pi\\\\5281315.789992503 - 6145.7257180167937 \\pi\\\\3799078.6533275386 - 131.64303654608462 \\pi\\\\1247.1020216374694 \\pi + 506149.37429221254\\\\5276897.2493565852 - 6012.3781033184775 \\pi\\\\3802285.7614159859 - 229.61944223998547 \\pi\\\\1769.2187067134015 \\pi + 489075.87524924479\\\\5184756.061464847 - 3213.5710696892556 \\pi\\\\66.810768699510771 \\pi + 3792593.7019851589\\\\556423.59948131974 - 288.70664273928808 \\pi\\\\5184064.6120676582 - 3190.7709859346396 \\pi\\\\3801284.992470933 - 200.11077353592079 \\pi\\\\1900.9329837896768 \\pi + 484954.24980601934\\\\5381504.1864594443 - 9188.4238955546918 \\pi\\\\240.83890270384008 \\pi + 3786834.3865799124\\\\589765.18505728991 - 1294.7833053638013 \\pi\\\\5301952.8141132837 - 6761.8514466332249 \\pi\\\\530.55542670515943 \\pi + 3777373.764369206\\\\657625.0800745653 - 3370.632238637531 \\pi\\\\5263588.7616881222 - 5601.2767998747568 \\pi\\\\11.501198492917698 \\pi + 3794390.007142749\\\\18.727189418943683 \\pi + 546476.50998538384\\\\5139325.8780376326 - 1838.0661185421392 \\pi\\\\3804441.4178271467 - 294.06594501001473 \\pi\\\\3046.445232026672 \\pi + 446684.9784821154\\\\5671901.5879124684 - 17966.234679724164 \\pi\\\\3799581.0823876432 - 148.97283095317598 \\pi\\\\1669.7884660414067 \\pi + 492669.85693256252\\\\5454362.6090994895 - 11384.300186264696 \\pi\\\\280.42941900467754 \\pi + 3785713.9408972453\\\\623002.4855995276 - 2343.1815974434071 \\pi\\\\6959.9385310761425 \\pi + 4850975.4820240314\\\\858.98888407042201 \\pi + 3766750.8236660621\\\\741581.5342283135 - 5958.279240640573 \\pi\\\\5083313.6847096839 - 117.55450307245135 \\pi\\\\271.35978565719198 \\pi + 3786015.9587982511\\\\624722.88999439351 - 2396.8165882840486 \\pi\\\\9031.154540092889 \\pi + 4783159.8657129565\\\\137.8410685494196 \\pi + 3790372.1573156521\\\\592871.36235537477 - 1421.4697453865929 \\pi\\\\8164.3898054348224 \\pi + 4811475.4571943544\\\\111.65820002911889 \\pi + 3791188.8154603363\\\\575554.74108085381 - 885.20202061393402 \\pi\\\\1872.1159710909274 \\pi + 5018016.8435657948\\\\103.11027534877328 \\pi + 3791531.987376912\\\\588082.13545869006 - 1279.6940106298627 \\pi\\\\9926.8550229206505 \\pi + 4753643.4791559134\\\\3794872.0678150185 - 2.5448239302629139 \\pi\\\\547740.68359333013 - 24.344946490171877 \\pi\\\\658.7181951254788 \\pi + 5057539.1552539563\\\\403.3189560283431 \\pi + 3781640.1773559118\\\\638396.65416181283 - 2803.3649392444056 \\pi\\\\2.2772586531434744 \\pi + 5079308.1121780763\\\\429.57702397978187 \\pi + 3780737.285623705\\\\642268.89486047349 - 2912.1772498675434 \\pi\\\\5121840.784950068 - 1300.56440239387 \\pi\\\\946.67940440290328 \\pi + 3763781.2306354953\\\\752291.68579507206 - 6266.0312817743146 \\pi\\\\5258684.0237641824 - 5447.500177191033 \\pi\\\\1020.0218109697184 \\pi + 3761254.8812526641\\\\760401.1393968886 - 6489.4519609027861 \\pi\\\\5425674.7855797137 - 10508.475500122781 \\pi\\\\70.717210922407746 \\pi + 3792316.1004227222\\\\174.92620270065951 \\pi + 542144.72324536371\\\\5471587.7140386902 - 11903.393827219654 \\pi\\\\515.55920326436488 \\pi + 3777735.7728592655\\\\644974.15306775392 - 2959.5849118375791 \\pi\\\\5443221.6791245478 - 11043.446643937264 \\pi\\\\656.33626466486609 \\pi + 3773170.9248678584\\\\677937.51559866852 - 3975.2878875704991 \\pi\\\\5420592.9380733427 - 10349.219323321096 \\pi\\\\288.35220371295286 \\pi + 3785184.0545391556\\\\592859.92809965671 - 1370.9832203050586 \\pi\\\\5450274.7665355827 - 11261.558526724744 \\pi\\\\340.87280870663539 \\pi + 3783462.0388330287\\\\594059.50926314589 - 1409.8403412880893 \\pi\\\\5641194.125799583 - 17032.789515004675 \\pi\\\\728.09661705980331 \\pi + 3770684.691853563\\\\683145.87588589017 - 4109.3258167104909 \\pi\\\\5634231.8816169482 - 16824.447875311255 \\pi\\\\1235.6978432928199 \\pi + 3754058.482992764\\\\798957.2200615535 - 7641.641191753143 \\pi\\\\5627581.2942685697 - 16625.401449392794 \\pi\\\\22.205799809667697 \\pi + 3793936.1599356934\\\\894.61946863638508 \\pi + 518236.40670643007\\\\5696494.6455597901 - 18701.659693237619 \\pi\\\\618.05701754385964 \\pi + 3774230.9045512002\\\\655970.88165317531 - 3265.78083132944 \\pi\\\\5679744.8257114995 - 18201.466493859699 \\pi\\\\-3087.7092034152009 + 95.835169100884458 \\pi\\\\-3089.6010723727716 + 96.319364055495075 \\pi\\\\-3090.0180666619282 + 95.70056891924761 \\pi\\\\-3089.0447856590387 + 95.592288999661545 \\pi\\\\-3090.021407481698 + 96.164140652120263 \\pi\\\\-3088.1365412371227 + 95.387051590778469 \\pi\\\\-3092.5059680094975 + 95.466020667519175 \\pi\\\\-3087.4583833992397 + 95.016203012985122 \\pi\\\\-3089.3619874016117 + 95.38742411984956 \\pi\\\\-3090.2070514238138 + 95.144655561581601 \\pi\\\\-3089.6030210839002 + 94.818418778986256 \\pi\\\\-3087.0944164692242 + 94.351089199759365 \\pi\\\\-3087.3555628687028 + 94.043896855083688 \\pi\\\\-3090.059194451668 + 94.545422754575815 \\pi\\\\-3091.3807677951668 + 94.339055797210841 \\pi\\\\-3086.5026131044292 + 93.842483361050271 \\pi\\\\-3088.1658778107423 + 93.8421692938099 \\pi\\\\-3086.4934186289911 + 93.529908630994933 \\pi\\\\-3090.1391075904576 + 93.283246210616056 \\pi\\\\-3088.0853195433528 + 94.028959215310073 \\pi\\\\-3088.4221910434936 + 93.569841265500657 \\pi\\\\-3087.921032708929 + 93.855244588010057 \\pi\\\\-3086.616487439335 + 93.971018358610754 \\pi\\\\-3087.6406393811471 + 93.65029611576464 \\pi\\\\-3089.6038362965968 + 93.864448496073746 \\pi\\\\-3088.3590411893442 + 94.052578822073155 \\pi\\\\-3087.0555427823384 + 93.095221566821635 \\pi\\\\-3088.5659245645107 + 94.837941334127363 \\pi\\\\-3088.9861840582078 + 94.072416368365833 \\pi\\\\-3088.553847330092 + 94.008192111748531 \\pi\\\\-3088.2979651990735 + 95.226554317449151 \\pi\\\\-3089.3762181721012 + 94.752515882583911 \\pi\\\\-3087.2885035510767 + 94.646041939574036 \\pi\\\\-3087.7600959793191 + 93.878547300805326 \\pi\\\\-3086.1530800398392 + 94.178642670465249 \\pi\\\\-3088.8235993491317 + 94.364007489542616 \\pi\\\\-3087.1747155971306 + 94.450895042276775 \\pi\\\\-3087.7148791675133 + 94.521303328376727 \\pi\\\\-3087.5411528567279 + 94.061232845640438 \\pi\\\\-3087.994321019267 + 93.870348763419301 \\pi\\\\-3087.5819961570363 + 93.777387141271429 \\pi\\\\-3088.9550131320961 + 93.323243317564416 \\pi\\\\-3087.3553550863342 + 94.387263414053699 \\pi\\\\-3086.7157169351504 + 94.248446841101663 \\pi\\\\-3087.9327096084813 + 94.860558927084883 \\pi\\\\-3088.1441039784309 + 94.156371118973366 \\pi\\\\-3087.3840698167245 + 92.883104785590973 \\pi\\\\-3087.3074801052229 + 93.170662189583167 \\pi\\\\-3088.302667171492 + 92.952409005390843 \\pi\\\\-3086.3524711796787 + 93.774017778822494 \\pi\\\\-3085.9616979884583 + 93.672853384650204 \\pi\\\\-3086.1849784493064 + 94.583860793301836 \\pi\\\\-3086.582389987148 + 94.105513473816875 \\pi\\\\-3088.2555729031685 + 93.251867643877662 \\pi\\\\-3088.5533996168343 + 92.452832580642813 \\pi\\\\-3086.8592040191163 + 93.236225282301728 \\pi\\\\-3086.5817016715091 + 93.415951576228109 \\pi\\\\-3086.556369573041 + 93.161261607577971 \\pi\\\\-3084.736839721816 + 93.908133579137429 \\pi\\end{matrix}\\right]$"
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 42
},
{
"metadata": {},
"cell_type": "code",
"outputs": [],
"execution_count": null,
"source": "",
"id": "476ad49ac7a20985"
}
],
"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
}