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

Uploaded Python 3

File details

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

File metadata

  • Download URL: coregix-0.1.0.tar.gz
  • Upload date:
  • Size: 23.4 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.0.tar.gz
Algorithm Hash digest
SHA256 ebacc3873d56787f8cba3c74f80de8de0738d50cedfc488bdba2813f44388cc9
MD5 5c3788c6c6f85790b64554c261184789
BLAKE2b-256 a535217da79e139bc3d2a76bedd1e637d6c7b39b705c83c655172c678bcc552b

See more details on using hashes here.

Provenance

The following attestation bundles were made for coregix-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: coregix-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 27.4 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f17e10e2d3d1589af49d30c72252989ffb50438944478ad7f72bbacc1cd8c50f
MD5 956c1f815ce6f7887d17b406e64efc91
BLAKE2b-256 13e9bcab890d14be22c6f154d7e483d2cac33719872a7f4ca70b93f181a009a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for coregix-0.1.0-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