Skip to content

How to geocode dolphin results (ISCE2 / ISCE3)

After running dolphin on radar-geometry data processed with ISCE2 or ISCE3, the outputs (interferograms, unwrapped phase, time series, velocity) are still in swath/radar coordinates. The dolphin geocode command transforms them to geographic coordinates using per-pixel latitude/longitude arrays from ISCE's geometry products.

It auto-detects the geolocation file naming convention:

Processor Geometry directory Lat file Lon file
ISCE3 / dolphin geometry/ y.tif x.tif
ISCE2 topsStack merged/geom_reference/ lat.rdr lon.rdr
ISCE2 stripmapStack geom_reference/ lat.rdr lon.rdr

Bulk geocode a dolphin work directory

The simplest way to geocode all outputs at once. This discovers rasters in timeseries/, unwrapped/, etc. and writes geocoded results to <dolphin-dir>/geocoded/, mirroring the directory structure.

dolphin geocode \
    -d ./dolphin_output \
    -g ./geometry \
    -c dolphin_config.yaml

The -c flag reads output_options.strides from your config so the geolocation arrays (which are at full resolution) are properly subsampled to match your multilooked outputs.

ISCE2 topsStack example

dolphin geocode \
    -d ./dolphin_output \
    -g ./merged/geom_reference \
    -c dolphin_config.yaml

ISCE2 stripmapStack example

dolphin geocode \
    -d ./dolphin_output \
    -g ./geom_reference \
    -c dolphin_config.yaml

Geocode specific files

You can also pass individual files instead of a whole directory:

# Single file
dolphin geocode -i velocity.tif -g geometry/

# Multiple files to an output directory
dolphin geocode \
    -i timeseries/velocity.tif \
    -i unwrapped/20220101_20220201.unw.tif \
    -g geometry/ \
    -o geocoded/

Reproject to UTM with a specific pixel spacing

dolphin geocode \
    -d ./dolphin_output \
    -g ./geometry \
    -c dolphin_config.yaml \
    --srs 32610 \
    -s 30

This reprojects to UTM zone 10N (EPSG:32610) with 30-meter pixel spacing.

Apply a mask during geocoding

Pass a binary mask (0 = invalid, nonzero = valid) to mark pixels as nodata in the geocoded output. The mask can be at the strided resolution or at full resolution (it will be subsampled automatically if strides are set).

dolphin geocode \
    -i velocity.tif \
    -g geometry/ \
    -c dolphin_config.yaml \
    --mask water_mask.tif

Include additional products

By default, bulk mode geocodes time series and unwrapped interferograms. Use flags to include more:

dolphin geocode \
    -d ./dolphin_output \
    -g ./geometry \
    --include-interferograms \
    --include-auxiliary
Flag What it adds
--include-unwrapped Unwrapped interferograms (on by default)
--include-interferograms Wrapped interferograms, similarity, temporal/multilooked coherence
--include-auxiliary CRLB, amplitude dispersion

Parallel processing

Geocoding is parallelized across files. Control the number of workers with -j:

dolphin geocode -d ./dolphin_output -g ./geometry -j 4