Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- Add documentation, hosted at https://climateimpactlab.github.io/dodola/. (PR #235, PR #205, @brews)
 - Test coverage for container tests in CI. (PR #188, PR #191, @brews)
 - Add 
org.opencontainers.imagelabels with metadata to container. (PR #195, PR #233, @brews) 
Changed
- Bleeding-edge development container now uses "edge" tag. "dev" tag no longer updated. (PR #233, @brews)
 - Minor clarifications to docs and comments. (PR #232, @brews)
 - Migrate parent container from 
miniconda3tomicromamba. Note this is a significant change to the container environment which may break scripts run in the container. In addition, the containers entry point has changed, breaking backwards compatibility for Argo Workflows running with Emissary executors. (PR #195, @brews) - Migrate Python package metadata and dependencies from 
setup.cfgtopyproject.toml. Note the runtime environment used in the container is stillenvironment.yaml. (PR #195, @brews) - Minor README updates, improvements. (PR #195, @brews)
 - Updates to Python package metadata, specific dependencies, versioning, classifiers, project URLs. (PR #206, @brews)
 
Fixed
- Fix broken release links in CHANGELOG. (@brews)
 
0.19.0 - 2022-03-25
Added
- Add badge for current release DOI to README. (@brews)
 
Changed
- Significant update to container/package environment pins. (PR #183, @brews)
 
0.18.0 - 2022-03-03
Added
- Add basic CI/CD test and build status badges to README. (PR #182, @brews)
 
Fixed
- Fix dodola validate-dataset OOM on small workers without dask-distributed. (PR #181, @brews)
 
0.17.0 - 2022-02-17
Changed
- Increase max allowed tasmin, tasmax in services.validate to 377 K for UKESM1-0-LL. (PR #180, @brews)
 
Fixed
- Move in-memory data loading where it is needed for 360-days calendar conversion in clean-cmip6 (PR #179, @emileten)
 
0.16.2 - 2022-02-15
Fixed
- Fix incorrect references when standardizing gcm (PR #178, @emileten)
 
0.16.1 - 2022-01-27
Fixed
- Fix the wetday frequency correction so that different replacement values are used, rather than a single one (PR #174, PR #176, @emileten, @delgadom).
 
0.16.0 - 2022-01-19
Added
- Improve README.md. (PR #169, @brews)
 
Changed
- Remove duplicated service-level logging info lines of code introduced by PR #148 (PR #168, @emileten)
 - Decrease validation temperature range min to 130 (PR #170, @emileten)
 
0.15.1 - 2021-12-29
Fixed
- Fix boolean condition error in DTR ceiling application (PR #165, PR #166, @emileten)
 
0.15.0 - 2021-12-27
Added
- Add maximum precipitation adjustment service that applies a "ceiling" or "cap" to precipitation values above a user-defined threshold. (PR #164, @dgergel)
 
Changed
- Increase max precipitation allowed by validation to 3000 mm. (PR #164, @dgergel)
 - Update wet day frequency correction to incorporate method additions from Hempel et al 2013. (PRs #162 and #159, @dgergel)
 - Floor and ceiling for DTR. (PR #163 @emileten)
 
0.14.0 - 2021-12-21
Changed
- Update wet day frequency correction to include small negative values in correction and to limit the correction range to the threshold * 10 ^ -2. (PR #158, @dgergel)
 - Update package setup, README, HISTORY/CHANGELOG to new system. (PR #154, @brews)
 
0.13.0 - 2021-12-17
Changed
- Update diurnal temperature range (DTR) validation to differentiate polar and non-polar regions. (PR #153, @dgergel)
 - Update diurnal temperature range (DTR) validation to differentiate min DTR accepted value for CMIP6 vs bias corrected and downscaled data inputs (PR #155, @dgergel)
 
Removed
- Remove cruft code. Remove 
dodolacommandsbiascorrect,downscale,buildweightsalong with corresponding functions indodola.servicesanddodola.core. (PR #152, @brews) 
Fixed
- Fix rechunk error when converting 360 days calendars. (#149, PR #151, @brews)
 
0.12.0 - 2021-12-09
Added
- Add 360 days calendar support (PR #144, @emileten)
 - Add an option to temporarily replace the target variable units in dodola services and use in CLI dodola for precip (PR #143, @emileten)
 - Add diurnal temperature range (DTR) correction for small DTR values below 1 (converts them to 1) (PR #145, @dgergel)
 
0.11.1 - 2021-12-03
Changed
- Decrease allowed timesteps for bias corrected/downscaled files in validation to allow models that only go through 2099 (PR #146, @dgergel)
 
0.11.0 - 2021-11-30
Added
- Add post wet day correction option in CLI dodola (PR #141 @emileten)
 
Changed
- Increase validation temperature range max to 360 (PR #142, @dgergel)
 - Distinguish missing from excess timesteps in timesteps validation (PR #140, @emileten)
 
0.10.0 - 2021-11-22
Added
- Add additional tests for 
dodola.core.*_analogdownscalingfunctions. (PR #136, @dgergel, @brews) 
Changed
- Update dtr range check max to allow up to 70 C. (PR #138, @brews, @dgergel)
 
0.9.0 - 2021-11-15
Added
- Add 
--root-attrs-json-filetoprime-qplad-output-zarrstore,apply-qplad,prime-qdm-output-zarrstore,apply-qdm. (PR #134, @brews) - Add 
dodola get-attrscommand. (PR #133, @brews) 
Changed
- Upgrade Docker base image to 
continuumio/miniconda3:4.10.3. (PR #132, @brews) 
Fixed
- Fix attrs missing from services.apply_qplad output Datasets. (#135, @brews)
 
0.8.0 - 2021-11-10
Added
- Add AIQPD output Zarr priming (
prime-aipqd-output-zarrstore), input slicing, region writing, attrs merging, and multi-year processing. This breaks backwards compatibility forapply-aiqpdand its services and core functions. See the pull request for additional details. (PR #130, @brews) - Similarly, add QDM output Zarr priming (
prime-qdm-output-zarrstore), region writing, attrs merging, and multi-year processing. This breaks backwards compatibility forapply-qdmand its services and core functions. See the pull request for additional details. (PR #129, @brews) - Add pre-training slicing options to 
train-qdmandtrain-aiqpd. (PR #123, PR #128, @brews) 
Changed
- AIQPD has been renamed "Quantile-Preserving, Localized Analogs Downscaling" (QPLAD). AIQPD-named commands have been switch to QPLAD. This is backward compatibility breaking. (PR #131, @brews)
 - Make logging slightly more chatty by default. (PR #129, @brews)
 
Fixed
- Quick fix validation reading entire zarr store for check. (PR #124, @brews)
 
0.7.0 - 2021-11-02
Added
- Add global validation, includes new service 
validatefor validating cleaned CMIP6, bias corrected and downscaled data for historical and future time periods. (PR #118, @dgergel) 
Changed
- Update xclim version to 0.30.1, this updates the Train/Adjust API for QDM and AIQPD and requires units attributes for all QDM and AIQPD inputs. (PR #119, @dgergel)
 - Regrid copies input Dataset 
attrsmetadata to output (#116). (PR #121, @brews) 
Security
- Upgrade 
daskto 2021.10.0 to cover https://nvd.nist.gov/vuln/detail/CVE-2021-42343. (PR #122, @brews) 
0.6.0 - 2021-09-08
Added
- Add AIQPD downscaling method to options. Also updates 
xclimdependency to use the CIL-fork and "@add_analog_downscaling" branch, with 0.28.1 ofxclimmerged in. This supersedes the BCSD downscaling service. (PR #98, PR #115, @dgergel) 
0.5.0 - 2021-08-04
Added
- Add 
--cyclicoption to regrid cli and services. (PR #108, @brews) - Add 
papermill,intake-esmto Docker environment. (PR #106, @brews) 
Changed
- Bump environment 
xarrayto v0.19.0. (PR #109, @brews) 
0.4.1 - 2021-07-13
Changed
- Bump xclim to v0.28.0, improve environment notes. (PR #105, @brews)
 
Fixed
- Fix application logging to stdout. (PR #104, @brews)
 
0.4.0 - 2021-07-09
Added
- Add 
include-quantilesflag toapply_qdmto allow for including quantile information in bias corrected output. (PR #95, @dgergel) - Add precipitation unit conversion to 
standardize_gcm. (PR #94, @dgergel) - Add 
astypeargument toregrid. (PR #92, @brews) 
Changed
- Make 
dodolacontainer's default CMD. (PR #90, @brews) - Improve subprocess and death handling in Docker container. (PR #90, @brews)
 
Fixed
- Fix bug in train_quantiledeltamapping accounting for endpoints. (#87, @brews)
 
0.3.0 - 2021-06-16
Added
- Update 
buildweightsservice to add support for regridding to domain file. Not backwards compatible. (PR #67, @dgergel) - Add downscaling service. Currently support BCSD spatial disaggregation as implemented in scikit-downscale. (PR #65, @dgergel)
 - Add bias-correction quantile delta mapping (QDM) components to support Argo Workflows. New commands added: 
dodola train-qdmanddodola apply-qdm. (PR #70, @brews) - Add wet day frequency correction service. Wet day frequency implemented as described in Cannon et al., 2015. New command added: 
dodola correct-wetday-frequency. (PR #78, @dgergel) 
Changed
- Significant updates to container environment: Python 3.9, 
xarray,adlfs,xesmf,dask, andfsspec. (PR #74, PR #75, PR #76, PR #77, PR #84 @brews) - Remove stdout buffering from container runs, add IO debug logging. (PR #72, @brews)
 
Fixed
- Fix CMIP6 clean to better handle coords vs dims. (PR #81, @brews)
 
0.2.0 - 2021-04-23
Changed
- Switch to pure 
fsspec-style URLs for data inputs. Added support for GCS buckets and S3 storage. Switch tofsspecbackend settings to collect storage authentication. Because of this users likely will need to change the environment variables used to pass in storage credentials.dodola.servicesno longer require thestorageargument. PR #61 from @brews. - Switch to simple 
xarray-based rechunking to workaround to instability from our use ofrechunker. This change breaks the CLI fordodola rechunk, removing the-v/--variableand-m/--maxmemoryoptions. The change also breaks thedodola.services.rechunk()signature, removing themax_memargument and thetarget_chunksargument is now a mapping{coordinate_name: chunk_size}. PR #60 from @brews. 
Fixed
0.1.0 - 2021-04-15
- Initial release.