Skip to main content

Automated open source library to preprocess satellite imagery

Project description

vhrharmonize: VHR Satellite Imagery Preprocessing Library

PyPI Version PyPI Downloads Your-License-Badge DOI


Overview

vhrharmonize is an open-source Python library and CLI suite for preprocessing very high resolution (VHR) satellite imagery into analysis-ready products. Current supported end-to-end workflows: WorldView-3 B1 imagery. Additional providers and sensors (for example, Planet) will be added.


Features

  • Atmospheric correction workflows (Py6S default, FLAASH optional backend)
  • RPC orthorectification (Orthority)
  • Pansharpening (Orthority)
  • Optional cloud masking (OmniCloudMask)
  • Pairwise alignment (coregix)
  • Relative Radiometric Normalization (spectralmatch)
  • WorldView scene discovery, IMD parsing, and standardized metadata mapping
  • CLI and library-first interfaces
  • Automated SLURM processing for distributed High Performance Computing processing

Installation

See docs/getting-started/installation.md for detailed installation instructions or simply install like this:

conda create -n vhrharmonize -c conda-forge py6s sixs gdal python=3.11
conda activate vhrharmonize
pip install vhrharmonize[defaults]

Getting Started

For an overview of using the library see docs/getting-started/quickstart.md. The CLI can be usd by passing in arguments from a yaml file like this one docs/configs/example.worldview.yml and running:

vhr-worldview --config-yaml example.worldview.yml

Or pass in arguments directly from the command line:

vhr-worldview \
  --input-file-glob "/data/worldview/**/*.TIF" \
  --output-dir ../../processed \
  --run-alignment \
  --alignment-fixed-image /data/reference.tif

For detailed arguments use:

vhr-worldview --help
vhr-fetch-modis-water-vapor --help
vhr-flaash --help
vhr-cloudmask-raster --help
vhr-pansharpen-orthos --help
vhr-align-image-pair --help
vhr-orthorectification --help
vhr-radiometric-normalization --help
vhr-py6s --help

To use on a super computer (slurm):

vhr-hpc prepare --config configs/example.hpc.yml # Create staged HPC/provider/slurm files
vhr-hpc upload --config configs/1.staged.hpc.yml # Upload required files
vhr-hpc start --config configs/1.staged.hpc.yml # Submit the job
vhr-hpc status --config configs/1.staged.hpc.yml # Print logs and job status
vhr-hpc download --config configs/1.staged.hpc.yml # Download declared outputs

# Other commands:
vhr-hpc stop --config configs/1.staged.hpc.yml # Cancel the submitted job
vhr-hpc close --config configs/1.staged.hpc.yml # Close the SSH multiplex connection

# Or all together:
vhr-hpc prepare --config configs/example.hpc.yml && vhr-hpc upload --config configs/1.staged.hpc.yml && vhr-hpc start --config configs/1.staged.hpc.yml && vhr-hpc status --config configs/1.staged.hpc.yml && vhr-hpc download --config configs/1.staged.hpc.yml

Contributing

We welcome all contributions! We appreciate any feedback, suggestions, or pull requests to improve this project. See docs/getting-started/contributing.md.


License

This project is licensed under the MIT License. See LICENSE for details.

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

vhrharmonize-1.0.0.tar.gz (100.8 kB view details)

Uploaded Source

Built Distribution

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

vhrharmonize-1.0.0-py3-none-any.whl (105.5 kB view details)

Uploaded Python 3

File details

Details for the file vhrharmonize-1.0.0.tar.gz.

File metadata

  • Download URL: vhrharmonize-1.0.0.tar.gz
  • Upload date:
  • Size: 100.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for vhrharmonize-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1f8988e207d44e20b0418b0fb0345d515b2a242c92cbd5023dcb33afbe0fa749
MD5 049464df13cbc717e0649bd6abe3b462
BLAKE2b-256 bfb0f870e77b138cf6d04648819e32309934524af827b153419e2ba07cad7368

See more details on using hashes here.

Provenance

The following attestation bundles were made for vhrharmonize-1.0.0.tar.gz:

Publisher: publish.yml on cankanoa/vhrharmonize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vhrharmonize-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: vhrharmonize-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 105.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for vhrharmonize-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba91da90d76a6daf38fd9462443423fbd39bd0da6d7b7a7bf60cace71a1ba19e
MD5 c466eeee229f7e59a3a9edcce5b544bc
BLAKE2b-256 7bf545ff423f2c6530c2d385a6d673bfd0716b1c31049387b6d0e7e864bbab85

See more details on using hashes here.

Provenance

The following attestation bundles were made for vhrharmonize-1.0.0-py3-none-any.whl:

Publisher: publish.yml on cankanoa/vhrharmonize

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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