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,
  • 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.3.tar.gz (39.4 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.3-py3-none-any.whl (50.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pastax-0.0.3.tar.gz
Algorithm Hash digest
SHA256 53300ac70b43c5e09dd4581f34b738b577268a4dfd5b7274c09864fdc6d68099
MD5 c65591d71579fd706cba3f48a8e18f42
BLAKE2b-256 c2f3f4ce5f46acde54f5a8ffc8e94b9dd93e2080d1bea1e760e4c7081abb235f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pastax-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6f3f67096dac8901410cd63fd8a7082efc3cc5fcbb580341ff73fd7fa8b323e4
MD5 9ff45b4e71e8b0a20102abd1c263d6ec
BLAKE2b-256 2d0cceaf3d48aab82e84f7cb56170e5d052ca36bb8ab6d8f3ce214bc74f071c4

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