Modulare TEM-Reports¶
mpylab-tem-report liest die vollständige Historie eines TEMCell-
Pickles und erkennt selbständig unterstützte Datensätze. Der Generator deckt
derzeit TEM-Moden-Verifikation, gemessene e0y-Feldfaktoren, Emission und
Störfestigkeit einschließlich EUT-Bewertung ab.
Ereignisfelder, Leistungskriterien und das optionale Austauschformat sind unter Störfestigkeitsergebnisse und EUT-Bewertung beschrieben.
Inhalt, Darstellung und Erweiterung sind bewusst getrennt:
--sectionwählt vorhandene, bereits ausgewertete Messdatensätze aus;TOML-Profile konfigurieren Metadaten, Laborangaben und Farben;
eigene Python-Reportmodule ergänzen neue fachliche Reportabschnitte.
Profile verändern keine Messergebnisse und führen keine Auswertung aus. Der Abschnitt Profilreferenz beschreibt alle Konfigurationswerte; Eigene Reportmodule entwickeln führt zur Erweiterungsschnittstelle.
Eingabe und Voraussetzungen¶
Eingabe ist ein vertrauenswürdiges finales oder After-measure-Pickle einer
TEMCell. Pickles können beim Laden Python-Code ausführen; aus nicht
vertrauenswürdigen Dateien dürfen keine Reports erzeugt werden. Der Generator
nutzt mpylab.env.Measure.load_pickle_compat(), verbindet sich aber nicht
mit Messgeräten.
Reportmodule verwenden ausgewertete Daten:
Kennung |
Mapping im Pickle |
Wesentliche Inhalte |
|---|---|---|
|
|
Homogenität, TEM-Mode, Referenzfeld und -leistung, analytisches e0y und AM-Headroom |
|
|
Gemessener Feldfaktor, Quelle, Position und analytischer Vergleich |
|
|
Korrelierte Feldstärke und Leistung, Limits, Detektoren, Prescan und e0y-Quellen |
|
|
Expositionen, Störgröße, Leveling, EUT-Ereignisse und Bewertungen |
Eine Historie mit ausschließlich Rohdaten besitzt im Allgemeinen keinen ausgabefähigen Abschnitt. Zuerst ist die zugehörige Auswertung auszuführen und ein neues Historien-Pickle zu schreiben. Der Generator rekonstruiert fehlende Auswertungen nicht stillschweigend.
Verfügbare Abschnitte prüfen¶
Vor der Erzeugung kann angezeigt werden, welche Reportabschnitte im Pickle gefunden wurden:
mpylab-tem-report measurement-history.p --list-sections
Mit --section MODULE:DATASET kann die Ausgabe auf einen oder mehrere
dieser Abschnitte begrenzt werden. Die Option darf wiederholt werden.
Empfohlener Ablauf¶
# Zuerst vorhandene ausgewertete Datensätze anzeigen.
mpylab-tem-report measurement-history.p --list-sections
# In ein messungsspezifisches Verzeichnis schreiben.
mpylab-tem-report measurement-history.p \
--output reports/EMV-2026-001 \
--formats pdf html svg \
--profile labor.toml \
--profile EMV-2026-001.toml
Enthält die Historie mehrere Läufe, begrenzen wiederholte --section-
Optionen den weiterzugebenden Report auf eine kontrollierte Auswahl.
Report erzeugen¶
mpylab-tem-report measurement-history.p \
--output tem-report \
--formats pdf html svg \
--profile script/conf/tem-report-profile.toml \
--profile script/conf/tem-report-measurement.toml
Unterstützt werden pdf, html, svg und png. HTML und PDF
bilden den Gesamtreport. SVG und PNG erzeugen separate Grafiken der
Reportmodule. Wird HTML ohne Grafikformat angefordert, erzeugt der Generator
zusätzlich SVG-Dateien.
PDF wird direkt über Matplotlib erzeugt. HTML ist ein statisches lokales Paket und benötigt keinen Server. SVG eignet sich für skalierbare Grafiken und versionierte Archive; PNG ist für Office-Anwendungen hilfreich, die SVG nicht zuverlässig importieren. LaTeX-Quelltext wird derzeit nicht erzeugt.
Ausgabeverzeichnis¶
Das Ergebnis besitzt eine stabile Struktur:
tem-report/
|-- index.html
|-- tem-history-report.pdf
|-- traceability.tsv
|-- report-metadata.tsv
|-- assets/
`-- sections/
|-- verification-cal/
| |-- index.html
| |-- figures/
| `-- tables/
`-- emission-eut/
|-- index.html
|-- figures/
`-- tables/
Die Modultabellen enthalten die Werte hinter den Grafiken und sind für skriptbasierte Prüfungen vorzuziehen. Fehlen notwendige Daten, wird eine Grafik ausgelassen; vorhandene Tabellen und Rückführbarkeitswarnungen bleiben erhalten.
Profile schichten¶
--profile kann mehrfach angegeben werden. Dateien werden in
Kommandozeilenreihenfolge zusammengeführt; spätere Werte überschreiben nur
gleichnamige frühere Werte. Damit können beispielsweise eine globale
Laborkonfiguration und messungsspezifische Angaben getrennt versioniert
werden:
# Globales Laborprofil
[report]
title = "TEM/GTEM Measurement Report"
language = "de"
[laboratory]
name = "EMV-Labor"
[appearance]
primary_color = "#174A7E"
accent_color = "#2E7D32"
# Messungsspezifische Ergänzung
[report]
report_number = "EMV-2026-001"
[measurement]
operator = "Example Operator"
location = "Large GTEM"
date = "2026-07-16"
[environment]
temperature_c = 23.1
relative_humidity_percent = 44.0
Kommentierte Vorlagen befinden sich in
script/conf/tem-report-profile.toml und
script/conf/tem-report-measurement.toml.
Profilreferenz¶
Nur die folgenden Tabellen und Schlüssel sind zulässig. Unbekannte oder falsch geschriebene Schlüssel werden als Fehler gemeldet und nicht unbemerkt ignoriert.
Tabelle |
Schlüssel |
Prüfung und Verwendung |
|---|---|---|
|
|
|
|
|
Logo ist eine vorhandene PNG- oder JPEG-Datei; relative Pfade beziehen sich auf die Profildatei, die den Wert definiert |
|
|
Datum im ISO-Format |
|
|
Luftfeuchte 0 bis 100; Luftdruck ist positiv |
|
|
Farben im Format |
Spätere Profile überschreiben nur denselben Schlüssel. Relative Ressourcen bleiben relativ zu der Datei, die den wirksamen Wert geliefert hat.
Rückführbarkeit¶
Der Generator berechnet die Messung nicht erneut. Er bereitet die bereits im
Pickle vorhandenen Ergebnisse modular auf. HTML und PDF enthalten eine
abschnittsübergreifende Rückführbarkeitsübersicht.
traceability.tsv enthält dieselben Angaben maschinenlesbar, darunter
Frequenzabdeckung, referenzierte Quelldatensätze, Vollständigkeit und
Warnungen.
report-metadata.tsv dokumentiert die wirksamen Profilwerte und ihre
Herkunft. So bleibt unterscheidbar, welche Angaben aus dem globalen Profil,
dem Messprofil, Vorgabewerten oder der Generierung stammen.
Für einen ausschließlich auf die Verifikation begrenzten Bericht steht
zusätzlich script/tem-verification-report.py zur Verfügung.
Eigene Reportmodule entwickeln¶
Ein eigenes Reportmodul ist sinnvoll, wenn ein zusätzlicher ausgewerteter Datensatz als eigener Abschnitt erscheinen soll. Für andere Titel, Laborangaben, Freitext oder Farben genügt dagegen ein TOML-Profil.
Ein Reportmodul implementiert
mpylab.env.tem.history_report.ReportModule und durchläuft fünf
Schritte:
discoverfindet ausgabefähige Datensätze in der Historie.collectüberführt einen Datensatz in eine darstellungsneutrale Struktur.writeerzeugt HTML, Tabellen und separate Grafiken des Abschnitts.pdf_figuresliefert die Seiten für das gemeinsame PDF.summarystellt kompakte Angaben für Inhaltsübersicht und Rückführbarkeit bereit.
Die fachliche Auswertung bleibt in der Messklasse. collect darf
vorhandene Ergebnisse auswählen und ordnen, aber keine Messung neu bewerten.
Eigene Module werden einer Anwendung über den Parameter modules von
mpylab.env.tem.history_report.write_history_report() übergeben. Sie
werden nicht automatisch vom Kommandozeilenprogramm geladen.
Ein vollständiges minimales Gerüst und die Rückgabestrukturen zeigt die englischsprachige Report-API. Für ein neues Modul sind mindestens Logiktests für Erkennung und Datensammlung sowie ein End-to-End-Test der erzeugten Dateien vorzusehen.
Wiederholung und Fehlerdiagnose¶
Dateien mit denselben generierten Namen werden überschrieben, das Ausgabeverzeichnis wird jedoch nicht bereinigt. Wenn der exakte Dateibestand archiviert wird, ist ein neues oder zuvor geleertes Verzeichnis zu verwenden.
Typische Fehler haben eine bewusste Bedeutung:
no reportable sections: Das Pickle enthält kein unterstütztes ausgewertetes Mapping.section ... is unavailable: Kennung mit--list-sectionsabgleichen.Profilfehler: unbekannte Schlüssel, Typen, Datum, Farben, Umgebungsbereiche oder Logo-Pfad korrigieren.
Fehlende Grafik bei erfolgreichem Lauf: TSV-Tabellen und Rückführbarkeitswarnungen auf fehlende Quelldaten prüfen.
Die englischsprachige Report-API dokumentiert Erkennung, Auswahl, Profilladen und die modulare Erweiterungsschnittstelle.