isce-framework/dolphin
GitHub: isce-framework/dolphin
dolphin 是一个用于大规模 InSAR 数据处理的 Python 库,通过 PS/DS 相位链接技术生成高分辨率地表位移图。
Stars: 141 | Forks: 31
# dolphin
[](https://github.com/isce-framework/dolphin/actions/workflows/test-build-push.yml)
[](https://results.pre-commit.ci/latest/github/isce-framework/dolphin/main)
[][rtd-link]
[][conda-link]
[][pypi-link]
[][github-discussions-link]
[](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, 合成孔径雷达, 地表形变监测, 无后门, 相位解缠, 请求拦截, 逆向工具, 遥感图像处理