O software Miami INsar Time-series em PYthon (MintPy as /mɪnt paɪ/) é um pacote de código aberto para análise de séries temporais Interferometric Synthetic Aperture Radar (InSAR). Ele lê a pilha de interferogramas (co-registrados e desembrulhados) nos formatos ISCE, ARIA, FRInGE, HyP3, GMTSAR, SNAP, GAMMA ou ROI_PAC e produz deslocamento tridimensional da superfície do solo (2D no espaço e 1D no tempo) em linha de - direção de visão. Inclui uma análise de série temporal de rotina ( smallbaselineApp.py
) e algumas caixas de ferramentas independentes.
Este pacote era denominado PySAR antes da versão 1.1.1. Para a versão 1.1.2 e posteriores, usamos MintPy.
Este é um código de pesquisa fornecido a você "como está", SEM GARANTIAS DE CORREÇÃO. Use por sua conta e risco.
smallbaselineApp.py
MintPy lê uma pilha de interferogramas (interferogramas desembrulhados, coerência e componentes conectados do SNAPHU, se disponível) e os arquivos de geometria (DEM, tabela de consulta, ângulo de incidência, etc.). Você precisa fornecer o caminho de onde estão os arquivos e o MintPy cuida do resto!
smallbaselineApp.py # run with default template 'smallbaselineApp.cfg'
smallbaselineApp.py < custom_template > # run with default and custom templates
smallbaselineApp.py -h / --help # help
smallbaselineApp.py -H # print default template options
smallbaselineApp.py -g # generate default template if it does not exist
smallbaselineApp.py -g < custom_template > # generate/update default template based on custom template
# Run with --start/stop/dostep options
smallbaselineApp.py GalapagosSenDT128.txt --dostep velocity # run step 'velocity' only
smallbaselineApp.py GalapagosSenDT128.txt --end load_data # end run after step 'load_data'
Dentro de smallbaselineApp.py, ele lê os interferogramas desembrulhados, referencia todos eles ao mesmo pixel coerente (ponto de referência), calcula o fechamento da fase e estima os erros de desembrulhamento (se solicitado), inverte a rede de interferogramas em tempo -série, calcula a coerência temporal para avaliar a qualidade da inversão, corrige o desvio do oscilador local (apenas para Envisat), corrige o atraso troposférico estratificado (usando modelos atmosféricos globais ou abordagem de relação de elevação de fase), remove rampas de fase (se tiver sido solicitado), corrige o erro DEM,... e finalmente estima a velocidade.
Os parâmetros de configuração para cada etapa são iniciados com valores padrão em um arquivo de texto customizável smallbaselineApp.cfg .
wget https://zenodo.org/record/3952953/files/FernandinaSenDT128.tar.xz
tar -xvJf FernandinaSenDT128.tar.xz
cd FernandinaSenDT128/mintpy
smallbaselineApp.py ${MINTPY_HOME} /docs/templates/FernandinaSenDT128.txt
Os resultados são plotados na pasta ./pic . Para explorar mais informações e visualização de dados, experimente os seguintes scripts:
info.py # check HDF5 file structure and metadata
view.py # 2D map view
tsview.py # 1D point time-series (interactive)
plot_coherence_matrix.py # plot coherence matrix for one pixel (interactive)
plot_network.py # plot network configuration of the dataset
plot_transection.py # plot 1D profile along a line of a 2D matrix (interactive)
save_kmz.py # generate Google Earth KMZ file in points or raster image
save_kmz_timeseries.py # generate Google Earth KMZ file in points for time-series (interactive)
MintPy é uma caixa de ferramentas com scripts utilitários individuais. Basta executar o script com -h / --help
para ver seu uso, você pode criar sua própria receita de processamento personalizada! Aqui está um exemplo para comparar as velocidades estimadas a partir de séries temporais de deslocamento com diferentes correções de atraso troposférico.
mintpy
MintPy é modulado em Python com classes e funções utilitárias e bem comentado em nível de código. Os usuários familiarizados com Python podem criar suas próprias funções e módulos sobre mintpy.objects
e mintpy.utils
. No entanto, ainda não temos um site completo de documentos de API (talvez você possa contribuir com isso!). Abaixo está um exemplo de leitura da matriz 3D de séries temporais de deslocamento de um arquivo HDF5.
from mintpy . utils import readfile
ts_data , meta = readfile . read ( 'timeseries_ERA5_ramp_demErr.h5' )
Os algoritmos implementados no software são descritos detalhadamente em Yunjun et al. (2019).
Isenção de responsabilidade da síndrome do impostor: queremos sua ajuda. Não, realmente.
Pode haver uma vozinha dentro da sua cabeça dizendo que você não está pronto para ser um contribuidor de código aberto; que suas habilidades não são boas o suficiente para contribuir. O que você poderia oferecer?
Garantimos que a vozinha em sua cabeça está errada. Se você consegue escrever código, você pode contribuir com código para código aberto. Contribuir para projetos de código aberto é uma maneira fantástica de aprimorar suas habilidades de codificação. Escrever código perfeito não é a medida de um bom desenvolvedor (isso desqualificaria todos nós!); é tentar criar algo, cometer erros e aprender com eles. É assim que todos melhoramos e ficamos felizes em ajudar os outros a aprender.
Ser um contribuidor de código aberto não significa apenas escrever código. Você pode ajudar escrevendo ou revisando documentação, sugerindo ou implementando testes, ou até mesmo dando feedback sobre o projeto (e sim - isso inclui dar feedback sobre o processo de contribuição). Algumas dessas contribuições podem ser as mais valiosas para o projeto como um todo, porque você está abordando o projeto com novos olhos, para poder ver os erros e suposições que colaboradores experientes ignoraram.
Para obter mais informações, leia nosso guia de contribuição.
Esta isenção de responsabilidade foi adaptada do projeto MetPy.
Yunjun, Z., Fattahi, H. e Amelung, F. (2019), Análise de série temporal InSAR de linha de base pequena: Desembrulhando correção de erros e redução de ruído, Computers & Geosciences , 133 , 104331. [doi | arxiv | dados | caderno ]
Além do acima exposto, recomendamos que você cite as publicações originais que descrevem os algoritmos utilizados em sua análise específica. Eles são anotados brevemente no arquivo de modelo padrão e listados no arquivo de referência.