Skip to main content

Object-oriented linear and nonlinear coordinate system transforms, plus coordinate system graphs.

Project description

Coorx

Coorx implements object-oriented linear and nonlinear coordinate system transforms. Optionally, coorx also keeps track of a graph of coordinate systems (such as a scene graph) that are connected by transforms, allowing automatic mapping between coordinate systems.

Tests PyPI version

  • A collection of different types of coordinate system transform classes with unit test coverage
  • Easy methods for mapping coordinate data through these transforms
  • Transform composition and simplification
  • Transforms intelligently map data types including numpy arrays, lists, etc.
  • Automatic generation of composite transforms from a coordinate system graph
  • Coordinate arrays that know which coordinate system they live in to handle automatic mapping
  • Using named coordinate systems, coorx warns you wnen you try to map data through the wrong transform
  • Automatic conversion of (some) transforms between ITK, Qt, scikit-image, and vispy

Installation

To install the package from PyPI, use the following command:

pip install coorx

Usage

Scale and translate 2D coordinates:

import numpy as np
from coorx import STTransform

coords = np.array([
    [ 0,  0],
    [ 1,  2],
    [20, 21],
])

tr = STTransform(scale=(10, 1), offset=(5, 5))

print(tr.map(coords))

Compose multiple transforms together:

import numpy as np
from coorx import STTransform, AffineTransform, CompositeTransform

coords = np.array([
    [0, 0, 0],
    [1, 2, 3],
    [-10, -200, -3000],
])

tr1 = STTransform(scale=(1, 10, 100))

tr2 = AffineTransform(dims=3)
tr2.rotate(90, axis=(0, 0, 1))

tr3 = CompositeTransform([tr2, tr1])

print(tr3.map(coords))

Todo

  • import bilinear, SRT transforms from pyqtgraph
  • import coordinate system graph handling from vispy
  • make coordinate system dimensionality explicit
  • unit tests against ITK output

Credit

Coorx is adapted from code originally written for VisPy (vispy.org), inspired by the nice transform classes in ITK, and maintained by the Allen Institute for Brain Science.

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

coorx-1.2.0.tar.gz (33.2 kB view details)

Uploaded Source

Built Distribution

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

coorx-1.2.0-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file coorx-1.2.0.tar.gz.

File metadata

  • Download URL: coorx-1.2.0.tar.gz
  • Upload date:
  • Size: 33.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for coorx-1.2.0.tar.gz
Algorithm Hash digest
SHA256 bb6b35619530d1056f3d8f6cda3cdc8785ff9d3e5938399103488a40ceb6008c
MD5 6abfb3af565ce06778426011ae0a3cce
BLAKE2b-256 c625f8ca2505a437cdfa088c9974510c300d36ac53c75c4d093955d7608797a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for coorx-1.2.0.tar.gz:

Publisher: deploy.yml on campagnola/coorx

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

File details

Details for the file coorx-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: coorx-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 36.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for coorx-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 999b126ca9db4409970cc0ae96b15ac0eef7ba170e4d82151d88bf7a3ca13bbe
MD5 17103dc620ec54458beaddcf59dcc9f1
BLAKE2b-256 3f6e546fa12fc1c2d14126ec48b0c28198a3262fb1b0282873a71298688d3377

See more details on using hashes here.

Provenance

The following attestation bundles were made for coorx-1.2.0-py3-none-any.whl:

Publisher: deploy.yml on campagnola/coorx

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