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.6.tar.gz (40.9 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.6-py3-none-any.whl (52.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pastax-0.0.6.tar.gz
Algorithm Hash digest
SHA256 e748373d1945f3512fe9129e549d19c24da6c5e88047629c168b424e29331926
MD5 dec2378ee1b636fd52a707c529f5d6a3
BLAKE2b-256 7a653c0b322e87025545215d5da551c5727e6756957b88ccf53cd91f1ce00afd

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pastax-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d9ff9f47c8c67175574c744d8089ae4ad7a41390beaf9999682c60c65257ab71
MD5 bf0043e867678f89d8d4ea76bf7dfb67
BLAKE2b-256 7acde97694986838f386de8e6f9533dffd998bec1f9af89f46d0eadb1208399a

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