Skip to main content

A modular Python framework for automated InSAR and time-series processing.

Project description

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.

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:8000 to access the UI.

Features

Panel What it does
Search & Download Draw an AOI on the map, search Sentinel-1 SLC stacks, download scenes and precise orbit files
Processor Select interferogram pairs from a network graph, submit to HyP3, monitor job status, and download results
Analyzer Run time-series analysis with configurable steps; view progress live in the log
Results Viewer Overlay the velocity map on the basemap; click any pixel to plot its displacement time series

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.

InSARHub Web UI

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 .

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')
    
  • Download

    dl.download()
    

Processor:

from insarhub import Processor
  • View available processors

    Processor.available()
    
  • Create Processor

    processor = Processor.create('Hyp3_InSAR', workdir='/your/work/path', pairs=pairs)
    
  • Submit Jobs

    jobs = processor.submit()
    
  • Refresh Jobs

    jobs = processor.refresh()
    
  • Download Succeeded Jobs

    processor.download()
    

Analyzer

from insarhub import Analyzer
  • View available analyzers

    Analyzer.available()
    
  • Create Analyzer

    analyzer = Analyzer.create('Hyp3_SBAS', workdir="/your/work/dir")
    
  • Prepare data

    analyzer.prep_data()
    
  • Run time-series analysis

    analyzer.run()
    

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

# 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 pairs_p*_f*.json from workdir subfolders)
insarhub processor -N Hyp3_InSAR  -w /data/bryce submit

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

# Run MintPy time-series analysis
insarhub analyzer -N Hyp3_SBAS -w /data/bryce 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

Project details


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.2.2.post1.tar.gz (544.9 kB view details)

Uploaded Source

Built Distribution

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

insarhub-0.2.2.post1-py3-none-any.whl (552.7 kB view details)

Uploaded Python 3

File details

Details for the file insarhub-0.2.2.post1.tar.gz.

File metadata

  • Download URL: insarhub-0.2.2.post1.tar.gz
  • Upload date:
  • Size: 544.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for insarhub-0.2.2.post1.tar.gz
Algorithm Hash digest
SHA256 43bab7e1a87aa223d05206ad3f2035ef3df43a9ae499f1cdbd6857cebdab6e2d
MD5 7b49a03e5aa8263fbd5770f278789597
BLAKE2b-256 ef3523be1149d1742e79304469aa913260a9cce610fa385a434568562e39b31e

See more details on using hashes here.

File details

Details for the file insarhub-0.2.2.post1-py3-none-any.whl.

File metadata

  • Download URL: insarhub-0.2.2.post1-py3-none-any.whl
  • Upload date:
  • Size: 552.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for insarhub-0.2.2.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 7663f1140b3840dada62a93e356a844019acef3bf31eea18a045e8d853cb5a49
MD5 06af566dea3f83a6de187465cbe38ecd
BLAKE2b-256 822bbdca13e3b0732cc3c3dcee5d012a6f76b390bf3de3bf1220f7d531941e9f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page