Convert global temperature change in degrees Celsius to global mean sea level rise (GMSL) in centimeters
Source:R/temps2slr.R
temps2slr.Rd
This pre-processing helper function converts a vector of global temperatures to global mean sea level rise (GMSL). This function adapts the method described by Kopp et al. (2016) (see references, below).
Arguments
- temps
A numeric vector of global temperatures in degrees Celsius. The temperature series and corresponding years must begin in 2000 or earlier.
- years
A numeric vector of years (common era) corresponding to the temperatures provided to
temps
. The temperature series and corresponding years must begin in 2000 or earlier.
Value
Outputs a data frame with two columns: year
, which has the years from the years
input that fall within the range from 2000 through 2090 and slr_cm
which has the GMSL in centimeters.
Details
This function converts a temperature scenario (global temperatures in degrees Celsius) into an SLR scenario to use for estimate impacts of global mean sea level rise (GMSL) on affected sectors. temps2slr()
implements the method described by Kopp et al., 2016, "Temperature-driven global sea-level variability in the Common Era" (see references, below).
Kopp et al.'s "semiempirical" sea-level model relates the rate of global sea level (GSL) rise \(\frac{dh}{dt}\) to global mean temperature \(T(t)\), an equilibrium temperature \(T_0(t)\), and a small residual trend arising from the long-term response to earlier climate change \(\phi(t)\):
$$dh/dt = \alpha \cdot (T(t) - T_0(t)) + \phi(t)$$
As explained by Kopp et al. (2016): "The first term describes the GSL response to climate change during the study period. The second term covers a small residual trend arising from the long-term response to earlier climate change (i.e., deglaciation), which is very slowly decaying over millennia and of the order 0.1 mm/year in 2000 CE. It thus has a negligible effect on the modeled GSL rise during the 20th and 21st centuries" (Kopp et al., 2016, p. E1439).
In the equation above, \(T_0(t)\) and \(\phi(t)\) are functions of time, where:
$$\frac{dT_0(t)}{dt} = \frac{T(t) - Te(t)}{\tau_1}$$
And:
$$\frac{d\phi(t)}{dt} = \frac{\phi}{\tau_2}$$
And \(\tau_1\) and \(\tau_2\) are both constants.
References
Environmental Protection Agency (EPA). 2021. Technical Documentation on The Framework for Evaluating Damages and Impacts (FrEDI). Technical Report EPA 430-R-21-004, EPA, Washington, DC. Available at https://epa.gov/cira/FrEDI/.
Kopp, Robert E., et al. (2016). Temperature-driven global sea-level variability in the Common Era. PNAS: E1434-E1441. Available at https://www.pnas.org/content/113/11/E1434
Examples
### Path to example scenarios
scenariosPath <- system.file(package="FrEDI") |> file.path("extdata","scenarios")
### View example scenario names
scenariosPath |> list.files()
#> [1] "GCAM_scenario.csv" "State ICLUS Population.csv"
#> [3] "slr_from_GCAM.csv"
### Temperature Scenario File Name
tempInputFile <- scenariosPath |> file.path("GCAM_scenario.csv")
### Import example temperature scenario
example_inputsList <- import_inputs(tempfile = tempInputFile)
#>
#> In import_inputs():
#> Loading data...
#> User specified tempfile...
#> Importing data from C:/Program Files/R/R-4.4.0/library/FrEDI/extdata/scenarios/GCAM_scenario.csv...
#> Data loaded.
#>
#> Checking input values...
#>
#> Checking input values for temp inputs...
#> Column "temp_C" not found in tempfile data!
#> Looking for columns with matches to the string "temp"...1 match found!
#> Using column "temp_C_global", and renaming to "temp_C"...
#> Values passed.
#>
#> Finished.
### Extract the example temperature scenario data frame from the list
### Example has global temperatures in degrees Celsius
x_tempInput <- example_inputsList$tempInput
### Calculate global mean sea level rise in cm from global temperatures
x_slr <- temps2slr(temps=x_tempInput$temp_C, years=x_tempInput$year)
#> Warning: There are duplicate years in the inputs!
#> Exiting...