Skip to main content

dolphin

Pytest and build docker image pre-commit.ci status Documentation Status Conda-Forge PyPI platforms GitHub Discussion DOI

High resolution wrapped phase estimation for Interferometric Synthetic Aperture Radar (InSAR) using combined persistent scatterer (PS) and distributed scatterer (DS) processing.

Install

dolphin may be installed via conda-forge:

# if mamba is not already installed, see here: https://mamba.readthedocs.io/en/latest/
mamba install -c conda-forge dolphin

It is also available via PyPI and may be pip-installed on some platforms, such as Google's Colab. However, certain dependencies (e.g. GDAL) are more easily set up through conda.

dolphin has the ability to unwrap interferograms using several options, which can be toggled using the unwrap_method configuration option:

  1. snaphu-py, a lightweight Python bindings to SNAPHU. Available on both pip and conda.
  2. isce3's python bindings to SNAPHU, PHASS, or ICU
  3. spurt, a 3D unwrapper, implementing the Extended Minimum Cost Flow (ECMF) algorithm
  4. tophu, a multi-scale unwrapper designed to unwrap large interferograms in parallel tiles at multiple resolution.

These may be installed via conda or (in the case of snaphu-py) pip.

To install locally:

  1. Download source code:
git clone https://github.com/isce-framework/dolphin.git && cd dolphin
  1. Install dependencies:
mamba env create --file conda-env.yml

or if you have an existing environment:

mamba env update --name my-existing-env --file conda-env.yml
  1. Install dolphin via pip:
conda activate dolphin-env
python -m pip install .

Dolphin can also take advantage of CUDA-compatible GPUs for faster processing. See the docs for installation instructions and configuration.

Usage

The main entry point for configuring and running workflows the dolphin command line tool:

  1. dolphin config: create a workflow configuration file.
  2. dolphin run : run the workflow using this file.

Example usage:

dolphin config --slc-files /path/to/slcs/*tif
# OR: to make a coarser output 4x as quickly:
# dolphin config --slc-files /path/to/slcs/*tif --strides 2 2
dolphin run dolphin_config.yaml

The config command creates a YAML file (by default dolphin_config.yaml in the current directory). If you'd like to see an empty YAML with all defaults filled in, you can run dolphin config --print-empty, which creates a sample file like the one here

The only required inputs for the workflow are the paths to the coregistered SLC files (in either geographic or radar coordinates). If the SLC files are spread over multiple files, you can either

  1. use the --slc-files option with a bash glob pattern, (e.g. dolphin config --slc-files merged/SLC/*/*.slc would match the ISCE2 stack processor output )

  2. Store all input SLC files in a text file delimited by newlines (e.g. my_slc_list.txt), and give the name of this text file prefixed by the @ character (e.g. dolphin config --slc-files @my_slc_list.txt)

The full set of options is written to the configuration file; you can edit this file, or you can see which commonly tuned options by are changeable running dolphin config --help.

Building and running via Docker

dolphin can also be run using Docker. You can use the one built on Github, or build it locally using the script

./docker/build-docker-image.sh

Citation

If you use dolphin in your research, please cite:

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

Contributing

We welcome many forms of contributing, including testing, bug reports, and documentation fixes. If you think you've found a problem, please let us know! You can raise an issue on the repository, where there are templates for Bug Reports and Feature Requests. If you have a general question of idea, feel free to raise it in the Discussions page.

For more detailed guidance on setting up a development environment, including how make and test changes to the code, see Contributing to Dolphin.

For more general Q&A, please use the Discussions page.

License

This software is licensed under your choice of BSD-3-Clause or Apache-2.0 licenses. See the accompanying LICENSE file for further details.

SPDX-License-Identifier: BSD-3-Clause OR Apache-2.0

Release files for dolphin 0.42.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dolphin 0.42.7
File Size Uploaded
dolphin-0.42.7.tar.gz 9.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dolphin 0.42.7
File Interpreter ABI Platform
dolphin-0.42.7-py3-none-any.whl Python 3 none any Details

Total release size: 9.8 MB

Release files / dolphin-0.42.7.tar.gz

Download URL dolphin-0.42.7.tar.gz
Size 9.5 MB
Tags Source
SHA-256 checksum
How to use checksums
d1fb8674973e79a6dbe3aa6c7395fd6e54c75598f8d0055871a7b07899512df4
BLAKE2b-256 checksum
How to use checksums
05969b2de2de4004fe35434f053af82647a1c25b9660c542eb4b9619dd7aa7e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.

Transparency log

Release files / dolphin-0.42.7-py3-none-any.whl

Download URL dolphin-0.42.7-py3-none-any.whl
Size 246.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d3d31608668924b49e03476341f03c7aabc98d0da1b15db062536e74a2f1fb6b
BLAKE2b-256 checksum
How to use checksums
b579e314329830922269528a49430fe5cf07478542998c18ab3ea0c81c57ea70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page