Releases: OMS-NetZero/FAIR
A couple of fixes
v2.2.2 fixes a bug in the direct aerosol scaling that was picking up the scale factor of precursor species, and turns off the warning and debug messages from the logging
module.
Support for python 3.13
This release formally adds support for python
3.13 on pip
and conda
.
New convenience functions for ensembles
v2.2 introduces new functionality so is a new minor release of fair
- the first for a while!
The biggest improvement is the ability to define emissions scenarios and parameter sets easily in importable CSV files, and makes defining custom emissions scenarios much more straightforward. This is handled by the new fill_from_csv()
method.
Large probabilistic ensemble parameter sets can be straightforwardly included thanks to the new override_defaults()
method.
An example that shows these features in action is at https://docs.fairmodel.net/en/latest/examples/calibrated_constrained_ensemble.html. There are many fewer lines of code required to run fair
than previously, and hopefully this makes the model a little more intuitive.
While it almost certainly worked before, python 3.12 is now officially supported, and code coverage has been brought up to 100%.
Fix for species_configs file read from CSV
This version fixes an error that occurred if either CH4 or Aerosol-cloud interactions were missing from the list of species defined and the list of species configs in f.fill_species_configs()
was read in from a CSV file.
OHC restart fix and py3.7 dropped
An inconsistency with ocean heat content before and after a restart has now been fixed. It was not affecting results since OHC is a post-processed quantity, only reporting.
One module dependency was failing tests with python 3.7, so support for python 3.7 has been dropped.
Zenodo DOI patch
The move to the new Zenodo API made pooch
fail in the fill_from_rcmip()
convenience function. The path to the emissions files from RCMIP have been updated to directly link to URLs rather than DOIs.
xarray fix and update to documentation
xarray 2023.9.0 introduced a change that broke FaIR with python 3.9+. Following user feedback, documentation has been updated, including, most importantly, an example using the latest available calibration. The positive semi-definite RuntimeWarnings should have also disappeared when running stochastically, or at least can be disabled.
Support for python 3.6 is removed due to dependency issues, and 3.11 added.
v2.1 + documentation
v2.1.0 is an overhaul of FaIR, and includes the following:
- object-oriented design
- interactive methane lifetime
- optional internal variability
- mass parallelisation
A new interface, and new features
v2.1.0 is an overhaul of FaIR, and includes the following:
- object-oriented design
- interactive methane lifetime
- optional internal variability
Add module interface for the SSPs
For a number of years, the RCP scenarios have been easily importable into FaIR using something like
from fair.RCPs import rcp45
from fair.forward import fair_scm
conc, forc, temp = fair_scm(rcp45.Emissions.emissions)
You can now do the same with the SSP scenarios from CMIP6:
from fair.SSPs import ssp119
from fair.forward import fair_scm
conc, forc, temp = fair_scm(ssp119.Emissions.emissions)
The following are available: ssp119
, ssp126
, ssp245
, ssp370
, ssp370_lowNTCF
, ssp434
, ssp460
, ssp534
, ssp585
More information is available from O'Neill et al. (2016) and Riahi et al. (2017), and the IPCC's Sixth Assessment Working Group 1 report. The emissions scenarios themselves were compiled by Zeb Nicholls and Jared Lewis and available at https://doi.org/10.5281/zenodo.4589756. Please cite Nicholls et al. (2020) if you use them,
The SSPs are supplied as a convenience as the actual SSP scenarios run for AR6 were done a little differently, but will need a whole configuration change to run as it was there, so it should be noted that results will probably not agree exactly with AR6 or observed history. This is just for people who want to easily get at the scenarios without digging too much into the AR6 repository.