Recent Releases of parcels

parcels - Parcels v3.1.4: a Lagrangian Ocean Analysis tool for the petascale age

This is a minor update from Parcels v3.1.3, fixing dependency metadata for Parcels builds available via pip on pypi.

What's Changed

  • Update dependency metadata by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/2139

Full Changelog: https://github.com/OceanParcels/Parcels/compare/v3.1.3...v3.1.4

- Python
Published by VeckoTheGecko 7 months ago

parcels - Parcels v3.1.3: a Lagrangian Ocean Analysis tool for the petascale age

This is a minor update from Parcels v3.1.2, with one very important change: It fixes a bug in the polyTEOS10-bsq kernel, discovered and patched by @michaeldenes in #2133. See also our blog post that describes the impact of this bug.

Apart, from that, this PR features mostly very minor changes to the documentation; as well as a fix to the partition_function (#1953) by @JamiePringle.

What's Changed

  • Update CITATION.cff by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1845
  • Add PR template by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1852
  • Fix broken 'output in zarr' hyperlinks by @michaeldenes in https://github.com/OceanParcels/Parcels/pull/1864
  • Adding link to v4 documentation on stable docs too by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1865
  • DOC: update link to v4 docs by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1866
  • Also storing the output from testscipyvs_jit() by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1871
  • Install parcels in RTD (for main) by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1884
  • Fixes error raised when using multiple files for fields with no time dimension by @andrew-s28 in https://github.com/OceanParcels/Parcels/pull/1886
  • Bump codecov/codecov-action from 5.3.1 to 5.4.0 by @dependabot[bot] in https://github.com/OceanParcels/Parcels/pull/1903
  • Update particleset.py to make partition_function with repeatdt by @JamiePringle in https://github.com/OceanParcels/Parcels/pull/1953
  • Update dark-theme docs by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1954
  • DOC: Add 10 year anniversary announcement by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1956
  • Bump codecov/codecov-action from 5.4.0 to 5.4.2 by @dependabot[bot] in https://github.com/OceanParcels/Parcels/pull/1997
  • Disallow numpydoc 1.9.0 by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/2086
  • Fix PolyTEOS10-bsq kernel by @michaeldenes in https://github.com/OceanParcels/Parcels/pull/2133

Full Changelog: https://github.com/OceanParcels/Parcels/compare/v3.1.2...v3.1.3

- Python
Published by erikvansebille 7 months ago

parcels - Parcels v3.1.2: a Lagrangian Ocean Analysis tool for the petascale age

This is a minor update from Parcels v3.1.1, made in preparation for development on Parcels v4.

What's Changed

  • Rename test file by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1793
  • remove duplicate cftime dependency by @observingClouds in https://github.com/OceanParcels/Parcels/pull/1805
  • Fixing a bug with default ParticleFile outputdt value by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1808
  • Check misaligned timestepping outputdt by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1809
  • Ignore bot PRs in release notes by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1794
  • Deprecating curvilnear halo support by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1811
  • Harmonise Field dimensions order by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1812
  • Implement warning for particles initialised outside time domain by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1810
  • Remove git, and unused formatting deps by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1817
  • Update default branch by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1818
  • pin zarr<3 by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1820
  • Move Field tests to separate file by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1821
  • Refactor example dataset download tests by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1828
  • DOC: update maintainer notes by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1830
  • Fixing an inconsistency in vertical index search between JIT and Scipy by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1834
  • Remove trajan as core dependency by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1833
  • Small refactors of VectorField and pragma comments by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1836
  • Refactoring field interpolation and allow custom interpolation methods in Scipy mode by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1816
  • Support for Fields in multiple files without a time dimension by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1835
  • Small refactors in particlefile.py by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1843
  • Improve pset.execute time management by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1627

New Contributors

  • @observingClouds made their first contribution in https://github.com/OceanParcels/Parcels/pull/1805

Full Changelog: https://github.com/OceanParcels/Parcels/compare/v3.1.1...v3.2.0

- Python
Published by VeckoTheGecko about 1 year ago

parcels - Parcels v3.1.1: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v3.1.1 is a minor update based on v3.1.0. It improves the implementation of Croco and ROMS 3D vertical velocities (#1772)

Important

  • Implementing correct depth-to-sigma calculation by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1772
  • Adding new tutorial on the impact of grid and velocity interpolation scheme on trajectories by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1769
  • Adding support for grid.negate_depth() method by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1778
  • Add Python 3.13 support by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1785

Other

  • Update doc dep versions by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1757
  • Minor changes (3rd party license, repr) by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1759
  • Update ParticleType repr by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1766
  • DOC: particlefile metadata by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1765
  • Fixing wrong calculation of C-grid velocities in Peninsula example Field by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1768
  • Fixture in test_examples.py to clean up generated data files by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1770
  • CI: Add py310 to integration test matrix by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1771
  • Patch Ruff config (isort in notebooks) by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1775
  • Fixing a warnoutputdtrelease_desync bug by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1747
  • Cleanup macOS debugging files by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1779
  • Add tmp_zarr fixture by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1784
  • Update default value of particlefile chunks to length of pset by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1788

Full Changelog: https://github.com/OceanParcels/Parcels/compare/v3.1.0...v3.1.1

- Python
Published by erikvansebille about 1 year ago

parcels - Parcels v3.1.0: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v3.1.0 implements support for CROCO sigma grids, adds reprs for key parcels classes (allowing you to easily introspect fieldsets etc), and makes changes to the API (complete with user warnings) to clearly distinguish what the user is expected to use.

What's Changed

Important

  • Add Parcels versioning/deprecation policies and maintainer docs by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1696
  • Support for CROCO 3D velocities by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1641
  • API changes: Field and FieldSet by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1709
  • API changes: particlefile.py and other touchups by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1727
  • API changes: particleset.py and grid.py by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1713
  • New and updated reprs for Variable, ParticleFile, Field, VectorField, and ParticleSet by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1743

Other

  • Patch pypi release python version by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1692
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/OceanParcels/Parcels/pull/1654
  • Enable pyupgrade, add Grid repr, and other changes by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1680
  • Update the Analytical Advection tutorial by @michaeldenes in https://github.com/OceanParcels/Parcels/pull/1703
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/OceanParcels/Parcels/pull/1707
  • Test suite tooling by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1704
  • Adding explicit explanation how to add tracers in FieldSet.from_nemo() by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1702
  • Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.2 by @dependabot in https://github.com/OceanParcels/Parcels/pull/1718
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/OceanParcels/Parcels/pull/1714
  • Fixing bug in backward-in-time-writing by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1723
  • DOC: Separate out linkcheck by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1725
  • Update Git archive config by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1717
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/OceanParcels/Parcels/pull/1726
  • FieldSet.from_croco vertical velocities warning by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1732
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/OceanParcels/Parcels/pull/1735
  • Fixing loadedtimeindices to support more advanced compute() functions by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1733
  • Documenting use of interp_method freeslip for B-grids by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1740
  • Adding warning particlestartime outputdt multiple by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1739
  • Refactors and bugfixes by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1736
  • Bugfix warnoutputdtrelease_desync for NaN release times by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1744

Full Changelog: https://github.com/OceanParcels/Parcels/compare/v3.0.5...v3.1.0

- Python
Published by VeckoTheGecko over 1 year ago

parcels - Parcels v3.0.6: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v3.0.6 is a minor update to v3.0.5 that fixes a bug flagged in #1722 regarding time-stepping in the output file.

Full Changelog: https://github.com/OceanParcels/Parcels/compare/v3.0.5...v3.0.6

- Python
Published by VeckoTheGecko over 1 year ago

parcels - Parcels v3.0.5: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v3.0.5 is a minor update to v3.0.4 that fixes a few minor bugs, cleans up code and adds contribution guidelines.

Most important changes

  • Implement warnings in Parcels by @andrew-s28 in https://github.com/OceanParcels/Parcels/pull/1672
  • Type annotations by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1660
  • added: FieldSet.fromagrid_dataset by @KOMPALALOKESH in https://github.com/OceanParcels/Parcels/pull/1650
  • Drop Python 3.8, 3.9 support by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1658
  • Support use of parcels.rng in Kernels by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1618 and update import statements https://github.com/OceanParcels/Parcels/pull/1610
  • Fix bug in JIT when interpolation overrides error of previous interpolation by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1645

Other minor changes

  • Add deprecation decorators by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1683
  • Updates properties for xarray API change by @andrew-s28 in https://github.com/OceanParcels/Parcels/pull/1596
  • Fixing customedCfuncheadertest to use particledlon by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1606
  • Documentation updates and numpy randint bugfix by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1604
  • Fixing bug when executing a breaking pset by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1630

Documentation updates

  • Contributing documentation and issue/discussion templates changes by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1634
  • Minor tutorial updates by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1633
  • Updating docstrings for advection kernels by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1640

Code quality improvement

  • https://github.com/OceanParcels/Parcels/pull/1603, https://github.com/OceanParcels/Parcels/pull/1605, https://github.com/OceanParcels/Parcels/pull/1614, https://github.com/OceanParcels/Parcels/pull/1615, https://github.com/OceanParcels/Parcels/pull/1635, https://github.com/OceanParcels/Parcels/pull/1638, https://github.com/OceanParcels/Parcels/pull/1644, https://github.com/OceanParcels/Parcels/pull/1648, https://github.com/OceanParcels/Parcels/pull/1652, https://github.com/OceanParcels/Parcels/pull/1655, https://github.com/OceanParcels/Parcels/pull/1666, https://github.com/OceanParcels/Parcels/pull/1667

New Contributors

  • @KOMPALALOKESH made their first contribution in https://github.com/OceanParcels/Parcels/pull/1650
  • @dependabot made their first contribution in https://github.com/OceanParcels/Parcels/pull/1677

Full Changelog: https://github.com/OceanParcels/Parcels/compare/v3.0.4...v3.0.5

- Python
Published by erikvansebille over 1 year ago

parcels - Parcels v3.0.4: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v3.0.4 is a minor update to v3.0.3 that patches a compatibility issue with the new NumPy 2.0, where np.infty is not supported anymore.

Most important changes

  • Changing np.infty to np.inf for compatibility with NumPy 2.0 by @andrew-s28 in https://github.com/OceanParcels/parcels/pull/1589
  • Note in the Parcels structure tutorial on the field[particle] sampling speed by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1577

Other minor changes

  • Fixing some AST deprecationwarnings by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1575
  • Fix minor spelling grammar tutorials by @michaeldenes in https://github.com/OceanParcels/parcels/pull/1582
  • Renaming CMEMS to Copernicus Marine Service and CMS in documentation by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1583

New Contributors

  • @michaeldenes made their first contribution in https://github.com/OceanParcels/parcels/pull/1582

Full Changelog: https://github.com/OceanParcels/parcels/compare/v3.0.3...v3.0.4

- Python
Published by erikvansebille over 1 year ago

parcels - Parcels v3.0.3: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v3.0.3 is a minor update to v3.0.2. It includes a new way to create a FieldSet using FieldSet.from_modulefile(), improves the implementation of the AdvectionRK45 Kernel, and implements a test for the pypi-package upon release. It also includes a number of updates to the tutorials and fixes a number of bugs.

What's Changed

Most relevant for users

  • Creating a new Fieldset.from_modulefile() method by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1566
  • Improve AdvectionRK45 Kernel implementation by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1539
  • PyPi release updates by @andrew-s28 in https://github.com/OceanParcels/parcels/pull/1574

Documentation improvements

  • Adding note to Parcels tutorial on add_variable compatibility by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1505
  • Moving the note on add_variables in the Parcels tutorial to its first use by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1506
  • Explaining statuscode kernel order by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1508
  • Updating Argo kernel to parcels v3 API by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1524
  • Adding infobox on UnitConverter to sampling tutorial by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1540
  • Fixing weblink to Ariane software page by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1543
  • Adding section in parcels structure tutorial on optimisation and parallelisation by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1555
  • Clarifying particle_dlon variable use in kernel loop tutorial by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1535
  • Simplifying parcels structure note by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1556
  • Fixing link to partition function in the parcels structure tutorial by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1572

Bug-fixes and code-cleaning etc

  • Update particleset.py by @dicaearchus in https://github.com/OceanParcels/parcels/pull/1547
  • Adding support for delete_cfiles as pset.execute() keyword by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1551
  • Compilation error message fix for local variable name that is also FieldSet constant by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1552
  • Pinning zarr in environment files to !=2.18.0 by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1565 and @jamespolly in https://github.com/OceanParcels/parcels/pull/1567
  • Throwing an error when dt has too high precision by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1558

New Contributors

  • @jamespolly made their first contribution in https://github.com/OceanParcels/parcels/pull/1567
  • @andrew-s28 made their first contribution in https://github.com/OceanParcels/parcels/pull/1574

Full Changelog: https://github.com/OceanParcels/parcels/compare/v3.0.2...v3.0.3

- Python
Published by erikvansebille over 1 year ago

parcels - Parcels v3.0.2: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v3.0.2 is a minor update to v3.0.1. It includes a new, more intuitive way to add Variables to a ParticleSet class, using a new Particleset.add_variable() method (#1501). It also fixes a number of bugs.

What's Changed

Most relevant for users

  • Implementing Particleset.add_variable() method by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1501
  • Setting defaults for FieldSet.computeTimeChunk() by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1502

Bug-fixes and code cleaning etc

  • make it possible to import dataset with single time instance by @dicaearchus in https://github.com/OceanParcels/parcels/pull/1496
  • Simplifying the NEMO curvilinear tutorial by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1499
  • Bugfix for cgrid eval without applyConversion by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1500
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/OceanParcels/parcels/pull/1490

Full Changelog: https://github.com/OceanParcels/parcels/compare/v3.0.1...v3.0.2

- Python
Published by erikvansebille about 2 years ago

parcels - Parcels v3.0.1: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v3.0.1 is a minor update to v3.0.0. It fixes a number of bugs and includes some important clarifications to the documentation and tutorials. Specifically:

What's Changed

Most relevant for users

  • Adding support for using Field.from_netcdf() with variable as a dict by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1446
  • Expanding explanation of output chunks parameter by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1494
  • Running parcels in a grid with a coordinate grid with missing values (nans) by @dicaearchus in https://github.com/OceanParcels/parcels/pull/1495

Refactoring, cleaning etc

  • Remove python from binder environment file by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1444
  • Fixing links in documentation by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1445
  • Field compatible with np.datetime64 entries by @dicaearchus in https://github.com/OceanParcels/parcels/pull/1449
  • Fixing that Fieldset.fromdata() sets "timeorigin" to 0 by default by @dicaearchus in https://github.com/OceanParcels/parcels/pull/1451
  • Update tutorial_kernelloop.ipynb by @dicaearchus in https://github.com/OceanParcels/parcels/pull/1454
  • Fixing the installation instructions for v3.0 by setting conda solver by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1455
  • Clarify order of the start and end arguments in particleset.from_line() in documentation by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1458
  • Pep8 compliancy for import statements by @dicaearchus in https://github.com/OceanParcels/parcels/pull/1469
  • Updating timestamps tutorial to remove time_periodic=True option by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1476
  • Fixing a bug in Kernel definition in the preventing stuck particles documentation by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1479
  • Fixing bug in zarr output when setting chunking and repeatdt by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1488
  • Add prettier by @VeckoTheGecko in https://github.com/OceanParcels/parcels/pull/1474

New Contributors

  • @dicaearchus made their first contribution in https://github.com/OceanParcels/parcels/pull/1449

Full Changelog: https://github.com/OceanParcels/parcels/compare/v3.0.0...v3.0.1

- Python
Published by erikvansebille about 2 years ago

parcels - Parcels v3.0.0: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v3.0.0 is a major update to v2.4.2. The most important change is that the kernel loop has been changed, to support vectorial summing of particle displacements, in #1402. This change and its implications are explained in the new Kernel Loop tutorial.

This version also deprecates the in-built plotting methods field.show() and pset.show() in #1397. Furthermore, this version includes a major code clean-up, mostly by retiring support for Array-of-Structure (AoS) data architecture, in #1423.

What's Changed

New features

  • Re-ordering of Kernel actions to vectorially sum particle displacements by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1402
  • Create tutorial_kernelloop.ipynb by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1421
  • Update collectionsoa.py to allow user defined MPI partitioning by @JamiePringle in https://github.com/OceanParcels/parcels/pull/1414
  • Repeatdt small chunksize warning by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1430
  • Compilation info as metadata by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1433
  • Adding support for OperationCode.StopAllExecution by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1115
  • Storing particle.xi in output files by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1147

Deprecated features

  • Removing inbuilt plotting methods by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1397
  • Retiring AoS support by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1423

Code clean-ups

  • Removing the header message from documentation notebooks by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1381
  • Adding thumbnail for geospatial documentation by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1380
  • Fixing typo in allowtimeextrapolation docstrings by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1383
  • Printing cfile-name in compilation info by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1396
  • Simplification of the MPI partition_function explanation by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1424
  • Code cleanups by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1427
  • Removing stray recovery kernel mentions by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1431
  • Removing particleset.density by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1434
  • Renumbering statuscodes so that they are increasing by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1439
  • More small codecleanups in preparation for parcels v3 by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1438

Other minor fixes to code, installation and Continuous Integration

  • Update linkcheck_ignore by @VeckoTheGecko in https://github.com/OceanParcels/parcels/pull/1374
  • Patch testmpirun failing test by @VeckoTheGecko in https://github.com/OceanParcels/parcels/pull/1375
  • Update umamba gha by @ocefpaf in https://github.com/OceanParcels/parcels/pull/1373
  • Updated Binder by @VeckoTheGecko in https://github.com/OceanParcels/parcels/pull/1368
  • Fix Binder filepath typo by @VeckoTheGecko in https://github.com/OceanParcels/parcels/pull/1378
  • Updating citation to latest version by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1385
  • Jupyter QA tooling (black, isort, ast) by @VeckoTheGecko in https://github.com/OceanParcels/parcels/pull/1389
  • Migrate to pyproject.toml (project metadata, tool config cleanup) by @VeckoTheGecko in https://github.com/OceanParcels/parcels/pull/1392
  • Fix casting warnings by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1400
  • Fix flake8 E721 in baseparticlefile.py by @VeckoTheGecko in https://github.com/OceanParcels/parcels/pull/1405
  • Adding installation instructions to documentation by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1403
  • Add UVsample code and improve consistency by @ammedd in https://github.com/OceanParcels/parcels/pull/1415
  • Fixing the link to instructions for parallel installation by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1419
  • From lon towrite to lon nextloop by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1422
  • Adding explicit message on how to deal with interpolated output by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1437
  • Towards a noarch environment file for developer installation by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1416
  • Fix dask chunking error by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1436
  • Simplifying binder environment file by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1441
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/OceanParcels/parcels/pull/1442
  • Updating all tutorials with latest conda environment and parcels v3 code by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1443
  • Towards parcels v3.0 by @erikvansebille in https://github.com/OceanParcels/parcels/pull/1426

New Contributors

  • @ammedd made their first contribution in https://github.com/OceanParcels/parcels/pull/1415

Full Changelog: https://github.com/OceanParcels/parcels/compare/v2.4.2...v3.0.0

- Python
Published by erikvansebille over 2 years ago

parcels - Parcels v2.4.2: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.4.2 is a minor update to the v2.4.1 release of February 2023; focussing mostly on a redesign of the documentation, notebooks and tutorial structure at docs.oceanparcels.org, using ReadTheDocs. This change was a fantastic effort by @VeckoTheGecko.

What's Changed

Documentation changes

  • Cleaning the documentation and moving to ReadTheDocs in https://github.com/OceanParcels/parcels/pull/1321, https://github.com/OceanParcels/parcels/pull/1341, https://github.com/OceanParcels/parcels/pull/1342, https://github.com/OceanParcels/parcels/pull/1346, https://github.com/OceanParcels/parcels/pull/1355 and https://github.com/OceanParcels/parcels/pull/1371 (by @VeckoTheGecko)
  • A new tutorial on how to use Parcels output in geospatial datatypes and software https://github.com/OceanParcels/parcels/pull/1359 (by @VeckoTheGecko)

Code changes

  • Create combined kernel from kernel function list in https://github.com/OceanParcels/parcels/pull/1351 (by @VeckoTheGecko)
  • Speedup C-contiguous arrays in https://github.com/OceanParcels/parcels/pull/1074
  • isort support in https://github.com/OceanParcels/parcels/pull/1323 (by @VeckoTheGecko)
  • Upgrade syntax to Python 3.8 in https://github.com/OceanParcels/parcels/pull/1328 (by @VeckoTheGecko)

GitHub Continuous Integration changes

  • Add black as dev dependency and intialise .git-blame-ignore-revs in https://github.com/OceanParcels/parcels/pull/1327 (by @VeckoTheGecko)
  • Configure pre-commit and pre-commit CI in https://github.com/OceanParcels/parcels/pull/1286 (by @VeckoTheGecko)
  • Update to use mamba in https://github.com/OceanParcels/parcels/pull/1337 (by @VeckoTheGecko)
  • Issue templates in https://github.com/OceanParcels/parcels/pull/1361 (by @VeckoTheGecko)

Full Changelog: https://github.com/OceanParcels/parcels/compare/v2.4.1...v2.4.2

- Python
Published by erikvansebille over 2 years ago

parcels - Parcels v2.4.1: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.4.1 is a minor update to the v2.4.0 release of October 2022; with mostly bugfixes, cleanups of the code, and enhancements to the GitHub workflow. The most important ones are below

What's Changed

  • Fixing a bug in 2D scipy linearinvdistland interpolation in https://github.com/OceanParcels/parcels/pull/1306
  • Implementing timeperiodic also for FieldSet.fromxarray_dataset in https://github.com/OceanParcels/parcels/pull/1253
  • Adding info on periodic boundaries in global models to tutorial in https://github.com/OceanParcels/parcels/pull/1255
  • Support for running on systems with MPI but without sklearn in https://github.com/OceanParcels/parcels/pull/1262
  • Fixing the vonmises distribution tests in test_diffusion in https://github.com/OceanParcels/parcels/pull/1279
  • Clean up CI/CD workflows in https://github.com/OceanParcels/parcels/pull/1278 (by @VeckoTheGecko)
  • Fix Readthedocs in https://github.com/OceanParcels/parcels/pull/1290 (by @VeckoTheGecko)
  • Running MPI test without writing Stommel hydrodynamic fields in https://github.com/OceanParcels/parcels/pull/1291
  • Updating fieldfilebuffer to not not unravel lonlat-indices when not provided in https://github.com/OceanParcels/parcels/pull/1258
  • Allow for Zarr stores being passed to ParticleFile in https://github.com/OceanParcels/parcels/pull/1303 (by @willirath)
  • Cleaning up deprecated methods and increasing codecoverage for Parcels in https://github.com/OceanParcels/parcels/pull/1287 (by @VeckoTheGecko) and in https://github.com/OceanParcels/parcels/pull/1295, https://github.com/OceanParcels/parcels/pull/1296, https://github.com/OceanParcels/parcels/pull/1309

Full Changelog: https://github.com/OceanParcels/parcels/compare/v2.4.0...v2.4.1

- Python
Published by erikvansebille almost 3 years ago

parcels - Parcels v2.4.0: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.4.0 implements a completely new way of outputting trajectory data (#1199). It writes directly to a .zarr directory, which can seamlessly be loaded with the xarray.open_zarr() method. For more info, see the Reading the output file tutorial.

Output is now smaller in size and faster to write. There is no need for temporary dumps and hence also not to convert these at the end of a simulation. This makes working with Parcels output during a simulation much easier.

What's Changed

  • Saving Parcels output directly in zarr format (https://github.com/OceanParcels/parcels/pull/1199)
  • Updating documentation notebooks (https://github.com/OceanParcels/parcels/pull/1237)
  • Fixing 'fatal: not a git repository' warning (https://github.com/OceanParcels/parcels/pull/1251)

Full Changelog: https://github.com/OceanParcels/parcels/compare/v2.3.2...v2.4.0

- Python
Published by erikvansebille over 3 years ago

parcels - Parcels v2.3.2: a Lagrangian Ocean Analysis tool for the petascale age

This is a minor update to Parcels with mostly bugfixes; in preparation for a new v2.4.0 in a few weeks with support for writing directly to zarr.

What's Changed

Most relevant for users: * Adding option to silence xarray decodewarnings (https://github.com/OceanParcels/parcels/pull/1208) * Updating the structure and particle-particle interaction tutorial (by @pdnooteboom, https://github.com/OceanParcels/parcels/pull/1197) * Clarification on the show_time parameter (by @VeckoTheGecko, https://github.com/OceanParcels/parcels/pull/1215) * Adding section to delaystart tutorial on adding particles during execution (https://github.com/OceanParcels/parcels/pull/1223) * Implementing fieldset.UV.eval for SummedVectorFields too (https://github.com/OceanParcels/parcels/pull/1200)

Other fixes * Bugfix for ParticleSet.add() in mpi mode (https://github.com/OceanParcels/parcels/pull/1194) * Fixing the sh: None: command not found warning (https://github.com/OceanParcels/parcels/pull/1201) * Fixing pipy upload script (https://github.com/OceanParcels/parcels/pull/1202) * Adding hint for export CC=gcc in compilation error message (https://github.com/OceanParcels/parcels/pull/1203) * Fixing new flake8 requirements (https://github.com/OceanParcels/parcels/pull/1206) * Fixing numpy DeprecationWarning in timeslices concatenation (https://github.com/OceanParcels/parcels/pull/1207) * Fixing DeprecationWarning on elementwise comparison in converters (in https://github.com/OceanParcels/parcels/pull/1125) * Fix broken ipynb link (by @VeckoTheGecko, https://github.com/OceanParcels/parcels/pull/1219) * Using f-string in logger info for plotting (https://github.com/OceanParcels/parcels/pull/1222) * Throwing explicit error in codegenerator when using random() in JIT Kernel (https://github.com/OceanParcels/parcels/pull/1230)

New Contributors

  • @VeckoTheGecko made their first contribution in https://github.com/OceanParcels/parcels/pull/1215

Full Changelog: https://github.com/OceanParcels/parcels/compare/v2.3.1...v2.3.2

- Python
Published by erikvansebille over 3 years ago

parcels - Parcels v2.3.1: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.3.1 builds upon previous versions of Parcels and specifically introduces the following new (minor) features: - Support to save Parcels output in zarr format (#1165) - Automatically compress temporary *.npy files with gzip (#1171 by @JamiePringle) - Support for curvilinear MITgcm-like indexing (#1166 by @daanreijnders) - Switching to tqdm for the progressbar (#1111) - Support for installation of Parcels via a pypi package (#1163 by @gmaze) - Extended netcdf export format dictionary to unsigned ints (#1152 by @nvogtvincent) - Support for periodic boundaries in InteractionKernels (#1096 by @pdnooteboom)

Furthermore, it fixes a number of bugs; most notably #1072, #1089 (fix by @daanreijnders), #1105 (fix by @cpierard), #1113 (fix by @nvogtvincent), #1175, #1182 (fix by @ocefpaf)

- Python
Published by erikvansebille over 3 years ago

parcels - Parcels v2.3.0: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.3.0 builds upon previous versions of Parcels and specifically introduces four new features:

Furthermore, it includes a few minor bug fixes and removes some of the non-relevant logger Info/warning messages (such as when casting lon and lat to np.float32) (#1022)

- Python
Published by erikvansebille over 4 years ago

parcels - Parcels v2.2.2: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.2.2 builds upon previous versions of Parcels and fixes a number of bugs. Furthermore, it also adds the following features: - Reduced the memory required by Parcels in deferred_load=True mode, especially when using large FieldSets, by storing only two snapshots in memory, instead of three (#978) - Better and more efficient implementation of dask auto-chunking (note that signature has changed, see updates in the MPI tutorial) (#976) - Much faster interpolation in Scipy mode for Curvilinear Grids (#940) - A new method to more efficiently initiate particles on Curvilinear Grids by using a kdtree (#954 by @angus-g ) - Improvements to 2D diffusion kernels (#976 by @daanreijnders ) - Added a new high-level tutorial on how to start using Parcels on oceanparcels.org (#944 by @reint-fischer )

Plus a large number of minor bug fixes

- Python
Published by erikvansebille about 5 years ago

parcels - Parcels v2.2.1: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.2.1 builds upon previous versions of Parcels and fixes a number of bugs. Furthermore, it also adds the following features: - Renaming parcels.random to parcels.ParcelsRandom (#912). Note that this change is not backward-compatible, so update your code - Support for MITgcm output on C-grids where the U and V are on the west and north of the f-points (#897) - Support for MOM5 output on B-grids, where the W-fields are given below the U and V-fields (#923) - Support larger ParticleSets by changing Particle-ID type to int64 (#934) - Added a depth_units keyword for FieldSet.from_pop() to support depth units in both 'm' and 'cm' (#857) - New tutorials on how to sample Fields and how to postprocess Parcels output (#915 and #929) - Control over Cartopy feature options (coastline, land colour etc) in plotTrajectoriesFile() (#939, thanks to @axnsantana) - Support for math.nan and != operators in JIT Kernels (#908) - Support for applyConversion=False in Field Interpolation (#898) - Support to set the write status of a Variable after it's been created via ParticleFile.set_variable_write_status() (#892)

Plus a large number of minor bug fixes

- Python
Published by erikvansebille over 5 years ago

parcels - Parcels v2.2.0: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.2.0 builds upon previous versions of Parcels and adds a number of new features. most importantly 1. Improved advection-diffusion kernels, as detailed in this tutorial by @daanreijnders (#823) 2. Support for time-evolving sigma-grids (#660) 3. New interpolation scheme for tracers near coastlines, as detailed in this tutorial, thanks to @pierrick-giffard. (#815) 4. Addition of Kernels to calculate the TEOS-10 equation of state, thanks to @pdnooteboom (#816) 5. Partial implementation of AnalyticalAdvection Kernel following Döös et al 2017, see also this tutorial 6. Support for dimensions of length-1. This greatly simplifies creating FieldSets that are constant in longitude and/or latitude (#817)

Plus a large number of minor bug fixes

- Python
Published by erikvansebille almost 6 years ago

parcels - Parcels v2.1.5: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.1.5 builds upon previous versions of Parcels and both improved the reliability as well as the efficiency and versatility of Parcels. In particular

  1. Speed up by perhaps a factor 10(!) in some use-cases by switching data structure of ParticleSet from Array-of-Structures to Structure-of-Arrays (#678, thanks @angus-g!)
  2. Support for sigma-grids with time-varying depth dimensions (#660, see also this tutorial)
  3. Further fixes some issues with dask chunking (# 764, #774, #776)
  4. Improves reliability when dt is very small (< 0.001 s) (#762)
  5. Support for a new ErrorCode StopExecution (#780)
  6. Support for python3.8 (#753)

And various other minor bug fixes

- Python
Published by erikvansebille almost 6 years ago

parcels - Parcels v2.1.4: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.1.4 is a quick update on v2.1.3 that mostly improves the implementation of field-chunking using dask.

  1. It fixes some Issues with dask chunking, particularly in 3D simulations (#738, #740 and #731)
  2. It adds a von Mises distribution to parcels.random (#725)

And numerous smaller bugfixes.

- Python
Published by erikvansebille about 6 years ago

parcels - Parcels v2.1.3: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.1.3 is an update mostly focussing on improved memory behaviour when doing large simulations. In particular 1) It fixes some serious issues with memory usage for field chunking (see #668, #703 and #711), which have now been addressed in #719 2) Fixing xarray compatibility (#716) 3) Fixing a bug in cartopy.quiver (#714) 4) New kernels to compute density (#688)

And various other minor bug fixes

- Python
Published by erikvansebille about 6 years ago

parcels - Parcels v2.1.2: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.1.2 is a quick release build on previous versions v2.1.1. In particular:

  1. It fixes a serious bug on some systems with floating point accuracy, that could lead to incorrect output files (see #670 and solution at #672). For this reason, all users are encouraged to use this new version v2.1.2 instead of v2.1.1.
  2. It also fixes a smaller bug (#676) with the timestamps argument in Field.from_netcdf()

- Python
Published by erikvansebille over 6 years ago

parcels - Parcels v2.1.1: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.1.1 builds on previous versions v2.0.0. The major changes of v2.1.1 are:

[Note that v2.1.1 comes after a botched release of v2.1.0]

  1. Parcels has a parallel MPI version! While working on multiple processors, the particles are spread over the processors for an efficient integration. (#625). See https://oceanparcels.org#parallel_install for instructions on how to install.
  2. For an efficient loading of the Fieldset, the Field objects are now loaded by chunks, controlled by the parameter field_chunksize (#632). This results in lower memory usage and faster simulation. It is also a fundamental part of the parallel implementation, since for low number of particles per processor, the computation time is dominated by the loading of the data. A more efficient parallel version will be dynamically balancing the particles between the processors such to minimise the number of chunks loaded per processor. See this document for further background on the implementation.
  3. An efficient writing of the particleset. For a quicker export of the data, particles are now dumped into npy files during simulation. The pickles are gathered into one single file at the end of the simulation. (#614)
  4. A proper management of particle.dt modified by the kernel. If the kernel modifies particle.dt, the kernel will automatically be restarted with the updated dt. If you want to simply updates the dt for next kernel call, use particle.update_next_dt(new_dt). (#657)
  5. New particles can now be added to the ParticleSet only via a temporary ParticleSet object. This enables a proper control of the particle.id in parallel (#629)
  6. Field.gradient() function is not available anymore. This functionality was providing spurious results on curvilinear grids and was conflicting with the use of chunked fields. Users can still obtain easily an accurate field gradient (see example proposed in #633)
  7. Using the time_periodic flag in FieldSet creation now requires the length of the period (#659)
  8. Numerous bug fixes

Note that Parcels v2.1.1 is the last version to officially support Python 2.7. While all functionalities currently work with both Python 2 and 3, new development and code dependencies will progressively lead to incompatibility with Python 2. We strongly advice the users to switch to Python 3.

- Python
Published by delandmeterp over 6 years ago

parcels - Parcels v2.1.0: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.1.0 builds on previous versions v2.0.0. The major changes of v2.1.0 are:

  1. Parcels has a parallel MPI version! While working on multiple processors, the particles are spread over the processors for an efficient integration. (#625). See https://oceanparcels.org#parallel_install for instructions on how to install.
  2. For an efficient loading of the Fieldset, the Field objects are now loaded by chunks, controlled by the parameter field_chunksize (#632). This results in lower memory usage and faster simulation. It is also a fundamental part of the parallel implementation, since for low number of particles per processor, the computation time is dominated by the loading of the data. A more efficient parallel version will be dynamically balancing the particles between the processors such to minimise the number of chunks loaded per processor. See this document for further background on the implementation.
  3. An efficient writing of the particleset. For a quicker export of the data, particles are now dumped into npy files during simulation. The pickles are gathered into one single file at the end of the simulation. (#614)
  4. A proper management of particle.dt modified by the kernel. If the kernel modifies particle.dt, the kernel will automatically be restarted with the updated dt. If you want to simply updates the dt for next kernel call, use particle.update_next_dt(new_dt). (#657)
  5. New particles can now be added to the ParticleSet only via a temporary ParticleSet object. This enables a proper control of the particle.id in parallel (#629)
  6. Field.gradient() function is not available anymore. This functionality was providing spurious results on curvilinear grids and was conflicting with the use of chunked fields. Users can still obtain easily an accurate field gradient (see example proposed in #633)
  7. Using the time_periodic flag in FieldSet creation now requires the length of the period (#659)
  8. Numerous bug fixes

Note that Parcels v2.1.0 is the last version to officially support Python 2.7. While all functionalities currently work with both Python 2 and 3, new development and code dependencies will progressively lead to incompatibility with Python 2. We strongly advice the users to switch to Python 3.

- Python
Published by delandmeterp over 6 years ago

parcels - Parcels v2.0.0: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.0.0 builds on previous versions v2.0.0.beta and v2.0.0.beta2. It's the release which is fully described in the paper The Parcels v2.0 Lagrangian framework: new field interpolation schemes, by Delandmeter and van Sebille, 2019, GMD.

The major changes of v2.0.0 compared to v1.1.1 are

1) The order of arguments for Field interpolation has changed. This is now field[time, depth, lat, lon], which is consistent with the dimension order in which data is stored in the field.data numpy array (#503 and #276).

2) The dt argument has been dropped from Kernel definitions, so that the only arguments allowed in a Kernel are def kernelfunc(fieldset, particle, time) (#503)

3) Interpolation for C-grids is now done in a fluxes framework, instead of a velocity framework (#499 and #494).

4) Interpolation for B-grids (#573)

5) Support for np.float64 accuracy of particle locations. This can be set using the lonlatdepth_dtype argument in ParticleSet construction. Default is np.float64 for C-grids, and np.float32 for all other grids (#552 and #557)

Note also a number of other minor development: * See v2.0.0.beta * See v2.0.0.beta2 * Unpinning netcdf4 1.4.1 (#597) * Numerous bug fixes

- Python
Published by delandmeterp over 6 years ago

parcels - Parcels v2.0.0-beta2: a Lagrangian Ocean Analysis tool for the petascale age

This is the second beta version of Parcels v2.0.0. It builds upon v2.0.0beta, and compared to that version has a few important fixes and improvements: - Support for np.float64 accuracy of particle locations. This can be set using the lonlatdepth_dtype argument in ParticleSet construction. Default is np.float64 for C-grids, and np.float32 for all other grids (#552 and #557) - Renaming of the full_load argument in FieldSet.from_netcdf() construction to deferred_load, where deferred_load = not full_load, for consistency with how we normally call this mode. Default for netcdf files with more than three snapshots is deferred_load=True (#550) - Support for Netcdf files without a time dimension, by using the timestamps argument in FieldSet construction (#540) - New tutorials on how to work with 3-dimensional C-grid data such as NEMO (#531) and the UnitConverter classes (#516) - Check if the keys in the dimensions dictionary are only lon, lat, depth and time (#545) - Change in how variable name should be set in Field.from_netcdf(). Now use tuple variable=(Field_name, variable_name_in_NetCDF_file) (#545) - Numerous bugfixes

Note also that there is a problem with the latest release of the netCDF4 library, v1.4.2 (Issue #513). For the time being, we recommend downgrading to v1.4.1, using conda install netcdf4=1.4.1

- Python
Published by erikvansebille almost 7 years ago

parcels - Parcels v2.0.0-beta: a Lagrangian Ocean Analysis tool for the petascale age

This is the beta-release of Parcels v2. Compared to the last v1.1.1 release, there are three important changes

1) The order of arguments for Field interpolation has changed. This is now field[time, depth, lat, lon], which is consistent with the dimension order in which data is stored in the field.data numpy array (#503 and #276).

2) The dt argument has been dropped from Kernel definitions, so that the only arguments allowed in a Kernel are def kernelfunc(fieldset, particle, time) (#503)

3) Interpolation for C-grids is now done in a fluxes framework, instead of a velocity framework. The details of this will be presented in a manuscript, to be submitted soon (#499 and #494)

Note that 1) and 2) above mean that Kernels written for Parcels v1 will break in this Parcels v2. If you're updating to this v2.0.0beta, therefore please update your custom Kernels.

Other updates since v1.1.1 are: - New FieldSet.from_xarray_dataset() method to directly read xarray.DataSet objects (#476) - An optional argument in Field.show() to control which depth level to plot (#478) - ParticleSet.from_field() now also implemented for Curvilinear Fields (#496) - And numerous small bug fixes

- Python
Published by erikvansebille about 7 years ago

parcels - Parcels v1.1.1: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v1.1.1 builds on the previous v1.1.0 release. Major changes since then:

  • In Fieldset.from_netcdf(), the format of filenames argument has been enriched (#463). As before, filenames can be:
    • list of files
    • dictionaries of list of files, where the dictionary keys are field names

On top of that, filenames can now be: - dictionaries of lists of files, where the dictionary keys are dimension names: filenames[dimension_name] = [files] - dictionaries of dictionaries of lists of files: filenames[field_name][dimension_name] = [files]

This particularly affects the function Fieldset.from_nemo():

New filenames looks like: filenames = {'U': {'lon': data_path + 'mesh_mask.nc4', 'lat': data_path + 'mesh_mask.nc4', 'data': data_path + 'U_purely_zonal-ORCA025_grid_U.nc4'}, 'V': {'lon': data_path + 'mesh_mask.nc4', 'lat': data_path + 'mesh_mask.nc4', 'data': data_path + 'V_purely_zonal-ORCA025_grid_V.nc4'}} instead of:

filenames = {'U': data_path + 'U_purely_zonal-ORCA025_grid_U.nc4', 'V': data_path + 'V_purely_zonal-ORCA025_grid_V.nc4', 'mesh_mask': data_path + 'mesh_mask.nc4'} This modification enables to easily read 3d curvilinear NEMO fields, when the depth dimension is in the data-files.

  • A new TimeConverter class converts between dates and the number of seconds that Parcels uses under the hood. This enables to read netcdf files with less common time formats, such as NOLEAP. (#456)
  • New netcdf_engine as argument for Fieldset.from_netcdf(), enables to open netcdf files with a different engine when the default netcdf4 engine does not work. (#460)
  • Improved error messages for C-kernel generator (#457)
  • Minor bug fixes

Note that it is now recommended to use a recent version of xarray (>=0.10.8) together with Parcels, since it better parses some netcdf files used by common OGCMs.

- Python
Published by delandmeterp over 7 years ago

parcels - Parcels v1.1.0: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v1.1 builds on the previous v1.0.5 release. Major changes since then

  • A renaming of the FieldList class to SummedFields, so that Fields can be summed by fieldAB = fieldA + fieldB (#435)
  • Implement way to do computations on defer-loaded FieldSets (#430). Useful for on-the-fly computing of e.g. relative vorticity.
  • Adding of metadata, including by default the Parcels version, to the ParticleFile (#438)
  • Support for ParticleSet.from_field() for Curvilinear Grids (#429)
  • A few bug fixes, including for rotated grids (#440), for indices across 2D and 3D Fields (#437) and for Fields without time dimension (#431)

As always, please let us know if anything isn't working as expected.

- Python
Published by erikvansebille over 7 years ago

parcels - Parcels v1.0.5: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v1.0.5 is a quick update of v1.0.4, mostly because of problems to create a conda-forge package from v1.0.4.

Nevertheless, there are also a few minor updates in this v1.0.5 - Support for the ** operator to take power in JIT mode (#424) - Fixed a bug where runtime was sometimes not correctly set when deferred-loading fields (#422)

Note that installation instructions have changed. After creating the conda environment, users should now run python setup.py install

- Python
Published by erikvansebille over 7 years ago

parcels - Parcels v1.0.4: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v1.0.4 builds on the previous v1.0.3 release. Major changes since then - Support for FieldLists (#393), which allows Kernels like AdvectionRK4 to work on multiple Fields at once. See also the tutorial - Changing the plotting routines from Basemap to cartopy (#401). Note that this means you will need to uninstall Basemap and install cartopy, as they are conflicting - Interpolation of velocities on C-grids. This also means that the angle file is not needed anymore in FieldSet.from_nemo() (#394) - Much smaller output files by controlling the NetCDF chunk size (#366) - Displaying a Progressbar for long (> 10 seconds) runs of ParticleSet.execute() (#381 and #418) - Possibility to initialise custom Variables directly in ParticleSet.from_list() (#397) - Numerous bug fixes

As always, please let us know if anything isn't working as expected.

Note that this release has some installation issues, so should not be used. Use v1.0.5 instead

- Python
Published by erikvansebille over 7 years ago

parcels - Parcels v1.0.3: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v1.0.3 builds on the previous v1.0.2 release. Major changes since then: - Fixed bug in Windows install (#355) - Spatially varying Brownian (#340) and exponential variate (#333) diffusion - Added option for two-dimensional histograms in plotParticleTrajectories() (#367) - Arguments for Field.from_netcdf() have changed to match FieldSet.from_netcdf() (#364) - Minor other bugs fixed

- Python
Published by erikvansebille almost 8 years ago

parcels - Parcels v1.0.2: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v1.0.2 builds on the previous v1.0.1 release. Major changes since then: - Parcels is now also Python3-compatible - No need anymore for FieldSet.advancetime(), as advancing of time for large datasets is now dealt with under the hood. For datasets that have more than 3 time snapshots, Parcels runs in 'deferload' mode, where the actual reading of NetCDF files is only performed when required. This means that longer lists of filenames in `FieldSet.fromnetcdf()(andFieldSet.fromnemo()) don't require more memory. If you still require the entire dataset to be loaded in one go, you can usefullload=Trueas an option toFieldSet.fromnetcdf(). - TheParticleFileclass now always writes particle data inarray` format. See also http://oceanparcels.org/faq.html#outputformat - The website has been revamped at http://oceanparcels.org, with repository at https://github.com/OceanParcels/oceanparcelswebsite

- Python
Published by erikvansebille almost 8 years ago

parcels - Parcels v1.0.1: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v1.0.1 builds on the previous v1.0 release. Major changes since then: - Changes to the arguments of ParticleSet.execute(): (#289) - the interval argument has been renamed outputdt and should now be set when creating the ParticleFile object - the show_movie argument has been split into a moviedt argument (to set the frequency of the animation) and a movie_background_field argument that determines which background field to show (either a Field object, or the string vector) or the default None for no background field - endtime cannot be a timedelta object anymore. Only valid formats for endtime are a datetime object or a double. If you want to give a timedelta object, use the runtime argument - Except for dt, all arguments controlling intervals should always be positive, regardless of whether you run in forward or backward mode. Hence, to change the direction of a run, the only thing to change is to negate dt - Renaming of old FieldSet.from_nemo() to FieldSet.from_parcels() and new FieldSet.from_nemo to handle Curvilinear NEMO grids (#285) - Adding of a timer class to profile CPU time (#288) - Adding of option ParticleFile(..., write_ondelete=True) to write only particle data when particle is deleted (#290) - Adding option to write Kernels directly as C-functions, for JITParticles (#278)

- Python
Published by erikvansebille about 8 years ago

parcels - Parcels v1.0: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v1.0 build on the previous v0.9 release. Major changes since then: - Support for many more types of Grids, including curvilinear (horizontal) and s-grids (vertical) (#262) - Added a Brownian diffusion kernel. More diffusion kernels to come in future versions (#269) - Easier API for repeated particle release (#261) - Support for Fields with different Grids in one FieldSet (#241) - Support on Windows OS (#236) and easier install on macOS and Linux (#228) - Many bugfixes and tweaks

Future work now will focus on efficiency and parallelisation of Parcels. Thanks to all who contributed to this version 1.0!

- Python
Published by erikvansebille about 8 years ago

parcels - Parcels v0.9: prototyping a Lagrangian Ocean Analysis tool for the petascale age

Parcels v0.9 is a fully-functional, feature-complete code for offline Lagrangian ocean analysis. This version 0.9 is focussed on laying out the API, with future work concentrating on optimisation, efficiency and at-runtime integration with OGCMs.

- Python
Published by erikvansebille over 8 years ago