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 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 # executa com modelo padrão 'smallbaselineApp.cfg'smallbaselineApp.py <custom_template> # executa com modelos padrão e personalizadossmallbaselineApp.py -h / --help # helpmallbaselineApp.py -H # imprime opções de modelo padrãosmallbaselineApp.py -g # gerar modelo padrão se ele não existirmallbaselineApp.py -g <custom_template> # gerar/atualizar modelo padrão com base em modelo personalizado# Execute com --start/stop/dostep optionssmallbaselineApp.py GalapagosSenDT128.txt --dostep velocidade # execute a etapa 'velocity' onlysmallbaselineApp.py GalapagosSenDT128.txt --end load_data # finalize a execução após a etapa '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.xzcd 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 # verifica a estrutura do arquivo HDF5 e metadataview.py # mapa 2D viewtsview.py # série temporal de ponto 1D (interativo)plot_coherence_matrix.py # plota a matriz de coerência para um pixel (interativo)plot_network.py # plota a configuração de rede do conjunto de dadosplot_transsection .py # plota o perfil 1D ao longo de uma linha de uma matriz 2D (interativo)save_kmz.py # gera o Google Earth Arquivo KMZ em pontos ou imagens rasterave_kmz_timeseries.py # gera arquivo KMZ do Google Earth em pontos para séries temporais (interativo)
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.
de mintpy.utils importar readfilets_data, meta = readfile.read('timeseries_ERA5_ramp_demErr.h5')
Os algoritmos implementados no software são descritos detalhadamente em Yunjun et al. (2019).
Início rápido com conjuntos de dados de exemplo
Exemplo de diretório de dados
Arquivos de modelo de exemplo
Tutoriais no Jupyter Notebook
A maior parte das discussões sobre desenvolvimento acontece no GitHub. Sinta-se à vontade para abrir um problema ou comentar sobre qualquer problema aberto ou solicitação pull.
Participe do nosso fórum de usuários nos grupos do Google ou use as discussões do github para fazer perguntas ou deixar comentários.
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 esses erros. É 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.