Skip to main content

**P**arameterizable **A**uto-differentiable **S**imulators of ocean **T**rajectories in j**AX**.

Project description

pastax

pastax logo

Parameterizable Auto-differentiable Simulators of ocean Trajectories in jAX.

Installation

pastax is Pip-installable:

pip install pastax

Usage

Documentation is under construction but you can already have a look at the getting started notebook and the (messy) API documentation.

Work in progress

This package in under active developement and should still be considered as work in progress.

In particular, the following changes are considered:

  • pastax.gridded
    • add support for C-grids,
    • maybe some refactoring of the structures,
    • switch to Coordax? (see Coordax),
  • pastax.trajectory
    • use unxt.Quantity in place of Unitful (see unxt),
    • remove __add__ and like methods in favour of registered functions (see quax),
  • pastax.simulator
    • improve how the product operation is performed between the vector field and the control (support for Location, Time or State objects) (see diffrax doc here),
    • add support/examples for interrupting the solve when a trajectory reaches land (see diffrax doc here).

And I should stress that the package lacks (unit-)tests for now.

Related projects

Several other open-source projects already exist with similar objectives. The closest ones are probably (Ocean)Parcels, OpenDrift and Drifters.jl.

Here is a (probably) non-comprehensive (and hopefuly correct, please reach-out if not) use-cases comparison between them:

  • you use Python: go with pastax, OpenDrift or Parcels,
  • you use Julia: go with Drifters.jl,
  • you want I/O inter operability with xarray Datasets: go with pastax, OpenDrift, Parcels or Drifters.jl,
  • you need support for Arakawa C-grid: go with OpenDrift, Parcels or Drifters.jl (but keep an eye on pastax as it might come in the future),
  • you want some post-processing routines: go with Drifters.jl (but keep an eye on pastax as some might come in the future),
  • you want a better control of the right-hand-side term of your Differential Equation: go with pastax (probably the most flexible) or Parcels,
  • you solve Stochastic Differential Equations: go with pastax, OpenDrift or Parcels,
  • you need a wide range of solvers: go with pastax or Drifters.jl (if you solve ODE),
  • you want to calibrate your simulator on-line (i.e. by differenting through your simulator): go with pastax,
  • you want to run on both CPUs and GPUs (or TPUs): go with pastax.

Worth mentionning that I did not compare runtime performances (especially for typical use-cases with OpenDrift, Parcels or Drifters.jl of advecting a very large amount of particules with the same velocity field).

I could also cite py-eddy-tracker, altough it targets more specifically eddy related routines.

Contributing

Contributions are welcomed! See CONTRIBUTING.md and CONDUCT.md to get started.

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

pastax-0.0.7.tar.gz (41.0 kB view details)

Uploaded Source

Built Distribution

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

pastax-0.0.7-py3-none-any.whl (52.3 kB view details)

Uploaded Python 3

File details

Details for the file pastax-0.0.7.tar.gz.

File metadata

  • Download URL: pastax-0.0.7.tar.gz
  • Upload date:
  • Size: 41.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pastax-0.0.7.tar.gz
Algorithm Hash digest
SHA256 3a3de44f9cabae4f75bf1087fbdfdf663d93e8c75fe6e2d4a0718257a54dfeee
MD5 4b4b7b2f62277cb6a011c38e9bfbb67d
BLAKE2b-256 ad98df659eea12ee59a690686d709c81c880383fb415b27635b57c7957e153b4

See more details on using hashes here.

File details

Details for the file pastax-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: pastax-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 52.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pastax-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 aefd3642077c236df22e1cfc24f8a88aab21633267c33dac60c4755e80152884
MD5 cfd873c3f7f8247526342b21ad7f04b1
BLAKE2b-256 febc59438d4e7aa3ae62e47506f05923afda6d60ce5bc700bfd5e3c053616b34

See more details on using hashes here.

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