Releases: CSHS-CWRA/RavenPy
Releases · CSHS-CWRA/RavenPy
v0.10.0
What's Changed
- Use Raven model framework version 3.5 by @Zeitsperre in #240
- Pin setuptools in tox and in GitHub workflows by @Zeitsperre in #2
- Relax geo test precision by @huard in #246
Full Changelog: v0.9.0...v0.10.0
v0.9.0
Breaking changes
- HRUState's signature has changed. Instead of passing variables as keyword arguments (e.g.
soil0=10.
), it now expects astate
dictionary keyed by variables' Raven name (e.g.{"SOIL[0]": 10}). This change makes
rvc` files easier to read, and avoids Raven warnings regarding 'initial conditions for state variables not in model'. nc_index
renamed tometeo_idx
to enable the specification of distinct indices for observed streamflow usinghydro_idx
.nc_index
remains supported for backward compatibility.- The distributed python testing library,
pytest-xdist
is now a testing and development requirement. xarray
has been pinned below "2022.11.0" due to incompatibility withclimpred=="2.2.0"
.
New features
- Add support for hydrometric gauge data distinct from meteorological input data. Configuration parameter
hydro_idx
identifies the gauge station index, whilemeteo_idx
(previouslync_index
) stands for the meteo station index. - Add support for multiple gauge observations. If a list of
hydro_idx
is provided, it must be accompanied with a list of corresponding subbasin identifiers (gauged_sb_ids
) of the same length. - Automatically infer scale and offset
:LinearTransform
parameters from netCDF file metadata, so that input data units are automatically converted to Raven-compliant units whenever possible. - Add support for the command
:RedirectToFile
. Tested for grid weights only. - Add support for the command
:WriteForcingFunctions
. - Add support for the command
:CustomOutput
. - Multiple other new RavenCommand objects added, but not integrated in the configuration, including
:SoilParameterList
,:VegetationParameterList
and:LandUseParameterList
. - Multichoice options (e.g. calendars) moved from RV classes to
config.options
, but aliases created for backward compatibility. - Patch directory traversal vulnerability (
CVE-2007-4559 <https://github.com/advisories/GHSA-gw9q-c7gh-j9vm>
_). - A local copy of the raven-testdata with environment variable (
RAVENPY_TESTDATA_PATH
) set to that location is now no longer needed in order to run the testing suite. Test data is fetched automatically and now stored at~/.raven_testing_data
. - RavenPy now leverages
pytest-xdist
to distribute tests among Python workers and significantly speed up the testing suite, depending on number of available CPUs. File access within the testing suite has also been completely rewritten for thread safety.- On pytest launch with "
--numprocesses
> 0", testing data will be fetched automatically fromOuranosinc/raven-testdata
by one worker, blocking others until this step is complete. Spawned pytest workers will then copy the testing data to their respective temporary directories before beginning testing.
- On pytest launch with "
- To aid with development and debugging purposes, two new environment variables and pytest fixtures are now available:
- In order to skip the data collection step:
export SKIP_TEST_DATA=true
- In order to target a specific branch of
Ouranosinc/raven-testdata
for data retrieval:export MAIN_TESTDATA_BRANCH="my_branch"
- In order to fetch testing data using the user-set raven-testdata branch, pytest fixtures for
get_file
andget_local_testdata
are now available for convenience
- In order to skip the data collection step:
v0.8.1
v0.8.0
Breaking changes:
- Parallel parameters must be provided explicitly using the
parallel
argument when calling emulators. - Multiple
nc_index
values generate multiple gauges, instead of being parallelized. - Python3.7 is no longer supported.
- Documentation now uses sphinx-apidoc at build-time to generate API pages.
Other changes:
- Add
generate-hrus-from-routing-product
script. - Do not write RV zip file and merge outputs when
suppress_output
is True. Zipping rv files during multiple calibration runs leads to a non-linear performance slow-down. - Fixed issues with coverage reporting via tox and GitHub Actions
v0.7.8
- Added functionalities in Data Assimilation utils and simplified tests.
- Removed pin on setuptools.
- Fixed issues related to symlinks, working directory, and output filenames.
- Fixed issues related to GDAL version handling in conda-forge.
- Updated jupyter notebooks.
v0.7.7
- Updated internal shapely calls to remove deprecated
.to_wkt()
methods.
v0.7.6
- Automate release pipeline to PyPI using GitHub CI actions.
- Added coverage monitoring GitHub CI action.
- Various documentation adjustments.
- Various metadata adjustments.
- Pinned owslib to 0.24.1 and above.
- Circumvented a bug in GitHub CI that was causing tests to fail at collection stage.
v0.7.5
- Update test so that it works with xclim 0.29.
v0.7.4
- Pinned climpred below v2.1.6
v0.7.3
- Pinned xclim below v0.29.0