DOI: 10.5281/zenodo.13890232
title: The mass of the lowermost stratosphere (LMS): LMS mass calculation and trends in five reanalyses for the time period 1979–2019

description: Description

Python code to calculate the mass of the lowermost stratosphere (LMS) and investigate LMS mass trends with the dynamic linear regression model (DLM, Laine et al. 2014, Alsing 2019) as presented in Weyland et al. (2024). The LMS mass is calculated via a three dimensioal integral, following Appenzeller et al. (1996), given an upper and lower LMS boundary surface (4D pressure fields). Here, the lateral boundary is determined via the intersection of the tropopause with the 350K isentrope (4D pressure field). The upper LMS boundary can be defined by the isentrope according to the potential temperature at the tropical lapse rate tropopause (PPT10mean) or the cold point (PPTcp10mean) or approximated by the 380K isentrope. See Weyland et. al (2024) for further description and context.

The mass calculation is performed with calc_LMS_mass.py.

The DLM trend analysis is conducted with dlm_LMS_mass.py, using dlm_modules.py. In order to be able to use the provided code, the dlmmc model code has to be downloaded from https://github.com/justinalsing/dlmmc (Alsing 2019).

The neccesary 3D (time, lat, lon) pressure fields to define the LMS boundaries are provided for the time period 1979–20191 from five modern reanalyses: ERA52 (Hersbach et al., 2020), ERA-Interim (Dee et al., 2011), MERRA-2 (Gelaro et al., 2017) and JRA-55 (Kobayashi et al., 2015) and JRA3Q (Kosaka et al., 2024):



lrtp*.nc :



3D (time, lat, lon) pressure, temperature and potential temperature at the WMO lapse rate tropopause for the time period 1979-20191, derived from monthly mean data on pressure levels from the respective reanalysis. The lapse rate detection algorithm closely follows that of Birner et al. (2010), based on the work of Reichler et al. (2003). The lapse rate tropopause can serve as the lower LMS boundary. The potential temperature at the lapse rate tropopause between 10°N-10°S is used to define a „dynamic“ upper LMS boundary (PPT10mean).






cp*.nc :



3D (time, lat, lon) pressure, temperature and potential temperature at the cold point for the time period 1979–20191 , derived from monthly mean data on pressure levels from the respective reanalysis. The cold point here is defined by the pressure corresponding to a lapse rate of 0K/km. The potential temperature at the cold point between 10°N–10°S is used to define a „dynamic“ upper LMS boundary (PPTcp10mean).






ppt10mean*.nc :



3D (time, lat, lon) pressure at the isentrope accroding to the potential temperature at the tropical (10°N–10°S) lapse rate tropopause (PPT10mean) for the time period 1979–20191, derived from lrtp*.nc. PPT10mean can be used to define the upper LMS boundary.






pptcp10mean*.nc :



3D (time, lat, lon) pressure at the isentrope accroding to the potential temperature at the cold point between 10°N-10°S (PPTcp10mean) for the time period 1979–20191, derived from cp*.nc. PPTcp10mean can be used to define the upper LMS boundary.






p380K*.nc :



3D (time, lat, lon) pressure at the 380K isentrope for the time period 1979–20191, derived from monthly mean data on pressure levels from the respective reanalysis. The 380K isentropic pressure field can be used to approximate the upper LMS boundary.






p350K*.nc :



3D (time, lat, lon) pressure at the 350K isentrope for the time period 1979–20191, derived from monthly mean data on pressure levels from the respective reanalysis. The 350K isentrope is used to determine the lateral LMS boundaries via its intersection with the tropopause. This intersection approximates the location of the subtropical jet streams and the maximum PV-gradient, marking a transport barrier. It is determined by the sign change of the pressure difference between the tropopause and the 350K isentrope.






my_enso_79-19.txt :



Regressor to account for El-Niño/Southern Oscillation for the time period 1979–2019. Source: https://psl.noaa.gov/enso/mei/, last accessed: 11 July 2023. The data has been normalized and centered around zero. The use of regressors is optional.






my_qbo30_79-19.txt and my_qbo50_79-19.txt :



Regressor to account for the quasi-biennial oscillation at 30 and 50 hPa for the time period 1979–2019. Source: https://www.geo.fu-berlin.de/met/ag/strat/produkte/qbo/qbo.dat, last accessed: 11 July 2023. The data has been normalized and centered around zero. The use of regressors is optional.






my_SAOD_79-19.txt :



Regressor to account for stratospheric (volcanic) aerosol optical depth for the time period 1979-2019. Source: https://asdc.larc.nasa.gov/project/GloSSAC/GloSSAC_1.0, last accessed: 11 July 2023. The data has been normalized. The use of regressors is optional.




 

For further details see Weyland et al. (2024).

1Note that the ERA-Interim time series ends in 2018 and that the MERRA-2 time series starts in 1980.

2For the time period 2000–2006, the sub-reanalysis ERA5.1 replaces ERA5, correcting the reanalysis for a cold bias in the lower stratosphere (Simmons et al., 2020).

 

How to use – example: 

Assuming you are interested in the LMS mass between a lower boundary (-lb, e.g., the lapse rate tropopause) and an upper boundary (-ub, e.g., the 380K isentrope) in ERA5 for the entire Northern hemisphere (-lat=NH) covering the time period 1979-2019:

 





Calculate the respective LMS mass timeseries:

$ python calc_LMS_mass.py -lb=lrtp_ERA5.nc -ub=p380K_ERA5.nc -latb=p350K_ERA5.nc -lat=NH -fout=LMS_mass_ERA5_lrtp_p380K_NH.nc

Isentropic pressure at 350K (-latb) is required to determine the lateral LMS boundary. The LMS mass time series together with an uncertainty estimate is saved to a netCDF file (-fout), e.g. „LMS_mass_ERA5_lrtp_p380K_NH.nc“.



 





Perform a DLM trend analysis for your LMS mass time series, here LMS_mass_ERA5_lrtp_p380K_NH.nc (-mf) :

Download the DLM model code (dlmmc) from https://github.com/justinalsing/dlmmc (Alsing 2019) and save the „dlmmc“ folder, containing the DLM modules in your working directory.



$ python dlm_lms_mass.py -mf=LMS_mass_ERA5_lrtp_p380K_NH.nc -s=2000

In this example, the DLM will provide 2000 samples (-s) after an additional 1000 warm-up samples.

The DLM time series, containing 2000 samples (-s) per time step, is saved to a netCDF file. The name of the output file can be specifyed with -fout. Default is „dlm_“ + mf, i.e. „dlm_ LMS_mass_ERA5_lrtp_p380K_NH.nc“ in this example.

The function dlm_lms_mass.dlm_lms_mass contains an option to visualize the DLM result (plot=True). Furthermore, it can be specified whether the DLM should be run with regressors (use_regressors=True) or without regressors (use_regressors=False).

See the DLM documentation (Laine et al. 2014, Alsing 2019) for further options.

 

Funding: This work was funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – TRR 301 – Project-ID 428312742: “The tropopause region in a changing atmosphere”.