Releases: OceanParcels/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 linear_invdist_land interpolation in #1306
- Implementing time_periodic also for FieldSet.from_xarray_dataset in #1253
- Adding info on periodic boundaries in global models to tutorial in #1255
- Support for running on systems with MPI but without sklearn in #1262
- Fixing the vonmises distribution tests in test_diffusion in #1279
- Clean up CI/CD workflows in #1278 (by @VeckoTheGecko)
- Fix Readthedocs in #1290 (by @VeckoTheGecko)
- Running MPI test without writing Stommel hydrodynamic fields in #1291
- Updating fieldfilebuffer to not not unravel lonlat-indices when not provided in #1258
- Allow for Zarr stores being passed to ParticleFile in #1303 (by @willirath)
- Cleaning up deprecated methods and increasing codecoverage for Parcels in #1287 (by @VeckoTheGecko) and in #1295, #1296, #1309
Full Changelog: v2.4.0...v2.4.1
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 (#1199)
- Updating documentation notebooks (#1237)
- Fixing 'fatal: not a git repository' warning (#1251)
Full Changelog: v2.3.2...v2.4.0
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 (#1208)
- Updating the structure and particle-particle interaction tutorial (by @pdnooteboom, #1197)
- Clarification on the
show_time
parameter (by @VeckoTheGecko, #1215) - Adding section to delaystart tutorial on adding particles during execution (#1223)
- Implementing fieldset.UV.eval for SummedVectorFields too (#1200)
Other fixes
- Bugfix for ParticleSet.add() in mpi mode (#1194)
- Fixing the
sh: None: command not found warning
(#1201) - Fixing pipy upload script (#1202)
- Adding hint for export CC=gcc in compilation error message (#1203)
- Fixing new flake8 requirements (#1206)
- Fixing numpy DeprecationWarning in timeslices concatenation (#1207)
- Fixing DeprecationWarning on elementwise comparison in converters (in #1125)
- Fix broken ipynb link (by @VeckoTheGecko, #1219)
- Using f-string in logger info for plotting (#1222)
- Throwing explicit error in codegenerator when using random() in JIT Kernel (#1230)
New Contributors
- @VeckoTheGecko made their first contribution in #1215
Full Changelog: v2.3.1...v2.3.2
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)
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)
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
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
toparcels.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 forFieldSet.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 viaParticleFile.set_variable_write_status()
(#892)
Plus a large number of minor bug fixes
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
- Improved advection-diffusion kernels, as detailed in this tutorial by @daanreijnders (#823)
- Support for time-evolving sigma-grids (#660)
- New interpolation scheme for tracers near coastlines, as detailed in this tutorial, thanks to @pierrick-giffard. (#815)
- Addition of Kernels to calculate the TEOS-10 equation of state, thanks to @pdnooteboom (#816)
- Partial implementation of AnalyticalAdvection Kernel following Döös et al 2017, see also this tutorial
- 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
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
ParticleSet
from 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
dask
chunking (# 764, #774, #776) - Improves reliability when
dt
is very small (< 0.001 s) (#762) - Support for a new ErrorCode
StopExecution
(#780) - Support for python3.8 (#753)
And various other minor bug fixes