AK K64G OLMT Meteorology Scaling Demo - FASSt-simulation/fasst_simulation_tools GitHub Wiki

ELM requires a set of forcing timeseries in order to run. In most E3SM simulations, ELM will be given forcing timeseries of variables such as temperature, humidity, precipitation rate, and nutrient deposition from the atmospheric model, EAM. When running ELM alone, however, these time series must be provided by the user. OLMT has several options that take care of specifying and altering the input data to ELM. Here, we will go through a single-pixel OLMT ELM simulation example for the Kougarok Mile 64 study site that uses OLMT options to alter temperature and precipitation (summer precipitation/winter precipitation as snow) separately and together (temperature+summer/winter precipitation changes). We analyze output against a base case to look at how these changes in scaling meteorological data will change the model output.

Setting up model simulations

First, we will run the model scenarios for different iterations of temperature and rain/snow changes.

Mean annual temperature is projected to shift by up to +8.5°C at the NGEE sites by CMIP6 models, downscaled using a 13 member ensemble from CMIP6, calculated based on ClimateNA data (https://climatena.ca/). Precipitation in summer and winter precipitation as snow changes are based on percent differences from a climate normal (1971-2000). Temperature changes are the °C differences from this normal.

High-emissions scenario, mean annual or seasonal (SSP585, 2041-2070/2071-2100)

Site Temperature change (°C) Summer precipitation change (%) Winter precipitation Change
Council 5.0/8.4 17/28 11/-29
Kougarok 5.4/5.6 21/20 11/12
Teller 5.2/8.5 21/32 -1/-36
Utqiagvik 7.6/12.0 28/42 58/94

We can use options in OLMT as to see how ELM simulations would change under using these different temperature and precipitation conditions.

Case 0: Control case to compare against perturbed cases.

First, we run a case with no changes to the forcing data to use as a comparison with the other cases. If you have already run a case for Kougarok using these instructions. If you're not sure if you've run this case, you could always run the following to ensure you have the control case:

docker run -t -i --hostname=docker --user modeluser -v elmdata:/inputdata -v elmoutput:/output fasstsimulation/elm-builds:elm_v2-for-ngee_multiarch /scripts/OLMT_docker_example.sh --site_name=kougarok --ad_spinup_years=20 --final_spinup_years=30 --transient_years=10 --case_prefix=base

Case 1: Increasing temperature by +5.6°C.

This first case adds 5.6°C to the forcing temperature input files, starting on 1855-01-01. The --case_prefix flag here is important - if we did not supply it, running this case would overwrite the values from case 0! As we have specified 10 transient years in the simulation, our transient simulation will run from 1/1/1850 to 1/1/1860:

docker run -t -i --hostname=docker --user modeluser -v elmdata:/inputdata -v elmoutput:/output fasstsimulation/elm-builds:elm_v2-for-ngee_multiarch /scripts/OLMT_docker_example.sh --site_name=kougarok --ad_spinup_years=20 --final_spinup_years=30 --transient_years=10 --add_temperature=5.6 --startdate_add_temperature=18550101 --case_prefix=future_T

Case 2: Scaling precipitation (increase snow by 12% and rain by 20%).

In the second case, we scale only precipitation and leave temperature unchanged. Rain and snowfall amounts are projected to change differently; in this case, we increase snowfall by 12% and rainfall by 20% in 1855. These are applied by multiplying the forcing data by a scaling factor (1.12 for snow, 1.20 for rain), instead of adding a constant as we did for temperature:

docker run -t -i --hostname=docker --user modeluser -v elmdata:/inputdata -v elmoutput:/output fasstsimulation/elm-builds:elm_v2-for-ngee_multiarch /scripts/OLMT_docker_example.sh --site_name=kougarok --ad_spinup_years=20 --final_spinup_years=30 --transient_years=10 --scale_snow=1.12 --startdate_scale_snow=18550101 --scale_rain=1.20 --startdate_scale_rain=18550101 --case_prefix=future_P

Case 3: Incorporating changes to both temperature and precipitation

In the third case, we make changes to both temperature and precipitation, using the same values as above. This case will show us the combined impact of future precipitation and temperature changes. As above, the perturbations start in 1855 and continue 5 years until the end of the run:

docker run -t -i --hostname=docker --user modeluser -v elmdata:/inputdata -v elmoutput:/output fasstsimulation/elm-builds:elm_v2-for-ngee_multiarch /scripts/OLMT_docker_example.sh --site_name=kougarok --ad_spinup_years=20 --final_spinup_years=30 --transient_years=10 --scale_snow=1.12 --startdate_scale_snow=18550101 --scale_rain=1.20 --startdate_scale_rain=18550101 --add_temperature=5.6 --startdate_add_temperature=18550101 --case_prefix=future_TP

Results:

In the elmlab_3.3.2 docker image, there is a script that allows us to compare results from two different simulations: plot_ELM_compare_cases.ipynb. You'll need an elmlab_3.3.2 container running; you may already have one (check in docker desktop). If there isn't one running, you can start one using the instructions here: Analyzing ELM Output in Jupyter Lab.

Comparing case 1 and case 0: impact of scaling temperature only

Let's take a look at the impact that the temperature change had on soil temperature. In the second cell of the plot_ELM_compare_cases.ipynb notebook, you'll see there is a place to select the cases we'd like to compare. Let's choose the base case (either OLMT_AK-K64G* or base_AK-K64G if you ran case 0 above) and the future temperature case (future_T_AK-K64G*):
Screen Shot 2022-10-10 at 11 28 30 AM
In the next cell, we select the variable and time period we wish to look at across the two cases. Select TSOI for soil temperature, a start year of 1850, and an end year of 1860:
Screen Shot 2022-10-10 at 11 35 39 AM
In the last cell, you should get a plot that looks like this:
Screen Shot 2022-10-10 at 12 24 06 PM

This plot shows the soil temperature by depth for the control case (top row), the perturbed/experimental case (middle row), and the difference between the experimental and control cases (bottom row). The cases are identical until 1855, when the temperature perturbation is applied. After 1855, soil temperature is usually higher in the experimental case than the control case, with the largest changes seen at shallow depths.

What about soil moisture? We can look at soil moisture by changing the variable we are comparing from TSOI to H2OSOI, and running the rest of the notebook again. You should get a plot like this, that shows the upper soil drying slightly after the temperature perturbation occurs:
Screen Shot 2022-10-10 at 12 43 27 PM

Comparing cases 2 and 0: impact of scaling precipitation only

What impact does the projected precipitation change have at the Kougarok site? Repeat the steps above, but change the case in the first cell to the future_P case: Screen Shot 2022-10-16 at 6 53 39 PM

What do you observe? Plots for soil temperature (TSOI, top) and soil moisture (H2OSOI, bottom) should look similar to the ones below:

Screen Shot 2022-10-16 at 6 57 57 PM

Screen Shot 2022-10-16 at 6 58 19 PM

Comparing cases 3 and 0: joint impact of temperature and precipitation changes

Above we saw that increasing the temperature of the atmosphere caused the soil to warm and dry, while increasing precipitation rates caused the soil volumetric water content to increase with little impact on temperature. Which of these effects is stronger, and does ELM predict the soil to become wetter or drier under future conditions? Take a look at plots for soil water content and temperature for the 'future_TP' case relative to case 0.

How do these simulations differ from a CMIP6 future climate scenario?

In these simulations, we've made changes to the forcing files at the time the model runs by either adding to or multiplying the input timeseries. This method is useful for examining how sensitive the model to changes in different parameters, but these simulations should be viewed as a very simplified simulation of future conditions. Here are a couple reasons why these simulations would be distinct from a more detailed simulation of future conditions, as are made in fully-coupled CMIP6 models:

  1. Temperature and precipitation change are unlikely to be uniform through time, as they are in the simulations in this demo. For example, it is unlikely that temperature will be 5.6°C warmer during all seasons and times of day relative to the baseline.
  2. Temperature and precipitation changes were assumed to be independent here. For example, if increasing the temperature changes a period from below to above 0°C, snow will still fall regardless of the temperature if the forcing dataset indicates it is snowing (though it may melt faster).
  3. In simulations that are coupled to an atmospheric model, the atmospheric model simulates temperature and precipitation change based on atmospheric physics and radiative balance, and thus provides a forcing time series that is more physically based than the simple scaling done here. In addition, the interactions between the land surface and the atmosphere may change over time, and the atmospheric circulation responsible for driving precipitation and temperature extremes may change.

Your turn - what next?

A few ideas of things to try:

  1. What are the primary reasons the soil is getting drier in the Kougarok case? You could use the notebook to compare transpiration, soil evaporation, and runoff fluxes across cases, for example.
  2. Each site has distinct predicted temperature and precipitation changes; for example, Council and Teller both have larger increases in temperature than Kougarok, as well as a decrease instead of an increase in winter precipitation. Try simulating one of the other sites, updating the --site_name, --add_temperature, --scale_rain, and --scale_snow arguments accordingly.
  3. There is an additional option available to change the CO2 in the model - you can add CO2 using the --add_co2 and --startdate_add_co2 arguments as well (note: these CO2 changes will affect vegetation responses such as photosynthesis and stomatal conductance, but they will have a very minor impact on the radiative balance. This is because the radiative forcing change is calculated by the atmospheric model, and using ELM in the 'offline' mode as we are here has radiative fluxes as a forcing).
⚠️ **GitHub.com Fallback** ⚠️