-------------------
Bug Fixes
^^^^^^^^^
* When a project was provided to ``roocs_utils.project_utils.DatasetMapper``, getting the base directory would be skipped, causing an error. This has been resolved.
* ``roocs_utils.project_utils.DatasetMapper`` can now accept `fixed_path_mappings` that include ".gz" (gzip) files. This is allowed because `Xarray` can read gzipped `netCDF` files.
Breaking Changes
^^^^^^^^^^^^^^^^
* Intake catalog maker removed, now in it's own package: `roocs/catalog-maker <https://github.com/roocs/catalog-maker>`_
* Change to input parameter classes::
* Added: ``roocs_utils.parameter.time_components_parameter.TimeComponentsParameter``
* Modified input types required for classes::
* ``roocs_utils.parameter.time_parameter.TimeParameter``
* ``roocs_utils.parameter.level_parameter.LevelParameter``
* They both now require their inputs to be one of::
* ``roocs_utils.parameter.param_utils.Interval`` - to specify a range/interval
* ``roocs_utils.parameter.param_utils.Series`` - to specify a series of values
New Features
^^^^^^^^^^^^
* ``roocs_utils.xarray_utils.xarray_utils`` now accepts keyword arguments to pass through to xarray's ``open_dataset`` or ``open_mfdataset``. If the argument provided is not an option for ``open_dataset``, then ``open_mfdataset`` will be used, even for one file.
* The `roocs.ini` config file can now accept `fixed_path_modifiers` to work together with the `fixed_path_mappings` section. For example, you can specify parameters in the modifiers that will be expanded into the mappings::
fixed_path_modifiers =
variable:cld dtr frs pet pre tmn tmp tmx vap wet
fixed_path_mappings =
cru_ts.4.04.{variable}:cru_ts_4.04/data/{variable}/*.nc
cru_ts.4.05.{variable}:cru_ts_4.05/data/{variable}/cru_ts4.05.1901.2*.{variable}.dat.nc.gz
In this example, the `variable` parameter will be expanded out to each of the options provided in the list.
* The ``roocs_utils.xarray_utils.xarray_utils.open_xr_dataset()`` function was improved so that the time units of the first data file are preserved in: ``ds.time.encoding["units"]``. A multi-file dataset has now keeps the time "units" of the first file (if present). This is useful for converting to other formats (e.g. CSV).
Other Changes
^^^^^^^^^^^^^
* Python 3.6 no longer tested in GitHub actions.