isce-framework/dolphin

GitHub: isce-framework/dolphin

dolphin 是一个用于大规模 InSAR 数据处理的 Python 库,通过 PS/DS 相位链接技术生成高分辨率地表位移图。

Stars: 141 | Forks: 31

# dolphin [![Pytest 和构建 docker 镜像](https://static.pigsec.cn/wp-content/uploads/repos/cas/4d/4d436aed638ff8316460f6466acd2b4c8e3ad16e188089a795630d9e95feb192.svg)](https://github.com/isce-framework/dolphin/actions/workflows/test-build-push.yml) [![pre-commit.ci 状态](https://results.pre-commit.ci/badge/github/isce-framework/dolphin/main.svg)](https://results.pre-commit.ci/latest/github/isce-framework/dolphin/main) [![文档状态](https://readthedocs.org/projects/dolphin-insar/badge/?version=latest)][rtd-link] [![Conda-Forge](https://img.shields.io/conda/vn/conda-forge/dolphin)][conda-link] [![PyPI 平台](https://img.shields.io/pypi/pyversions/dolphin)][pypi-link] [![GitHub 讨论](https://img.shields.io/static/v1?label=Discussions&message=Ask&color=blue&logo=github)][github-discussions-link] [![DOI](https://joss.theoj.org/papers/10.21105/joss.06997/status.svg)](https://doi.org/10.21105/joss.06997) 使用综合的永久散射体 (PS) 和分布式散射体 (DS) 处理技术,为干涉合成孔径雷达 (InSAR) 提供高分辨率的缠绕相位估计。 ## 安装 `dolphin` 可以通过 conda-forge 安装: ``` # 如果尚未安装 mamba,请参阅此处:https://mamba.readthedocs.io/en/latest/ mamba install -c conda-forge dolphin ``` 它也可以通过 [`PyPI`](https://pypi.org/project/dolphin/) 获取,并且可以在某些平台上(例如 Google 的 Colab)使用 `pip` 进行安装。但是,通过 `conda` 安装某些依赖项(例如 GDAL)会更简单。 `dolphin` 能够使用多种选项来解缠干涉图,可以通过 `unwrap_method` 配置选项进行切换: 1. [`snaphu-py`](https://github.com/isce-framework/snaphu-py),[SNAPHU](https://web.stanford.edu/group/radar/softwareandlinks/sw/snaphu/) 的轻量级 Python 绑定。在 pip 和 conda 上均可使用。 2. [`isce3`](https://github.com/isce-framework/isce3) 对 SNAPHU、PHASS 或 ICU 的 Python 绑定 3. [`spurt`](https://github.com/isce-framework/spurt),一个 3D 解缠器,实现了扩展最小费用流 (ECMF) 算法 4. [`tophu`](https://github.com/isce-framework/tophu),一个多尺度解缠器,旨在并行处理多分辨率分块以解缠大型干涉图。 这些可以通过 conda 或(对于 `snaphu-py` 而言)pip 安装。 本地安装步骤如下: 1. 下载源代码: ``` git clone https://github.com/isce-framework/dolphin.git && cd dolphin ``` 2. 安装依赖项: ``` mamba env create --file conda-env.yml ``` 或者,如果您已有环境: ``` mamba env update --name my-existing-env --file conda-env.yml ``` 3. 通过 pip 安装 `dolphin`: ``` conda activate dolphin-env python -m pip install . ``` Dolphin 还可以利用兼容 CUDA 的 GPU 来加快处理速度。有关安装说明和配置,请[参阅文档](https://dolphin-insar.readthedocs.io/en/latest/gpu-setup)。 ## 用法 配置和运行工作流的主要入口点是 `dolphin` 命令行工具: 1. `dolphin config`:创建一个工作流配置文件。 2. `dolphin run`:使用该文件运行工作流。 示例用法: ``` dolphin config --slc-files /path/to/slcs/*tif # 或者:要以快 4 倍的速度生成更粗糙的输出: # dolphin config --slc-files /path/to/slcs/*tif --strides 2 2 dolphin run dolphin_config.yaml ``` `config` 命令会创建一个 YAML 文件(默认在当前目录下生成 `dolphin_config.yaml`)。如果您想查看一个填充了所有默认值的空白 YAML,可以运行 `dolphin config --print-empty`,它会生成一个[类似于此处的示例文件](https://raw.githubusercontent.com/isce-framework/dolphin/refs/heads/main/docs/sample_dolphin_config.yaml) 该工作流唯一必需的输入项是配准后的 SLC 文件的路径(地理坐标或雷达坐标均可)。 如果 SLC 文件分散在多个文件中,您可以 1. 将 `--slc-files` 选项与 bash glob 模式结合使用,(例如 `dolphin config --slc-files merged/SLC/*/*.slc` 将匹配 [ISCE2 堆栈处理器的输出](https://github.com/isce-framework/isce2/tree/main/contrib/stack) ) 2. 将所有输入的 SLC 文件存储在一个以换行符分隔的文本文件中(例如 `my_slc_list.txt`),然后提供该文本文件的名称并加上 `@` 字符作为前缀(例如 `dolphin config --slc-files @my_slc_list.txt`) 完整的选项集会被写入配置文件中;您可以编辑此文件,也可以通过运行 `dolphin config --help` 查看哪些常用调整选项是可以更改的。 ## 通过 Docker 构建和运行 `dolphin` 也可以使用 Docker 运行。您可以使用在 [Github](https://github.com/isce-framework/dolphin/pkgs/container/dolphin) 上构建的镜像,或者使用以下脚本在本地构建 ``` ./docker/build-docker-image.sh ``` ## 引用 如果您在研究中使用了 `dolphin`,请引用: Staniewicz et al., (2024). Dolphin: A Python package for large-scale InSAR PS/DS processing. Journal of Open Source Software, 9(103), 6997, https://doi.org/10.21105/joss.06997 ## 许可证 本软件根据您的选择适用 BSD-3-Clause 或 Apache-2.0 许可证。有关更多详细信息,请参阅随附的 LICENSE 文件。 SPDX-License-Identifier: BSD-3-Clause OR Apache-2.0
标签:InSAR, Python, Vectored Exception Handling, 合成孔径雷达, 地表形变监测, 无后门, 相位解缠, 请求拦截, 逆向工具, 遥感图像处理