El software Miami INsar Time-series en PYthon (MintPy como /mɪnt paɪ/) es un paquete de código abierto para el análisis de series de tiempo del radar interferométrico de apertura sintética (InSAR). Lee la pila de interferogramas (registrados y desenvueltos) en formato ISCE, ARIA, FRInGE, HyP3, GMTSAR, SNAP, GAMMA o ROI_PAC, y produce un desplazamiento tridimensional (2D en el espacio y 1D en el tiempo) de la superficie del suelo en línea de- dirección de la vista. Incluye un análisis de series de tiempo de rutina ( smallbaselineApp.py
) y una caja de herramientas independiente.
Este paquete se llamaba PySAR antes de la versión 1.1.1. Para la versión 1.1.2 y posteriores, utilizamos MintPy en su lugar.
Este es un código de investigación que se le proporciona "tal cual" SIN GARANTÍAS DE CORRECCIÓN. Úselo bajo su propio riesgo.
smallbaselineApp.py
MintPy lee una pila de interferogramas (interferogramas desenvueltos, coherencia y componentes conectados de SNAPHU si están disponibles) y los archivos de geometría (DEM, tabla de búsqueda, ángulo de incidencia, etc.). ¡Debes indicar la ruta donde están los archivos y MintPy se encarga del resto!
SmallbaselineApp.py # ejecutar con la plantilla predeterminada 'smallbaselineApp.cfg'smallbaselineApp.py <custom_template> # ejecutar con plantillas predeterminadas y personalizadassmallbaselineApp.py -h / --help # helpsmallbaselineApp.py -H # imprimir opciones de plantilla predeterminadasmallbaselineApp.py -g # generar plantilla predeterminada si no existesmallbaselineApp.py -g <custom_template> # generar/actualizar plantilla predeterminada basada en plantilla personalizada# Ejecutar con --start/stop/dostep optionssmallbaselineApp.py GalapagosSenDT128.txt --dostep velocidad # ejecutar el paso 'velocity' onlysmallbaselineApp.py GalapagosSenDT128.txt --end load_data # finalizar la ejecución después del paso 'load_data'
Dentro de smallbaselineApp.py, lee los interferogramas desenvueltos, los referencia todos al mismo píxel coherente (punto de referencia), calcula el cierre de fase y estima los errores de desenvolvimiento (si se ha solicitado), invierte la red de interferogramas en el tiempo. -series, calcula la coherencia temporal para evaluar la calidad de la inversión, corrige la deriva del oscilador local (solo para Envisat), corrige el retraso troposférico estratificado (usando modelos atmosféricos globales o enfoque de relación de elevación de fase), elimina rampas de fase (si se ha solicitado), corrige el error DEM,... y finalmente estima la velocidad.
Los parámetros de configuración para cada paso se inician con valores predeterminados en un archivo de texto personalizable 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
Los resultados se trazan en la carpeta ./pic . Para explorar más información y visualización de datos, pruebe los siguientes scripts:
info.py # verifica la estructura del archivo HDF5 y metadataview.py # mapa 2D viewtsview.py # serie temporal de puntos 1D (interactivo)plot_coherence_matrix.py # traza la matriz de coherencia para un píxel (interactivo)plot_network.py # traza la configuración de red del conjunto de datosplot_transsection .py # trazar perfil 1D a lo largo de una línea de una matriz 2D (interactiva)save_kmz.py # generar Google Earth Archivo KMZ en puntos o imágenes rasterizadasave_kmz_timeseries.py # generar archivo KMZ de Google Earth en puntos para series temporales (interactivo)
MintPy es una caja de herramientas con scripts de utilidades individuales. Simplemente ejecute el script con -h / --help
para ver su uso, ¡podría crear su propia receta de procesamiento personalizada! A continuación se muestra un ejemplo para comparar las velocidades estimadas a partir de series temporales de desplazamiento con diferentes correcciones de retraso troposférico.
mintpy
MintPy está modulado en Python con clases y funciones de utilidades y bien comentado a nivel de código. Los usuarios que estén familiarizados con Python pueden crear sus propias funciones y módulos sobre mintpy.objects
y mintpy.utils
. Sin embargo, todavía no tenemos un sitio web con el documento API completo (¡tal vez usted pueda contribuir con esto!). A continuación se muestra un ejemplo de lectura de la matriz 3D de series temporales de desplazamiento desde un archivo HDF5.
desde mintpy.utils importe readfilets_data, meta = readfile.read('timeseries_ERA5_ramp_demErr.h5')
Los algoritmos implementados en el software se describen en detalle en Yunjun et al. (2019).
Inicio rápido con conjuntos de datos de ejemplo
Directorio de datos de ejemplo
Archivos de plantilla de ejemplo
Tutoriales en Jupyter Notebook
La mayor parte de las discusiones sobre desarrollo ocurren en GitHub. No dudes en abrir un problema o comentar cualquier problema abierto o solicitud de extracción.
Únase a nuestro foro de usuarios en grupos de Google o utilice las discusiones de github para hacer preguntas o dejar comentarios.
Descargo de responsabilidad sobre el síndrome del impostor: queremos su ayuda. No, de verdad.
Es posible que haya una vocecita dentro de tu cabeza que te diga que no estás preparado para ser colaborador de código abierto; que tus habilidades no son lo suficientemente buenas para contribuir. ¿Qué podrías ofrecer?
Te lo aseguramos: la vocecita en tu cabeza está equivocada. Si puede escribir código, puede contribuir con código de código abierto. Contribuir a proyectos de código abierto es una forma fantástica de mejorar las habilidades de codificación. Escribir código perfecto no es la medida de un buen desarrollador (¡eso nos descalificaría a todos!); es intentar crear algo, cometer errores y aprender de esos errores. Así es como todos mejoramos y estamos felices de ayudar a otros a aprender.
Ser colaborador de código abierto no significa sólo escribir código. Puedes ayudar escribiendo o revisando documentación, sugiriendo o implementando pruebas, o incluso dando comentarios sobre el proyecto (y sí, eso incluye dar comentarios sobre el proceso de contribución). Algunas de estas contribuciones pueden ser las más valiosas para el proyecto en su conjunto, porque usted llega al proyecto con ojos nuevos, por lo que puede ver los errores y suposiciones que los contribuyentes experimentados han pasado por alto.
Para obtener más información, lea nuestra guía de contribución.
Este descargo de responsabilidad fue adaptado del proyecto MetPy.
Yunjun, Z., Fattahi, H. y Amelung, F. (2019), Análisis de series temporales InSAR de línea de base pequeña: corrección de errores de desenvolvimiento y reducción de ruido, Computadoras y Geociencias , 133 , 104331. [ doi | arxi | datos | computadora portátil ]
Además de lo anterior, le recomendamos citar las publicaciones originales que describen los algoritmos utilizados en su análisis específico. Se indican brevemente en el archivo de plantilla predeterminado y se enumeran en el archivo de referencia.