Le logiciel Miami INsar Time-series en PYthon (MintPy as /mɪnt paɪ/) est un package open source pour l'analyse des séries chronologiques du radar interférométrique à synthèse d'ouverture (InSAR). Il lit la pile d'interférogrammes (co-enregistrés et non emballés) au format ISCE, ARIA, FRInGE, HyP3, GMTSAR, SNAP, GAMMA ou ROI_PAC, et produit un déplacement de la surface du sol en trois dimensions (2D dans l'espace et 1D dans le temps) en ligne de- direction de la vue. Il comprend une analyse de routine de séries chronologiques ( smallbaselineApp.py
) et une boîte à outils indépendante.
Ce package s'appelait PySAR avant la version 1.1.1. Pour la version 1.1.2 et versions ultérieures, nous utilisons MintPy à la place.
Il s'agit d'un code de recherche qui vous est fourni « tel quel » sans AUCUNE GARANTIE D'EXACTITUDE. Utilisez à vos propres risques.
smallbaselineApp.py
MintPy lit une pile d'interférogrammes (interférogrammes non emballés, cohérence et composants connectés de SNAPHU si disponible) et les fichiers de géométrie (DEM, table de recherche, angle d'incidence, etc.). Vous devez indiquer le chemin d'accès aux fichiers et MintPy s'occupe du reste !
smallbaselineApp.py # exécuté avec le modèle par défaut 'smallbaselineApp.cfg'smallbaselineApp.py <custom_template> # exécuté avec les modèles par défaut et personnaliséssmallbaselineApp.py -h / --help # helpsmallbaselineApp.py -H # imprimer les options du modèle par défautsmallbaselineApp.py -g # générer un modèle par défaut s'il n'existe pas smallbaselineApp.py -g <custom_template> # générer/mettre à jour le modèle par défaut basé sur un modèle personnalisé# Exécuter avec --start/stop/dostep optionssmallbaselineApp.py GalapagosSenDT128.txt --dostep Velocity # exécuter l'étape 'velocity' onlysmallbaselineApp.py GalapagosSenDT128.txt --end Load_data # terminer l'exécution après l'étape 'load_data'
Dans smallbaselineApp.py, il lit les interférogrammes déballés, les référence tous au même pixel cohérent (point de référence), calcule la fermeture de phase et estime les erreurs de déballage (si cela a été demandé), inverse le réseau d'interférogrammes dans le temps -series, calcule la cohérence temporelle pour évaluer la qualité de l'inversion, corrige la dérive de l'oscillateur local (pour Envisat uniquement), corrige le retard troposphérique stratifié (à l'aide de modèles atmosphériques globaux ou approche phase-élévation-rapport), supprime les rampes de phase (si cela a été demandé), corrige l'erreur DEM,... et enfin estime la vitesse.
Les paramètres de configuration pour chaque étape sont initiés avec des valeurs par défaut dans un fichier texte personnalisable smallbaselineApp.cfg .
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
Les résultats sont tracés dans le dossier ./pic . Pour explorer davantage d'informations et de visualisation sur les données, essayez les scripts suivants :
info.py # vérifier la structure du fichier HDF5 et metadataview.py # carte 2D viewtsview.py # série chronologique de points 1D (interactive)plot_coherence_matrix.py # matrice de cohérence de tracé pour un pixel (interactif)plot_network.py # configuration du réseau de tracé de l'ensemble de donnéesplot_transection .py # tracer un profil 1D le long d'une ligne d'une matrice 2D (interactive)save_kmz.py # générer Google Earth Fichier KMZ en points ou images rasterave_kmz_timeseries.py # générer un fichier KMZ Google Earth en points pour les séries chronologiques (interactif)
MintPy est une boîte à outils avec des scripts utilitaires individuels. Exécutez simplement le script avec -h / --help
pour voir son utilisation, vous pouvez créer votre propre recette de traitement personnalisée ! Voici un exemple pour comparer les vitesses estimées à partir de séries temporelles de déplacement avec différentes corrections de retard troposphérique.
mintpy
MintPy est modulé en Python avec des classes et fonctions utilitaires et bien commenté au niveau du code. Les utilisateurs familiers avec Python peuvent créer leurs propres fonctions et modules sur mintpy.objects
et mintpy.utils
. Cependant, nous n'avons pas encore de site Web complet de documents API (vous pouvez peut-être y contribuer !). Vous trouverez ci-dessous un exemple de lecture de la matrice 3D de séries temporelles de déplacement à partir d'un fichier HDF5.
depuis mintpy.utils import readfilets_data, meta = readfile.read('timeseries_ERA5_ramp_demErr.h5')
Les algorithmes implémentés dans le logiciel sont décrits en détail dans Yunjun et al. (2019).
Démarrage rapide avec des exemples d'ensembles de données
Exemple de répertoire de données
Exemples de fichiers modèles
Tutoriels dans Jupyter Notebook
La plupart des discussions sur le développement ont lieu sur GitHub. N'hésitez pas à ouvrir un problème ou à commenter tout problème ouvert ou demande de tirage.
Rejoignez notre forum d'utilisateurs sur les groupes Google ou utilisez les discussions github pour poser des questions ou laisser des commentaires.
Avis de non-responsabilité concernant le syndrome de l'imposteur : nous avons besoin de votre aide. Non, vraiment.
Il y a peut-être une petite voix dans votre tête qui vous dit que vous n'êtes pas prêt à devenir un contributeur open source ; que vos compétences ne sont pas assez bonnes pour contribuer. Que pourriez-vous offrir ?
Nous vous l'assurons : la petite voix dans votre tête est fausse. Si vous pouvez écrire du code, vous pouvez contribuer au code open source. Contribuer à des projets open source est un moyen fantastique de développer ses compétences en codage. Écrire un code parfait n'est pas la mesure d'un bon développeur (cela nous disqualifierait tous !) ; c'est essayer de créer quelque chose, faire des erreurs et apprendre de ces erreurs. C'est ainsi que nous nous améliorons tous et nous sommes heureux d'aider les autres à apprendre.
Être un contributeur open source ne signifie pas seulement écrire du code. Vous pouvez aider en rédigeant ou en relisant de la documentation, en suggérant ou en mettant en œuvre des tests, ou même en donnant des commentaires sur le projet (et oui, cela inclut des commentaires sur le processus de contribution). Certaines de ces contributions peuvent être les plus précieuses pour le projet dans son ensemble, car vous abordez le projet avec un regard neuf, vous permettant ainsi de voir les erreurs et les hypothèses que les contributeurs chevronnés ont passées sous silence.
Pour plus d’informations, veuillez lire notre guide de contribution.
Cette clause de non-responsabilité a été adaptée du projet MetPy.
Yunjun, Z., Fattahi, H. et Amelung, F. (2019), Analyse de séries chronologiques InSAR de petite base : déballage de la correction d'erreur et de la réduction du bruit, Computers & Geosciences , 133 , 104331. [ doi | arxiv | données | carnet de notes ]
En plus de ce qui précède, nous vous recommandons de citer les publications originales qui décrivent les algorithmes utilisés dans votre analyse spécifique. Ils sont brièvement notés dans le fichier modèle par défaut et répertoriés dans le fichier de référence.