chrisroadmap / fair-calibrate

Calibration package for fair (>=2.1)
MIT License
3 stars 0 forks source link

Apparent inconsistencies in TCR , AF, and TCRE #97

Closed aipartanen closed 10 months ago

aipartanen commented 1 year ago

I noticed some apparent inconsistencies in dealing with TCR, AF, and TCRE in the 1pctCO2 scenario.

First, when running 1pctCO2 scenario and diagnosing TCR as the temperature change in 1920 (year 70 of the simulation) it differs considerably from the value given by the energy balance model (f.ebms.tcr) (See attached TCR comparison figure). The former method gave a mean of 2.03 while the latter method gave a mean of 1.86 (based on the 1001 calibrated parameter combinations from v1.0 GCP_2022).

I also compared the airborne fraction (AF) calculated by two ways: 1) f.airborne_fraction.loc[dict(specie='CO2', timebounds=1920)] 2) Calculating the change in atmospheric mass from 1850 to 1920 and dividing my cumulative emissions as shown below:

ppm2gtC=2.13 # Conversion factor from ppm to Gt C

#Calculate CO2 mass change in 1pctCO2 scenario from 1850 to 1920 (in Gt C)
dA=float((da_concentration.loc[dict(specie='CO2', timebounds=1920)]-da_concentration.loc[dict(specie='CO2', 
timebounds=1850)]))*ppm2gtC 
af2=dA/(f.cumulative_emissions.sel(specie='CO2', timebounds=1920)/3.67)
---

The first method gave mean AF of 0.512 and second 0.5024. I'm not sure if the difference comes only from some small time-step mismatch in my script or is it more fundamental problem of the model.

For TCRE, the mean calculated with temperature change divided by cumulative CO2 emissions was 1.67 while using AF directly from model output and dividing by the change in the atmospheric CO2 mass (609.691 Gt C) gave 1.71.

The scripts used to produce the numbers and figures shown here can be accessed at: https://fmi100-my.[share](https://fmi100-my.sharepoint.com/:f:/g/personal/antti-ilari_partanen_fmi_fi/EvEPvM1VCTpDn9x8gItIK7EB4Yfm5hx18K8xf3jlrJhB1Q?e=qte8fk)point.com/:f:/g/personal/antti-ilari_partanen_fmi_fi/EvEPvM1VCTpDn9x8gItIK7EB4Yfm5hx18K8xf3jlrJhB1Q?e=qte8fk

TCRE_comparison TCR_comparison AF_comparison

chrisroadmap commented 1 year ago

I think the TCRE and AF may now be fixed in #99 - thanks for that.

For the TCR, there is more spread in that scatter plot than I would like. Are you also varying the forcing uncertainty for CO2? If not, this might be contributing to the spread.

Theoretical TCR is biased slightly high, because the Meinshausen forcing equation has F2CO2 = 0.476 F4CO2, whereas theoretical TCR uses 0.5. This also affects ECS. A quick fix would be to use a scaling factor of 0.476 in the theoretical equation (I'm reluctant to run a whole prior ensemble of 1pct runs just to calculate TCR to use in the constraint). This I think would remove most of the inconsistency between the 1pct run used for TCRE and the theoretical value and has the added bonus of getting TCR a little lower so better fitting the constraints (IPCC 5th percentile 1.2K, lowest CMIP6 model 1.34K; the low end of the prior is very sparse). It just feels... unclean, though.

aipartanen commented 1 year ago

Yes, I'm varying the CO2 forcing uncertainty based on your 1001-member calibrated set. The runs were not stochastic, but that didn't at least visually have large effect on TCR spread on a quick test. I also tried setting the CO2 scaling to 1, which reduced the spread. That's better comparison. image

Apparently, something went wrong with my OneDrive link last time. Here is revised link that should lead to the scripts I used: https://fmi100-my.[share](https://fmi100-my.sharepoint.com/:f:/g/personal/antti-ilari_partanen_fmi_fi/EvEPvM1VCTpDn9x8gItIK7EB4Yfm5hx18K8xf3jlrJhB1Q?e=KOZPYI)point.com/:f:/g/personal/antti-ilari_partanen_fmi_fi/EvEPvM1VCTpDn9x8gItIK7EB4Yfm5hx18K8xf3jlrJhB1Q?e=KOZPYI

The 1pctCO2 run was based on your script: https://github.com/chrisroadmap/fair-calibrate/blob/main/input/fair-2.1.0/v1.0/GCP_2022/constraining/parallel_1pct.py

chrisroadmap commented 1 year ago

I'm still thinking about this and how best to treat it. To be clear the derived TCR is not from a 1pct run. It's calculated using a similar method to eq. 4 in Jimenez-de-la-Cuesta and Mauritsen (https://www.nature.com/articles/s41561-019-0463-y). Similarly, the ECS is neither calculated from a Gregory regression nor derived by running the simulations to equilibrium, it is again calculated from the energy balance model parameters (F4x/lambda/2) (though, should match equilibrium warming with this forcing level). This follows what we did in AR6. To make matters muddier, F4x which is used in both the TCR and ECS calculations is not used to calculate warming in the model, so these values become a little less important than in older versions of FaIR. In calibrations, F4x is used to define a scaling factor for the strength of CO2 forcing, so it does come into the computation of warming indirectly. However, when running the model with a defined emissions scenario, only the feedback values (W m-2 K-1) actually matter in defining warming.

Short version: I think it's fine if we're explicit in any paper, and including a plot like yours above will be helpful.

chrisroadmap commented 10 months ago

Will close this issue, since the definitional differences are identified and as long as clearly reported in any paper it is transparent. The mechanism calculates TCR both theoretically and from 1pctCO2, and TCRE from airborne fraction at doubling from 1pctCO2 (the IPCC method) as well as at the point of 1000 GtC in 1pctCO2.

The preferred reporting metrics are theoretical TCR, and TCRE at 1000 GtC in 1pctCO2.