/
Tropical Cyclones analysis with TempestExtremes

Tropical Cyclones analysis with TempestExtremes

This page is intended to provide a quick example on how to perform an analysis of Tropical Cyclones from E3SM output using the TempestExtremes package. For this example, we use output from the E3SMv1 Water Cycle low-res AMIP simulation (. Based on a demo and instructions from Paul Ullrich. Tested on NERSC Cori.

Installation on Cori

To download and install under ~/Tempest:

module load cray-netcdf
mkdir ~/Tempest
cd ~/Tempest
git clone https://github.com/ClimateGlobalChange/tempestextremes.git
cd tempestextremes
make all -j 4

Running

Reserve an interactive session on compute nodes. For this example, one node for one hour is sufficient:

salloc -N 1 -C haswell -q interactive -t 01:00:00

For this particular example, we assume that the input data consists of cam.h2 files located under /global/cscratch1/sd/golaz/ACME_simulations/20180316.DECKv1b_A1.ne30_oEC.edison/archive/atm/hist

INPUTDIR="/global/cscratch1/sd/golaz/ACME_simulations/20180316.DECKv1b_A1.ne30_oEC.edison/archive/atm/hist"

Let's further assume that we want to process years 2000 and onward.

cd <workdir>

# Copy over the connectivity file for the CSne30 mesh
# (this is an adjacency list that describes the unstructured grid, generated using the GenerateConnectivityFile tool):
cp /global/homes/p/paullric/outCSne30_connect.txt .

# Create list of input files
ls -1 $INPUTDIR/*20??*.nc > input.txt

# Create list of output files
sed -e 's/.*cam.h2[.]//' -e 's/[.]nc$/.cyclones.txt/' input.txt > output.txt

# Run DetectNodes to detect TC on the unstructured E3SM grid. 
# This is the most time consuming operation.
~/Tempest/tempestextremes/bin/DetectNodes --verbosity 0 \
  --timestride 1 --in_connect outCSne30_connect.txt \
  --closedcontourcmd "PSL,300.0,4.0,0;_AVG(T200,T500),-0.6,4,1.0" \
  --mergedist 6.0 --searchbymin PSL --outputcmd "PSL,min,0;_VECMAG(UBOT,VBOT),max,2" \
  --in_data_list input.txt --out_file_list output.txt

# The output consists of one text file for every input netCDF file with detected cyclones.
# Concatenate all output files to make a master detection list
cat *.cyclones.txt > cyclones.txt

# Run StitchNodes on the master detection list to identify actual TC tracks:
~/Tempest/tempestextremes/bin/StitchNodes --format "i,lon,lat,slp,wind" --range 6.0 \
  --minlength 6 --maxgap 1 --in cyclones.txt --out cyclones_stitch.txt \
  --threshold "wind,>=,17.5,6;lat,<=,40.0,6;lat,>=,-40.0,6"

# Generate histogram of detections:
~/Tempest/tempestextremes/bin/HistogramNodes --in cyclones_stitch.txt \
  --iloncol 2 --ilatcol 3 --out cyclones_stitch_hist.nc

# Visualize it, for example with ncview
module load ncview
ncview cyclones_stitch_hist.nc &



Related content

Regridding E3SM Data with ncremap
Regridding E3SM Data with ncremap
Read with this
Packages in the E3SM Unified conda environment
Packages in the E3SM Unified conda environment
Read with this