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 &