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 4Running
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:00For 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 &