radical-collaboration / facts

Repository for the Framework for Accessing Changes To Sea-level (FACTS)
MIT License
21 stars 10 forks source link

Create fair2/climate module #247

Open bobkopp opened 9 months ago

bobkopp commented 9 months ago

The current fair/temperature module uses FaIR v1.6, consistent with IPCC AR6. An updated version should be made that allows updated version of FAIR to be used.

bobkopp commented 9 months ago

Victor Malagon Santos is working on this in the context of PROTECT.

bobkopp commented 8 months ago

Per Chris Smith:

For any future updates to FACTS, fair-2.1 includes an n-layer (n >= 2, n=3 by default but user-definable) energy balance model, which is optionally stochastic for internal variability (though not likely of much practical use for SLR). There is also an AR6-like calibration of this model and we’re working on annual updates based on new OHC, GMST and emissions data. For probabilistic projections, it is an order of magnitude faster than fair-1.6.

bobkopp commented 7 months ago

The FaIR example notebook provides a helpful guide that needs to be reconciled with the structure of fair/temperature.

Looking through the notebook, I see the following key changes we should make for FACTS:

  1. Download and use local copies of all the files the notebook collects via pooch.
  2. Resample the climate configurations nsamps time before defining the configs so that the FaIR objective has the dimension of nsamps.

For consistency with FACTS practice, I was also organize all the data required for the configs and emissions into a pkl file (in the preprocess and/or fit steps -- presumably preprocess for emissions and fit for model calibration) before putting it into a FaIR object in the project step.

While the fair/temperature model loops individually over all configs, it is likely more efficient to configure all runs in the FaIR object before running.

In terms of the outputted netcdf, “deep_ocean_temperature” is only used for diagnostics, so I would simplify your life by making it layers 1:end of the temperature object, putting layer 0 in surface_temperature, and not worrying that it may have an extra dimension relative to surface_temperature and ocean_heat_content.

AlexReedy commented 2 weeks ago

This has been completed for use in PROTECT and merged into development. Next stage is to get FAIR2 to work with the CIL's RFF scenarios