A combined InSAR, pixel-offsets workflow for measuring elevation change in Nepal using Sentinel-1 Synthethic Aperture Radar bursts
See the following manuscript for a detailed application of this software to study degradation of the Imja Lake moraine dam in Nepal between 2017 and 2024: https://doi.org/10.5194/egusphere-2024-3196
Note: since this workflow was developed, ASF has continued to update hyp3-isce2 workflows, please consider if those meet your needs before using this repository.
Run a modified fork of hyp3-isce2 (https://github.com/relativeorbit/hyp3-isce2) to generate an inventory of inteferograms and pixel offset maps for a given Sentinel-1 burst. Workflows are written using Python scripts and GitHub Actions for concurrent batch processing on Microsoft Azure.
Resuable Workflows are composed to run processing of a single image pair, to processing all pairs over all available years in parallel (Sentinel-1 acquisitions start in October 2014).
At a minimum you need to select a Sentinel-1 Burst. You can search for Burst IDs using NASA Earthdata Search
Install the GitHub actions CLI in order to easily run workflows from the command line. Alternatively you can manually run workflows from the 'Actions' repository tab.
Note: you must be a member of this GitHub organization to run these workflows, or you can fork this repository and add your own secrets (see below).
Use the full SLC names and specify the full burstId ([Track]_[Burst]_[Subswath]) that you want to process:
gh -R relativeorbit/fufiters workflow run insar_pair.yml \
-f reference=S1A_IW_SLC__1SDV_20190101T121401_20190101T121429_025284_02CBEB_65D7 \
-f secondary=S1A_IW_SLC__1SDV_20190113T121401_20190113T121429_025459_02D234_3311 \
-f burstId=012_023790_IW1
Note: to select SLC names you can use https://search.asf.alaska.edu or use ASF's Python Client https://github.com/asfadmin/Discovery-asf_search
Optional inputs for all workflows:
nlooks=5x1 [20x4, 10x2]
polarization=VV [HH]
You must first install a specific branch of hyp3-isce2, we recommend using pixi to setup a reproducible (locked) environment:
git clone https://github.com/relativeorbit/hyp3-isce2.git
pixi shell --frozen
cd /tmp
python -m hyp3_isce2 ++process insar_tops_fufiters \
S1A_IW_SLC__1SDV_20190101T121401_20190101T121429_025284_02CBEB_65D7 \
S1A_IW_SLC__1SDV_20190113T121401_20190113T121429_025459_02D234_3311 \
--burstId 012_023790_IW1 \
--looks 20x4 \
--apply-water-mask FalseThis workflow will do the search automatically and create 3 pairs for every acquisition date in a year (n+1, n+2, n+3 pairs).
gh -R relativeorbit/fufiters workflow run insar_timeseries.yml \
-f year=2023 \
-f burstId=012_023790_IW1This workflow will do the search automatically and create 3 pairs for every date (n+1, n+2, n+3 pairs). It uses a 'matrix job' such that processing sets of interferograms for each year runs in parallel.
gh -R relativeorbit/fufiters workflow run insar_pipeline.yml \
-f burstId=012_023790_IW1gh -R relativeorbit/fufiters workflow run offsets_pipeline.yml \
-f burstId=012_023790_IW1Note this particular workflow was run twice
gh -R relativeorbit/fufiters run list -w insar_pipeline.yml
STATUS TITLE WORKFLOW BRANCH EVENT ID ELAPSED AGE
✓ 121_258662_IW2 VV 5x1 3 InSAR_Pipeline main workflow_dispatch 8072975855 23m26s about 15 hours ago
✓ 121_258661_IW2 VV 5x1 2 InSAR_Pipeline main workflow_dispatch 8055416864 1h29m41s about 1 day agogh -R relativeorbit/fufiters run view 8072975855# Download interferograms for a specific date
gh -R relativeorbit/fufiters run download 8072975855 --dir /tmp/121_258662_IW2 --pattern "*20190813*"
# Specific artifact
gh -R relativeorbit/fufiters run download 8072975855 --dir /tmp/121_258662_IW2 --name "20190720_20190813"
# All artifacts (may take a while!)
gh -R relativeorbit/fufiters run download 8072975855 --dir /tmp/121_258662_IW2-
The workflow requires the following Actions secrets:
AWS_ACCESS_KEY_ID&AWS_SECRET_ACCESS_KEY(for an IAM user that only has access to and S3 bucket)EARTHDATA_USERNAME&EARTHDATA_PASSWORD(to download S1 Bursts from ASF DAAC https://urs.earthdata.nasa.gov)ESA_USERNAME&ESA_PASSWORD(to download Sentinel-1 precise orbits from https://dataspace.copernicus.eu)
-
Persistant COG outputs are stored in an AWS S3 Bucket (configured here https://github.com/relativeorbit/pulumi-fufiters).