EXCEPTION std::regex failure
Opened this issue · 3 comments
onnyyonn commented
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.
paullric commented
Yes this is a known issue on Cheyenne. I’m not sure what it is about the intel compiler but regex, which is used in the time filtering operations, doesn’t work correctly. At present the only solution is to pre-process the input data to only include the time slices you’d like to have analyzed.
… On Apr 11, 2023, at 3:22 PM, Anamitra Saha ***@***.***> wrote:
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.
—
Reply to this email directly, view it on GitHub <#50>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ABIVPZBFUUX52DDKZDVWPDTXAXKSLANCNFSM6AAAAAAW23KFPA>.
You are receiving this because you are subscribed to this thread.
onnyyonn commented
Thank you. I can confirm that if the timefilter operation is removed, the rest of the script works as expected.
zarzycki commented
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.