Die Miami INsar Time-Series-Software in PYthon (MintPy als /mɪnt paɪ/) ist ein Open-Source-Paket für die Zeitreihenanalyse mit Interferometrischem Radar mit synthetischer Apertur (InSAR). Es liest den Stapel von Interferogrammen (koregistriert und entpackt) im ISCE-, ARIA-, FRInGE-, HyP3-, GMTSAR-, SNAP-, GAMMA- oder ROI_PAC-Format und erzeugt eine dreidimensionale (2D im Raum und 1D in der Zeit) Bodenoberflächenverschiebung in Linienrichtung. Blickrichtung. Es umfasst eine routinemäßige Zeitreihenanalyse ( smallbaselineApp.py
) und eine unabhängige Toolbox.
Dieses Paket hieß vor Version 1.1.1 PySAR. Ab Version 1.1.2 verwenden wir stattdessen MintPy.
Hierbei handelt es sich um Forschungscode, der Ihnen „wie besehen“ ohne Gewähr für die Richtigkeit zur Verfügung gestellt wird. Die Nutzung erfolgt auf eigene Gefahr.
smallbaselineApp.py
MintPy liest einen Stapel von Interferogrammen (unverpackte Interferogramme, Kohärenz und verbundene Komponenten von SNAPHU, falls verfügbar) und die Geometriedateien (DEM, Nachschlagetabelle, Einfallswinkel usw.). Sie müssen den Pfad zu den Dateien angeben und MintPy kümmert sich um den Rest!
smallbaselineApp.py # mit Standardvorlage „smallbaselineApp.cfg“ ausführen smallbaselineApp.py <custom_template> # mit Standard- und benutzerdefinierten Vorlagen ausführen smallbaselineApp.py -h / --help # helpsmallbaselineApp.py -H # Standardvorlagenoptionen druckensmallbaselineApp.py -g # Standardvorlage generieren, wenn sie nicht existiertsmallbaselineApp.py -g <custom_template> # Standardvorlage basierend auf benutzerdefinierter Vorlage generieren/aktualisieren# Ausführen mit --start/stop/dostep optionssmallbaselineApp.py GalapagosSenDT128.txt --dostep Velocity # Schritt „Velocity“ ausführen onlysmallbaselineApp.py GalapagosSenDT128.txt --end load_data # Lauf nach Schritt „load_data“ beenden
In smallbaselineApp.py liest es die entpackten Interferogramme, verweist alle auf dasselbe kohärente Pixel (Referenzpunkt), berechnet den Phasenabschluss und schätzt die Enthüllungsfehler (falls gewünscht) und invertiert das Netzwerk der Interferogramme in die Zeit -Serie, berechnet die zeitliche Kohärenz zur Bewertung der Qualität der Inversion, korrigiert die Drift des lokalen Oszillators (nur für Envisat), korrigiert die geschichtete Troposphäre Verzögerung (unter Verwendung globaler atmosphärischer Modelle oder des Phasen-Höhenverhältnis-Ansatzes), entfernt Phasenrampen (falls gewünscht), korrigiert DEM-Fehler usw. und schätzt schließlich die Geschwindigkeit.
Konfigurationsparameter für jeden Schritt werden mit Standardwerten in einer anpassbaren Textdatei smallbaselineApp.cfg initiiert.
wget https://zenodo.org/record/3952953/files/FernandinaSenDT128.tar.xz tar -xvJf FernandinaSenDT128.tar.xzcd FernandinaSenDT128/mintpy smallbaselineApp.py ${MINTPY_HOME}/docs/templates/FernandinaSenDT128.txt
Die Ergebnisse werden im Ordner ./pic dargestellt. Um weitere Dateninformationen und -visualisierungen zu erkunden, probieren Sie die folgenden Skripts aus:
info.py # HDF5-Dateistruktur und Metadaten prüfenview.py # 2D-Karte viewtsview.py # 1D-Punktzeitreihe (interaktiv)plot_coherence_matrix.py # Kohärenzmatrix für ein Pixel zeichnen (interaktiv)plot_network.py # Netzwerkkonfiguration des Datensatzesplot_transection zeichnen .py # 1D-Profil entlang einer Linie einer 2D-Matrix zeichnen (interaktiv)save_kmz.py # Google Earth KMZ generieren Datei in Punkten oder Rasterbildernave_kmz_timeseries.py # Google Earth KMZ-Datei in Punkten für Zeitreihen generieren (interaktiv)
MintPy ist eine Toolbox mit individuellen Hilfsskripten. Führen Sie das Skript einfach mit -h / --help
aus, um seine Verwendung zu sehen. Sie können dann Ihr eigenes, individuelles Verarbeitungsrezept erstellen! Hier ist ein Beispiel zum Vergleich der aus Verschiebungszeitreihen geschätzten Geschwindigkeiten mit verschiedenen troposphärischen Verzögerungskorrekturen.
mintpy
-Modul MintPy ist in Python mit Dienstprogrammklassen und -funktionen moduliert und auf Codeebene gut kommentiert. Benutzer, die mit Python vertraut sind, könnten ihre eigenen Funktionen und Module auf Basis von mintpy.objects
und mintpy.utils
erstellen. Allerdings haben wir noch keine vollständige API-Dokument-Website (vielleicht können Sie dazu beitragen!). Unten finden Sie ein Beispiel für das Lesen der 3D-Matrix der Verschiebungszeitreihen aus einer HDF5-Datei.
aus mintpy.utils import readfilets_data, meta = readfile.read('timeseries_ERA5_ramp_demErr.h5')
Die in der Software implementierten Algorithmen werden ausführlich bei Yunjun et al. beschrieben. (2019).
Schnellstart mit Beispieldatensätzen
Beispieldatenverzeichnis
Beispielvorlagendateien
Tutorials im Jupyter Notebook
Die meisten Entwicklungsdiskussionen finden auf GitHub statt. Fühlen Sie sich frei, ein Problem zu eröffnen oder ein offenes Problem oder eine Pull-Anfrage zu kommentieren.
Treten Sie unserem Benutzerforum in Google-Gruppen bei oder nutzen Sie Github-Diskussionen, um Fragen zu stellen oder Kommentare zu hinterlassen.
Haftungsausschluss zum Imposter-Syndrom: Wir brauchen Ihre Hilfe. Nein, wirklich.
Möglicherweise gibt es eine kleine Stimme in Ihrem Kopf, die Ihnen sagt, dass Sie nicht bereit sind, Open-Source-Mitwirkender zu sein. dass Ihre Fähigkeiten bei weitem nicht gut genug sind, um einen Beitrag zu leisten. Was könnten Sie anbieten?
Wir versichern Ihnen – die kleine Stimme in Ihrem Kopf ist falsch. Wenn Sie überhaupt Code schreiben können, können Sie Code zu Open Source beitragen. Die Mitarbeit an Open-Source-Projekten ist eine fantastische Möglichkeit, die eigenen Programmierkenntnisse zu verbessern. Das Schreiben von perfektem Code ist nicht der Maßstab für einen guten Entwickler (das würde uns alle disqualifizieren!); Es geht darum, etwas zu erschaffen, Fehler zu machen und aus diesen Fehlern zu lernen. So verbessern wir uns alle und helfen gerne anderen beim Lernen.
Ein Open-Source-Mitwirkender zu sein bedeutet nicht nur, Code zu schreiben. Sie können helfen, indem Sie Dokumentationen verfassen oder Korrektur lesen, Tests vorschlagen oder durchführen oder sogar Feedback zum Projekt geben (und ja – dazu gehört auch das Geben von Feedback zum Beitragsprozess). Einige dieser Beiträge sind möglicherweise für das Projekt als Ganzes am wertvollsten, da Sie mit neuen Augen an das Projekt herangehen und die Fehler und Annahmen erkennen können, die erfahrene Mitwirkende beschönigt haben.
Weitere Informationen finden Sie in unserem Beitragsleitfaden.
Dieser Haftungsausschluss wurde aus dem MetPy-Projekt übernommen.
Yunjun, Z., Fattahi, H. und Amelung, F. (2019), Small Baseline InSAR Time Series Analysis: Unwrapping Error Correction and Noise Reduction, Computers & Geosciences , 133 , 104331. [ doi | arxiv | Daten | Notizbuch]
Darüber hinaus empfehlen wir Ihnen, die Originalveröffentlichungen zu zitieren, die die in Ihrer spezifischen Analyse verwendeten Algorithmen beschreiben. Sie werden in der Standardvorlagendatei kurz vermerkt und in der Referenzdatei aufgeführt.