Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

InSARHub

InSARHub is a modular Python framework for automated InSAR and time-series processing.

The primary goal of this package is to provide a streamlined and user-friendly InSAR processing experience across multiple satellite products. InSARHub currently supports:

Satellite Product Mode Download IFG Generation Timeseries Analysis
Sentinel-1 SLC Mixed¹ / Local / HPC³ / Container⁴
Sentinel-1 Burst² Local / HPC³ / Container⁴
NISAR GSLC⁵ Local / HPC³ / Container⁴

¹ Mixed — process pipeline that mixed with cloud processing and local processing

² Burst — ASF SLC-BURST granules assembled into .SAFE with burst2safe

³ HPC — submit each processing step/stage to a SLURM scheduler (sbatch) for cluster-scale runs; a sliding-window manager caps concurrent jobs and chains dependent stages automatically.

Container — run any local backend inside a Docker/Apptainer image with no local SAR software installed. Set --container <image> (or the container config field); the image runs the pipeline while only the host needs a container runtime. See the prebuilt ghcr.io/jldz9/insarhub-*:dev images.

GSLC — NISAR L2 geocoded SLC; interferograms and time series are produced via ISCE3 + dolphin (ISCE3_NISARISCE3_Dolphin_PL). NISAR RSLC / GUNW are download-only.

Table of Contents

Web UI

InSARHub includes a self-hosted web interface that covers the full InSAR workflow — from scene search and download through interferogram processing to time-series analysis.

insarhub-app

Open http://localhost:8080 to access the UI.

All data stays on your machine — InSARHub runs a local FastAPI server and delivers a modern React frontend directly in your browser.

See the Web UI documentation for a full walkthrough.

Search & Download

Draw an AOI on the interactive map, set a date range and orbit filters, and search ASF for Sentinel-1 SLC stacks. InSARHub groups results by track/frame and downloads scenes and precise orbit files automatically.

Search & Download

Pair Selection & Quality Scoring

Build the interferogram network interactively. Pairs are colored by score so weak connections stand out immediately. Adjust temporal or perpendicular baseline limits and drag nodes/edges to refine the network live.

Pair Network Editor

Processor

Submit the selected pairs to HyP3 (cloud, no local SAR software needed) or run ISCE2 stackSentinel locally or via SLURM. Monitor job status, download results, and retry failed jobs from the same panel.

Analyzer

Run MintPy SBAS time-series analysis step by step. Edit the network post-ingest, inspect diagnostic overview layers, and export velocity and displacement maps when done.

Results Viewer

Overlay the LOS velocity map on the basemap and click any pixel to plot its full displacement time series.

Timeseries

Installation

InSARHub can be installed using Conda:

conda install insarhub -c conda-forge

Pip:

conda install gdal -c conda-forge
pip install insarhub

From source:

git clone https://github.com/jldz9/InSARHub.git
cd InSARHub
conda env create -f environment.yml -n insarhub_dev
conda activate insarhub_dev
pip install -e .

ISCE2 local processing requires ISCE2 installed into the same environment. After the environment.yml setup above:

conda activate insarhub_dev
conda install -c conda-forge "numpy<2.0" isce2

The explicit numpy<2.0 keeps conda's solver from re-resolving numpy upward when adding isce2 to an already-created environment. See the ISCE2 installation guide for details.

Alternatively, skip installing ISCE2 locally entirely and run ISCE2_S1 processing inside a container via --container — see docker/Dockerfile for a ready-to-build image with ISCE2 + insarhub included.

Requirements

  • Python >=3.11,<3.13
  • numpy <2.0
  • proj >=9.4
  • gdal >=3.8
  • sqlite >=3.44
  • mintpy
  • asf_search
  • colorama
  • contextily
  • dem_stitcher
  • hyp3_sdk
  • rasterio >=1.4
  • sentineleof
  • pyproj
  • fastapi
  • uvicorn
  • python-multipart

Usage

Downloader:

from insarhub import Downloader
  • View available downloaders

    Downloader.available()
    
  • Create downloader

    dl = Downloader.create('S1_SLC',
                            intersectsWith=[-113.05, 37.74, -112.68, 38.00],
                            start='2020-01-01',
                            end='2020-12-31',
                            relativeOrbit=100,
                            frame=466,
                            workdir='path/to/dir')
    
  • Search

    results = dl.search()
    
  • Filter

    filter_result = dl.filter(start='2020-02-01')
    
  • Select interferogram pairs

    from insarhub.utils import plot_pair_network
    pairs, baselines, scene_bperp = dl.select_pairs(dt_max=96, pb_max=150)
    fig = plot_pair_network(pairs, baselines, scene_bperp)
    fig.show()
    
  • Download

    dl.download()
    

Processor:

from insarhub import Processor
  • View available processors
    Processor.available()
    

Two processors are available:

HyP3 (cloud)

processor = Processor.create('Hyp3_S1', workdir='/your/work/path', pairs=pairs)
jobs = processor.submit()
jobs = processor.refresh()
processor.download()

ISCE2 (local / HPC)

Requires SLC .SAFE files already downloaded. Runs ISCE2 stackSentinel locally or submits each step to SLURM with hpc_mode=True.

from insarhub.config import ISCE2_S1_Config

cfg = ISCE2_S1_Config(
    workdir='/data/p100_f466',
    bbox=[33.0, 38.0, -120.0, -115.0],   # [S, N, W, E]
)
processor = Processor.create('ISCE2_S1', pairs=pairs, config=cfg)
processor.submit()        # starts background execution
processor.refresh()       # check step status

Analyzer

from insarhub import Analyzer
  • View available analyzers
    Analyzer.available()
    

Two analyzers are available, matched to the processor that generated the interferograms:

HyP3 outputs

analyzer = Analyzer.create('Hyp3_Mintpy_SBAS', workdir="/your/work/dir")
analyzer.prep_data()   # unzip and clip HyP3 products
analyzer.run()         # full MintPy SBAS pipeline

ISCE2 outputs

analyzer = Analyzer.create('ISCE2_Mintpy_SBAS', workdir="/your/work/dir")
analyzer.prep_data()   # auto-discover ISCE2 interferograms and geometry
analyzer.run()         # full MintPy SBAS pipeline

CLI

InSARHub includes a command-line interface for running the full pipeline without writing Python code, suitable for HPC batch jobs and scripted workflows.

insarhub <command> [options]

End-to-end example — HyP3 (cloud)

# Search scenes and select interferogram pairs
insarhub downloader -N S1_SLC \
    --AOI -113.05 37.74 -112.68 38.00 \
    --start 2020-01-01 --end 2020-12-31 \
    --stacks 100:466 \
    -w /data/bryce \
    --select-pairs

# Submit pairs to HyP3 (auto-reads stack_p*_f*.json from workdir subfolders)
insarhub processor -N Hyp3_S1 -w /data/bryce submit

# Wait for jobs and download results automatically
insarhub processor -w /data/bryce watch

# Run MintPy time-series analysis
insarhub analyzer -N Hyp3_Mintpy_SBAS -w /data/bryce run

End-to-end example — ISCE2 (local / HPC)

# Search and download SLC scenes + orbits
insarhub downloader -N S1_SLC \
    --AOI -113.05 37.74 -112.68 38.00 \
    --start 2020-01-01 --end 2020-12-31 \
    --stacks 100:466 \
    -w /data/p100_f466 \
    --select-pairs --download --orbits

# Dry run to verify ISCE2 config before committing
insarhub processor -N ISCE2_S1 -w /data/p100_f466 \
    --bbox 33.0 38.0 -120.0 -115.0 submit --dry-run

# Run ISCE2 stackSentinel locally (background) or on SLURM (--hpc_mode True)
insarhub processor -N ISCE2_S1 -w /data/p100_f466 \
    --bbox 33.0 38.0 -120.0 -115.0 submit

# Monitor step progress
insarhub processor -N ISCE2_S1 -w /data/p100_f466 refresh

# Run MintPy time-series analysis on ISCE2 outputs
insarhub analyzer -N ISCE2_Mintpy_SBAS -w /data/p100_f466 run

Commands

Command Description
insarhub downloader Search scenes, select interferogram pairs, and download data
insarhub processor Submit and manage InSAR processing jobs
insarhub analyzer Run time-series analysis on processed interferograms
insarhub utils Helper utilities (pair selection, network plot, SLURM, ERA5, clip)

Use insarhub <command> --help for full option details, or see the CLI Reference.

Documentation

InSARHub documentation

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

insarhub-0.4.0rc1.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

insarhub-0.4.0rc1-py3-none-any.whl (2.7 MB view details)

Uploaded Python 3

File details

Details for the file insarhub-0.4.0rc1.tar.gz.

File metadata

  • Download URL: insarhub-0.4.0rc1.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for insarhub-0.4.0rc1.tar.gz
Algorithm Hash digest
SHA256 2b18531a1f0d46c21ac396324f2e9c2b438e474a8cd12efb3953500c9c0a5266
MD5 dc7eac9af7c25c6019e0eb541e7a0299
BLAKE2b-256 d96adbb992572921836f3dbf6aff2d2091682d7a0cc4d769c7dfeb105c475fdd

See more details on using hashes here.

File details

Details for the file insarhub-0.4.0rc1-py3-none-any.whl.

File metadata

  • Download URL: insarhub-0.4.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for insarhub-0.4.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 62838db24ff35204b9efe21c5cd1037a0872df80d80c17cfece61fcaea69eb7b
MD5 40d18674267929061d400c4f5003ba93
BLAKE2b-256 b2595e0da600bd172d48682cd815f703522c7ff91f2a4b030c86043530e2ae4d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.0rc1 This release

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2.post1

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0.post1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

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