Программное обеспечение Miami INsar Time-series на PYthon (MintPy как /mɪnt paɪ/) представляет собой пакет с открытым исходным кодом для анализа временных рядов интерферометрического радара с синтезированной апертурой (InSAR). Он считывает стопку интерферограмм (зарегистрированных и развернутых) в формате ISCE, ARIA, FRInGE, HyP3, GMTSAR, SNAP, GAMMA или ROI_PAC и производит трехмерное (2D в пространстве и 1D во времени) смещение поверхности земли по прямой линии. направление взгляда. Он включает в себя обычный анализ временных рядов ( smallbaselineApp.py
) и некоторый независимый набор инструментов.
До версии 1.1.1 этот пакет назывался PySAR. Для версии 1.1.2 и более поздних версий вместо этого мы используем MintPy.
Это исследовательский код, предоставляемый вам «как есть» БЕЗ ГАРАНТИЙ ПРАВИЛЬНОСТИ. Используйте на свой страх и риск.
smallbaselineApp.py
MintPy считывает стопку интерферограмм (развернутые интерферограммы, когерентность и связанные компоненты из SNAPHU, если таковые имеются) и файлы геометрии (матрица высот, таблица поиска, угол падения и т. д.). Вам нужно указать путь к файлам, а MintPy позаботится обо всем остальном!
smallbaselineApp.py # запустить с шаблоном по умолчанию 'smallbaselineApp.cfg'smallbaselineApp.py <custom_template> # запустить с шаблонами по умолчанию и пользовательскими шаблонамиsmallbaselineApp.py -h / --help # helpmallbaselineApp.py -H # распечатать параметры шаблона по умолчаниюsmallbaselineApp.py -g # создать шаблон по умолчанию, если он не существуетmallbaselineApp.py -g <custom_template> # создать/обновить шаблон по умолчанию на основе пользовательского шаблона# Запустить с --start/stop/dostep optionssmallbaselineApp.py GalapagosSenDT128.txt --dostep скорость # выполнить шаг 'velocity' onlysmallbaselineApp.py GalapagosSenDT128.txt --end load_data # завершить запуск после шага 'load_data'
Внутри smallbaselineApp.py он считывает развернутые интерферограммы, связывает их все с одним и тем же когерентным пикселем (опорной точкой), вычисляет замыкание фазы и оценивает ошибки развертывания (если это было запрошено), инвертирует сеть интерферограмм во времени. -series, рассчитывает временную когерентность для оценки качества инверсии, корректирует дрейф гетеродина (только для Envisat), корректирует стратифицированную тропосферу задержка (с использованием глобальных атмосферных моделей или подхода, основанного на соотношении фаз), удаляет фазовые изменения (если это было запрошено), исправляет ошибку DEM... и, наконец, оценивает скорость.
Параметры конфигурации для каждого шага задаются со значениями по умолчанию в настраиваемом текстовом файле 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
Результаты отображаются в папке ./pic . Чтобы изучить дополнительную информацию и визуализацию данных, попробуйте следующие сценарии:
info.py # проверка структуры файла HDF5 и метаданных.py # 2D-карта viewtsview.py # 1D-точечные временные ряды (интерактивные)plot_coherence_matrix.py # построение матрицы когерентности для одного пикселя (интерактивное)plot_network.py # построение сетевой конфигурации набора данныхplot_transection .py # построение 1D-профиля вдоль линии 2D-матрицы (интерактивно) save_kmz.py # создание Google Earth Файл KMZ в точках или растровых изображениях save_kmz_timeseries.py # создать файл KMZ Google Earth в точках для временных рядов (интерактивный)
MintPy — это набор инструментов с отдельными служебными скриптами. Просто запустите скрипт с ключом -h / --help
, чтобы увидеть его использование, и вы сможете создать свой собственный рецепт обработки! Вот пример сравнения скоростей, оцененных по временным рядам смещений с различными поправками на тропосферную задержку.
mintpy
MintPy модулируется на Python с помощью служебных классов и функций и хорошо комментируется на уровне кода. Пользователи, знакомые с Python, могут создавать свои собственные функции и модули на основе mintpy.objects
и mintpy.utils
. Однако у нас пока нет полноценного веб-сайта с документами по API (возможно, вы сможете внести свой вклад!). Ниже приведен пример чтения трехмерной матрицы временного ряда смещения из файла HDF5.
из mintpy.utils импортируйте readfilets_data, мета = readfile.read('timeseries_ERA5_ramp_demErr.h5')
Алгоритмы, реализованные в программном обеспечении, подробно описаны Yunjun et al. (2019).
Быстрый старт с примерами наборов данных
Пример каталога данных
Примеры файлов шаблонов
Учебные пособия по Jupyter Notebook
Большая часть обсуждений разработки происходит на GitHub. Не стесняйтесь открывать проблему или комментировать любую открытую проблему или запрос на включение.
Присоединяйтесь к нашему форуму пользователей в группах Google или используйте обсуждения GitHub, чтобы задавать вопросы или оставлять комментарии.
Отказ от ответственности при синдроме самозванца: нам нужна ваша помощь. Нет, правда.
В вашей голове может звучать тихий голос, говорящий вам, что вы не готовы участвовать в разработке ПО с открытым исходным кодом; что ваши навыки недостаточно хороши, чтобы внести свой вклад. Что вы могли бы предложить?
Уверяем вас – голосок в вашей голове ошибается. Если вы вообще умеете писать код, вы можете внести его в открытый исходный код. Участие в проектах с открытым исходным кодом — отличный способ улучшить свои навыки программирования. Написание идеального кода не является показателем хорошего разработчика (это дисквалифицирует всех нас!); он пытается что-то создать, совершает ошибки и учится на этих ошибках. Именно так мы все совершенствуемся, и мы рады помочь другим учиться.
Быть участником открытого исходного кода — это не просто писать код. Вы можете помочь, написав или вычитав документацию, предложив или внедрив тесты, или даже оставив отзыв о проекте (и да, это включает в себя предоставление отзывов о процессе участия). Некоторые из этих вкладов могут оказаться наиболее ценными для проекта в целом, поскольку вы подходите к проекту свежим взглядом и можете увидеть ошибки и предположения, которые опытные участники замалчивают.
Для получения дополнительной информации, пожалуйста, прочитайте наше руководство по участию.
Этот отказ от ответственности был адаптирован из проекта MetPy.
Юнджун З., Фаттахи Х. и Амелунг Ф. (2019), Анализ временных рядов InSAR для малых базовых показателей: коррекция ошибок и уменьшение шума, Computers & Geosciences , 133 , 104331. [ doi | архив | данные | блокнот ]
Помимо вышесказанного, мы рекомендуем вам ссылаться на оригинальные публикации, описывающие алгоритмы, использованные в вашем конкретном анализе. Они кратко отмечены в файле шаблона по умолчанию и перечислены в справочном файле.