Overview of Dolphin
Dolphin processes coregistered single-look complex (SLC) radar images into a time series of surface displacement. The software has an end-to-end surface displacement processing workflow, accessible through a command line tool, which calls core algorithms for PS/DS processing:
- The
shpsubpackage estimates the SAR backscatter distribution to find neighborhoods of statistically homogeneous pixels (SHPs) using the generalized likelihood ratio test from Parizzi and Brcic, 2011 or the Kolmogorov-Smirnov test from Ferretti et al., 2011. - The
phase_linksubpackage processes the complex SAR covariance matrix into a time series of wrapped phase using the CAESAR algorithm [Fornaro et al., 2015], the eigenvalue-based maximum likelihood estimator of interferometric phase (EMI) [Ansari et al., 2018], or the combined phase linking (CPL) approach from Mirzaee et al., 2023. - The
psmodule selects persistent scatterer pixels from the full-resolution SLCs to be integrated into the wrapped interferograms [Ferretti et al., 2001]. - The
unwrapsubpackage exposes multiple phase unwrapping algorithms, including the Statistical-cost, Network-flow Algorithm for Phase Unwrapping (SNAPHU) [Chen and Zebker, 2001], the PHASS algorithm (available in the InSAR Scientific Computing Environment [Rosen et al., 2018]), and the Extended Minimum Cost Flow (EMCF) 3D phase unwrapping algorithm via thespurtlibrary. Dolphin has pre- and post-processing options, including Goldstein filtering [Goldstein and Werner, 1998] or interferogram masking and interpolation [Chen et al., 2015]. - The
timeseriesmodule contains basic functionality to invert an overdetermined network of unwrapped interferograms into a time series and estimate the average surface velocity. The outputs of Dolphin are also compatible with the Miami INsar Time-series software for users who are already comfortable with MintPy [Yunjun et al., 2019].
To meet the computational demands of large-scale InSAR processing, Dolphin leverages Just-in-time (JIT) compilation, maintaining the readability of Python while matching the speed of compiled languages. The software's compute-intensive routines use the XLA compiler within JAX [Bradbury et al., 2018] for efficient CPU or GPU processing. Users with compatible GPUs can see 5-20x speedups by simply installing additional packages. Dolphin manages memory efficiently through batch processing and multi-threaded I/O, allowing it to handle datasets larger than available memory while typically using a few gigabytes for most processing stages. These optimizations enable Dolphin to process hundreds of full-frame Sentinel-1 images with minimal configuration, making it well-suited for large-scale projects such as OPERA.

For more on running the dolphin command line tool, see the walkthroughs on the Tutorials page.
| Fornaro et al., 2015 | Fornaro G., Verde S., Reale D. and Pauciullo A., 2015. CAESAR: An Approach Based on Covariance Matrix Decomposition to Improve Multibaseline--Multitemporal Interferometric SAR Processing. IEEE Transactions on Geoscience and Remote Sensing. 53, pp.2050--2065. 10.1109/TGRS.2014.2352853 |
| Ansari et al., 2018 | Ansari H., De F. and Bamler R., 2018. Efficient Phase Estimation for Interferogram Stacks. IEEE Transactions on Geoscience and Remote Sensing. 56, pp.4109--4125. 10.1109/TGRS.2018.2826045 |
| Ferretti et al., 2001 | Ferretti A., Prati C. and Rocca F., 2001. Permanent Scatters in SAR Interferometry. IEEE Transactions on Geoscience and Remote Sensing. 39, pp.8--20. 10.1109/36.898661 |
| Chen and Zebker, 2001 | Chen C.W. and Zebker H.A., 2001. Two-Dimensional Phase Unwrapping with Use of Statistical Models for Cost Functions in Nonlinear Optimization. Journal of the Optical Society of America A. 18, pp.338. 10.1364/JOSAA.18.000338 |
| Rosen et al., 2018 | Rosen P.A., Gurrola E.M., Agram P., Cohen J., Lavalle M., Riel B.V., Fattahi H., Aivazis M.A., Simons M. and Buckley S.M., 2018. The InSAR Scientific Computing Environment 3.0: A Flexible Framework for NISAR Operational and User-Led Science Processing. 10.1109/IGARSS.2018.8517504 |
| Goldstein and Werner, 1998 | Goldstein R.M. and Werner C.L., 1998. Radar Interferogram Filtering for Geophysical Applications. Geophysical Research Letters. 25, pp.4035--4038. 10.1029/1998GL900033 |
| Chen et al., 2015 | Chen J., Zebker H.A. and Knight R., 2015. A Persistent Scatterer Interpolation for Retrieving Accurate Ground Deformation over InSAR-decorrelated Agricultural Fields. Geophysical Research Letters. 42, pp.9294--9301. 10.1002/2015GL065031 |
| Yunjun et al., 2019 | Yunjun Z., Fattahi H. and Amelung F., 2019. Small Baseline InSAR Time Series Analysis: Unwrapping Error Correction and Noise Reduction. Computers \& Geosciences. 133, pp.104331. 10.1016/j.cageo.2019.104331 |
| Bradbury et al., 2018 | Bradbury J., Frostig R., Hawkins P., Johnson M.J., Leary C., Maclaurin D., Necula G., Paszke A., VanderPlas J., Wanderman-Milne S. and Zhang Q., 2018. JAX: Composable Transformations of Python+NumPy Programs. |