ClimateGlobalChange/tempestextremes

EXCEPTION std::regex failure

Opened this issue · 3 comments

I am new to Tempest Extremes and I am running a test DetectNodes job to test it out. I am running the following script at Cheyenne:

yr='2010'
mth='02'

# Prepare list of input files
ERA5_folder=/glade/collections/rda/data/ds633.0
z_files=( $ERA5_folder/e5.oper.an.pl/${yr}${mth}/e5.oper.an.pl.128_129_z.ll025sc.${yr}${mth}[0-9][0-9]00_${yr}${mth}[0-9][0-9]23.nc )
printf -v z_files_joined '%s;' "${z_files[@]}"
msl_file=$ERA5_folder/e5.oper.an.sfc/${yr}${mth}/e5.oper.an.sfc.128_151_msl.ll025sc.${yr}${mth}0100_${yr}${mth}$(cal $mth $yr | awk 'NF {DAYS = $NF}; END {print DAYS}')23.nc
u10_file=$ERA5_folder/e5.oper.an.sfc/${yr}${mth}/e5.oper.an.sfc.128_165_10u.ll025sc.${yr}${mth}0100_${yr}${mth}$(cal $mth $yr | awk 'NF {DAYS = $NF}; END {print DAYS}')23.nc 
v10_file=$ERA5_folder/e5.oper.an.sfc/${yr}${mth}/e5.oper.an.sfc.128_166_10v.ll025sc.${yr}${mth}0100_${yr}${mth}$(cal $mth $yr | awk 'NF {DAYS = $NF}; END {print DAYS}')23.nc
echo ${z_files_joined}${msl_file}\;${u10_file}\;${v10_file} > ERA5_TC_files.txt

# Output file
mkdir -p nodes
NODES_FILE=nodes/${yr}${mth}.txt

# Detect Nodes
~/tempestextremes/bin/DetectNodes \
    --in_data_list ERA5_TC_files.txt \
    --out $NODES_FILE \
    --timefilter "6hr" \
    --searchbymin MSL \
    --closedcontourcmd "MSL,200.0,5.5,0;_DIFF(Z(300hPa),Z(500hPa)),-58.8,6.5,1.0" \
    --mergedist 6.0 \
    --outputcmd  "MSL,min,0;_DIV(Z(1000hPa),9.81),max,0;_VECMAG(VAR_10U,VAR_10V),max,2" \
    --latname latitude --lonname longitude

This is the output:

Parsing closed contour operations
..MSL increases by 200.000000 over 5.500000 degrees (min search 0.000000 deg)
.._DIFF(Z(300hPa),Z(500hPa)) decreases by 58.800000 over 6.500000 degrees (max search 1.000000 deg)
..Done
Parsing output operations
..Minimum of MSL within 0.000000 degrees
..Maximum of _DIV(Z(1000hPa),9.81) within 0.000000 degrees
..Maximum of _VECMAG(VAR_10U,VAR_10V) within 2.000000 degrees
..Done
Begin search operation
..EXCEPTION (../../src/base/TimeMatch.h, Line 42) std::regex failure; std::regex does not appear to work on this system

I would appreciate any help resolving this issue.

Thank you. I can confirm that if the timefilter operation is removed, the rest of the script works as expected.

Alternatively, you can use the --timestride input (e.g., if you have hourly data at 00Z, 01Z, 02Z, so on and would to track on 6-hourly synoptic snapshots, you can use --timestride 6). I can confirm that that does work on Cheyenne.