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
trajanas 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
timedimension by @erikvansebille in https://github.com/OceanParcels/Parcels/pull/1835 - Small refactors in
particlefile.pyby @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.pyto 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_zarrfixture 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:
FieldandFieldSetby @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1709 - API changes:
particlefile.pyand other touchups by @VeckoTheGecko in https://github.com/OceanParcels/Parcels/pull/1727 - API changes:
particleset.pyandgrid.pyby @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.pyby @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
isortsupport 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
blackas 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:
- Prototype implementation of Particle-Particle interaction in Scipy mode (#1031, thanks to @qubixes and @RoelBrouwer ).
- Implementation of Particle-Field interaction in Scipy mode (#1045, thanks to @fedeguerr)
- Implementation of a second type of ParticleSet (Array-of-Structures,
ParticleSetAOS) as addition to the default Structure-of-Arrays (ParticleSetSOA) (#999) - Partial- and free-slip boundary interpolation methods for velocity fields on A-grids (#1052, thanks to @reint-fischer )
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
- Speed up by perhaps a factor 10(!) in some use-cases by switching data structure of
ParticleSetfrom Array-of-Structures to Structure-of-Arrays (#678, thanks @angus-g!) - Support for sigma-grids with time-varying depth dimensions (#660, see also this tutorial)
- Further fixes some issues with
daskchunking (# 764, #774, #776) - Improves reliability when
dtis very small (< 0.001 s) (#762) - Support for a new ErrorCode
StopExecution(#780) - 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.
- It fixes some Issues with dask chunking, particularly in 3D simulations (#738, #740 and #731)
- 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:
- 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.
- It also fixes a smaller bug (#676) with the
timestampsargument inField.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]
- 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.
- For an efficient loading of the
Fieldset, theFieldobjects are now loaded by chunks, controlled by the parameterfield_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. - 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)
- A proper management of
particle.dtmodified by the kernel. If the kernel modifiesparticle.dt, the kernel will automatically be restarted with the updateddt. If you want to simply updates thedtfor next kernel call, useparticle.update_next_dt(new_dt). (#657) - New particles can now be added to the
ParticleSetonly via a temporaryParticleSetobject. This enables a proper control of theparticle.idin parallel (#629) 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)- Using the
time_periodicflag inFieldSetcreation now requires the length of the period (#659) - 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:
- 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.
- For an efficient loading of the
Fieldset, theFieldobjects are now loaded by chunks, controlled by the parameterfield_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. - 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)
- A proper management of
particle.dtmodified by the kernel. If the kernel modifiesparticle.dt, the kernel will automatically be restarted with the updateddt. If you want to simply updates thedtfor next kernel call, useparticle.update_next_dt(new_dt). (#657) - New particles can now be added to the
ParticleSetonly via a temporaryParticleSetobject. This enables a proper control of theparticle.idin parallel (#629) 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)- Using the
time_periodicflag inFieldSetcreation now requires the length of the period (#659) - 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 offilenamesargument has been enriched (#463). As before,filenamescan 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
TimeConverterclass 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_engineas argument forFieldset.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
FieldListclass toSummedFields, so that Fields can be summed byfieldAB = 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
indicesacross 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