vhrharmonize: VHR Satellite Imagery Preprocessing Library
Overview
vhrharmonize is an open-source Python library, CLI, and QGIS plugin 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 the installation docs for detailed installation instructions or simply install like this:
conda create -n vhrharmonize -c conda-forge gdal python=3.11
conda activate vhrharmonize
pip install "vhrharmonize[defaults]"
Getting Started
For an overview of using the library see the quickstart docs. The CLI can be usd by passing in arguments from a yaml file like this one 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
# Helpful commands:
# Create preview image and download
conda install gdal
gdal raster resize --size 1%,1% -r average --co TILED=YES --co COMPRESS=DEFLATE "input.tif" "preview.tif"
rsync -avP user@ip:preview.tif .preview.tif
Contributing
We welcome all contributions! We appreciate any feedback, suggestions, or pull requests to improve this project. See the contributing docs.
License
This project is licensed under the MIT License. See the LICENSE for details.
Metadata
Release files for vhrharmonize 2.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| vhrharmonize-2.0.4.tar.gz | 103.0 kB | With provenance | Details for vhrharmonize-2.0.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| vhrharmonize-2.0.4-py3-none-any.whl | Python 3 | none | any | Details for vhrharmonize-2.0.4-py3-none-any.whl |
Total release size: 209.3 kB
Release files / vhrharmonize-2.0.4.tar.gz
| Download URL | vhrharmonize-2.0.4.tar.gz |
|---|---|
| Size | 103.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7dd58f3cfd2b21fc1a1caa6a7b1733286a1451c0d62c73f95a762b2bdca2fef8
|
|
BLAKE2b-256 checksum How to use checksums |
c0a847a44c7c727c370dc83c5d83e9a5d2843c68822677c3b993756d550b5d33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 29, 2026.
Transparency logRelease files / vhrharmonize-2.0.4-py3-none-any.whl
| Download URL | vhrharmonize-2.0.4-py3-none-any.whl |
|---|---|
| Size | 106.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2f6cbb50e8145b2b9d37b13f818a98fc2542a1bd6e6e7a8f00b8dfbd65360f6c
|
|
BLAKE2b-256 checksum How to use checksums |
9c27599a8e05a784dc06e032fa7a4fdae95b38eb651d2700d8610043533907f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 29, 2026.
Transparency logSecurity for vhrharmonize 2.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for vhrharmonize-2.0.4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 29, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.