Changelog#
v0.9.0 - unreleased#
New Features#
- Extracted statistical functionality for linear regression:
Create
mesmer.stats.LinearRegression
which encapsulatesfit
,predict
, etc. methods around linear regression (#134). By Mathias Hauser.Add
mesmer.stats._fit_linear_regression_xr
: xarray wrapper formesmer.stats._fit_linear_regression_np
(#123 and #142). By Mathias Hauser.Add add
fit_intercept
argument to thelinear_regression
fitting methods and functions (#144). By Mathias Hauser.Allow to pass 1-dimensional targets to
mesmer.stats.LinearRegression.fit()
(#221). By Mathias Hauser.Fixed two bugs related to (non-dimension) coordinates ( #332, #333 and #334). By Mathias Hauser.
- Extracted statistical functionality for auto regression:
Add
mesmer.stats.fit_auto_regression
: xarray wrapper to fit an auto regression model (#139). By Mathias Hauser.Have
mesmer.stats.fit_auto_regression
return the variance instead of the standard deviation ( #306 #318). By Mathias Hauser.Add
draw_auto_regression_correlated
anddraw_auto_regression_uncorrelated
: to draw samples of a (spatially-)correlated and uncorrelated auto regression model ( #322, #161 and #313). By Mathias Hauser.Add
mesmer.stats.select_ar_order
to select the order of an auto regressive model (#176). By Mathias Hauser.
- Extracted functions dealing with the spatial covariance and its localization:
Add xarray wrappers
mesmer.stats.adjust_covariance_ar1()
andmesmer.stats.find_localized_empirical_covariance()
(#191). By Mathias Hauser.Refactor and extract numpy-based functions dealing with the spatial covariance and its localization (#167 and #184). By Mathias Hauser.
Allow to pass 1 x n arrays to
mesmer.stats.adjust_covariance_ar1()
(#224). By Mathias Hauser.
- Update LOWESS smoothing:
Extract the LOWESS smoothing for xarray objects:
mesmer.stats.lowess()
. (#193, #283, and #285). By Mathias Hauser.Allow to pool data along a dimension to estimate the LOWESS smoothing. (#331). By Mathias Hauser.
- Added helper functions to process xarray-based model data:
Added functions to stack regular lat-lon grids to 1D grids and unstack them again (#217). By Mathias Hauser.
Added functions to mask the ocean and Antarctica ( #219 and #314). By Mathias Hauser.
Added functions to calculate the weighted global mean (#220 and #287). By Mathias Hauser.
Added functions to wrap arrays to [-180, 180) and [0, 360), respectively (#270 and #273). By Mathias Hauser.
The aerosol data is now automatically downloaded using pooch. (#267). By Mathias Hauser.
Added helper functions to estimate and superimpose volcanic influence (#336). By Mathias Hauser.
- Added additional tests for the calibration step (#209):
one scenario (SSP5-8.5) and two ensemble members (#211)
two scenarios (SSP1-2.6 and SSP5-8.5) with one and two ensemble members, respectively (#214)
different selection of predictor variables (tas**2 and hfds) for different scenarios (#291)
By Mathias Hauser.
Allow passing xr.DataArray to
gaspari_cohn
(#298). By Mathias Hauser.Allow passing xr.DataArray to
geodist_exact
(#299). By Zeb Nicholls and Mathias Hauser.Add
calc_gaspari_cohn_correlation_matrices
a function to calculate Gaspari-Cohn correlation matrices for a range of localisation radii (#300). By Zeb Nicholls and Mathias Hauser.Add a helper function to load tas and (potentially) hfds for several ESMs from cmip-ng archive at ETHZ (#326). By Mathias Hauser.
Breaking changes#
Localization radii that lead to singular matrices are now skipped (#187). By Mathias Hauser.
Refactor and split
train_l_prepare_X_y_wgteq()
into two functions:get_scenario_weights()
andstack_predictors_and_targets()
(#143). By Mathias Hauser.Moved
gaspari_cohn
&calc_geodist_exact
fromio.load_constant_files
tocore.computation
(#158). By Yann Quilcaille.The function
mask_percentage
has been renamed tocore.regionmaskcompat.mask_3D_frac_approx()
(#202). By Mathias Hauser.Removed
mesmer.io.load_constant_files.infer_interval_breaks()
and the edges from the lat and lon dictionaries i.e.,lon["e"]
andlat["e"]
(#233). By Mathias Hauser.Deprecated the
reg_type
argument tomesmer.io.load_constant_files.load_regs_ls_wgt_lon_lat()
and thereg_dict
argument tomesmer.utils.select.extract_land()
. These arguments no longer have any affect (#235). By Mathias Hauser.Removed
ref["type"] == "first"
, i.e., calculating the anomaly w.r.t. the first ensemble member (#247). By Mathias Hauser.Renamed
mesmer.calibrate_mesmer._calibrate_and_draw_realisations
tomesmer.calibrate_mesmer._calibrate_tas
(#66). By Mathias Hauser.
Deprecations#
The function
mesmer.create_emulations.create_emus_gt
has been renamed tocreate_emulations.gather_gt_data()
(#246). By Mathias Hauser.The function
mesmer.utils.select.extract_time_period
is now deprecated and will be removed in a future version. Please raise an issue if you use this function (#243). By Mathias Hauser.
Bug fixes#
Fix three issues with
core.regionmaskcompat.mask_3D_frac_approx()
. Note that these issues are only relevant if passing xarray objects and/ or masks close to the poles (#202 and #218). By Mathias Hauser.
Documentation#
Add development/contributing docs (#121). By Zeb Nicholls.
Internal Changes#
- Refactor the mesmer internals to use the new statistical core, employ helper functions etc.:
By Mathias Hauser.
Restore compatibility with regionmask v0.9.0 (#136). By Mathias Hauser.
Renamed the
interpolation
keyword ofnp.quantile
tomethod
changed in numpy v1.22.0 (#137). By Mathias Hauser.Add python 3.10 and python 3.11 to list of supported versions (#162 and #284). By Mathias Hauser.
Move contents of setup.py to setup.cfg (#169). By Mathias Hauser.
Use pyproject.toml for the build-system and setuptools_scm for the __version__ (#188). By Mathias Hauser.
Moved the climate model data manipulation functions (#237). By Mathias Hauser.
v0.8.3 - 2021-12-23#
New Features#
Add
mesmer.stats._linear_regression
(renamed tomesmer.stats._fit_linear_regression_np
in #142). Starts the process of refactoring the codebase (#116). By Zeb Nicholls.
Bug fixes#
Initialize
llh_max
to-inf
to ensure the cross validation loop is entered (#110). By Jonas Schwaab.
Documentation#
Fix copyright notice and release version in documentation (#127). By Zeb Nicholls.
Internal Changes#
Automatically upload the code coverage to codecov.io after the test suite has run (#99). By Mathias Hauser.
Internal refactor: moved a number of inline comments to their own line (especially if this allows to have the code on one line instead of several) and other minor cleanups (#98). By Mathias Hauser.
Refactor
io.load_cmipng_tas
andio.load_cmipng_hfds
to de-duplicate their code and add tests for them (#55). By Mathias Hauser.
v0.8.2 - 2021-10-07#
Bug fixes#
Reintroduce ability to read in cmip5 data from the cmip5-ng archive at ETH (#90). By Lea Beusch.
Internal Changes#
Reproduce the test files because of a change in regionmask which affected the mesmer tests (#95). By Mathias Hauser.
Refactor and speed up of the Gaspari-Cohn function and the calculation of the great circle distance (#85, #88). By Mathias Hauser.
The geopy package is no longer a dependency of mesmer (#88). By Mathias Hauser.
Convert README from Markdown to reStructuredText to fix package build errors. Also allows to include the README in the docs to avoid duplication (#102). By Mathias Hauser.
v0.8.1 - 2021-07-15#
Update example script (#80).
v0.8.0 - 2021-07-13#
First release on PyPI and conda (#79).