Skip to main content

Elastix-based geospatial pairwise raster alignment

Project description

Coregix

Coregix provides elastix-based pairwise raster alignment for geospatial imagery.

Current scope:

  • pairwise raster alignment CLI and Python API
  • edge-proxy registration for structural cross-sensor alignment
  • chunked transform application for large moving rasters
  • optional postprocess trimming of invalid edge artifacts

Install

Conda environment

conda env create -f environment.yml
conda activate coregix

This installs the runtime stack and the package in editable mode.

Editable install into an existing environment

pip install -e .

The installed CLI entrypoint is:

vhr-align-image-pair --help

You can also run the module directly:

python -m coregix.cli.align_image_pair --help

CLI usage

Align a moving image to a fixed image

vhr-align-image-pair \
  --moving-image /path/to/moving.tif \
  --fixed-image /path/to/fixed.tif \
  --output-image /path/to/aligned.tif

By default this:

  • registers on edge-proxy images
  • writes the result on the moving-image grid
  • uses no chunking (--split-factor 0)

Use chunking for large moving rasters

--split-factor controls chunked transform application as 2^k total chunks:

  • 0: no split
  • 1: halves
  • 2: quadrants
  • 3: octants

Example with quadrants:

vhr-align-image-pair \
  --moving-image /path/to/moving_large.tif \
  --fixed-image /path/to/fixed.tif \
  --output-image /path/to/aligned_large.tif \
  --split-factor 2

Remove invalid edge artifacts after alignment

--trim-edge-invalid runs a raster-space cleanup pass after alignment and sets edge artifacts to nodata.

Example:

vhr-align-image-pair \
  --moving-image /path/to/moving_large.tif \
  --fixed-image /path/to/fixed.tif \
  --output-image /path/to/aligned_large_edgefixed.tif \
  --split-factor 2 \
  --trim-edge-invalid \
  --edge-trim-depth 8 \
  --edge-trim-invalid-below -3000

The edge-trim thresholds are dataset-specific. --edge-trim-invalid-below is useful when interpolation artifacts are not equal to the dataset nodata value.

Python usage

Basic alignment

from coregix import align_image_pair

result = align_image_pair(
    moving_image_path="/path/to/moving.tif",
    fixed_image_path="/path/to/fixed.tif",
    output_image_path="/path/to/aligned.tif",
)

print(result.output_image_path)

Large raster with chunking and edge cleanup

from coregix import align_image_pair

result = align_image_pair(
    moving_image_path="/path/to/moving_large.tif",
    fixed_image_path="/path/to/fixed.tif",
    output_image_path="/path/to/aligned_large_edgefixed.tif",
    split_factor=2,
    trim_edge_invalid=True,
    edge_trim_depth=8,
    edge_trim_invalid_below=-3000,
)

print(result.output_image_path)

Notes

  • split_factor changes only transform application, not the registration model.
  • split_factor=2 is the direct replacement for the previous quadrant-based large-raster path.
  • If needed, you can select separate registration bands with moving_band_index and fixed_band_index in Python or --moving-band-index and --fixed-band-index in the CLI.

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

coregix-0.1.3.tar.gz (25.3 kB view details)

Uploaded Source

Built Distribution

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

coregix-0.1.3-py3-none-any.whl (28.5 kB view details)

Uploaded Python 3

File details

Details for the file coregix-0.1.3.tar.gz.

File metadata

  • Download URL: coregix-0.1.3.tar.gz
  • Upload date:
  • Size: 25.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for coregix-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c1f6b83f63c974fccb3d16e403fe4ab2eec814b02743711066ca04a5d4583ae1
MD5 60c66be9a9c18d9e7d1bf6c4eb0c9f5b
BLAKE2b-256 bafcbef73f526356a144f2643497f6a1977407c9181fb94fcc80f41bf3ad2f26

See more details on using hashes here.

Provenance

The following attestation bundles were made for coregix-0.1.3.tar.gz:

Publisher: publish-pypi.yml on iosefa/coregix

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

File details

Details for the file coregix-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: coregix-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 28.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for coregix-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3e048820507f8128ec4c9856cb1fcfb27bd1686319ecf311e24e969b9591ee03
MD5 b8f03a6b826f7434815c8c1a5955dbdc
BLAKE2b-256 0fd0ef744cbc2594759b73431d41532f2f4279725f8542c6ab52b4dc3816b38d

See more details on using hashes here.

Provenance

The following attestation bundles were made for coregix-0.1.3-py3-none-any.whl:

Publisher: publish-pypi.yml on iosefa/coregix

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