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.0.6.tar.gz (31.7 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.0.6-py3-none-any.whl (34.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for coorx-1.0.6.tar.gz
Algorithm Hash digest
SHA256 cd3addbf5aa2f3ece4cf449a10b65a9b3d1652729df8cf88d09f88a4d7627130
MD5 e2950f3f27ee96088b98bfc622a57960
BLAKE2b-256 77ae2df7f704b161f6212b2a0b950f622362993b5c4fe8004a40f373704b9df3

See more details on using hashes here.

Provenance

The following attestation bundles were made for coorx-1.0.6.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.0.6-py3-none-any.whl.

File metadata

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

File hashes

Hashes for coorx-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 7622d7e553a3e447654bccb234c5f30edb654decf83ef25c3f63ec271b73c4a1
MD5 b3ffe5b3a4b802e8908c8bcd9fa430f8
BLAKE2b-256 dc993b25629211751790cc447f44a27c206b6b6ba18dd5c663cfd976b2a4f070

See more details on using hashes here.

Provenance

The following attestation bundles were made for coorx-1.0.6-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