Skip to main content

Coordinates in JAX

Project description

coordinax

Coordinates in JAX

Coordinax enables calculations with coordinates in JAX. Built on Equinox and Quax.

Installation

PyPI platforms PyPI version

pip install coordinax

Documentation

Documentation Status

Coming soon. In the meantime, if you've used astropy.coordinates, then coordinax should be fairly intuitive.

Quick example

import coordinax as cx
import jax.numpy as jnp
from unxt import Quantity

q = cx.CartesianPos3D(
    x=Quantity(jnp.arange(0, 10.0), "km"),
    y=Quantity(jnp.arange(5, 15.0), "km"),
    z=Quantity(jnp.arange(10, 20.0), "km"),
)
print(q)
# <CartesianPos3D (x[km], y[km], z[km])
#     [[ 0.  5. 10.]
#      [ 1.  6. 11.]
#      ...
#      [ 8. 13. 18.]
#      [ 9. 14. 19.]]>

q2 = cx.represent_as(q, cx.SphericalPos)
print(q2)
# <SphericalPos (r[km], theta[rad], phi[rad])
#     [[11.18   0.464  1.571]
#      [12.57   0.505  1.406]
#      ...
#      [23.601  0.703  1.019]
#      [25.259  0.719  0.999]]>

p = cx.CartesianVel3D(
    d_x=Quantity(jnp.arange(0, 10.0), "m/s"),
    d_y=Quantity(jnp.arange(5, 15.0), "m/s"),
    d_z=Quantity(jnp.arange(10, 20.0), "m/s"),
)
print(p)
# <CartesianVel3D (d_x[m / s], d_y[m / s], d_z[m / s])
#     [[ 0.  5. 10.]
#      [ 1.  6. 11.]
#      ...
#      [ 8. 13. 18.]
#      [ 9. 14. 19.]]>

p2 = cx.represent_as(p, cx.SphericalVel, q)
print(p2)
# <SphericalVel (d_r[m / s], d_theta[m rad / (km s)], d_phi[m rad / (km s)])
#     [[ 1.118e+01 -3.886e-16  0.000e+00]
#      [ 1.257e+01 -1.110e-16  0.000e+00]
#      ...
#      [ 2.360e+01  0.000e+00  0.000e+00]
#      [ 2.526e+01 -2.776e-16  0.000e+00]]>

Citation

DOI

If you found this library to be useful in academic work, then please cite.

Development

Actions Status

We welcome contributions!

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

coordinax-0.12.0.tar.gz (153.2 kB view details)

Uploaded Source

Built Distribution

coordinax-0.12.0-py3-none-any.whl (118.0 kB view details)

Uploaded Python 3

File details

Details for the file coordinax-0.12.0.tar.gz.

File metadata

  • Download URL: coordinax-0.12.0.tar.gz
  • Upload date:
  • Size: 153.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for coordinax-0.12.0.tar.gz
Algorithm Hash digest
SHA256 4119c1eb80266bf88e7a69e626bba6b0df80d93b506496256b6a4708319d07e1
MD5 72985bbdd275665545dd1c713c96b5f7
BLAKE2b-256 26173d9f6e13e77f6641e501cd8f876486c276248037ccb17c89c56bff4b5596

See more details on using hashes here.

File details

Details for the file coordinax-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: coordinax-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 118.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for coordinax-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d62030fad2a1d64ec8b74558b91b2e01d1b8b8dd4c6658d4adc4e0b571a9c2b6
MD5 81f7c22ac6af7b80ed3075361b7716e9
BLAKE2b-256 b54a5d895013ed5add0a44eac5dcc5b8cfa05c00f55bb4e521785a442bef5d15

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page