relativeorbit / fufiters

run hyp3-isce2 via github actions
MIT License
2 stars 0 forks source link

Fufiters

Test Workflow

A combined InSAR, pixel-offsets workflow for measuring elevation change in Nepal using Sentinel-1 Synthethic Aperture Radar bursts

Design

Run a modified version of 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

Instructions

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).

Generate a single burst interferogram:

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]
Run workflow locally

You must first install a specific branch of hyp3-isce2:

git clone https://github.com/relativeorbit/hyp3-isce2.git
cd hyp3-isce2
mamba env create -f environment.yml
git checkout fufiters
pip install -e .

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 False

Generate a set of interferograms for a specific year

This 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_IW1  

Generate a set of interferograms for all years

This 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_IW1  

Generate a set of pixel offsets for all years

gh -R relativeorbit/fufiters workflow run offsets_pipeline.yml \
  -f burstId=012_023790_IW1  

Download artifacts

Note 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 ago
gh -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

Configuration

Acknowledgments

University of Washington eScience Winter Incubator 2024