fair.forcing package¶
Submodules¶
fair.forcing.aerosols module¶
-
fair.forcing.aerosols.
Stevens
(emissions, stevens_params=array([1.875e-03, 6.340e-01, 6.000e+01]), ref_isSO2=True)¶ Calculates aerosol forcing based on Stevens (2015) that relates sulphate aerosol forcing to SOx emissions in a logarithmic fashion.
- Input:
- emissions: anthropogenic emissions database
- Keywords:
- stevens_params: 3 element array
- natural emissions of SOx in Mt/yr
- scaling parameter for ERFari (alpha)
- scaling parameter for ERFaci (beta)
ref_isSO2: True if E_SOx_nat is in units of SO2 rather than S.
- Output:
- F: aerosol effective radiative forcing
-
fair.forcing.aerosols.
aerocom_direct
(emissions, beta=array([-0.0062227, 0., -0.00038392, -0.00116551, 0.01601537, -0.00145339, -0.00155605]))¶ Calculates direct aerosol forcing based on linear relationships between emissions and forcing in Aerocom models.
Reference: Myhre et al., 2013: https://www.atmos-chem-phys.net/13/1853/2013
If inputs from an RCPs SCEN file are used, the units will be correct.
- Inputs:
- emissions: (nt x 40) emissions array
- Keywords:
- beta: 7-element array of forcing efficiencies in W m-2 (Mt yr-1)-1 for
- SOx, CO, NMVOC, NOx, BC, OC, NH3 (in that order)
- Outputs:
- Forcing time series
-
fair.forcing.aerosols.
ghan_indirect
(emissions, fix_pre1850_RCP=True, scale_AR5=False, ghan_params=array([-1.95011431, 0.01107147, 0.01387492]))¶ Estimates the aerosol indirect effect based on the simple model in Ghan et al., (2013), doi:10.1002/jgrd.50567.
This function is just an emulator - a full implementation in Python of the Ghan routine (originally coded in Fortran) exists, but will require optimisation before it can be used in FAIR. I hope to make the full version available in a future version.
A 500-member Latin Hypercube sample of emissions of SOx, NMVOC, BC and OC was prepared offline and run through the Ghan simple model and a functional relationship fit to the output. SOA aerosol (based on NMVOC emissions) is sometimes unreliable and does not exert a strong dependence on the ERF, and OC+BC is parameterised as primary organic matter, so the resulting output is a function of SOx and (BC+OC) emissions.
- Inputs:
- emissions: (nt x 40) numpy emissions array
- Keywords:
- fix_pre1850_RCP: Use different relationship for 1750/65 to 1850 based
- on anthropogenic emissions from Skeie et al (2011) for 1750 (atmos-chem-phys.net/11/11827/2011)
- scale_AR5: If True, scale the forcing output so that the best
- estimate forcing in 2011 is -0.45 W/m2 based on 2011 emissions from the RCPs. The Ghan emulator is built on results from the CAM5 GCM. As reported in AR5 WG1 Ch7, GCMs tend to overestimate forcing from aerosol-cloud interactions.
- ghan_params: 3-element numpy array
- 0: scale factor 1: sensitivity to SOx emissions 2: sensitivity to BC+OC emissions
- Outputs:
- Forcing timeseries
fair.forcing.contrails module¶
-
fair.forcing.contrails.
from_aviNOx
(emissions, frac, E_ref=2.946, F_ref=0.0448, ref_isNO2=True)¶ Calculates contrail radiative forcing from emissions of aviation NOx.
- Inputs:
- emissions: Raw emissions data. frac: fraction of total NOx emissions due to aviation.
- Keywords:
- E_ref: reference-year emissions of aviation NOx, Mt/yr. 2.946
- is 2005 emissions of aviation NOx in RCP4.5 measured in Mt NO2/yr.
- F_ref: Forcing from linear persistent contrails + contrail
- induced cirrus. The default of 0.0448 W/m2 for 2005 is from Lee et al, 2009 (Atmos. Environ., doi:10.1016/j.atmosenv.2009.04.024).
ref_isNO2: True if E_ref is in units of NO2 rather than N.
-
fair.forcing.contrails.
from_fuel
(keroseneGt, S_ref=236.063, F_ref=0.0448)¶ Calculates contrail radiative forcing from fuel supply of jet kerosene.
This method assumes a linear scaling of ERF with kerosene jet fuel supplied, which is a proxy for aircraft activity. The relationship may not be linear as suggested in IPCC (1999) and depends on many uncertain factors. IPCC (1999): Aviation and the Global Atmosphere. J.E.Penner, D.H.Lister, D.J.Griggs, D.J.Dokken, M.McFarland (Eds.). Cambridge University Press, UK. pp 373
- Inputs:
- keroseneGt: Jet fuel supplied in Gt/yr
- Keywords:
- S_ref: Jet fuel supplied for a reference year (2005), Gt. Source
- for default: International Energy Agency, http://www.iea.org/statistics/statisticssearch/report/ ?country=WORLD&product=oil&year=2005
- F_ref: Forcing from linear persistent contrails + contrail
- induced cirrus. The default of 0.0448 W/m2 for 2005 is from Lee et al, 2009 (Atmos. Environ., doi:10.1016/j.atmosenv.2009.04.024).
fair.forcing.ghg module¶
-
fair.forcing.ghg.
MN
(M, N)¶
-
fair.forcing.ghg.
etminan
(C, Cpi, F2x=3.71)¶ Calculate the radiative forcing from CO2, CH4 and N2O.
This function uses the updated formulas of Etminan et al. (2016), including the overlaps between CO2, methane and nitrous oxide.
Reference: Etminan et al, 2016, JGR, doi: 10.1002/2016GL071930
- Inputs:
- C: [CO2, CH4, N2O] concentrations, [ppm, ppb, ppb] Cpi: pre-industrial [CO2, CH4, N2O] concentrations
- Keywords:
- F2x: radiative forcing from a doubling of CO2.
- Returns:
- 3-element array of radiative forcing: [F_CO2, F_CH4, F_N2O]
-
fair.forcing.ghg.
myhre
(C, Cpi, F2x=3.71)¶ Calculate the radiative forcing from CO2, CH4 and N2O.
This uses the Myhre et al. (1998) relationships including the band overlaps between CH4 and N2O. It is also used in AR5.
Reference: Myhre et al, 1998, JGR, doi: 10.1029/98GL01908
- Inputs:
- C: [CO2, CH4, N2O] concentrations, [ppm, ppb, ppb] Cpi: pre-industrial [CO2, CH4, N2O] concentrations
- Keywords:
- F2x: radiative forcing from a doubling of CO2.
- Returns:
- 3-element array of radiative forcing: [F_CO2, F_CH4, F_N2O]
fair.forcing.h2o_st module¶
-
fair.forcing.h2o_st.
linear
(F_CH4, ratio=0.15)¶ Calculates radiative forcing from oxidation of methane to H2O.
Stratospheric water vapour forcing follows a practically linear relationship with the CH4 radiative forcing in MAGICC and AR5.
fair.forcing.ozone_st module¶
-
fair.forcing.ozone_st.
magicc
(C_ODS, C0, eta1=-1.46030698e-05, eta2=0.0020540127, eta3=1.03143308)¶
fair.forcing.ozone_tr module¶
-
fair.forcing.ozone_tr.
regress
(emissions, beta=array([ 0.00028249, 0.00010695, -0.00093604, 0.00997831]))¶ Calculates tropospheric ozone forcing from precursor emissions.
Inputs: (nt x 40) emissions array
- Keywords:
- beta: 4-element array of regression coefficients of precursor
- radiative efficiency, W m-2 (Mt yr-1)-1. order is [CH4, CO, NMVOC, NOx]
- Outputs:
- tropospheric ozone ERF time series.
-
fair.forcing.ozone_tr.
stevenson
(emissions, C_CH4, T=0, feedback=False, fix_pre1850_RCP=False)¶ Calculates tropospheric ozone forcing from precursor emissions based on Stevenson et al, 2013 10.5194/acp-13-3063-2013
- Inputs:
- emissions: (nt x 40) numpy array C_CH4 : (nt) numpy array of methane concentrations, ppb
- Keywords:
T : change in surface temperature since pre-industrial feedback : True or False - include temperature feedback on ozone
forcing?- fix_pre1850_RCP: Use different relationship for 1750/65 to 1850 based
- on anthropogenic emissions from Skeie et al (2011) for 1750 (atmos-chem-phys.net/11/11827/2011)
- Outputs:
- tropospheric ozone ERF time series.