zusammenfügen 02.2.

This commit is contained in:
2026-02-05 22:26:33 +01:00
parent 3828de1f9b
commit 3f16cbdb2b
8 changed files with 60527 additions and 283 deletions

112
Export.py
View File

@@ -2,6 +2,7 @@ import csv
from datetime import datetime
import numpy as np
import os
import pandas as pd
import sympy as sp
import webbrowser
@@ -78,6 +79,19 @@ class Export:
:return: None
:rtype: None
"""
for key in ergebnisse:
wert = ergebnisse[key]
if isinstance(wert, tuple):
if len(wert) > 0 and isinstance(wert[0], pd.DataFrame):
ergebnisse[key] = wert[0]
else:
ergebnisse[key] = pd.DataFrame(list(wert))
elif isinstance(wert, dict):
ergebnisse[key] = pd.DataFrame([wert])
# Pfad für den Ordner erstellen
ordner = "Protokolle"
if not os.path.exists(ordner):
@@ -97,6 +111,19 @@ class Export:
h1 {{ color: #2c3e50; border-bottom: 2px solid #2c3e50; }}
h3 {{ color: #2980b9; margin-top: 30px; }}
.metadata {{ background: #f9f9f9; padding: 15px; border-radius: 5px; border-left: 5px solid #2980b9; }}
/* Styling für das Inhaltsverzeichnis */
.toc {{ background: #fff; border: 1px solid #ddd; padding: 15px; border-radius: 5px; display: inline-block; min-width: 300px; }}
.toc ul {{ list-style: none; padding-left: 0; }}
.toc li {{ margin: 5px 0; }}
.toc a {{ text-decoration: none; color: #2980b9; font-weight: bold; }}
.toc a:hover {{ text-decoration: underline; }}
/* Styling für Bilder */
.plot-container {{ margin-top: 20px; text-align: center; background: #fff; padding: 10px; border: 1px solid #ddd; }}
.plot-img {{ width: 100%; max-width: 1000px; height: auto; border: 1px solid #eee; }}
.plot-caption {{ font-style: italic; color: #666; margin-top: 5px; }}
table {{ border-collapse: collapse; width: 100%; margin-top: 10px; }}
th, td {{ text-align: left; padding: 8px; border-bottom: 1px solid #ddd; }}
tr:nth-child(even) {{ background-color: #f2f2f2; }}
@@ -112,13 +139,95 @@ class Export:
<p><strong>Bearbeiter:</strong> {metadaten['bearbeiter']}</p>
<p><strong>Datum:</strong> {metadaten['datum']}</p>
<p><strong>Ausgleichungsmodus:</strong> Methode der kleinsten Quadrate (L2-Norm)</p>
<p><strong>Koordinatenreferenzsystem:</strong> {metadaten['koordinatenreferenzsystem']}</p>
<p><strong>Datumsfestlegung:</strong> {metadaten['datumsfestlegung']}</p>
<p><strong>Dimension:</strong> 3D</p>
</div>
<div class="toc">
<strong>Inhaltsverzeichnis</strong>
<ul>
<li><a href="#globaltest">1. Globaltest</a></li>
<li><a href="#redundanz">2. Redundanzanteile</a></li>
<li><a href="#lokaltest">3. Lokaltest</a></li>
<li><a href="#vks">4. Varianzkomponentenschätzung</a></li>
<li><a href="#aeussere_zuver">5. Äussere Zuverlässigkeit</a></li>
<li><a href="#Helmertscher_Punktfehler">6. Standardabweichungen und Helmert'scher Punktfehler</a></li>
<li><a href="#standardellipsen">7. Standardellipsen</a></li>
<li><a href="#konfidenzellipsen">8. Konfidenzellipsen</a></li>
<li><a href="#Konfidenzellipse_ENU">9. Konfidenzellipsen im ENU-System</a></li>
<li><a href="#netzplot_gesamt">10. Netzplot im ENU-System mit Konfidenzellipsen - Gesamtes Netz</a></li>
<li><a href="#netzplot_zoom">11. Netzplot im ENU-System mit Konfidenzellipsen - Ausschnitt</a></li>
<li><a href="#koordinaten_xyz">12. Koordinaten Geozentrisch</a></li>
<li><a href="#koordinaten_utm">13. Koordinaten UTM</a></li>
</ul>
</div>
<h3 id="globaltest">1. Globaltest</h3>
{ergebnisse['df_globaltest'].to_html(index=False)}
<h3 id="redundanz">2. Redundanzanteile</h3>
{ergebnisse['df_redundanz'].to_html(index=False)}
<h3 id="lokaltest">3. Lokaltest</h3>
{ergebnisse['df_lokaltest'].to_html(index=False)}
<h3 id="vks">4. Varianzkomponentenschätzung</h3>
{ergebnisse['df_vks'].to_html(index=False)}
<h3 id="aeussere_zuver">5. Äussere Zuverlässigkeit</h3>
{ergebnisse['df_aeussere_zuver'].to_html(index=False)}
<h3 id="Helmertscher_Punktfehler">6. Standardabweichungen und Helmert'scher Punktfehler</h3>
{ergebnisse['df_punktfehler'].to_html(index=False)}
<h3 id="standardellipsen">7. Standardellipsen</h3>
{ergebnisse['df_ellipsen'].to_html(index=False)}
<h3 id="konfidenzellipsen">8. Konfidenzellipsen</h3>
{ergebnisse['df_konfidenzellipsen'].to_html(index=False)}
<h3 id="Konfidenzellipse_ENU">9. Konfidenzellipsen im ENU-System</h3>
{ergebnisse['df_konfidenzellipsen_enu'].to_html(index=False)}
<h3 id="netzplot_gesamt">10. Plots: Konfidenzellipsen im ENU-System (Gesamtes Netz)</h3>
<div class="plot-container">
<h4>Gesamtnetz</h4>
<img src="../Netzqualitaet/netzplot_ellipsen_volle_ausdehnung.png" class="plot-img" alt="Gesamtes Netz">
<p class="plot-caption">Netzplot im ENU-System mit Konfidenzellipsen - Gesamtes Netz</p>
</div>
<h3 id="netzplot_zoom">11. Plots: Konfidenzellipsen im ENU-System (Auschnitt) </h3>
<div class="plot-container">
<h4>Detailansicht (Zoom)</h4>
<img src="../Netzqualitaet/netzplot_ellipsen_zoom_ansicht.png" class="plot-img" alt="2Netzplot im ENU-System mit Konfidenzellipsen - Gesamtes Netz">
<p class="plot-caption">Netzplot im ENU-System mit Konfidenzellipsen - Ausschnitt</p>
</div>
<h3 id="koordinaten_xyz">12. Koordinaten Geozentrisch Kartesisch</h3>
{ergebnisse['df_koordinaten_geozentrisch_kartesisch'].to_html(index=True)}
<h3 id="koordinaten_utm">13. Koordinaten UTM</h3>
{ergebnisse['df_koordinaten_utm'].to_html(index=True)}
<h3>1. Globaltest</h3>
{ergebnisse['df_globaltest'].to_html(index=False)}
<h3>2. Redundanzanteile</h3>
{ergebnisse['df_redundanz'].to_html(index=False)}
<h3>2. Lokaltest (data snooping)</h3>
{ergebnisse['df_lokaltest'].to_html(index=False)}
<h3>2. Varianzkomponentenschätzung</h3>
{ergebnisse['df_vks'].to_html(index=False)}
<h3>2. Äussere Zuverlässigkeit</h3>
{ergebnisse['df_aeussere_zuver'].to_html(index=False)}
<h3>2. Standardabweichungen und Helmert'scher Punktfehler</h3>
{ergebnisse['df_punktfehler'].to_html(index=False)}
<h3>3. Standardellipsen</h3>
{ergebnisse['df_ellipsen'].to_html(index=False)}
@@ -126,6 +235,9 @@ class Export:
<h3>3. Konfidenzellipsen</h3>
{ergebnisse['df_konfidenzellipsen'].to_html(index=False)}
<h3>3. Konfidenzellipsen im ENU-System</h3>
{ergebnisse['df_konfidenzellipsen_enu'].to_html(index=False)}
<h3>3. Koordinaten Geozentrisch Kartesisch</h3>
{ergebnisse['df_koordinaten_geozentrisch_kartesisch'].to_html(index=True)}