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

  • Installation
  • Requirements
  • Usage
  • CLI
  • Documentation

Installation

InSARHub can be installed using Conda:

conda install insarhub -c conda-forge

Pip:

pip install insarhub
conda install gdal

From source:

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

Requirements

  • Python >=3.11
  • 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

Usage

Downloader:

from insarhub import Downloader
  • View available downloaders

    Downloader.available()
    
  • Create downloader

    s1 = 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 Sucessed 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 submit -w /data/bryce

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

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

Commands

Command Description
insarhub downloader Search scenes, select pairs, and download data
insarhub processor submit Submit interferogram pairs to HyP3
insarhub processor watch Poll HyP3 and download results when complete
insarhub analyzer run Prepare data and run MintPy SBAS analysis
insarhub utils clip Clip HyP3 zip contents to an AOI
insarhub utils select-pairs Select pairs from a saved search GeoJSON
insarhub utils plot-network Plot interferogram network
insarhub utils slurm Generate a SLURM batch script
insarhub utils era5-download Download ERA5 weather data for tropospheric correction

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.0.post1.tar.gz (532.0 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.0.post1-py3-none-any.whl (542.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for insarhub-0.2.0.post1.tar.gz
Algorithm Hash digest
SHA256 80c25efcf1b587e79a6a17016b224fe8f51f7a72555a703e6e35bb4ab977a017
MD5 67d9559f02e591553612f243d1b8d274
BLAKE2b-256 7b9e384b2551c53d1c45f600ff9da5fd55f3152d5a10bf2bc51797bf14095108

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for insarhub-0.2.0.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 82de60c0b2c7eb243a47f2b5e8c7b85cd73574e4ba6a1896ed94619d50588f17
MD5 58c6cb05e9e107ec05903b20b66132e7
BLAKE2b-256 ee52aa0d7de42b5e0642b60f10cf62b933cf7565d38ed8167b451ea9edfc8c2c

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