diff --git a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_means_plots_31days.ecf b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_means_plots_31days.ecf index 9f55bdd111..f13cb18b9b 100755 --- a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_means_plots_31days.ecf +++ b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_means_plots_31days.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_global_det_atmos_grid2grid_means_plots_31days_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=2:00:00 diff --git a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_precip_plots_31days.ecf b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_precip_plots_31days.ecf index cc496b35c9..c3db852b85 100755 --- a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_precip_plots_31days.ecf +++ b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_precip_plots_31days.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_global_det_atmos_grid2grid_precip_plots_31days_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=4:00:00 diff --git a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_pres_levs_plots_31days.ecf b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_pres_levs_plots_31days.ecf index 825b6533b8..0ee92eb876 100755 --- a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_pres_levs_plots_31days.ecf +++ b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_pres_levs_plots_31days.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_global_det_atmos_grid2grid_pres_levs_plots_31days_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=2:00:00 diff --git a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_sea_ice_plots_31days.ecf b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_sea_ice_plots_31days.ecf index 824d89990a..b4248a5025 100755 --- a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_sea_ice_plots_31days.ecf +++ b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_sea_ice_plots_31days.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_global_det_atmos_grid2grid_sea_ice_plots_31days_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=2:00:00 diff --git a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_snow_plots_31days.ecf b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_snow_plots_31days.ecf index 7e0bd2cc2f..fd6bd4a55b 100755 --- a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_snow_plots_31days.ecf +++ b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_snow_plots_31days.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_global_det_atmos_grid2grid_snow_plots_31days_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=4:00:00 diff --git a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_sst_plots_31days.ecf b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_sst_plots_31days.ecf index f0c5e927c5..ae9c4ad33a 100755 --- a/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_sst_plots_31days.ecf +++ b/ecf/global_det/plots/jevs_global_det_atmos_grid2grid_sst_plots_31days.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_global_det_atmos_grid2grid_sst_plots_31days_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=2:00:00 diff --git a/ecf/global_det/plots/jevs_global_det_atmos_grid2obs_pres_levs_plots_31days.ecf b/ecf/global_det/plots/jevs_global_det_atmos_grid2obs_pres_levs_plots_31days.ecf index 5789672725..f23aaa2969 100755 --- a/ecf/global_det/plots/jevs_global_det_atmos_grid2obs_pres_levs_plots_31days.ecf +++ b/ecf/global_det/plots/jevs_global_det_atmos_grid2obs_pres_levs_plots_31days.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_global_det_atmos_grid2obs_pres_levs_plots_31days_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=2:00:00 diff --git a/ecf/global_det/plots/jevs_global_det_atmos_grid2obs_ptype_plots_31days.ecf b/ecf/global_det/plots/jevs_global_det_atmos_grid2obs_ptype_plots_31days.ecf new file mode 100755 index 0000000000..e37a6c8ed6 --- /dev/null +++ b/ecf/global_det/plots/jevs_global_det_atmos_grid2obs_ptype_plots_31days.ecf @@ -0,0 +1,106 @@ +#PBS -N jevs_global_det_atmos_grid2obs_ptype_plots_31days_00 +#PBS -j oe +#PBS -S /bin/bash +#PBS -q dev +#PBS -A VERF-DEV +#PBS -l walltime=2:00:00 +#PBS -l place=vscatter:exclhost,select=1:ncpus=128:ompthreads=1 +#PBS -l debug=true +#PBS -V + +set -x + +export model=evs + +############################################################ +# For dev testing +############################################################ +cd $PBS_O_WORKDIR +module reset +export HOMEevs=$(eval "cd ../../../;pwd") +versionfile=$HOMEevs/versions/run.ver +. $versionfile +export evs_ver=$evs_ver +export envir=dev +export RUN_ENVIR=nco +export SENDCOM=YES +export KEEPDATA=NO +module load prod_envir/2.0.6 +module load prod_util/2.0.13 +export DATAROOT=/lfs/h2/emc/stmp/$USER/evs_global_det_atmos_test/$envir/tmp +export job=${PBS_JOBNAME:-jevs_global_det_atmos_grid2obs_ptype_plots_31days} +export jobid=$job.${PBS_JOBID:-$$} +export TMPDIR=$DATAROOT +export SITE=$(cat /etc/cluster_name) +export NET=evs +export STEP=plots +export COMPONENT=global_det +export RUN=atmos +export VERIF_CASE=grid2obs +export VERIF_TYPE=ptype +export NDAYS=31 +export PDYm1=$(date -d "24 hours ago" '+%Y%m%d') +export COMROOT=/lfs/h2/emc/vpppg/noscrub/$USER/evs_global_det_atmos_test/$envir/com +export COMIN=$COMROOT/$NET/$evs_ver +export COMINgfs=$COMIN/stats/$COMPONENT/gfs +export COMOUT=$COMROOT/$NET/$evs_ver/$STEP/$COMPONENT/$RUN.$PDYm1 +export OUTPUTROOT=/lfs/h2/emc/stmp/$USER/evs_global_det_atmos_test +############################################################ + + +############################################################ +# Load modules +############################################################ +export HPC_OPT=/apps/ops/para/libs +module use /apps/ops/para/libs/modulefiles/compiler/intel/19.1.3.304 +module load cray-pals/${craypals_ver} +module load PrgEnv-intel/${PrgEnvintel_ver} +module load intel/${intel_ver} +module load cfp/${cfp_ver} +module load libjpeg/${libjpeg_ver} +module load libpng/${libpng_ver} +module load zlib/${zlib_ver} +module load jasper/${jasper_ver} +module load udunits/${udunits_ver} +module load gsl/${gsl_ver} +module load netcdf/${netcdf_ver} +module load grib_util/${grib_util_ver} +module load wgrib2/${wgrib2_ver} +module load python/${python_ver} +module load met/${met_ver} +module load metplus/${metplus_ver} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_bin_exec=bin +module list + +# Set machine +export machine=WCOSS2 + +# Set job information +export USE_CFP=YES +export nproc=128 + +# Set cycle +export cyc=00 + +# Set verification information +export NET=evs +export STEP=plots +export COMPONENT=global_det +export RUN=atmos +export VERIF_CASE=grid2obs +export VERIF_TYPE=ptype +export NDAYS=31 + +# Set config file +export config=$HOMEevs/parm/evs_config/global_det/config.evs.prod.${STEP}.${COMPONENT}.${RUN}.${VERIF_CASE}.${VERIF_TYPE}.${NDAYS}days + +# CALL executable job script here +$HOMEevs/jobs/global_det/plots/JEVS_GLOBAL_DET_PLOTS + +###################################################################### +# Purpose: This does the plotting work for the global deterministic +# atmospheric grid-to-observations ptype past 31 days +###################################################################### diff --git a/ecf/global_det/plots/jevs_global_det_atmos_grid2obs_sfc_plots_31days.ecf b/ecf/global_det/plots/jevs_global_det_atmos_grid2obs_sfc_plots_31days.ecf index 9a820f62db..6378b68f64 100755 --- a/ecf/global_det/plots/jevs_global_det_atmos_grid2obs_sfc_plots_31days.ecf +++ b/ecf/global_det/plots/jevs_global_det_atmos_grid2obs_sfc_plots_31days.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_global_det_atmos_grid2obs_sfc_plots_31days_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=2:00:00 diff --git a/ecf/global_det/prep/jevs_global_det_atmos_prep.ecf b/ecf/global_det/prep/jevs_global_det_atmos_prep.ecf index 25697bdd39..2928b25ffd 100755 --- a/ecf/global_det/prep/jevs_global_det_atmos_prep.ecf +++ b/ecf/global_det/prep/jevs_global_det_atmos_prep.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_global_det_atmos_prep_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev_transfer #PBS -A VERF-DEV #PBS -l walltime=1:00:00 diff --git a/ecf/global_det/stats/jevs_cfs_atmos_grid2grid_stats.ecf b/ecf/global_det/stats/jevs_cfs_atmos_grid2grid_stats.ecf index 8c67178f53..04f4e5bbc4 100755 --- a/ecf/global_det/stats/jevs_cfs_atmos_grid2grid_stats.ecf +++ b/ecf/global_det/stats/jevs_cfs_atmos_grid2grid_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_cfs_atmos_grid2grid_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:45:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_cfs_atmos_grid2obs_stats.ecf b/ecf/global_det/stats/jevs_cfs_atmos_grid2obs_stats.ecf index 4ba844d8d5..56a96487f5 100755 --- a/ecf/global_det/stats/jevs_cfs_atmos_grid2obs_stats.ecf +++ b/ecf/global_det/stats/jevs_cfs_atmos_grid2obs_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_cfs_atmos_grid2obs_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:45:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_cmc_atmos_grid2grid_stats.ecf b/ecf/global_det/stats/jevs_cmc_atmos_grid2grid_stats.ecf index 57dd1473b3..51b39071a2 100755 --- a/ecf/global_det/stats/jevs_cmc_atmos_grid2grid_stats.ecf +++ b/ecf/global_det/stats/jevs_cmc_atmos_grid2grid_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_cmc_atmos_grid2grid_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_cmc_atmos_grid2obs_stats.ecf b/ecf/global_det/stats/jevs_cmc_atmos_grid2obs_stats.ecf index 9b92a0b322..5e738f9ee8 100755 --- a/ecf/global_det/stats/jevs_cmc_atmos_grid2obs_stats.ecf +++ b/ecf/global_det/stats/jevs_cmc_atmos_grid2obs_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_cmc_atmos_grid2obs_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_cmc_regional_atmos_grid2grid_stats.ecf b/ecf/global_det/stats/jevs_cmc_regional_atmos_grid2grid_stats.ecf index 640317b3e4..8f44d89a5c 100755 --- a/ecf/global_det/stats/jevs_cmc_regional_atmos_grid2grid_stats.ecf +++ b/ecf/global_det/stats/jevs_cmc_regional_atmos_grid2grid_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_cmc_regional_atmos_grid2grid_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_dwd_atmos_grid2grid_stats.ecf b/ecf/global_det/stats/jevs_dwd_atmos_grid2grid_stats.ecf index 35316ac500..44f6cbb69d 100755 --- a/ecf/global_det/stats/jevs_dwd_atmos_grid2grid_stats.ecf +++ b/ecf/global_det/stats/jevs_dwd_atmos_grid2grid_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_dwd_atmos_grid2grid_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_ecmwf_atmos_grid2grid_stats.ecf b/ecf/global_det/stats/jevs_ecmwf_atmos_grid2grid_stats.ecf index cf32a757ab..800532cf62 100755 --- a/ecf/global_det/stats/jevs_ecmwf_atmos_grid2grid_stats.ecf +++ b/ecf/global_det/stats/jevs_ecmwf_atmos_grid2grid_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_ecmwf_atmos_grid2grid_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_ecmwf_atmos_grid2obs_stats.ecf b/ecf/global_det/stats/jevs_ecmwf_atmos_grid2obs_stats.ecf index e6550f83b3..2ace543f8f 100755 --- a/ecf/global_det/stats/jevs_ecmwf_atmos_grid2obs_stats.ecf +++ b/ecf/global_det/stats/jevs_ecmwf_atmos_grid2obs_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_ecmwf_atmos_grid2obs_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_fnmoc_atmos_grid2grid_stats.ecf b/ecf/global_det/stats/jevs_fnmoc_atmos_grid2grid_stats.ecf index 9a13eed146..d4aa7cd654 100755 --- a/ecf/global_det/stats/jevs_fnmoc_atmos_grid2grid_stats.ecf +++ b/ecf/global_det/stats/jevs_fnmoc_atmos_grid2grid_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_fnmoc_atmos_grid2grid_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_fnmoc_atmos_grid2obs_stats.ecf b/ecf/global_det/stats/jevs_fnmoc_atmos_grid2obs_stats.ecf index 315cd49069..1ed47d0c9e 100755 --- a/ecf/global_det/stats/jevs_fnmoc_atmos_grid2obs_stats.ecf +++ b/ecf/global_det/stats/jevs_fnmoc_atmos_grid2obs_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_fnmoc_atmos_grid2obs_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_gfs_atmos_grid2grid_stats.ecf b/ecf/global_det/stats/jevs_gfs_atmos_grid2grid_stats.ecf index 00fb6695cb..5f8d5981c9 100755 --- a/ecf/global_det/stats/jevs_gfs_atmos_grid2grid_stats.ecf +++ b/ecf/global_det/stats/jevs_gfs_atmos_grid2grid_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_gfs_atmos_grid2grid_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=1:15:00 @@ -74,9 +74,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_gfs_atmos_grid2obs_stats.ecf b/ecf/global_det/stats/jevs_gfs_atmos_grid2obs_stats.ecf index f3f43dea20..727b49e652 100755 --- a/ecf/global_det/stats/jevs_gfs_atmos_grid2obs_stats.ecf +++ b/ecf/global_det/stats/jevs_gfs_atmos_grid2obs_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_gfs_atmos_grid2obs_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=1:15:00 @@ -71,9 +71,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_global_det_aviation_stats.ecf b/ecf/global_det/stats/jevs_global_det_aviation_stats.ecf index edf04bd379..00281f7505 100755 --- a/ecf/global_det/stats/jevs_global_det_aviation_stats.ecf +++ b/ecf/global_det/stats/jevs_global_det_aviation_stats.ecf @@ -57,9 +57,9 @@ module load metplus/$metplus_ver set -xa module list -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 export MET_bin_exec=bin ############################################################ diff --git a/ecf/global_det/stats/jevs_imd_atmos_grid2grid_stats.ecf b/ecf/global_det/stats/jevs_imd_atmos_grid2grid_stats.ecf index 522005d2db..57d8b36e84 100755 --- a/ecf/global_det/stats/jevs_imd_atmos_grid2grid_stats.ecf +++ b/ecf/global_det/stats/jevs_imd_atmos_grid2grid_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_imd_atmos_grid2grid_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -73,9 +73,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_imd_atmos_grid2obs_stats.ecf b/ecf/global_det/stats/jevs_imd_atmos_grid2obs_stats.ecf index 5273f09ee3..fb3750a7ce 100755 --- a/ecf/global_det/stats/jevs_imd_atmos_grid2obs_stats.ecf +++ b/ecf/global_det/stats/jevs_imd_atmos_grid2obs_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_imd_atmos_grid2obs_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_jma_atmos_grid2grid_stats.ecf b/ecf/global_det/stats/jevs_jma_atmos_grid2grid_stats.ecf index e301308868..2405810f0d 100755 --- a/ecf/global_det/stats/jevs_jma_atmos_grid2grid_stats.ecf +++ b/ecf/global_det/stats/jevs_jma_atmos_grid2grid_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_jma_atmos_grid2grid_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_jma_atmos_grid2obs_stats.ecf b/ecf/global_det/stats/jevs_jma_atmos_grid2obs_stats.ecf index 302a1d841d..3c3bd269b0 100755 --- a/ecf/global_det/stats/jevs_jma_atmos_grid2obs_stats.ecf +++ b/ecf/global_det/stats/jevs_jma_atmos_grid2obs_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_jma_atmos_grid2obs_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_metfra_atmos_grid2grid_stats.ecf b/ecf/global_det/stats/jevs_metfra_atmos_grid2grid_stats.ecf index 01fbaf5da5..e4979b2939 100755 --- a/ecf/global_det/stats/jevs_metfra_atmos_grid2grid_stats.ecf +++ b/ecf/global_det/stats/jevs_metfra_atmos_grid2grid_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_metfra_atmos_grid2grid_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_ukmet_atmos_grid2grid_stats.ecf b/ecf/global_det/stats/jevs_ukmet_atmos_grid2grid_stats.ecf index 44c6c5149b..d3b51967cd 100755 --- a/ecf/global_det/stats/jevs_ukmet_atmos_grid2grid_stats.ecf +++ b/ecf/global_det/stats/jevs_ukmet_atmos_grid2grid_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_ukmet_atmos_grid2grid_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -73,9 +73,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/ecf/global_det/stats/jevs_ukmet_atmos_grid2obs_stats.ecf b/ecf/global_det/stats/jevs_ukmet_atmos_grid2obs_stats.ecf index ed1e778cdd..adf5d2f7ca 100755 --- a/ecf/global_det/stats/jevs_ukmet_atmos_grid2obs_stats.ecf +++ b/ecf/global_det/stats/jevs_ukmet_atmos_grid2obs_stats.ecf @@ -1,6 +1,6 @@ #PBS -N jevs_ukmet_atmos_grid2obs_stats_00 #PBS -j oe -#PBS -S /bin/sh +#PBS -S /bin/bash #PBS -q dev #PBS -A VERF-DEV #PBS -l walltime=0:30:00 @@ -72,9 +72,9 @@ module load wgrib2/${wgrib2_ver} module load python/${python_ver} module load met/${met_ver} module load metplus/${metplus_ver} -export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/share/met -export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1 -export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.1/bin:${PATH} +export MET_BASE=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/share/met +export MET_ROOT=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2 +export PATH=/apps/ops/para/libs/intel/19.1.3.304/met/10.1.2/bin:${PATH} export MET_bin_exec=bin module list diff --git a/jobs/global_det/plots/JEVS_GLOBAL_DET_PLOTS b/jobs/global_det/plots/JEVS_GLOBAL_DET_PLOTS index 96e75454ba..8c7cabe1de 100755 --- a/jobs/global_det/plots/JEVS_GLOBAL_DET_PLOTS +++ b/jobs/global_det/plots/JEVS_GLOBAL_DET_PLOTS @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ######################################## # Preliminary data setup step diff --git a/jobs/global_det/prep/JEVS_GLOBAL_DET_PREP b/jobs/global_det/prep/JEVS_GLOBAL_DET_PREP index 102fad80b7..22c3061a57 100755 --- a/jobs/global_det/prep/JEVS_GLOBAL_DET_PREP +++ b/jobs/global_det/prep/JEVS_GLOBAL_DET_PREP @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ######################################## # Preliminary data setup step diff --git a/jobs/global_det/stats/JEVS_GLOBAL_DET_STATS b/jobs/global_det/stats/JEVS_GLOBAL_DET_STATS index f32a8c97fd..ee989045c1 100755 --- a/jobs/global_det/stats/JEVS_GLOBAL_DET_STATS +++ b/jobs/global_det/stats/JEVS_GLOBAL_DET_STATS @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ######################################## # Preliminary data setup step diff --git a/parm/evs_config/global_det/config.evs.global_det_atmos.standalone b/parm/evs_config/global_det/config.evs.global_det_atmos.standalone index 14234fb380..0edf135b04 100644 --- a/parm/evs_config/global_det/config.evs.global_det_atmos.standalone +++ b/parm/evs_config/global_det/config.evs.global_det_atmos.standalone @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -55,16 +55,15 @@ export SENDMETVIEWER="NO" # SETTINGS FOR SPECIFIC USE CASES #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then - #g2gs_type_list: list type of verifications to run for grid-to-grid: flux, means, ozone, precip, + #g2gs_type_list: list type of verifications to run for grid-to-grid: flux, means, precip, # pres_levs, sea_ice, snow, sst # flux: compare to ALEXI # means: compute forecast hour means for various variables - # ozone: compare to OMI, TROPOMI, OMPS # precip: compare to CCPA # pres_levs: compare variables on pressure levels to model's own analysis - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMA + # sea_ice: compare to OSI-SAF # snow: compare to NOHRSC - # sst: compare to GHRSST L4 + # sst: compare to GHRSST Median #g2gs_*_init_hr_list: initialization hours to be included in verification: HH #g2gs_*_valid_hr_list: valid hours to be included in verification: HH #g2gs_*_fhr_min: forecast hour to start verification HH[H] @@ -75,7 +74,7 @@ if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_precip_var_list: list of the precip variable name to use #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) - export g2gs_type_list="flux means ozone precip pres_levs sea_ice snow sst" + export g2gs_type_list="flux means precip pres_levs sea_ice snow sst" export g2gs_flux_init_hr_list="00 06 12 18" export g2gs_flux_fhr_min=24 export g2gs_flux_fhr_max=384 @@ -85,10 +84,6 @@ if [ $RUN_GRID2GRID_STATS = YES ]; then export g2gs_means_fhr_min=00 export g2gs_means_fhr_max=384 export g2gs_means_fhr_inc=6 - export g2gs_ozone_init_hr_list="00 06 12 18" - export g2gs_ozone_fhr_min=00 - export g2gs_ozone_fhr_max=384 - export g2gs_ozone_fhr_inc=12 export g2gs_precip_file_format_list="/lfs/h1/ops/prod/com/gfs/v16.2/gfs.{init?fmt=%Y%m%d}/{init?fmt=%2H}/atmos/gfs.t{init?fmt=%2H}z.pgrb2.0p25.f{lead?fmt=%3H}" export g2gs_precip_file_accum_list="continuous" export g2gs_precip_var_list="APCP" @@ -122,7 +117,7 @@ fi if [ $RUN_GRID2GRID_PLOTS = YES ]; then #g2gp_model_plot_name_list: list of models reference name on plots - #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, ozone, precip, + #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, precip, # pres_levs, sea_ice, snow, sst #g2gp_*_init_hr_list: initialization hours to be included in verification: HH #g2gp_*_valid_hr_list: valid hours to be included in verification: HH @@ -156,20 +151,26 @@ if [ $RUN_GRID2GRID_PLOTS = YES ]; then fi if [ $RUN_GRID2OBS_STATS = YES ]; then - #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, sea_ice, sfc + #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, ptype, sfc # pres_levs: compare variables on pressure levels to GDAS prepbufr obs - # sea_ice: compare Internation Arctic Buoy Program + # ptype: compare precip-type variables to NAM/RAP prepbufr obs # sfc: compare surface variables to GDAS and NAM/RAP prepbufr obs - export g2os_type_list="pres_levs sfc sea_ice" + #g2os_*_init_hr_list: initialization hours to be included in verification: HH + #g2os_*_valid_hr_list: valid hours to be included in verification: HH + #g2os_*_fhr_min: forecast hour to start verification HH[H] + #g2os_*_fhr_max: forecast hour to end verification HH[H] + #g2os_*_fhr_inc: frequency to verify forecast hours at HH[H] + export g2os_type_list="pres_levs sfc" export g2os_pres_levs_init_hr_list="00 06 12 18" export g2os_pres_levs_valid_hr_list="00 06 12 18" export g2os_pres_levs_fhr_min=00 export g2os_pres_levs_fhr_max=384 export g2os_pres_levs_fhr_inc=6 - export g2os_sea_ice_init_hr_list="00 06 12 18" - export g2os_sea_ice_fhr_min=00 - export g2os_sea_ice_fhr_max=384 - export g2os_sea_ice_fhr_inc=24 + export g2os_ptype_init_hr_list="00 06 12 18" + export g2os_ptype_valid_hr_list="00 03 06 09 12 15 18 21" + export g2os_ptype_fhr_min=00 + export g2os_ptype_fhr_max=60 + export g2os_ptype_fhr_inc=01 export g2os_sfc_init_hr_list="00 06 12 18" export g2os_sfc_valid_hr_list="00 03 06 09 12 15 18 21" export g2os_sfc_fhr_min=00 @@ -182,7 +183,7 @@ fi if [ $RUN_GRID2OBS_PLOTS = YES ]; then #g2op_model_plot_name_list: list of models reference name on plots - #g2op_type_list: list type of verifications to run for grid-to-grid: pres_levs, sea_ice, sfc + #g2op_type_list: list type of verifications to run for grid-to-grid: pres_levs, ptype, sfc #g2op_*_init_hr_list: initialization hours to be included in verification: HH #g2op_*_valid_hr_list: valid hours to be included in verification: HH #g2op_*_fhr_min: forecast hour to start verification HH[H] @@ -190,13 +191,18 @@ if [ $RUN_GRID2OBS_PLOTS = YES ]; then #g2op_*_fhr_inc: frequency to verify forecast hours at HH[H] #g2op_event_equalization: do event equalization (YES) or not (NO) export g2op_model_plot_name_list="ops_gfs" - export g2op_type_list="pres_levs sea_ice sfc" + export g2op_type_list="pres_levs ptype sfc" export g2op_event_equalization="YES" export g2op_pres_levs_init_hr_list="00" export g2op_pres_levs_valid_hr_list="00" export g2op_pres_levs_fhr_min=00 export g2op_pres_levs_fhr_max=240 export g2op_pres_levs_fhr_inc=24 + export g2op_ptype_init_hr_list="00 06 12 18" + export g2op_ptype_valid_hr_list="00 03 06 09 12 15 18 21" + export g2op_ptype_fhr_min=00 + export g2op_ptype_fhr_max=60 + export g2op_ptype_fhr_inc=1 export g2op_sfc_init_hr_list="00" export g2op_sfc_valid_hr_list="00" export g2op_sfc_fhr_min=00 diff --git a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.means.31days b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.means.31days index bc5c60553a..405da5d5c5 100755 --- a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.means.31days +++ b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.means.31days @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,7 +56,7 @@ export SENDMETVIEWER="NO" if [ $RUN_GRID2GRID_PLOTS = YES ]; then #g2gp_model_plot_name_list: list of models reference name on plots - #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, ozone, precip, + #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, precip, # pres_levs, sea_ice, snow, sst #g2gp_*_init_hr_list: initialization hours to be included in verification: HH #g2gp_*_valid_hr_list: valid hours to be included in verification: HH diff --git a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.precip.31days b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.precip.31days index 17f3ce0149..3aa429b5a2 100755 --- a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.precip.31days +++ b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.precip.31days @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,7 +56,7 @@ export SENDMETVIEWER="NO" if [ $RUN_GRID2GRID_PLOTS = YES ]; then #g2gp_model_plot_name_list: list of models reference name on plots - #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, ozone, precip, + #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, precip, # pres_levs, sea_ice, snow, sst #g2gp_*_init_hr_list: initialization hours to be included in verification: HH #g2gp_*_valid_hr_list: valid hours to be included in verification: HH diff --git a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.pres_levs.31days b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.pres_levs.31days index 999251c4d8..1cde1e4891 100755 --- a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.pres_levs.31days +++ b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.pres_levs.31days @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,7 +56,7 @@ export SENDMETVIEWER="NO" if [ $RUN_GRID2GRID_PLOTS = YES ]; then #g2gp_model_plot_name_list: list of models reference name on plots - #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, ozone, precip, + #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, precip, # pres_levs, sea_ice, snow, sst #g2gp_*_init_hr_list: initialization hours to be included in verification: HH #g2gp_*_valid_hr_list: valid hours to be included in verification: HH diff --git a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.sea_ice.31days b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.sea_ice.31days index 8404e47ab9..1305457a2f 100755 --- a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.sea_ice.31days +++ b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.sea_ice.31days @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,7 +56,7 @@ export SENDMETVIEWER="NO" if [ $RUN_GRID2GRID_PLOTS = YES ]; then #g2gp_model_plot_name_list: list of models reference name on plots - #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, ozone, precip, + #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, precip, # pres_levs, sea_ice, snow, sst #g2gp_*_init_hr_list: initialization hours to be included in verification: HH #g2gp_*_valid_hr_list: valid hours to be included in verification: HH diff --git a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.snow.31days b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.snow.31days index 2b912bee61..0822b1fc84 100755 --- a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.snow.31days +++ b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.snow.31days @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric diff --git a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.sst.31days b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.sst.31days index 858cb250cf..e8435a25ea 100755 --- a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.sst.31days +++ b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2grid.sst.31days @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,7 +56,7 @@ export SENDMETVIEWER="NO" if [ $RUN_GRID2GRID_PLOTS = YES ]; then #g2gp_model_plot_name_list: list of models reference name on plots - #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, ozone, precip, + #g2gp_type_list: list type of verifications to run for grid-to-grid: flux, means, precip, # pres_levs, sea_ice, snow, sst #g2gp_*_init_hr_list: initialization hours to be included in verification: HH #g2gp_*_valid_hr_list: valid hours to be included in verification: HH diff --git a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2obs.pres_levs.31days b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2obs.pres_levs.31days index 2f639b3ee3..7c3e5fe3a1 100755 --- a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2obs.pres_levs.31days +++ b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2obs.pres_levs.31days @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,7 +56,7 @@ export SENDMETVIEWER="NO" if [ $RUN_GRID2OBS_PLOTS = YES ]; then #g2op_model_plot_name_list: list of models reference name on plots - #g2op_type_list: list type of verifications to run for grid-to-grid: pres_levs, sea_ice, sfc + #g2op_type_list: list type of verifications to run for grid-to-grid: pres_levs, ptype, sfc #g2op_*_init_hr_list: initialization hours to be included in verification: HH #g2op_*_valid_hr_list: valid hours to be included in verification: HH #g2op_*_fhr_min: forecast hour to start verification HH[H] diff --git a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2obs.ptype.31days b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2obs.ptype.31days new file mode 100755 index 0000000000..40c16f09da --- /dev/null +++ b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2obs.ptype.31days @@ -0,0 +1,75 @@ +#!/bin/bash -e +##--------------------------------------------------------------------------- +##--------------------------------------------------------------------------- +## NCEP EMC Verification System (EVS) - GFS Atmospheric +## +## CONTRIBUTORS: Mallory Row, mallory.row@noaa.gov, NOAA/NWS/NCEP/EMC-VPPPGB +## PURPOSE: Set up configurations to run EVS GFS Atmospheric standalone +##--------------------------------------------------------------------------- +##-------------------------------------------------------------------------- + +echo "BEGIN: $(basename ${BASH_SOURCE[0]})" + +#################################################### +# WHAT METPLUS USE CASES TO RUN FOR GFS ATMOSPHERIC +#################################################### +## SET TO "YES" or "NO" +## EDIT SECTIONS BELOW FOR VERIFICATION TYPES REQUESTED +export RUN_GRID2GRID_STATS="NO" +export RUN_GRID2GRID_PLOTS="NO" +export RUN_GRID2OBS_STATS="NO" +export RUN_GRID2OBS_PLOTS="YES" + +#################################################### +# GENERAL SETTINGS APPLIED TO ALL USE CASES +#################################################### +## INPUT DATA SETTINGS +#model_list: model names +#model_evs_data_dir_list: base path to "evs_data" directory +#model_file_format_list: file format of model files +export model_list="gfs" +export model_evs_data_dir_list="$COMINgfs" +export model_file_format_list="$COMROOT/gfs/${gfs_ver}/gfs.{init?fmt=%Y%m%d}/{init?fmt=%2H}/atmos/gfs.t{init?fmt=%2H}z.pgrb2.0p25.f{lead?fmt=%3H}" +## OUTPUT DATA SETTINGS +#OUTPUTROOT: base output directory +export OUTPUTROOT="$DATAROOT" +## DATE SETTINGS +#start_date: verification start date, format YYYYMMDD +#end_date: verification end date, format YYYYMMDD +export start_date=$PDYm31 +export end_date=$PDYm1 +## METPLUS SETTINGS +#metplus_verbosity: DEBUG, INFO, WARN, ERROR (most verbose is DEBUG) +#met_verbosity: MET verbosity for logging, 1-5 (most verbose is 5) +#log_met_output_to_metplus: log MET output to METplus log, yes or no +export metplus_verbosity="DEBUG" +export met_verbosity="2" +export log_met_output_to_metplus="yes" +## DATA DIRECTIVE SETTINGS +export KEEPDATA=${KEEPDATA:-"NO"} +export SENDCOM="YES" +export SENDARCH="NO" +export SENDMETVIEWER="NO" +#################################################### +# SETTINGS FOR SPECIFIC USE CASES +#################################################### + +if [ $RUN_GRID2OBS_PLOTS = YES ]; then + #g2op_model_plot_name_list: list of models reference name on plots + #g2op_type_list: list type of verifications to run for grid-to-grid: pres_levs, ptype, sfc + #g2op_*_init_hr_list: initialization hours to be included in verification: HH + #g2op_*_valid_hr_list: valid hours to be included in verification: HH + #g2op_*_fhr_min: forecast hour to start verification HH[H] + #g2op_*_fhr_max: forecast hour to end verification HH[H] + #g2op_*_fhr_inc: frequency to verify forecast hours at HH[H] + #g2op_event_equalization: do event equalization (YES) or not (NO) + export g2op_model_plot_name_list="gfs" + export g2op_type_list="ptype" + export g2op_event_equalization="NO" + export g2op_ptype_init_hr_list="00" + export g2op_ptype_valid_hr_list="00" + export g2op_ptype_fhr_min=00 + export g2op_ptype_fhr_max=72 + export g2op_ptype_fhr_inc=24 +fi +echo "END: $(basename ${BASH_SOURCE[0]})" diff --git a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2obs.sfc.31days b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2obs.sfc.31days index c7baaf699c..e180a72291 100755 --- a/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2obs.sfc.31days +++ b/parm/evs_config/global_det/config.evs.prod.plots.global_det.atmos.grid2obs.sfc.31days @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,7 +56,7 @@ export SENDMETVIEWER="NO" if [ $RUN_GRID2OBS_PLOTS = YES ]; then #g2op_model_plot_name_list: list of models reference name on plots - #g2op_type_list: list type of verifications to run for grid-to-grid: pres_levs, sea_ice, sfc + #g2op_type_list: list type of verifications to run for grid-to-grid: pres_levs, ptype, sfc #g2op_*_init_hr_list: initialization hours to be included in verification: HH #g2op_*_valid_hr_list: valid hours to be included in verification: HH #g2op_*_fhr_min: forecast hour to start verification HH[H] diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cfs b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cfs index 273e5bea86..33c2057acb 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cfs +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cfs @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,13 +56,12 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_type_list: list type of verifications to run for grid-to-grid: pres_levs, precip, snow, sst, sea_ice - # ozone, means + # means # pres_levs: compare variables on pressure levels to model's own analysis # precip: compare to CCPA # snow: compare to NOHRSC - # sst: compare to GHRSST L4 - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMAS - # ozone: compare to OMI, TROPOMI, OMPS + # sst: compare to GHRSST Median + # sea_ice: compare to OSI-SAF # means: compute forecast hour means for various variables #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cmc b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cmc index 19074ea4cb..21013654e7 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cmc +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cmc @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,13 +56,12 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_type_list: list type of verifications to run for grid-to-grid: pres_levs, precip, snow, sst, sea_ice - # ozone, means + # means # pres_levs: compare variables on pressure levels to model's own analysis # precip: compare to CCPA # snow: compare to NOHRSC - # sst: compare to GHRSST L4 - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMAS - # ozone: compare to OMI, TROPOMI, OMPS + # sst: compare to GHRSST Median + # sea_ice: compare to OSI-SAF # means: compute forecast hour means for various variables #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cmc_regional b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cmc_regional index 2508fbb4a1..0d41255515 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cmc_regional +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.cmc_regional @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,13 +56,12 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_type_list: list type of verifications to run for grid-to-grid: pres_levs, precip, snow, sst, sea_ice - # ozone, means + # means # pres_levs: compare variables on pressure levels to model's own analysis # precip: compare to CCPA # snow: compare to NOHRSC - # sst: compare to GHRSST L4 - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMAS - # ozone: compare to OMI, TROPOMI, OMPS + # sst: compare to GHRSST Median + # sea_ice: compare to OSI-SAF # means: compute forecast hour means for various variables #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.dwd b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.dwd index 1071fcd22a..7ada989844 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.dwd +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.dwd @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,13 +56,12 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_type_list: list type of verifications to run for grid-to-grid: pres_levs, precip, snow, sst, sea_ice - # ozone, means + # means # pres_levs: compare variables on pressure levels to model's own analysis # precip: compare to CCPA # snow: compare to NOHRSC - # sst: compare to GHRSST L4 - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMAS - # ozone: compare to OMI, TROPOMI, OMPS + # sst: compare to GHRSST Median + # sea_ice: compare to OSI-SAF # means: compute forecast hour means for various variables #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.ecmwf b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.ecmwf index 481a8c4884..208fd5a4dc 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.ecmwf +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.ecmwf @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,13 +56,12 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_type_list: list type of verifications to run for grid-to-grid: pres_levs, precip, snow, sst, sea_ice - # ozone, means + # means # pres_levs: compare variables on pressure levels to model's own analysis # precip: compare to CCPA # snow: compare to NOHRSC - # sst: compare to GHRSST L4 - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMAS - # ozone: compare to OMI, TROPOMI, OMPS + # sst: compare to GHRSST Median + # sea_ice: compare to OSI-SAF # means: compute forecast hour means for various variables #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.fnmoc b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.fnmoc index 1754aa726a..61ce1a8a81 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.fnmoc +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.fnmoc @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,13 +56,12 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_type_list: list type of verifications to run for grid-to-grid: pres_levs, precip, snow, sst, sea_ice - # ozone, means + # means # pres_levs: compare variables on pressure levels to model's own analysis # precip: compare to CCPA # snow: compare to NOHRSC - # sst: compare to GHRSST L4 - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMAS - # ozone: compare to OMI, TROPOMI, OMPS + # sst: compare to GHRSST Median + # sea_ice: compare to OSI-SAF # means: compute forecast hour means for various variables #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.gfs b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.gfs index b51aa804d9..8fbd7dff3c 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.gfs +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.gfs @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,13 +56,12 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_type_list: list type of verifications to run for grid-to-grid: pres_levs, precip, snow, sst, sea_ice - # ozone, means + # means # pres_levs: compare variables on pressure levels to model's own analysis # precip: compare to CCPA # snow: compare to NOHRSC - # sst: compare to GHRSST L4 - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMAS - # ozone: compare to OMI, TROPOMI, OMPS + # sst: compare to GHRSST Median + # sea_ice: compare to OSI-SAF # means: compute forecast hour means for various variables #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.imd b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.imd index 52ff1b7f9e..939bc49eb6 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.imd +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.imd @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,13 +56,12 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_type_list: list type of verifications to run for grid-to-grid: pres_levs, precip, snow, sst, sea_ice - # ozone, means + # means # pres_levs: compare variables on pressure levels to model's own analysis # precip: compare to CCPA # snow: compare to NOHRSC - # sst: compare to GHRSST L4 - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMAS - # ozone: compare to OMI, TROPOMI, OMPS + # sst: compare to GHRSST Median + # sea_ice: compare to OSI-SAF # means: compute forecast hour means for various variables #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.jma b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.jma index 056a0a555c..0e933a9e7e 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.jma +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.jma @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,13 +56,12 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_type_list: list type of verifications to run for grid-to-grid: pres_levs, precip, snow, sst, sea_ice - # ozone, means + # means # pres_levs: compare variables on pressure levels to model's own analysis # precip: compare to CCPA # snow: compare to NOHRSC - # sst: compare to GHRSST L4 - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMAS - # ozone: compare to OMI, TROPOMI, OMPS + # sst: compare to GHRSST Median + # sea_ice: compare to OSI-SAF # means: compute forecast hour means for various variables #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.metfra b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.metfra index 230110b18b..dbaf0f5364 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.metfra +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.metfra @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,13 +56,12 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_type_list: list type of verifications to run for grid-to-grid: pres_levs, precip, snow, sst, sea_ice - # ozone, means + # means # pres_levs: compare variables on pressure levels to model's own analysis # precip: compare to CCPA # snow: compare to NOHRSC - # sst: compare to GHRSST L4 - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMAS - # ozone: compare to OMI, TROPOMI, OMPS + # sst: compare to GHRSST Median + # sea_ice: compare to OSI-SAF # means: compute forecast hour means for various variables #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.ukmet b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.ukmet index 984cf07a32..1efdf1761e 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.ukmet +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2grid.ukmet @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,13 +56,12 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2GRID_STATS = YES ]; then #g2gs_type_list: list type of verifications to run for grid-to-grid: pres_levs, precip, snow, sst, sea_ice - # ozone, means + # means # pres_levs: compare variables on pressure levels to model's own analysis # precip: compare to CCPA # snow: compare to NOHRSC - # sst: compare to GHRSST L4 - # sea_ice: compare to OSI-SAF, SMOS, NASA Icebridge, YOPP, OSTIA, GIOMAS - # ozone: compare to OMI, TROPOMI, OMPS + # sst: compare to GHRSST Median + # sea_ice: compare to OSI-SAF # means: compute forecast hour means for various variables #g2gs_pres_levs_truth_name_list: list of reference name for truth files #g2gs_pres_levs_truth_format_list: list of truth file format(s) diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.cfs b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.cfs index 5c581217e9..ae7815b05f 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.cfs +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.cfs @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,10 +56,15 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2OBS_STATS = YES ]; then - #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, sea_ice, sfc + #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, pytype, sfc # pres_levs: compare variables on pressure levels to GDAS prepbufr obs - # sea_ice: compare Internation Arctic Buoy Program + # ptype: compare precip-type variables to NAM/RAP prepbufr obs # sfc: compare surface variables to GDAS and NAM/RAP prepbufr obs + #g2os_*_init_hr_list: initialization hours to be included in verification: HH + #g2os_*_valid_hr_list: valid hours to be included in verification: HH + #g2os_*_fhr_min: forecast hour to start verification HH[H] + #g2os_*_fhr_max: forecast hour to end verification HH[H] + #g2os_*_fhr_inc: frequency to verify forecast hours at HH[H] export g2os_type_list="pres_levs" export g2os_pres_levs_init_hr_list="00 06 12 18" export g2os_pres_levs_valid_hr_list="00 06 12 18" diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.cmc b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.cmc index 7b71225ce2..8b8a17a7b5 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.cmc +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.cmc @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,10 +56,15 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2OBS_STATS = YES ]; then - #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, sea_ice, sfc + #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, ptype, sfc # pres_levs: compare variables on pressure levels to GDAS prepbufr obs - # sea_ice: compare Internation Arctic Buoy Program + # ptype: compare precip-type variables to NAM/RAP prepbufr obs # sfc: compare surface variables to GDAS and NAM/RAP prepbufr obs + #g2os_*_init_hr_list: initialization hours to be included in verification: HH + #g2os_*_valid_hr_list: valid hours to be included in verification: HH + #g2os_*_fhr_min: forecast hour to start verification HH[H] + #g2os_*_fhr_max: forecast hour to end verification HH[H] + #g2os_*_fhr_inc: frequency to verify forecast hours at HH[H] export g2os_type_list="pres_levs" export g2os_pres_levs_init_hr_list="00 12" export g2os_pres_levs_valid_hr_list="00 12" diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.ecmwf b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.ecmwf index 9c5aeca233..6f8057457a 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.ecmwf +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.ecmwf @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,10 +56,15 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2OBS_STATS = YES ]; then - #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, sea_ice, sfc + #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, ptype, sfc # pres_levs: compare variables on pressure levels to GDAS prepbufr obs - # sea_ice: compare Internation Arctic Buoy Program + # ptype: compare precip-type variables to NAM/RAP prepbufr obs # sfc: compare surface variables to GDAS and NAM/RAP prepbufr obs + #g2os_*_init_hr_list: initialization hours to be included in verification: HH + #g2os_*_valid_hr_list: valid hours to be included in verification: HH + #g2os_*_fhr_min: forecast hour to start verification HH[H] + #g2os_*_fhr_max: forecast hour to end verification HH[H] + #g2os_*_fhr_inc: frequency to verify forecast hours at HH[H] export g2os_type_list="pres_levs" export g2os_pres_levs_init_hr_list="00 12" export g2os_pres_levs_valid_hr_list="00 12" diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.fnmoc b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.fnmoc index af392422c8..bef65894d9 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.fnmoc +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.fnmoc @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,10 +56,15 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2OBS_STATS = YES ]; then - #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, sea_ice, sfc + #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, ptype, sfc # pres_levs: compare variables on pressure levels to GDAS prepbufr obs - # sea_ice: compare Internation Arctic Buoy Program + # ptype: compare precip-type variables to NAM/RAP prepbufr obs # sfc: compare surface variables to GDAS and NAM/RAP prepbufr obs + #g2os_*_init_hr_list: initialization hours to be included in verification: HH + #g2os_*_valid_hr_list: valid hours to be included in verification: HH + #g2os_*_fhr_min: forecast hour to start verification HH[H] + #g2os_*_fhr_max: forecast hour to end verification HH[H] + #g2os_*_fhr_inc: frequency to verify forecast hours at HH[H] export g2os_type_list="pres_levs" export g2os_pres_levs_init_hr_list="00 12" export g2os_pres_levs_valid_hr_list="00 12" diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.gfs b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.gfs index 53bf77c4f1..a7736a2b8d 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.gfs +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.gfs @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,16 +56,26 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2OBS_STATS = YES ]; then - #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, sea_ice, sfc + #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, ptype, sfc # pres_levs: compare variables on pressure levels to GDAS prepbufr obs - # sea_ice: compare Internation Arctic Buoy Program + # ptype: compare precip-type variables to NAM/RAP prepbufr obs # sfc: compare surface variables to GDAS and NAM/RAP prepbufr obs - export g2os_type_list="pres_levs sfc" + #g2os_*_init_hr_list: initialization hours to be included in verification: HH + #g2os_*_valid_hr_list: valid hours to be included in verification: HH + #g2os_*_fhr_min: forecast hour to start verification HH[H] + #g2os_*_fhr_max: forecast hour to end verification HH[H] + #g2os_*_fhr_inc: frequency to verify forecast hours at HH[H] + export g2os_type_list="pres_levs ptype sfc" export g2os_pres_levs_init_hr_list="00 06 12 18" export g2os_pres_levs_valid_hr_list="00 06 12 18" export g2os_pres_levs_fhr_min=00 export g2os_pres_levs_fhr_max=384 export g2os_pres_levs_fhr_inc=6 + export g2os_ptype_init_hr_list="00 06 12 18" + export g2os_ptype_valid_hr_list="00 03 06 09 12 15 18 21" + export g2os_ptype_fhr_min=00 + export g2os_ptype_fhr_max=60 + export g2os_ptype_fhr_inc=3 export g2os_sfc_init_hr_list="00 06 12 18" export g2os_sfc_valid_hr_list="00 03 06 09 12 15 18 21" export g2os_sfc_fhr_min=00 diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.imd b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.imd index ea398cf6e1..6983ede3c7 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.imd +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.imd @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,10 +56,15 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2OBS_STATS = YES ]; then - #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, sea_ice, sfc + #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, ptype, sfc # pres_levs: compare variables on pressure levels to GDAS prepbufr obs - # sea_ice: compare Internation Arctic Buoy Program + # ptype: compare precip-type variables to NAM/RAP prepbufr obs # sfc: compare surface variables to GDAS and NAM/RAP prepbufr obs + #g2os_*_init_hr_list: initialization hours to be included in verification: HH + #g2os_*_valid_hr_list: valid hours to be included in verification: HH + #g2os_*_fhr_min: forecast hour to start verification HH[H] + #g2os_*_fhr_max: forecast hour to end verification HH[H] + #g2os_*_fhr_inc: frequency to verify forecast hours at HH[H] export g2os_type_list="pres_levs" export g2os_pres_levs_init_hr_list="00 12" export g2os_pres_levs_valid_hr_list="00 12" diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.jma b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.jma index 7794137761..2cecc42f39 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.jma +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.jma @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,10 +56,15 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2OBS_STATS = YES ]; then - #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, sea_ice, sfc + #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, ptype, sfc # pres_levs: compare variables on pressure levels to GDAS prepbufr obs - # sea_ice: compare Internation Arctic Buoy Program + # ptype: compare precip-type variables to NAM/RAP prepbufr obs # sfc: compare surface variables to GDAS and NAM/RAP prepbufr obs + #g2os_*_init_hr_list: initialization hours to be included in verification: HH + #g2os_*_valid_hr_list: valid hours to be included in verification: HH + #g2os_*_fhr_min: forecast hour to start verification HH[H] + #g2os_*_fhr_max: forecast hour to end verification HH[H] + #g2os_*_fhr_inc: frequency to verify forecast hours at HH[H] export g2os_type_list="pres_levs" export g2os_pres_levs_init_hr_list="00 12" export g2os_pres_levs_valid_hr_list="00 12" diff --git a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.ukmet b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.ukmet index 2edda3f198..c5a587ed8d 100755 --- a/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.ukmet +++ b/parm/evs_config/global_det/config.evs.prod.stats.global_det.atmos.grid2obs.ukmet @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - GFS Atmospheric @@ -56,10 +56,15 @@ export SENDMETVIEWER="NO" #################################################### if [ $RUN_GRID2OBS_STATS = YES ]; then - #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, sea_ice, sfc + #g2os_type_list: list type of verifications to run for grid-to-obs: pres_levs, ptype, sfc # pres_levs: compare variables on pressure levels to GDAS prepbufr obs - # sea_ice: compare Internation Arctic Buoy Program + # ptype: compare precip-type variables to NAM/RAP prepbufr obs # sfc: compare surface variables to GDAS and NAM/RAP prepbufr obs + #g2os_*_init_hr_list: initialization hours to be included in verification: HH + #g2os_*_valid_hr_list: valid hours to be included in verification: HH + #g2os_*_fhr_min: forecast hour to start verification HH[H] + #g2os_*_fhr_max: forecast hour to end verification HH[H] + #g2os_*_fhr_inc: frequency to verify forecast hours at HH[H] export g2os_type_list="pres_levs" export g2os_pres_levs_init_hr_list="00 12" export g2os_pres_levs_valid_hr_list="00 12" diff --git a/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrCCPA.conf b/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrCCPA.conf index c16905740a..b2a0764afe 100644 --- a/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrCCPA.conf +++ b/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrCCPA.conf @@ -33,6 +33,7 @@ LEAD_SEQ = {ENV[fhr_list]} BOTH_VAR1_NAME = APCP_A24 BOTH_VAR1_LEVELS = "(*,*)" BOTH_VAR1_THRESH = ge0.1, ge0.5, ge1, ge5, ge10, ge25, ge50, ge75, ge0.254, ge2.54, ge6.35, ge12.7, ge25.4, ge50.8, ge76.2, ge101.6 +BOTH_VAR1_OPTIONS = set_attr_units = "mm"; set_attr_name = "APCP"; #### GridStat GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped GRID_STAT_ONCE_PER_FIELD = False diff --git a/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrCCPA_Nbrhd.conf b/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrCCPA_Nbrhd.conf index 824fc1ea8f..ca0c07c943 100644 --- a/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrCCPA_Nbrhd.conf +++ b/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrCCPA_Nbrhd.conf @@ -33,6 +33,7 @@ LEAD_SEQ = {ENV[fhr_list]} BOTH_VAR1_NAME = APCP_A24 BOTH_VAR1_LEVELS = "(*,*)" BOTH_VAR1_THRESH = ge0.1, ge0.5, ge1, ge5, ge10, ge25, ge50, ge75, ge0.254, ge2.54, ge6.35, ge12.7, ge25.4, ge50.8, ge76.2, ge101.6 +BOTH_VAR1_OPTIONS = set_attr_units = "mm"; set_attr_name = "APCP"; #### GridStat GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped GRID_STAT_ONCE_PER_FIELD = False diff --git a/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrNOHRSC.conf b/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrNOHRSC.conf index 1b69946c3a..1769986574 100644 --- a/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrNOHRSC.conf +++ b/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrNOHRSC.conf @@ -32,7 +32,7 @@ LEAD_SEQ = {ENV[fhr_list]} #### Variables FCST_VAR1_NAME = {ENV[var1_name]}_A24 FCST_VAR1_LEVELS = (*,*) -FCST_VAR1_OPTIONS = censor_thresh = lt0; censor_val = 0; set_attr_units = "mm"; convert(x) = x * {ENV[var1_convert]}; +FCST_VAR1_OPTIONS = censor_thresh = lt0; censor_val = 0; set_attr_units = "m"; convert(x) = x * {ENV[var1_convert]}; FCST_VAR1_THRESH = ge0.0254, ge0.0508, ge0.1016, ge0.2032, ge0.3048 OBS_VAR1_NAME = ASNOW OBS_VAR1_LEVELS = A24 diff --git a/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrNOHRSC_Nbrhd.conf b/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrNOHRSC_Nbrhd.conf index 3cb9c4a6c7..3e79c85f78 100644 --- a/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrNOHRSC_Nbrhd.conf +++ b/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obs24hrNOHRSC_Nbrhd.conf @@ -32,7 +32,7 @@ LEAD_SEQ = {ENV[fhr_list]} #### Variables FCST_VAR1_NAME = {ENV[var1_name]}_A24 FCST_VAR1_LEVELS = (*,*) -FCST_VAR1_OPTIONS = censor_thresh = lt0; censor_val = 0; set_attr_units = "mm"; convert(x) = x * {ENV[var1_convert]}; +FCST_VAR1_OPTIONS = censor_thresh = lt0; censor_val = 0; set_attr_units = "m"; convert(x) = x * {ENV[var1_convert]}; FCST_VAR1_THRESH = ge0.0254, ge0.0508, ge0.1016, ge0.2032, ge0.3048 OBS_VAR1_NAME = ASNOW OBS_VAR1_LEVELS = A24 diff --git a/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obsOSI-SAF_DailyAvg.conf b/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obsOSI-SAF_DailyAvg.conf index 0d4c99dba0..13d5ac6d60 100644 --- a/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obsOSI-SAF_DailyAvg.conf +++ b/parm/metplus_config/global_det/atmos_grid2grid/stats/GridStat_fcstGLOBAL_DET_obsOSI-SAF_DailyAvg.conf @@ -89,7 +89,7 @@ GRID_STAT_OUTPUT_FLAG_MCTC = NONE GRID_STAT_OUTPUT_FLAG_MCTS = NONE GRID_STAT_OUTPUT_FLAG_MPR = NONE GRID_STAT_OUTPUT_FLAG_CNT = NONE -GRID_STAT_OUTPUT_FLAG_SL1L2 = NONE +GRID_STAT_OUTPUT_FLAG_SL1L2 = STAT GRID_STAT_OUTPUT_FLAG_SAL1L2 = NONE GRID_STAT_OUTPUT_FLAG_VL1L2 = NONE GRID_STAT_OUTPUT_FLAG_VAL1L2 = NONE diff --git a/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_fcstGLOBAL_DET_24hrAccum_precip.conf b/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_fcstGLOBAL_DET_24hrAccum_precip.conf index 5ce01432f4..fc02350cda 100644 --- a/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_fcstGLOBAL_DET_24hrAccum_precip.conf +++ b/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_fcstGLOBAL_DET_24hrAccum_precip.conf @@ -28,7 +28,7 @@ VALID_INCREMENT = {ENV[valid_hr_inc]}H LEAD_SEQ = {ENV[fhr_list]} ##### Variables #### PCPCombine -PCP_COMBINE_SKIP_IF_OUTPUT_EXISTS = True +PCP_COMBINE_SKIP_IF_OUTPUT_EXISTS = False MODEL = {ENV[MODEL]} FCST_PCP_COMBINE_METHOD = {ENV[pcp_combine_method]} FCST_PCP_COMBINE_INPUT_NAMES = {ENV[MODEL_var]} diff --git a/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_fcstGLOBAL_DET_24hrAccum_snow.conf b/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_fcstGLOBAL_DET_24hrAccum_snow.conf index 447c1915e7..22a7fce3db 100644 --- a/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_fcstGLOBAL_DET_24hrAccum_snow.conf +++ b/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_fcstGLOBAL_DET_24hrAccum_snow.conf @@ -28,7 +28,7 @@ VALID_INCREMENT = {ENV[valid_hr_inc]}H LEAD_SEQ = {ENV[fhr_list]} ##### Variables #### PCPCombine -PCP_COMBINE_SKIP_IF_OUTPUT_EXISTS = FALSE +PCP_COMBINE_SKIP_IF_OUTPUT_EXISTS = False MODEL = {ENV[MODEL]} FCST_PCP_COMBINE_METHOD = SUBTRACT FCST_PCP_COMBINE_INPUT_NAMES = {ENV[MODEL_var]} diff --git a/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_obs24hrCCPA.conf b/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_obs24hrCCPA.conf index 30d60a94ce..9b64e48a00 100644 --- a/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_obs24hrCCPA.conf +++ b/parm/metplus_config/global_det/atmos_grid2grid/stats/PCPCombine_obs24hrCCPA.conf @@ -28,7 +28,7 @@ VALID_INCREMENT = {ENV[valid_hr_inc]}H LEAD_SEQ = 24 ##### Variables #### PCPCombine -PCP_COMBINE_SKIP_IF_OUTPUT_EXISTS = True +PCP_COMBINE_SKIP_IF_OUTPUT_EXISTS = False OBTYPE = 24hrCCPA OBS_PCP_COMBINE_METHOD = SUM OBS_PCP_COMBINE_INPUT_NAMES = APCP diff --git a/parm/metplus_config/global_det/atmos_grid2grid/stats/StatAnalysis_fcstGLOBAL_DET.conf b/parm/metplus_config/global_det/atmos_grid2grid/stats/StatAnalysis_fcstGLOBAL_DET.conf index 743357002b..e11f8f24fd 100644 --- a/parm/metplus_config/global_det/atmos_grid2grid/stats/StatAnalysis_fcstGLOBAL_DET.conf +++ b/parm/metplus_config/global_det/atmos_grid2grid/stats/StatAnalysis_fcstGLOBAL_DET.conf @@ -7,7 +7,7 @@ OUTPUT_BASE = {ENV[DATA]}/{ENV[VERIF_CASE]}_{ENV[STEP]}/METplus_output LOG_DIR = {OUTPUT_BASE}/logs TMP_DIR = {OUTPUT_BASE}/tmp STAT_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE} -MODEL1_STAT_ANALYSIS_DUMP_ROW_TEMPLATE = {MODEL1}.{fcst_valid_beg?fmt=%Y%m%d}/{MODEL1}_{ENV[RUN]}_{ENV[VERIF_CASE]}_v{fcst_valid_beg?fmt=%Y%m%d}.stat +MODEL1_STAT_ANALYSIS_DUMP_ROW_TEMPLATE = {MODEL1}.{fcst_valid_beg?fmt=%Y%m%d}/evs.stats.{MODEL1}.{ENV[RUN]}.{ENV[VERIF_CASE]}.v{fcst_valid_beg?fmt=%Y%m%d}.stat LOG_METPLUS = {LOG_DIR}/{ENV[JOB_GROUP]}_StatAnalysis_fcst{MODEL1}_{ENV[VERIF_CASE]}_{ENV[STEP]}_for{VALID_BEG}_runon{CLOCK_TIME}.log METPLUS_CONF = {OUTPUT_BASE}/confs/{ENV[JOB_GROUP]}_StatAnalysis_fcst{MODEL1}_{ENV[VERIF_CASE]}_{ENV[STEP]}_for{VALID_BEG}_runon{CLOCK_TIME}.conf #### METplus application diff --git a/parm/metplus_config/global_det/atmos_grid2obs/stats/PB2NC_obsPrepbufr.conf b/parm/metplus_config/global_det/atmos_grid2obs/stats/PB2NC_obsPrepbufr.conf index 8f16a7356d..97dd13b9e3 100644 --- a/parm/metplus_config/global_det/atmos_grid2obs/stats/PB2NC_obsPrepbufr.conf +++ b/parm/metplus_config/global_det/atmos_grid2obs/stats/PB2NC_obsPrepbufr.conf @@ -26,7 +26,7 @@ VALID_INCREMENT = {ENV[valid_hr_inc]}H LEAD_SEQ = 0 ##### PB2NC PB2NC_CONFIG_FILE = {PARM_BASE}/met_config/PB2NCConfig_wrapped -PB2NC_SKIP_IF_OUTPUT_EXISTS = True +PB2NC_SKIP_IF_OUTPUT_EXISTS = False PB2NC_OFFSETS = 0 PB2NC_VALID_BEGIN = PB2NC_VALID_END = diff --git a/parm/metplus_config/global_det/atmos_grid2obs/stats/PointStat_fcstGLOBAL_DET_obsPrepbufr_Ptype_MCTC.conf b/parm/metplus_config/global_det/atmos_grid2obs/stats/PointStat_fcstGLOBAL_DET_obsPrepbufr_Ptype_MCTC.conf new file mode 100644 index 0000000000..50ddee95cb --- /dev/null +++ b/parm/metplus_config/global_det/atmos_grid2obs/stats/PointStat_fcstGLOBAL_DET_obsPrepbufr_Ptype_MCTC.conf @@ -0,0 +1,89 @@ +[config] +#### Input +INPUT_BASE = {ENV[DATA]}/{ENV[VERIF_CASE]}_{ENV[STEP]} +FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/METplus_output +FCST_POINT_STAT_INPUT_TEMPLATE = {ENV[RUN]}.{valid?fmt=%Y%m%d}/{MODEL}/{ENV[VERIF_CASE]}/merged_ptype_{ENV[VERIF_TYPE]}_{ENV[job_name]}_init{init?fmt=%Y%m%d%H}_fhr{lead?fmt=%3H}.nc +FCST_POINT_STAT_INPUT_DATATYPE = NETCDF +FCST_IS_PROB = False +OBS_POINT_STAT_INPUT_DIR = {INPUT_BASE} +OBS_POINT_STAT_INPUT_TEMPLATE = METplus_output/{ENV[RUN]}.{valid?fmt=%Y%m%d}/prepbufr/{ENV[VERIF_CASE]}/pb2nc_{ENV[VERIF_TYPE]}_{ENV[prepbufr]}_valid{valid?fmt=%Y%m%d%H}.nc +OBS_POINT_STAT_INPUT_DATATYPE = NETCDF +OBS_IS_PROB = False +#### Output +OUTPUT_BASE = {ENV[DATA]}/{ENV[VERIF_CASE]}_{ENV[STEP]}/METplus_output +LOG_DIR = {OUTPUT_BASE}/logs +TMP_DIR = {OUTPUT_BASE}/tmp +POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE} +POINT_STAT_OUTPUT_TEMPLATE = {ENV[RUN]}.{valid?fmt=%Y%m%d}/{MODEL}/{ENV[VERIF_CASE]} +POINT_STAT_OUTPUT_PREFIX = {ENV[VERIF_TYPE]}_{ENV[job_name]} +LOG_METPLUS = {LOG_DIR}/{ENV[JOB_GROUP]}_PointStat_fcst{MODEL}_obsprepbufr_{OBTYPE}_Ptype_MCTC_{ENV[VERIF_CASE]}_{ENV[STEP]}_{ENV[VERIF_TYPE]}_{ENV[job_name]}_for{VALID_BEG}_runon{CLOCK_TIME}.log +METPLUS_CONF = {OUTPUT_BASE}/confs/{ENV[JOB_GROUP]}_PointStat_fcst{MODEL}_obsprepbufr_{OBTYPE}_Ptype_MCTC_{ENV[VERIF_CASE]}_{ENV[STEP]}_{ENV[VERIF_TYPE]}_{ENV[job_name]}_for{VALID_BEG}_runon{CLOCK_TIME}.conf +#### METplus application +LOOP_ORDER = times +PROCESS_LIST = PointStat +#### Dates +LOOP_BY = VALID +VALID_TIME_FMT = %Y%m%d%H +VALID_BEG = {ENV[DATE]}{ENV[valid_hr_start]} +VALID_END = {ENV[DATE]}{ENV[valid_hr_end]} +VALID_INCREMENT = {ENV[valid_hr_inc]}H +#### Lead +LEAD_SEQ = {ENV[fhr_list]} +#### Variables +FCST_VAR1_NAME = PTYPE +FCST_VAR1_LEVELS = "(*,*)" +FCST_VAR1_THRESH = ge1.0, ge2.0, ge3.0, ge4.0 +FCST_VAR1_OPTIONS = set_attr_units = "unitless"; set_attr_name = "PTYPE"; +OBS_VAR1_NAME = PRWE +OBS_VAR1_LEVELS = Z0 +OBS_VAR1_OPTIONS = censor_thresh = [<161, >=161&&<=163, >=164&&<=166, >=167&&<=170, >=171&&<=173, >=174&&<=176, >176]; censor_val=[0.0, 1.0, 3.0, 0.0, 2.0, 4.0, 0.0]; +OBS_VAR1_THRESH = ge1.0, ge2.0, ge3.0, ge4.0 +#### PointStat +POINT_STAT_CONFIG_FILE = {PARM_BASE}/met_config/PointStatConfig_wrapped +POINT_STAT_ONCE_PER_FIELD = False +POINT_STAT_SKIP_IF_OUTPUT_EXISTS = False +MODEL = {ENV[MODEL]} +POINT_STAT_DESC = {POINT_STAT_REGRID_TO_GRID} +OBTYPE = {ENV[prepbufr]} +OBS_POINT_STAT_WINDOW_BEGIN = -{ENV[obs_window]} +OBS_POINT_STAT_WINDOW_END = {ENV[obs_window]} +POINT_STAT_OBS_QUALITY = +#POINT_STAT_OBS_QUALITY = 1,2,3,9 +POINT_STAT_OFFSETS = 0 +POINT_STAT_MESSAGE_TYPE_GROUP_MAP = [{key="AIRUPA";val="ADPUPA,AIRCAR,AIRCFT";}, {key="SURFACE";val="ADPSFC,SFCSHP,MSONET";}, {key="ANYAIR";val="AIRCAR,AIRCFT";}, {key="ANYSFC";val="ADPSFC,SFCSHP,ADPUPA,PROFLR,MSONET";}, {key="ONLYSF";val="ADPSFC,SFCSHP";}, {key="LANDSF";val="ADPSFC,MSONET";}, {key="WATERSF";val="SFCSHP";}] +POINT_STAT_MESSAGE_TYPE = {ENV[msg_type]} +POINT_STAT_REGRID_TO_GRID = {ENV[grid]} +POINT_STAT_REGRID_METHOD = BILIN +POINT_STAT_REGRID_WIDTH = 2 +POINT_STAT_REGRID_VLD_THRESH = 0.5 +POINT_STAT_REGRID_SHAPE = SQUARE +POINT_STAT_MASK_GRID = +POINT_STAT_MASK_POLY = {ENV[mask_list]} +POINT_STAT_INTERP_FIELD = BOTH +POINT_STAT_INTERP_VLD_THRESH = 1.0 +POINT_STAT_INTERP_SHAPE = SQUARE +POINT_STAT_INTERP_TYPE_METHOD = NEAREST +POINT_STAT_INTERP_TYPE_WIDTH = 1 +POINT_STAT_OUTPUT_FLAG_FHO = NONE +POINT_STAT_OUTPUT_FLAG_CTC = NONE +POINT_STAT_OUTPUT_FLAG_CTS = NONE +POINT_STAT_OUTPUT_FLAG_MCTC = STAT +POINT_STAT_OUTPUT_FLAG_MCTS = NONE +POINT_STAT_OUTPUT_FLAG_MPR = NONE +POINT_STAT_OUTPUT_FLAG_CNT = NONE +POINT_STAT_OUTPUT_FLAG_SL1L2 = NONE +POINT_STAT_OUTPUT_FLAG_SAL1L2 = NONE +POINT_STAT_OUTPUT_FLAG_VL1L2 = NONE +POINT_STAT_OUTPUT_FLAG_VAL1L2 = NONE +POINT_STAT_OUTPUT_FLAG_VCNT = NONE +POINT_STAT_OUTPUT_FLAG_PCT = NONE +POINT_STAT_OUTPUT_FLAG_PSTD = NONE +POINT_STAT_OUTPUT_FLAG_PJC = NONE +POINT_STAT_OUTPUT_FLAG_PRC = NONE +POINT_STAT_OUTPUT_FLAG_ECLV = NONE +POINT_STAT_OUTPUT_FLAG_NBRCTC = NONE +POINT_STAT_OUTPUT_FLAG_NBRCTS = NONE +POINT_STAT_OUTPUT_FLAG_NBRCNT = NONE +POINT_STAT_OUTPUT_FLAG_GRAD = NONE +POINT_STAT_OUTPUT_FLAG_DMAP = NONE +POINT_STAT_MET_CONFIG_OVERRIDES = duplicate_flag = UNIQUE; obs_summary = NEAREST; {ENV[met_config_overrides]} diff --git a/parm/metplus_config/global_det/atmos_grid2obs/stats/PointStat_fcstGLOBAL_DET_obsPrepbufr_Thresh.conf b/parm/metplus_config/global_det/atmos_grid2obs/stats/PointStat_fcstGLOBAL_DET_obsPrepbufr_Thresh.conf index d98730a580..422d7e7306 100644 --- a/parm/metplus_config/global_det/atmos_grid2obs/stats/PointStat_fcstGLOBAL_DET_obsPrepbufr_Thresh.conf +++ b/parm/metplus_config/global_det/atmos_grid2obs/stats/PointStat_fcstGLOBAL_DET_obsPrepbufr_Thresh.conf @@ -33,11 +33,11 @@ LEAD_SEQ = {ENV[fhr_list]} FCST_VAR1_NAME = {ENV[var1_fcst_name]} FCST_VAR1_LEVELS = {ENV[var1_fcst_levels]} FCST_VAR1_OPTIONS = {ENV[var1_fcst_options]} -FCST_VAR1_THRESH = {ENV[var1_thresh_list]} +FCST_VAR1_THRESH = {ENV[var1_fcst_threshs]} OBS_VAR1_NAME = {ENV[var1_obs_name]} OBS_VAR1_LEVELS = {ENV[var1_obs_levels]} OBS_VAR1_OPTIONS = {ENV[var1_obs_options]} -OBS_VAR1_THRESH = {ENV[var1_thresh_list]} +OBS_VAR1_THRESH = {ENV[var1_obs_threshs]} #### PointStat POINT_STAT_CONFIG_FILE = {PARM_BASE}/met_config/PointStatConfig_wrapped POINT_STAT_ONCE_PER_FIELD = False diff --git a/parm/metplus_config/global_det/atmos_grid2obs/stats/PointStat_fcstGLOBAL_DET_obsPrepbufr_Thresh_Ptype.conf b/parm/metplus_config/global_det/atmos_grid2obs/stats/PointStat_fcstGLOBAL_DET_obsPrepbufr_Thresh_Ptype.conf new file mode 100644 index 0000000000..d6912205b1 --- /dev/null +++ b/parm/metplus_config/global_det/atmos_grid2obs/stats/PointStat_fcstGLOBAL_DET_obsPrepbufr_Thresh_Ptype.conf @@ -0,0 +1,89 @@ +[config] +#### Input +INPUT_BASE = {ENV[DATA]}/{ENV[VERIF_CASE]}_{ENV[STEP]} +FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE}/data/{MODEL} +FCST_POINT_STAT_INPUT_TEMPLATE = {MODEL}.{init?fmt=%Y%m%d%H}.f{lead?fmt=%HHH} +FCST_POINT_STAT_INPUT_DATATYPE = GRIB +FCST_IS_PROB = False +OBS_POINT_STAT_INPUT_DIR = {INPUT_BASE} +OBS_POINT_STAT_INPUT_TEMPLATE = METplus_output/{ENV[RUN]}.{valid?fmt=%Y%m%d}/prepbufr/{ENV[VERIF_CASE]}/pb2nc_{ENV[VERIF_TYPE]}_{ENV[prepbufr]}_valid{valid?fmt=%Y%m%d%H}.nc +OBS_POINT_STAT_INPUT_DATATYPE = NETCDF +OBS_IS_PROB = False +#### Output +OUTPUT_BASE = {ENV[DATA]}/{ENV[VERIF_CASE]}_{ENV[STEP]}/METplus_output +LOG_DIR = {OUTPUT_BASE}/logs +TMP_DIR = {OUTPUT_BASE}/tmp +POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE} +POINT_STAT_OUTPUT_TEMPLATE = {ENV[RUN]}.{valid?fmt=%Y%m%d}/{MODEL}/{ENV[VERIF_CASE]} +POINT_STAT_OUTPUT_PREFIX = {ENV[VERIF_TYPE]}_{ENV[job_name]} +LOG_METPLUS = {LOG_DIR}/{ENV[JOB_GROUP]}_PointStat_fcst{MODEL}_obsprepbufr_{OBTYPE}_Thresh_Ptype_{ENV[VERIF_CASE]}_{ENV[STEP]}_{ENV[VERIF_TYPE]}_{ENV[job_name]}_for{VALID_BEG}_runon{CLOCK_TIME}.log +METPLUS_CONF = {OUTPUT_BASE}/confs/{ENV[JOB_GROUP]}_GridStat_fcst{MODEL}_obsprepbufr_{OBTYPE}_Thresh_Ptype_{ENV[VERIF_CASE]}_{ENV[STEP]}_{ENV[VERIF_TYPE]}_{ENV[job_name]}_for{VALID_BEG}_runon{CLOCK_TIME}.conf +#### METplus application +LOOP_ORDER = times +PROCESS_LIST = PointStat +#### Dates +LOOP_BY = VALID +VALID_TIME_FMT = %Y%m%d%H +VALID_BEG = {ENV[DATE]}{ENV[valid_hr_start]} +VALID_END = {ENV[DATE]}{ENV[valid_hr_end]} +VALID_INCREMENT = {ENV[valid_hr_inc]}H +#### Lead +LEAD_SEQ = {ENV[fhr_list]} +#### Variables +FCST_VAR1_NAME = {ENV[var1_fcst_name]} +FCST_VAR1_LEVELS = {ENV[var1_fcst_levels]} +FCST_VAR1_OPTIONS = {ENV[var1_fcst_options]} +FCST_VAR1_THRESH = {ENV[var1_fcst_threshs]} +OBS_VAR1_NAME = {ENV[var1_obs_name]} +OBS_VAR1_LEVELS = {ENV[var1_obs_levels]} +OBS_VAR1_OPTIONS = {ENV[var1_obs_options]} +OBS_VAR1_THRESH = {ENV[var1_obs_threshs]} +#### PointStat +POINT_STAT_CONFIG_FILE = {PARM_BASE}/met_config/PointStatConfig_wrapped +POINT_STAT_ONCE_PER_FIELD = False +POINT_STAT_SKIP_IF_OUTPUT_EXISTS = False +MODEL = {ENV[MODEL]} +POINT_STAT_DESC = {POINT_STAT_REGRID_TO_GRID} +OBTYPE = {ENV[prepbufr]} +OBS_POINT_STAT_WINDOW_BEGIN = -{ENV[obs_window]} +OBS_POINT_STAT_WINDOW_END = {ENV[obs_window]} +POINT_STAT_OBS_QUALITY = +#POINT_STAT_OBS_QUALITY = 1,2,3,9 +POINT_STAT_OFFSETS = 0 +POINT_STAT_MESSAGE_TYPE_GROUP_MAP = [{key="AIRUPA";val="ADPUPA,AIRCAR,AIRCFT";}, {key="SURFACE";val="ADPSFC,SFCSHP,MSONET";}, {key="ANYAIR";val="AIRCAR,AIRCFT";}, {key="ANYSFC";val="ADPSFC,SFCSHP,ADPUPA,PROFLR,MSONET";}, {key="ONLYSF";val="ADPSFC,SFCSHP";}, {key="LANDSF";val="ADPSFC,MSONET";}, {key="WATERSF";val="SFCSHP";}] +POINT_STAT_MESSAGE_TYPE = {ENV[msg_type]} +POINT_STAT_REGRID_TO_GRID = {ENV[grid]} +POINT_STAT_REGRID_METHOD = BILIN +POINT_STAT_REGRID_WIDTH = 2 +POINT_STAT_REGRID_VLD_THRESH = 0.5 +POINT_STAT_REGRID_SHAPE = SQUARE +POINT_STAT_MASK_GRID = +POINT_STAT_MASK_POLY = {ENV[mask_list]} +POINT_STAT_INTERP_FIELD = BOTH +POINT_STAT_INTERP_VLD_THRESH = 1.0 +POINT_STAT_INTERP_SHAPE = SQUARE +POINT_STAT_INTERP_TYPE_METHOD = NEAREST +POINT_STAT_INTERP_TYPE_WIDTH = 1 +POINT_STAT_OUTPUT_FLAG_FHO = NONE +POINT_STAT_OUTPUT_FLAG_CTC = STAT +POINT_STAT_OUTPUT_FLAG_CTS = NONE +POINT_STAT_OUTPUT_FLAG_MCTC = NONE +POINT_STAT_OUTPUT_FLAG_MCTS = NONE +POINT_STAT_OUTPUT_FLAG_MPR = NONE +POINT_STAT_OUTPUT_FLAG_CNT = NONE +POINT_STAT_OUTPUT_FLAG_SL1L2 = NONE +POINT_STAT_OUTPUT_FLAG_SAL1L2 = NONE +POINT_STAT_OUTPUT_FLAG_VL1L2 = NONE +POINT_STAT_OUTPUT_FLAG_VAL1L2 = NONE +POINT_STAT_OUTPUT_FLAG_VCNT = NONE +POINT_STAT_OUTPUT_FLAG_PCT = NONE +POINT_STAT_OUTPUT_FLAG_PSTD = NONE +POINT_STAT_OUTPUT_FLAG_PJC = NONE +POINT_STAT_OUTPUT_FLAG_PRC = NONE +POINT_STAT_OUTPUT_FLAG_ECLV = NONE +POINT_STAT_OUTPUT_FLAG_NBRCTC = NONE +POINT_STAT_OUTPUT_FLAG_NBRCTS = NONE +POINT_STAT_OUTPUT_FLAG_NBRCNT = NONE +POINT_STAT_OUTPUT_FLAG_GRAD = NONE +POINT_STAT_OUTPUT_FLAG_DMAP = NONE +POINT_STAT_MET_CONFIG_OVERRIDES = duplicate_flag = UNIQUE; obs_summary = NEAREST; {ENV[met_config_overrides]} diff --git a/parm/metplus_config/global_det/atmos_grid2obs/stats/RegridDataPlane_fcstGLOBAL_DET.conf b/parm/metplus_config/global_det/atmos_grid2obs/stats/RegridDataPlane_fcstGLOBAL_DET.conf new file mode 100644 index 0000000000..0c179e202e --- /dev/null +++ b/parm/metplus_config/global_det/atmos_grid2obs/stats/RegridDataPlane_fcstGLOBAL_DET.conf @@ -0,0 +1,39 @@ +[config] +#### Input +INPUT_BASE = {ENV[DATA]}/{ENV[VERIF_CASE]}_{ENV[STEP]} +FCST_REGRID_DATA_PLANE_INPUT_DIR = {INPUT_BASE}/data/{MODEL} +FCST_REGRID_DATA_PLANE_INPUT_TEMPLATE = {MODEL}.{init?fmt=%Y%m%d%H}.f{lead?fmt=%HHH} +#### Output +OUTPUT_BASE = {ENV[DATA]}/{ENV[VERIF_CASE]}_{ENV[STEP]}/METplus_output +LOG_DIR = {OUTPUT_BASE}/logs +TMP_DIR = {OUTPUT_BASE}/tmp +FCST_REGRID_DATA_PLANE_OUTPUT_DIR = {OUTPUT_BASE} +FCST_REGRID_DATA_PLANE_OUTPUT_TEMPLATE = {ENV[RUN]}.{valid?fmt=%Y%m%d}/{MODEL}/{ENV[VERIF_CASE]}/regrid_data_plane_{ENV[VERIF_TYPE]}_{ENV[job_name]}_init{init?fmt=%Y%m%d%H}_fhr{lead?fmt=%HHH}.nc +LOG_METPLUS = {LOG_DIR}/{ENV[JOB_GROUP]}_RegridDataPlane_fcst{MODEL}_{ENV[VERIF_CASE]}_{ENV[STEP]}_{ENV[VERIF_TYPE]}_{ENV[job_name]}_for{VALID_BEG}_runon{CLOCK_TIME}.log +METPLUS_CONF = {OUTPUT_BASE}/confs/{ENV[JOB_GROUP]}_RegridDataPlane_fcst{MODEL}_{ENV[VERIF_CASE]}_{ENV[STEP]}_{ENV[VERIF_TYPE]}_{ENV[job_name]}_for{VALID_BEG}_runon{CLOCK_TIME}.conf +#### METplus application +LOOP_ORDER = times +PROCESS_LIST = RegridDataPlane +#### Dates +LOOP_BY = VALID +VALID_TIME_FMT = %Y%m%d%H +VALID_BEG = {ENV[DATE]}{ENV[valid_hr_start]} +VALID_END = {ENV[DATE]}{ENV[valid_hr_end]} +VALID_INCREMENT = {ENV[valid_hr_inc]}H +#### Lead +LEAD_SEQ = {ENV[fhr_list]} +#### Variables +FCST_REGRID_DATA_PLANE_RUN = True +FCST_REGRID_DATA_PLANE_VAR1_INPUT_FIELD_NAME = {ENV[var1_name]} +FCST_REGRID_DATA_PLANE_VAR1_INPUT_LEVEL = {ENV[var1_level]} +FCST_REGRID_DATA_PLANE_VAR1_OUTPUT_FIELD_NAME = {ENV[var1_name]} +OBS_REGRID_DATA_PLANE_RUN = False +#### RegridDataPlane +REGRID_DATA_PLANE_ONCE_PER_FIELD = True +MODEL = {ENV[MODEL]} +OBTYPE = +REGRID_DATA_PLANE_VERIF_GRID = {ENV[grid]} +REGRID_DATA_PLANE_METHOD = NEAREST +REGRID_DATA_PLANE_WIDTH = 1 +REGRID_DATA_PLANE_GAUSSIAN_DX = +REGRID_DATA_PLANE_GAUSSIAN_RADIUS = diff --git a/parm/metplus_config/global_det/atmos_grid2obs/stats/StatAnalysis_fcstGLOBAL_DET.conf b/parm/metplus_config/global_det/atmos_grid2obs/stats/StatAnalysis_fcstGLOBAL_DET.conf index 743357002b..6149552913 100644 --- a/parm/metplus_config/global_det/atmos_grid2obs/stats/StatAnalysis_fcstGLOBAL_DET.conf +++ b/parm/metplus_config/global_det/atmos_grid2obs/stats/StatAnalysis_fcstGLOBAL_DET.conf @@ -7,7 +7,7 @@ OUTPUT_BASE = {ENV[DATA]}/{ENV[VERIF_CASE]}_{ENV[STEP]}/METplus_output LOG_DIR = {OUTPUT_BASE}/logs TMP_DIR = {OUTPUT_BASE}/tmp STAT_ANALYSIS_OUTPUT_DIR = {OUTPUT_BASE} -MODEL1_STAT_ANALYSIS_DUMP_ROW_TEMPLATE = {MODEL1}.{fcst_valid_beg?fmt=%Y%m%d}/{MODEL1}_{ENV[RUN]}_{ENV[VERIF_CASE]}_v{fcst_valid_beg?fmt=%Y%m%d}.stat +MODEL1_STAT_ANALYSIS_DUMP_ROW_TEMPLATE = {MODEL1}.{fcst_valid_beg?fmt=%Y%m%d}/evs.stats.{MODEL1}.{ENV[RUN]}.{ENV[VERIF_CASE]}.v{fcst_valid_beg?fmt=%Y%m%d}.stat LOG_METPLUS = {LOG_DIR}/{ENV[JOB_GROUP]}_StatAnalysis_fcst{MODEL1}_{ENV[VERIF_CASE]}_{ENV[STEP]}_for{VALID_BEG}_runon{CLOCK_TIME}.log METPLUS_CONF = {OUTPUT_BASE}/confs/{ENV[JOB_GROUP]}_StatAnalysis_fcst{MODEL1}_{ENV[VERIF_CASE]}_{ENV[STEP]}_for{VALID_BEG}_runon{CLOCK_TIME}.conf #### METplus application @@ -48,7 +48,7 @@ FCST_THRESH_LIST = OBS_THRESH_LIST = COV_THRESH_LIST = ALPHA_LIST = -LINE_TYPE_LIST = CTS, CNT, NBRCTS, NBRCNT, VCNT, SL1L2, SAL1L2, VL1L2, VAL1L2, GRAD, NBRCTC, CTC, FHO +LINE_TYPE_LIST = CTS, CNT, NBRCTS, NBRCNT, VCNT, SL1L2, SAL1L2, VL1L2, VAL1L2, GRAD, NBRCTC, CTC, FHO, MCTC GROUP_LIST_ITEMS = LINE_TYPE_LIST LOOP_LIST_ITEMS = MODEL_LIST STAT_ANALYSIS_MET_CONFIG_OVERRIDES = obtype = []; diff --git a/scripts/global_det/plots/exevs_global_det_atmos_grid2grid_plots.sh b/scripts/global_det/plots/exevs_global_det_atmos_grid2grid_plots.sh index 26014e90c6..57ea1e9722 100755 --- a/scripts/global_det/plots/exevs_global_det_atmos_grid2grid_plots.sh +++ b/scripts/global_det/plots/exevs_global_det_atmos_grid2grid_plots.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ############################################################################### # Name of Script: exevs_global_det_atmos_grid2grid_plots.sh # Purpose of Script: This script generates grid-to-grid diff --git a/scripts/global_det/plots/exevs_global_det_atmos_grid2obs_plots.sh b/scripts/global_det/plots/exevs_global_det_atmos_grid2obs_plots.sh index 72cc892f17..efa5d60433 100755 --- a/scripts/global_det/plots/exevs_global_det_atmos_grid2obs_plots.sh +++ b/scripts/global_det/plots/exevs_global_det_atmos_grid2obs_plots.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ############################################################################### # Name of Script: exevs_global_det_atmos_grid2obs_plots.sh # Purpose of Script: This script generates grid-to-observations diff --git a/scripts/global_det/prep/exevs_global_det_atmos_prep.sh b/scripts/global_det/prep/exevs_global_det_atmos_prep.sh index 98be4d9e65..dde6685582 100755 --- a/scripts/global_det/prep/exevs_global_det_atmos_prep.sh +++ b/scripts/global_det/prep/exevs_global_det_atmos_prep.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ############################################################################### # Name of Script: exevs_global_det_atmos_prep.sh # Purpose of Script: This script does prep for any global deterministic model diff --git a/scripts/global_det/stats/exevs_global_det_atmos_grid2grid_stats.sh b/scripts/global_det/stats/exevs_global_det_atmos_grid2grid_stats.sh index 2803749e91..f6e8c08080 100755 --- a/scripts/global_det/stats/exevs_global_det_atmos_grid2grid_stats.sh +++ b/scripts/global_det/stats/exevs_global_det_atmos_grid2grid_stats.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ############################################################################### # Name of Script: exevs_global_det_atmos_grid2grid_stats.sh # Purpose of Script: This script generates grid-to-grid diff --git a/scripts/global_det/stats/exevs_global_det_atmos_grid2obs_stats.sh b/scripts/global_det/stats/exevs_global_det_atmos_grid2obs_stats.sh index 581a2cf68c..e113a06843 100755 --- a/scripts/global_det/stats/exevs_global_det_atmos_grid2obs_stats.sh +++ b/scripts/global_det/stats/exevs_global_det_atmos_grid2obs_stats.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash ############################################################################### # Name of Script: exevs_global_det_atmos_grid2obs_stats.sh # Purpose of Script: This script generates grid-to-observations diff --git a/sorc/ukm_hires_merge.fd/ukm_hires_merge.f b/sorc/ukm_hires_merge.fd/ukm_hires_merge.f index ec23d60653..8614ccfcf1 100755 --- a/sorc/ukm_hires_merge.fd/ukm_hires_merge.f +++ b/sorc/ukm_hires_merge.fd/ukm_hires_merge.f @@ -132,7 +132,19 @@ program ukm_hires_merge do n=1,np jgds(2)=nx; jgds(3)=ny; jgds(9)=resx; jgds(10)=resy jgds(4)=ys(n); jgds(5)=xs(n); jgds(7)=ye(n); jgds(8)=xe(n) + !if(nrec.ge.-560 .and. nrec.le.-537) then + ! nrec=nrec-1 + ! goto 10 + !endif call getgb(10,0,mmax,nrec,jpds,jgds,kf,k,kpds,kgds,lb,varp(1,n),iret) + !print *, nrec + !print *, n + !print *, (jpds(k),k=5,7) + !print *, (kpds(k),k=5,7) + if(kpds(6).eq.7) then + nrec=nrec-1 + goto 10 + endif if(iret.ne.0) goto 100 !reached end of record or incorrect file ! write(1,*) diff --git a/ush/global_det/global_det_atmos_check_settings.py b/ush/global_det/global_det_atmos_check_settings.py index 96d427dd49..b7b5f5a680 100644 --- a/ush/global_det/global_det_atmos_check_settings.py +++ b/ush/global_det/global_det_atmos_check_settings.py @@ -20,6 +20,57 @@ evs_run_mode = os.environ['evs_run_mode'] VERIF_CASE_STEP = VERIF_CASE+'_'+STEP + +# Do date check +date_check_name_list = ['start', 'end'] +for date_check_name in date_check_name_list: + date_check = os.environ[date_check_name+'_date'] + date_check_year = int(date_check[0:4]) + date_check_month = int(date_check[4:6]) + date_check_day = int(date_check[6:]) + if len(date_check) != 8: + print("ERROR: "+date_check_name+"_date not in YYYYMMDD format") + sys.exit(1) + if date_check_month > 12 or int(date_check_month) == 0: + print("ERROR: month "+str(date_check_month)+" in value " + +date_check+" for "+date_check_name+"_date is not a valid month") + sys.exit(1) + if date_check_day \ + > calendar.monthrange(date_check_year, date_check_month)[1]: + print("ERROR: day "+str(date_check_day)+" in value " + +date_check+" for "+date_check_name+"_date is not a valid day " + +"for month") + sys.exit(1) +if datetime.datetime.strptime(os.environ['end_date'], '%Y%m%d') \ + < datetime.datetime.strptime(os.environ['start_date'], '%Y%m%d'): + print("ERROR: end_date ("+os.environ['end_date']+") cannot be less than " + +"start_date ("+os.environ['start_date']+")") + sys.exit(1) + +# Do check for valid config options +VERIF_CASE_STEP_type_list = ( + os.environ[VERIF_CASE_STEP_abbrev+'_type_list'].split(' ') +) +valid_VERIF_CASE_STEP_type_opts_dict = { + 'RUN_GRID2GRID_STATS': ['flux', 'means', 'ozone', 'precip', 'pres_levs', + 'sea_ice', 'snow', 'sst'], + 'RUN_GRID2GRID_PLOTS': ['flux', 'means', 'ozone', 'precip', 'pres_levs', + 'sea_ice', 'snow', 'sst'], + 'RUN_GRID2OBS_STATS': ['pres_levs', 'ptype', 'sfc'], + 'RUN_GRID2OBS_PLOTS': ['pres_levs', 'ptype', 'sfc'] +} +for VERIF_CASE_STEP_type in VERIF_CASE_STEP_type_list: + if VERIF_CASE_STEP_type \ + not in valid_VERIF_CASE_STEP_type_opts_dict[ + 'RUN_'+VERIF_CASE.upper()+'_'+STEP.upper() + ]: + print("ERROR: "+VERIF_CASE_STEP_type+" not a valid option for " + +VERIF_CASE_STEP_abbrev+"_type_list. Valid options are " + +','.join(valid_VERIF_CASE_STEP_type_opts_dict[ + 'RUN_'+VERIF_CASE.upper()+'_'+STEP.upper() + ])) + sys.exit(1) + # Set up setting names evs_global_det_atmos_settings_dict = {} if evs_run_mode == 'production': @@ -101,15 +152,18 @@ 'RUN_GRID2OBS_STATS': { 'pres_levs': ['init_hr_list', 'valid_hr_list', 'fhr_min', 'fhr_max', 'fhr_inc'], - 'sea_ice': ['init_hr_list', 'fhr_min', 'fhr_max', 'fhr_inc'], + 'ptype': ['init_hr_list', 'valid_hr_list', + 'fhr_min', 'fhr_max', 'fhr_inc'], 'sfc': ['init_hr_list', 'valid_hr_list', 'fhr_min', 'fhr_max', 'fhr_inc'] }, 'RUN_GRID2OBS_PLOTS': { 'pres_levs': ['init_hr_list', 'valid_hr_list', 'fhr_min', 'fhr_max', 'fhr_inc'], - 'sea_ice': [], - 'sfc': [] + 'ptype': ['init_hr_list', 'valid_hr_list', + 'fhr_min', 'fhr_max', 'fhr_inc'], + 'sfc': ['init_hr_list', 'valid_hr_list', + 'fhr_min', 'fhr_max', 'fhr_inc'] } } @@ -148,54 +202,6 @@ +"check configuration file "+config) sys.exit(1) -# Do date check -date_check_name_list = ['start', 'end'] -for date_check_name in date_check_name_list: - date_check = os.environ[date_check_name+'_date'] - date_check_year = int(date_check[0:4]) - date_check_month = int(date_check[4:6]) - date_check_day = int(date_check[6:]) - if len(date_check) != 8: - print("ERROR: "+date_check_name+"_date not in YYYYMMDD format") - sys.exit(1) - if date_check_month > 12 or int(date_check_month) == 0: - print("ERROR: month "+str(date_check_month)+" in value " - +date_check+" for "+date_check_name+"_date is not a valid month") - sys.exit(1) - if date_check_day \ - > calendar.monthrange(date_check_year, date_check_month)[1]: - print("ERROR: day "+str(date_check_day)+" in value " - +date_check+" for "+date_check_name+"_date is not a valid day " - +"for month") - sys.exit(1) -if datetime.datetime.strptime(os.environ['end_date'], '%Y%m%d') \ - < datetime.datetime.strptime(os.environ['start_date'], '%Y%m%d'): - print("ERROR: end_date ("+os.environ['end_date']+") cannot be less than " - +"start_date ("+os.environ['start_date']+")") - sys.exit(1) - -# Do check for valid config options -VERIF_CASE_STEP_type_list = ( - os.environ[VERIF_CASE_STEP_abbrev+'_type_list'].split(' ') -) -valid_VERIF_CASE_STEP_type_opts_dict = { - 'RUN_GRID2GRID_STATS': ['flux', 'means', 'ozone', 'precip', 'pres_levs', - 'sea_ice', 'snow', 'sst'], - 'RUN_GRID2GRID_PLOTS': ['flux', 'means', 'ozone', 'precip', 'pres_levs', - 'sea_ice', 'snow', 'sst'], - 'RUN_GRID2OBS_STATS': ['pres_levs', 'sea_ice', 'sfc'], - 'RUN_GRID2OBS_PLOTS': ['pres_levs', 'sea_ice', 'sfc'] -} -for VERIF_CASE_STEP_type in VERIF_CASE_STEP_type_list: - if VERIF_CASE_STEP_type \ - not in valid_VERIF_CASE_STEP_type_opts_dict[ - 'RUN_'+VERIF_CASE.upper()+'_'+STEP.upper() - ]: - print("ERROR: "+VERIF_CASE_STEP_type+" not a valid option for " - +VERIF_CASE_STEP_abbrev+"_type_list. Valid options are " - +','.join(valid_VERIF_CASE_STEP_type_opts_dict[VERIF_CASE_STEP])) - sys.exit(1) - # Do check for list variables lengths check_config_var_len_list = ['model_evs_data_dir_list', 'model_file_format_list'] @@ -225,12 +231,12 @@ }, 'RUN_GRID2OBS_STATS': { 'pres_levs': [], - 'sea_ice': [], + 'ptype': [], 'sfc': [] }, 'RUN_GRID2OBS_PLOTS': { 'pres_levs': [], - 'sea_ice': [], + 'ptype': [], 'sfc': [] }, } diff --git a/ush/global_det/global_det_atmos_copy_to_archive.py b/ush/global_det/global_det_atmos_copy_to_archive.py index d3df219413..bba76f4848 100644 --- a/ush/global_det/global_det_atmos_copy_to_archive.py +++ b/ush/global_det/global_det_atmos_copy_to_archive.py @@ -41,11 +41,11 @@ tmp_stat_file = os.path.join( DATA, VERIF_CASE+'_'+STEP, 'METplus_output', model+'.'+date_dt.strftime('%Y%m%d'), - model+'_'+RUN+'_'+VERIF_CASE+'_v' + 'evs.stats.'+model+'.'+RUN+'.'+VERIF_CASE+'.v' +date_dt.strftime('%Y%m%d')+'.stat' ) arch_stat_file = os.path.join( - model_evs_data_dir, model+'_v'+date_dt.strftime('%Y%m%d')+'.stat' + model_evs_data_dir, model+'.v'+date_dt.strftime('%Y%m%d')+'.stat' ) if os.path.exists(tmp_stat_file): print("Copying "+tmp_stat_file+" to "+arch_stat_file) diff --git a/ush/global_det/global_det_atmos_create_output_dirs.py b/ush/global_det/global_det_atmos_create_output_dirs.py index 31a1255f38..ab581a0683 100644 --- a/ush/global_det/global_det_atmos_create_output_dirs.py +++ b/ush/global_det/global_det_atmos_create_output_dirs.py @@ -56,6 +56,9 @@ data_dir_list.append(os.path.join(data_base_dir, 'prepbufr_gdas')) data_dir_list.append(os.path.join(data_base_dir, 'prepbufr_nam')) data_dir_list.append(os.path.join(data_base_dir, 'prepbufr_rap')) + elif VERIF_CASE_STEP_type == 'ptype': + data_dir_list.append(os.path.join(data_base_dir, 'prepbufr_nam')) + data_dir_list.append(os.path.join(data_base_dir, 'prepbufr_rap')) elif VERIF_CASE_STEP == 'grid2grid_plots': for VERIF_CASE_STEP_type in VERIF_CASE_STEP_type_list: if VERIF_CASE_STEP_type == 'precip': @@ -124,7 +127,7 @@ ) elif VERIF_CASE_STEP == 'grid2obs_stats': for VERIF_CASE_STEP_type in VERIF_CASE_STEP_type_list: - if VERIF_CASE_STEP_type == 'pres_levs': + if VERIF_CASE_STEP_type in ['pres_levs', 'sfc', 'ptype']: COMROOT_dir_list.append( os.path.join(COMROOT, NET, evs_ver, STEP, COMPONENT, RUN+'.'+date_dt.strftime('%Y%m%d'), 'prepbufr', diff --git a/ush/global_det/global_det_atmos_get_data_files.py b/ush/global_det/global_det_atmos_get_data_files.py index 74dbfd1d1c..9f6840fc61 100644 --- a/ush/global_det/global_det_atmos_get_data_files.py +++ b/ush/global_det/global_det_atmos_get_data_files.py @@ -564,7 +564,7 @@ +VERIF_CASE_STEP_type) # Read in VERIF_CASE_STEP_type related environment variables # Set valid hours - if VERIF_CASE_STEP_type in ['pres_levs', 'sfc']: + if VERIF_CASE_STEP_type in ['pres_levs', 'sfc', 'ptype']: VERIF_CASE_STEP_type_valid_hr_list = os.environ[ VERIF_CASE_STEP_abbrev_type+'_valid_hr_list' ].split(' ') @@ -682,7 +682,7 @@ gdas_arch_file_format, gdas_dest_file_format ) - if VERIF_CASE_STEP_type == 'sfc': + if VERIF_CASE_STEP_type in ['sfc', 'ptype']: # NAM prepbufr offset_hr = str( int(VERIF_CASE_STEP_type_valid_time.strftime('%H'))%6 @@ -780,14 +780,8 @@ if evs_run_mode == 'production': source_model_date_stat_file = os.path.join( model_evs_data_dir+'.'+date_dt.strftime('%Y%m%d'), - model+'_'+RUN+'_'+VERIF_CASE+'_' - 'v'+date_dt.strftime('%Y%m%d')+'.stat' - ) - else: - source_model_date_stat_file = os.path.join( - model_evs_data_dir, 'evs_data', - COMPONENT, RUN, VERIF_CASE, model, - model+'_v'+date_dt.strftime('%Y%m%d')+'.stat' + 'evs.stats.'+model+'.'+RUN+'.'+VERIF_CASE+'.' + +'v'+date_dt.strftime('%Y%m%d')+'.stat' ) dest_model_date_stat_file = os.path.join( VERIF_CASE_STEP_data_dir, model, diff --git a/ush/global_det/global_det_atmos_get_machine.py b/ush/global_det/global_det_atmos_get_machine.py index 073ba4570a..05952ef313 100644 --- a/ush/global_det/global_det_atmos_get_machine.py +++ b/ush/global_det/global_det_atmos_get_machine.py @@ -75,7 +75,7 @@ # Write to machine config file if not os.path.exists('config.machine'): with open('config.machine', 'a') as file: - file.write('#!/bin/sh\n') + file.write('#!/bin/bash\n') file.write('echo "BEGIN: config.machine"\n') file.write('echo "Setting machine='+'"'+machine+'""\n') file.write('export machine='+'"'+machine+'"\n') diff --git a/ush/global_det/global_det_atmos_load_modules.sh b/ush/global_det/global_det_atmos_load_modules.sh index 0d80604723..ca144a0d20 100755 --- a/ush/global_det/global_det_atmos_load_modules.sh +++ b/ush/global_det/global_det_atmos_load_modules.sh @@ -1,4 +1,4 @@ -#!/bin/sh -xe +#!/bin/bash -xe ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - Global Deterministic Atmospheric @@ -20,24 +20,24 @@ else fi if [ $machine = WCOSS2 ]; then - source /usr/share/lmod/lmod/init/sh + source /usr/share/lmod/lmod/init/bash module reset export HPC_OPT=/apps/ops/para/libs export MET_bin_exec="bin" elif [ $machine = HERA ]; then - source /apps/lmod/lmod/init/sh + source /apps/lmod/lmod/init/bash module purge export MET_bin_exec="bin" elif [ $machine = JET ]; then - source /apps/lmod/lmod/init/sh + source /apps/lmod/lmod/init/bash module purge export MET_bin_exec="bin" elif [ $machine = ORION ]; then - source /apps/lmod/lmod/init/sh + source /apps/lmod/lmod/init/bash module purge export MET_bin_exec="bin" elif [ $machine = S4 ]; then - source /usr/share/lmod/lmod/init/sh + source /usr/share/lmod/lmod/init/bash module purge export MET_bin_exec="bin" else diff --git a/ush/global_det/global_det_atmos_load_to_METviewer_AWS.py b/ush/global_det/global_det_atmos_load_to_METviewer_AWS.py index d5cd1c600b..f860833aad 100644 --- a/ush/global_det/global_det_atmos_load_to_METviewer_AWS.py +++ b/ush/global_det/global_det_atmos_load_to_METviewer_AWS.py @@ -96,7 +96,7 @@ tmp_stat_file = os.path.join( DATA, VERIF_CASE+'_'+STEP, 'METplus_output', model+'.'+date_dt.strftime('%Y%m%d'), - model+'_'+RUN+'_'+VERIF_CASE+'_v' + 'evs.stats.'+model+'.'+RUN+'.'+VERIF_CASE+'.v' +date_dt.strftime('%Y%m%d')+'.stat' ) METviewer_AWS_loading_file = os.path.join( diff --git a/ush/global_det/global_det_atmos_plots_grid2grid_create_job_scripts.py b/ush/global_det/global_det_atmos_plots_grid2grid_create_job_scripts.py index 35891b080a..04fc5518b0 100644 --- a/ush/global_det/global_det_atmos_plots_grid2grid_create_job_scripts.py +++ b/ush/global_det/global_det_atmos_plots_grid2grid_create_job_scripts.py @@ -839,7 +839,7 @@ job_file = os.path.join(plot_jobs_dir, 'job'+str(njobs)) print("Creating job script: "+job_file) job = open(job_file, 'w') - job.write('#!/bin/sh\n') + job.write('#!/bin/bash\n') job.write('set -x\n') job.write('\n') # Set any environment variables for special cases diff --git a/ush/global_det/global_det_atmos_plots_grid2obs_create_job_scripts.py b/ush/global_det/global_det_atmos_plots_grid2obs_create_job_scripts.py index 5e08f6d087..83467dacbf 100644 --- a/ush/global_det/global_det_atmos_plots_grid2obs_create_job_scripts.py +++ b/ush/global_det/global_det_atmos_plots_grid2obs_create_job_scripts.py @@ -193,7 +193,83 @@ 'plots_list': ('time_series, lead_average, ' +'stat_by_level, lead_level')} }, - 'sea_ice': {}, + 'ptype': { + 'Rain': {'line_type_stat_list': ['CTC/FBIAS', 'CTC/FY_OY'], + 'vx_mask_list': ['CONUS', 'CONUS_Central', + 'CONUS_East', 'CONUS_South', + 'CONUS_West', 'Alaska'], + 'fcst_var_dict': {'name': 'CRAIN', + 'levels': 'L0', + 'threshs': 'ge1.0'}, + 'obs_var_dict': {'name': 'PRWE', + 'levels': 'Z0', + 'threshs': 'ge161&&le163'}, + 'interp_dict': {'method': 'NEAREST', + 'points': '1'}, + 'grid': 'G104', + 'obs_name': 'ADPSFC', + 'plots_list': 'time_series'}, + 'Snow': {'line_type_stat_list': ['CTC/FBIAS', 'CTC/FY_OY'], + 'vx_mask_list': ['CONUS', 'CONUS_Central', + 'CONUS_East', 'CONUS_South', + 'CONUS_West', 'Alaska'], + 'fcst_var_dict': {'name': 'CSNOW', + 'levels': 'L0', + 'threshs': 'ge1.0'}, + 'obs_var_dict': {'name': 'PRWE', + 'levels': 'Z0', + 'threshs': 'ge171&&le173'}, + 'interp_dict': {'method': 'NEAREST', + 'points': '1'}, + 'grid': 'G104', + 'obs_name': 'ADPSFC', + 'plots_list': 'time_series'}, + 'FrzRain': {'line_type_stat_list': ['CTC/FBIAS', 'CTC/FY_OY'], + 'vx_mask_list': ['CONUS', 'CONUS_Central', + 'CONUS_East', 'CONUS_South', + 'CONUS_West', 'Alaska'], + 'fcst_var_dict': {'name': 'CFRZR', + 'levels': 'L0', + 'threshs': 'ge1.0'}, + 'obs_var_dict': {'name': 'PRWE', + 'levels': 'Z0', + 'threshs': 'ge164&&le166'}, + 'interp_dict': {'method': 'NEAREST', + 'points': '1'}, + 'grid': 'G104', + 'obs_name': 'ADPSFC', + 'plots_list': 'time_series'}, + 'IcePel': {'line_type_stat_list': ['CTC/FBIAS', 'CTC/FY_OY'], + 'vx_mask_list': ['CONUS', 'CONUS_Central', + 'CONUS_East', 'CONUS_South', + 'CONUS_West', 'Alaska'], + 'fcst_var_dict': {'name': 'CICEP', + 'levels': 'L0', + 'threshs': 'ge1.0'}, + 'obs_var_dict': {'name': 'PRWE', + 'levels': 'Z0', + 'threshs': 'ge174&&le176'}, + 'interp_dict': {'method': 'NEAREST', + 'points': '1'}, + 'grid': 'G104', + 'obs_name': 'ADPSFC', + 'plots_list': 'time_series'}, + 'Ptype': {'line_type_stat_list': ['MCTC/F1_O1'], + 'vx_mask_list': ['CONUS', 'CONUS_Central', + 'CONUS_East', 'CONUS_South', + 'CONUS_West', 'Alaska'], + 'fcst_var_dict': {'name': 'PTYPE_L0', + 'levels': 'L0', + 'threshs': '>=1.0,>=2.0,>=3.0,>=4.0'}, + 'obs_var_dict': {'name': 'PRWE', + 'levels': 'Z0', + 'threshs': '>=1.0,>=2.0,>=3.0,>=4.0'}, + 'interp_dict': {'method': 'NEAREST', + 'points': '1'}, + 'grid': 'G104', + 'obs_name': 'ADPSFC', + 'plots_list': 'time_series'}, + }, 'sfc': { 'CAPEMixedLayer': {'line_type_stat_list': ['SL1L2/RMSE', 'SL1L2/BIAS', 'SL1L2/FBAR_OBAR'], @@ -781,7 +857,7 @@ job_file = os.path.join(plot_jobs_dir, 'job'+str(njobs)) print("Creating job script: "+job_file) job = open(job_file, 'w') - job.write('#!/bin/sh\n') + job.write('#!/bin/bash\n') job.write('set -x\n') job.write('\n') # Set any environment variables for special cases diff --git a/ush/global_det/global_det_atmos_prep.py b/ush/global_det/global_det_atmos_prep.py index f5eb7c8fcd..699a1f465c 100644 --- a/ush/global_det/global_det_atmos_prep.py +++ b/ush/global_det/global_det_atmos_prep.py @@ -324,6 +324,12 @@ arch_anl_file, 'anl', 'full') + if os.path.exists(arch_anl_file): + ecmwf_f000_file = gda_util.format_filler( + arch_fcst_file_format, CDATE_dt, CDATE_dt, + '00', {'model': MODEL} + ) + shutil.copy2(arch_anl_file, ecmwf_f000_file) elif MODEL == 'ukmet': gda_util.prep_prod_ukmet_file(prod_anl_file, arch_anl_file, diff --git a/ush/global_det/global_det_atmos_run_standalone.sh b/ush/global_det/global_det_atmos_run_standalone.sh index ec3dd8b0ca..83c5d631d4 100755 --- a/ush/global_det/global_det_atmos_run_standalone.sh +++ b/ush/global_det/global_det_atmos_run_standalone.sh @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - Global Deterministic Atmospheric diff --git a/ush/global_det/global_det_atmos_set_paths.sh b/ush/global_det/global_det_atmos_set_paths.sh index e333f91061..6e31800328 100755 --- a/ush/global_det/global_det_atmos_set_paths.sh +++ b/ush/global_det/global_det_atmos_set_paths.sh @@ -1,4 +1,4 @@ -#!/bin/sh -xe +#!/bin/bash -xe ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - Global Deterministic Atmospheric diff --git a/ush/global_det/global_det_atmos_set_up.sh b/ush/global_det/global_det_atmos_set_up.sh index 58b186c834..610518fdaf 100755 --- a/ush/global_det/global_det_atmos_set_up.sh +++ b/ush/global_det/global_det_atmos_set_up.sh @@ -1,4 +1,4 @@ -#!/bin/sh -e +#!/bin/bash -e ##--------------------------------------------------------------------------- ##--------------------------------------------------------------------------- ## NCEP EMC Verification System (EVS) - Global Deterministic Atmospheric diff --git a/ush/global_det/global_det_atmos_stats_grid2grid_create_job_scripts.py b/ush/global_det/global_det_atmos_stats_grid2grid_create_job_scripts.py index d852b4d0af..2312b07e8b 100644 --- a/ush/global_det/global_det_atmos_stats_grid2grid_create_job_scripts.py +++ b/ush/global_det/global_det_atmos_stats_grid2grid_create_job_scripts.py @@ -364,7 +364,8 @@ )]}, 'SnowWaterEqv': {'env': {'var1_name': 'WEASD', 'var1_level': 'Z0', - 'var1_options': ''}, + 'var1_options': ("'set_attr_units = " + +'"mm";'+"'")}, 'commands': [gda_util.metplus_command( 'GridStat_fcstGLOBAL_DET.conf' )]}, @@ -525,7 +526,7 @@ +'.conf' )]}, 'Ozone': {'env': {'var1_name': 'O3MR', - 'var1_levels': ("'P100, P70, P50, P30, P20, " + 'var1_levels': ("'P925, P100, P70, P50, P30, P20, " +"P10, P5, P1'"), 'var1_options': ("'set_attr_units = " +'"ppm"; convert(x)=x*1000000' @@ -866,7 +867,7 @@ job_file = os.path.join(JOB_GROUP_jobs_dir, 'job'+str(njobs)) print("Creating job script: "+job_file) job = open(job_file, 'w') - job.write('#!/bin/sh\n') + job.write('#!/bin/bash\n') job.write('set -x\n') job.write('\n') # Set any environment variables for special cases @@ -1017,7 +1018,7 @@ job_file = os.path.join(JOB_GROUP_jobs_dir, 'job'+str(njobs)) print("Creating job script: "+job_file) job = open(job_file, 'w') - job.write('#!/bin/sh\n') + job.write('#!/bin/bash\n') job.write('set -x\n') job.write('\n') # Set any environment variables for special cases @@ -1027,6 +1028,8 @@ ) if all_truth_file_exist: write_job_cmds = True + else: + write_job_cmds = False # Write environment variables for name, value in job_env_dict.items(): job.write('export '+name+'='+value+'\n') @@ -1056,7 +1059,7 @@ job_file = os.path.join(JOB_GROUP_jobs_dir, 'job'+str(njobs)) print("Creating job script: "+job_file) job = open(job_file, 'w') - job.write('#!/bin/sh\n') + job.write('#!/bin/bash\n') job.write('set -x\n') job.write('\n') # Set any environment variables for special cases diff --git a/ush/global_det/global_det_atmos_stats_grid2obs_create_job_scripts.py b/ush/global_det/global_det_atmos_stats_grid2obs_create_job_scripts.py index c0dbc4922d..ed2407f30e 100644 --- a/ush/global_det/global_det_atmos_stats_grid2obs_create_job_scripts.py +++ b/ush/global_det/global_det_atmos_stats_grid2obs_create_job_scripts.py @@ -63,13 +63,28 @@ 'PB2NC_obsPrepbufr.conf' )]} }, + 'ptype': { + 'PrepbufrNAM': {'env': {'prepbufr': 'nam', + 'obs_window': '900', + 'msg_type': 'ADPSFC', + 'obs_bufr_var_list': "'PRWE'"}, + 'commands': [gda_util.metplus_command( + 'PB2NC_obsPrepbufr.conf' + )]}, + 'PrepbufrRAP': {'env': {'prepbufr': 'rap', + 'obs_window': '900', + 'msg_type': 'ADPSFC', + 'obs_bufr_var_list': "'PRWE'"}, + 'commands': [gda_util.metplus_command( + 'PB2NC_obsPrepbufr.conf' + )]}, + }, 'sfc': { 'PrepbufrGDAS': {'env': {'prepbufr': 'gdas', 'obs_window': '1800', 'msg_type': "'ADPUPA, AIRCAR, AIRCFT'", 'obs_bufr_var_list': ("'D_CAPE, D_MLCAPE, " - +"D_PBL'"), - 'valid_hr_inc': '6'}, + +"D_PBL'")}, 'commands': [gda_util.metplus_command( 'PB2NC_obsPrepbufr.conf' )]}, @@ -91,13 +106,37 @@ 'commands': [gda_util.metplus_command( 'PB2NC_obsPrepbufr.conf' )]}, - }, - 'sea_ice': {} + } } reformat_data_model_jobs_dict = { 'pres_levs': {}, - 'sfc': {}, - 'sea_ice': {} + 'ptype': { + 'Rain': {'env': {'var1_name': 'CRAIN', + 'var1_level': 'L0', + 'grid': 'G104'}, + 'commands': [gda_util.metplus_command( + 'RegridDataPlane_fcstGLOBAL_DET.conf' + )]}, + 'Snow': {'env': {'var1_name': 'CSNOW', + 'var1_level': 'L0', + 'grid': 'G104'}, + 'commands': [gda_util.metplus_command( + 'RegridDataPlane_fcstGLOBAL_DET.conf' + )]}, + 'FrzRain': {'env': {'var1_name': 'CFRZR', + 'var1_level': 'L0', + 'grid': 'G104'}, + 'commands': [gda_util.metplus_command( + 'RegridDataPlane_fcstGLOBAL_DET.conf' + )]}, + 'IcePel': {'env': {'var1_name': 'CICEP', + 'var1_level': 'L0', + 'grid': 'G104'}, + 'commands': [gda_util.metplus_command( + 'RegridDataPlane_fcstGLOBAL_DET.conf' + )]}, + }, + 'sfc': {} } ################################################ @@ -105,16 +144,56 @@ ################################################ assemble_data_obs_jobs_dict = { 'pres_levs': {}, - 'sfc': {}, - 'sea_ice': {} + 'ptype': {}, + 'sfc': {} } assemble_data_model_jobs_dict = { 'pres_levs': {}, + 'ptype': { + 'Ptype': {'env': {}, + 'commands': [ + gda_util.python_command( + 'global_det_atmos_stats_grid2obs_' + 'create_merged_ptype.py', + [os.path.join( + '$DATA', '${VERIF_CASE}_${STEP}', + 'METplus_output', + '${RUN}.{valid?fmt=%Y%m%d}', + '$MODEL', '$VERIF_CASE', + 'regrid_data_plane_${VERIF_TYPE}_Rain_' + +'init{init?fmt=%Y%m%d%H}_fhr{lead?fmt=%3H}.nc' + ), + os.path.join( + '$DATA', '${VERIF_CASE}_${STEP}', + 'METplus_output', + '${RUN}.{valid?fmt=%Y%m%d}', + '$MODEL', '$VERIF_CASE', + 'regrid_data_plane_${VERIF_TYPE}_Snow_' + +'init{init?fmt=%Y%m%d%H}_fhr{lead?fmt=%3H}.nc' + ), + os.path.join( + '$DATA', '${VERIF_CASE}_${STEP}', + 'METplus_output', + '${RUN}.{valid?fmt=%Y%m%d}', + '$MODEL', '$VERIF_CASE', + 'regrid_data_plane_${VERIF_TYPE}_FrzRain_' + +'init{init?fmt=%Y%m%d%H}_fhr{lead?fmt=%3H}.nc' + ), + os.path.join( + '$DATA', '${VERIF_CASE}_${STEP}', + 'METplus_output', + '${RUN}.{valid?fmt=%Y%m%d}', + '$MODEL', '$VERIF_CASE', + 'regrid_data_plane_${VERIF_TYPE}_IcePel_' + +'init{init?fmt=%Y%m%d%H}_fhr{lead?fmt=%3H}.nc' + )] + ) + ]} + }, 'sfc': { 'TempAnom2m': {'env': {'prepbufr': 'nam', 'obs_window': '900', 'msg_type': 'ADPSFC', - 'valid_hr_inc': '6', 'var1_fcst_name': 'TMP', 'var1_fcst_levels': 'Z2', 'var1_fcst_options': '', @@ -148,8 +227,7 @@ +'.stat' )] )]}, - }, - 'sea_ice': {} + } } ################################################ @@ -330,22 +408,103 @@ +'obsPrepbufr_VectorWind.conf' )]} }, + 'ptype': { + 'Rain': {'env': {'prepbufr': 'nam', + 'obs_window': '900', + 'msg_type': "'ADPSFC'", + 'var1_fcst_name': 'CRAIN', + 'var1_fcst_levels': 'L0', + 'var1_fcst_options': ("'set_attr_units = " + +'"unitless";'+"'"), + 'var1_fcst_threshs': "'ge1.0'", + 'var1_obs_name': 'PRWE', + 'var1_obs_levels': 'Z0', + 'var1_obs_options': '', + 'var1_obs_threshs': "'ge161&&le163'", + 'met_config_overrides': ''}, + 'commands': [gda_util.metplus_command( + 'PointStat_fcstGLOBAL_DET_' + +'obsPrepbufr_Thresh_Ptype.conf' + )]}, + 'Snow': {'env': {'prepbufr': 'nam', + 'obs_window': '900', + 'msg_type': "'ADPSFC'", + 'var1_fcst_name': 'CSNOW', + 'var1_fcst_levels': 'L0', + 'var1_fcst_options': ("'set_attr_units = " + +'"unitless";'+"'"), + 'var1_fcst_threshs': "'ge1.0'", + 'var1_obs_name': 'PRWE', + 'var1_obs_levels': 'Z0', + 'var1_obs_options': '', + 'var1_obs_threshs': "'ge171&&le173'", + 'met_config_overrides': ''}, + 'commands': [gda_util.metplus_command( + 'PointStat_fcstGLOBAL_DET_' + +'obsPrepbufr_Thresh_Ptype.conf' + )]}, + 'FrzRain': {'env': {'prepbufr': 'nam', + 'obs_window': '900', + 'msg_type': "'ADPSFC'", + 'var1_fcst_name': 'CFRZR', + 'var1_fcst_levels': 'L0', + 'var1_fcst_options': ("'set_attr_units = " + +'"unitless";'+"'"), + 'var1_fcst_threshs': "'ge1.0'", + 'var1_obs_name': 'PRWE', + 'var1_obs_levels': 'Z0', + 'var1_obs_options': '', + 'var1_obs_threshs': "'ge164&&le166'", + 'met_config_overrides': ''}, + 'commands': [gda_util.metplus_command( + 'PointStat_fcstGLOBAL_DET_' + +'obsPrepbufr_Thresh_Ptype.conf' + )]}, + 'IcePel': {'env': {'prepbufr': 'nam', + 'obs_window': '900', + 'msg_type': "'ADPSFC'", + 'var1_fcst_name': 'CICEP', + 'var1_fcst_levels': 'L0', + 'var1_fcst_options': ("'set_attr_units = " + +'"unitless";'+"'"), + 'var1_fcst_threshs': "'ge1.0'", + 'var1_obs_name': 'PRWE', + 'var1_obs_levels': 'Z0', + 'var1_obs_options': '', + 'var1_obs_threshs': "'ge174&&le176'", + 'met_config_overrides': ''}, + 'commands': [gda_util.metplus_command( + 'PointStat_fcstGLOBAL_DET_' + +'obsPrepbufr_Thresh_Ptype.conf' + )]}, + 'Ptype': {'env': {'prepbufr': 'nam', + 'obs_window': '900', + 'msg_type': "'ADPSFC'", + 'met_config_overrides': ''}, + 'commands': [gda_util.metplus_command( + 'PointStat_fcstGLOBAL_DET_' + +'obsPrepbufr_Ptype_MCTC.conf' + )]}, + }, 'sfc': { 'CAPEMixedLayer': {'env': {'prepbufr': 'gdas', 'obs_window': '1800', 'msg_type': "'AIRUPA, ADPUPA, ANYAIR'", - 'valid_hr_inc': '6', 'var1_fcst_name': 'CAPE', 'var1_fcst_levels': "'P90-0'", 'var1_fcst_options': ("'cnt_thresh = " +"[ >0 ];'"), + 'var1_fcst_threshs': ("'ge500, ge1000, " + +"ge1500, ge2000, " + +"ge3000, ge4000, " + +"ge5000'"), 'var1_obs_name': 'MLCAPE', 'var1_obs_levels': "'L0-90000'", 'var1_obs_options': ("'cnt_thresh = " +"[ >0 ]; " +"cnt_logic = " +"UNION;'"), - 'var1_thresh_list': ("'ge500, ge1000, " + 'var1_obs_threshs': ("'ge500, ge1000, " +"ge1500, ge2000, " +"ge3000, ge4000, " +"ge5000'"), @@ -357,18 +516,21 @@ 'CAPESfcBased': {'env': {'prepbufr': 'gdas', 'obs_window': '1800', 'msg_type': "'AIRUPA, ADPUPA, ANYAIR'", - 'valid_hr_inc': '6', 'var1_fcst_name': 'CAPE', 'var1_fcst_levels': 'Z0', 'var1_fcst_options': ("'cnt_thresh = " +"[ >0 ];'"), + 'var1_fcst_threshs': ("'ge500, ge1000, " + +"ge1500, ge2000, " + +"ge3000, ge4000, " + +"ge5000'"), 'var1_obs_name': 'CAPE', 'var1_obs_levels': "'L0-100000'", 'var1_obs_options': ("'cnt_thresh = " +"[ >0 ]; " +"cnt_logic = " +"UNION;'"), - 'var1_thresh_list': ("'ge500, ge1000, " + 'var1_obs_threshs': ("'ge500, ge1000, " +"ge1500, ge2000, " +"ge3000, ge4000, " +"ge5000'"), @@ -385,11 +547,14 @@ 'var1_fcst_options': ("'GRIB_lvl_typ = 215;" +"set_attr_level = " +'"CEILING";'+"'"), + 'var1_fcst_threshs': ("'lt152, lt305, " + +"lt914, ge914, " + +"lt1524, lt3048'"), 'var1_obs_name': 'CEILING', 'var1_obs_levels': 'L0', 'var1_obs_options': '', - 'var1_thresh_list': ("'lt152.4, lt304.8, " - +"lt914.4, ge914.4, " + 'var1_obs_threshs': ("'lt152, lt305, " + +"lt914, ge914, " +"lt1524, lt3048'"), 'met_config_overrides': ''}, 'commands': [gda_util.metplus_command( @@ -399,7 +564,6 @@ 'DailyAvg_TempAnom2m': {'env': {'prepbufr': 'nam', 'obs_window': '900', 'msg_type': 'ADPSFC', - 'valid_hr_inc': '6', 'var1_fcst_name': 'TMP', 'var1_fcst_levels': 'Z2', 'var1_fcst_options': '', @@ -457,10 +621,12 @@ 'var1_fcst_name': 'DPT', 'var1_fcst_levels': 'Z2', 'var1_fcst_options': '', + 'var1_fcst_threshs': ("'ge277.594, ge283.15, " + +"ge288.706, ge294.261'"), 'var1_obs_name': 'DPT', 'var1_obs_levels': 'Z2', 'var1_obs_options': '', - 'var1_thresh_list': ("'ge277.594, ge283.15, " + 'var1_obs_threshs': ("'ge277.594, ge283.15, " +"ge288.706, ge294.261'"), 'met_config_overrides': ''}, 'commands': [gda_util.metplus_command( @@ -470,7 +636,6 @@ 'PBLHeight': {'env': {'prepbufr': 'gdas', 'obs_window': '1800', 'msg_type': "'AIRUPA, ADPUPA, ANYAIR'", - 'valid_hr_inc': '6', 'var1_fcst_name': 'HPBL', 'var1_fcst_levels': 'L0', 'var1_fcst_options': '', @@ -567,12 +732,17 @@ 'var1_fcst_levels': 'Z0', 'var1_fcst_options': ("'censor_thresh = gt16090;" +"censor_val = 16090;'"), + 'var1_fcst_threshs': ("'lt805, lt1609, " + +"lt4828, lt8045, " + +"ge8045, " + +"lt16090'"), 'var1_obs_name': 'VIS', 'var1_obs_levels': 'Z0', 'var1_obs_options': '', - 'var1_thresh_list': ("'lt804.672, lt1609.344, " - +"lt4828.032, lt8046.72, " - +"ge8046.72, lt16093.44'"), + 'var1_obs_threshs': ("'lt805, lt1609, " + +"lt4828, lt8045, " + +"ge8045, " + +"lt16090'"), 'met_config_overrides': ''}, 'commands': [gda_util.metplus_command( 'PointStat_fcstGLOBAL_DET_' @@ -626,8 +796,7 @@ 'PointStat_fcstGLOBAL_DET_' +'obsPrepbufr_VectorWind.conf' )]}, - }, - 'sea_ice': {} + } } ################################################ @@ -703,7 +872,7 @@ job_file = os.path.join(JOB_GROUP_jobs_dir, 'job'+str(njobs)) print("Creating job script: "+job_file) job = open(job_file, 'w') - job.write('#!/bin/sh\n') + job.write('#!/bin/bash\n') job.write('set -x\n') job.write('\n') # Set any environment variables for special cases @@ -714,7 +883,7 @@ 'G004_GLOBAL', 'G004_NHEM', 'G004_SHEM', 'G004_TROPICS', 'Bukovsky_G004_CONUS' ] - elif verif_type == 'sfc': + elif verif_type in ['sfc', 'ptype']: job_env_dict['grid'] = 'G104' mask_list = [ 'Bukovsky_G104_CONUS', 'Bukovsky_G104_CONUS_East', @@ -737,7 +906,8 @@ 'Bukovsky_G104_Southeast', 'Bukovsky_G104_Southwest', 'Bukovsky_G104_SPlains', - 'Bukovsky_G104_SRockies' + 'Bukovsky_G104_SRockies', + 'Alaska_G104' ] for mask in mask_list: if mask == mask_list[0]: @@ -771,7 +941,11 @@ if JOB_GROUP == 'assemble_data': check_truth_files = False elif JOB_GROUP in ['reformat_data', 'generate_stats']: - check_truth_files = True + if verif_type == 'ptype' \ + and JOB_GROUP == 'reformat_data': + check_truth_files = False + else: + check_truth_files = True if check_truth_files: all_truth_file_exist = gda_util.check_truth_files( job_env_dict @@ -857,7 +1031,7 @@ job_file = os.path.join(JOB_GROUP_jobs_dir, 'job'+str(njobs)) print("Creating job script: "+job_file) job = open(job_file, 'w') - job.write('#!/bin/sh\n') + job.write('#!/bin/bash\n') job.write('set -x\n') job.write('\n') # Set any environment variables for special cases @@ -867,6 +1041,8 @@ ) if all_truth_file_exist: write_job_cmds = True + else: + write_job_cmds = False # Write environment variables for name, value in job_env_dict.items(): job.write('export '+name+'='+value+'\n') @@ -896,7 +1072,7 @@ job_file = os.path.join(JOB_GROUP_jobs_dir, 'job'+str(njobs)) print("Creating job script: "+job_file) job = open(job_file, 'w') - job.write('#!/bin/sh\n') + job.write('#!/bin/bash\n') job.write('set -x\n') job.write('\n') # Set any environment variables for special cases diff --git a/ush/global_det/global_det_atmos_stats_grid2obs_create_merged_ptype.py b/ush/global_det/global_det_atmos_stats_grid2obs_create_merged_ptype.py new file mode 100644 index 0000000000..b9658679d0 --- /dev/null +++ b/ush/global_det/global_det_atmos_stats_grid2obs_create_merged_ptype.py @@ -0,0 +1,164 @@ +''' +Program Name: global_det_atmos_stats_grid2obs_create_merged_ptype.py +Contact(s): Mallory Row +Abstract: This creates a merged precipitation type file used for + calculating MET MCTC line type. + 1-rain, 2-snow, 3-freezing rain, 4-ice pellets +''' + +import os +import sys +import netCDF4 as netcdf +import numpy as np +import datetime +import global_det_atmos_util as gda_util + +print("BEGIN: "+os.path.basename(__file__)) + +# Read in environment variables +DATA = os.environ['DATA'] +RUN = os.environ['RUN'] +NET = os.environ['NET'] +VERIF_CASE = os.environ['VERIF_CASE'] +STEP = os.environ['STEP'] +COMPONENT = os.environ['COMPONENT'] +VERIF_TYPE = os.environ['VERIF_TYPE'] +job_name = os.environ['job_name'] +MODEL = os.environ['MODEL'] +DATE = os.environ['DATE'] +valid_hr_start = os.environ['valid_hr_start'] +valid_hr_end = os.environ['valid_hr_end'] +valid_hr_inc = os.environ['valid_hr_inc'] +fhr_list = os.environ['fhr_list'].split(',') + +# Process run time agruments +if len(sys.argv) != 5: + print("ERROR: Not given correct number of run time agruments..." + +os.path.basename(__file__)+" " + +"CRAIN_FILE CSNOW_FILE CFRZR_FILE CICEP_FILE") + sys.exit(1) +input_crain_file_format = sys.argv[1] +input_csnow_file_format = sys.argv[2] +input_cfrzr_file_format = sys.argv[3] +input_cicep_file_format = sys.argv[4] + +# Create merged ptype data +STARTDATE_dt = datetime.datetime.strptime( + DATE+valid_hr_start, '%Y%m%d%H' +) +ENDDATE_dt = datetime.datetime.strptime( + DATE+valid_hr_end, '%Y%m%d%H' +) +valid_date_dt = STARTDATE_dt +while valid_date_dt <= ENDDATE_dt: + for fhr_str in fhr_list: + fhr = int(fhr_str) + init_date_dt = valid_date_dt - datetime.timedelta(hours=fhr) + input_crain_file = gda_util.format_filler( + input_crain_file_format, valid_date_dt, init_date_dt, str(fhr), {} + ) + input_csnow_file = gda_util.format_filler( + input_csnow_file_format, valid_date_dt, init_date_dt, str(fhr), {} + ) + input_cfrzr_file = gda_util.format_filler( + input_cfrzr_file_format, valid_date_dt, init_date_dt, str(fhr), {} + ) + input_cicep_file = gda_util.format_filler( + input_cicep_file_format, valid_date_dt, init_date_dt, str(fhr), {} + ) + all_input_ptype_files_exist = True + for input_ptype_file in [input_crain_file, input_csnow_file, + input_cfrzr_file, input_cicep_file]: + if not os.path.exists(input_ptype_file): + print("WARNING: "+input_ptype_file+" does not exist") + all_input_ptype_files_exist = False + output_dir = os.path.join(DATA, VERIF_CASE+'_'+STEP, + 'METplus_output', + RUN+'.'+valid_date_dt.strftime('%Y%m%d'), + MODEL, VERIF_CASE) + output_merged_ptype_file = os.path.join( + output_dir, 'merged_ptype_'+VERIF_TYPE+'_'+job_name+'_' + +'init'+init_date_dt.strftime('%Y%m%d%H') + +'_fhr'+str(fhr).zfill(3)+'.nc' + ) + if all_input_ptype_files_exist: + print("\nInput CRAIN File: "+input_crain_file) + print("Input CSNOW File: "+input_csnow_file) + print("Input CFRZR File: "+input_cfrzr_file) + print("Input CICEP File: "+input_cicep_file) + input_crain_data = netcdf.Dataset(input_crain_file) + input_csnow_data = netcdf.Dataset(input_csnow_file) + input_cfrzr_data = netcdf.Dataset(input_cfrzr_file) + input_cicep_data = netcdf.Dataset(input_cicep_file) + input_crain = input_crain_data.variables['CRAIN'][:] + input_csnow = input_csnow_data.variables['CSNOW'][:] + input_cfrzr = input_cfrzr_data.variables['CFRZR'][:] + input_cicep = input_cicep_data.variables['CICEP'][:] + print("Output Merged Ptype File: "+output_merged_ptype_file) + if os.path.exists(output_merged_ptype_file): + os.remove(output_merged_ptype_file) + merged_ptype = np.zeros_like(input_crain) + for x in range(len(input_crain[:,0])): + for y in range(len(input_crain[0,:])): + crain_xy = input_crain[x,y] + csnow_xy = input_csnow[x,y] + cfrzr_xy = input_cfrzr[x,y] + cicep_xy = input_cicep[x,y] + ptype_xy_list = [crain_xy, csnow_xy, cfrzr_xy, cicep_xy] + if ptype_xy_list.count(1.0) == 1: # one ptype + if crain_xy == 1.0: + merged_ptype[x,y] = 1 + elif csnow_xy == 1.0: + merged_ptype[x,y] = 2 + elif cfrzr_xy == 1.0: + merged_ptype[x,y] = 3 + elif cicep_xy == 1.0: + merged_ptype[x,y] = 4 + elif ptype_xy_list.count('1.0') > 1: # more than ptype + print("more than 1 ptype") + output_merged_ptype_data = netcdf.Dataset( + output_merged_ptype_file, 'w', format='NETCDF3_CLASSIC' + ) + for attr in input_crain_data.ncattrs(): + output_merged_ptype_data.setncattr( + attr, input_crain_data.getncattr(attr) + ) + for dim in list(input_crain_data.dimensions.keys()): + output_merged_ptype_data.createDimension( + dim, len(input_crain_data.dimensions[dim]) + ) + for var in ['lat', 'lon']: + output_merged_var = output_merged_ptype_data.createVariable( + var, input_crain_data.variables[var].datatype, + input_crain_data.variables[var].dimensions + ) + for k in input_crain_data.variables[var].ncattrs(): + output_merged_var.setncatts( + {k: input_crain_data.variables[var].getncattr(k)} + ) + output_merged_var = output_merged_ptype_data.createVariable( + 'PTYPE', input_crain_data.variables[var].datatype, + input_crain_data.variables[var].dimensions + ) + var = 'CRAIN' + for k in input_crain_data.variables[var].ncattrs(): + if k == 'name': + output_merged_var.setncatts({k: 'PTYPE_L0'}) + elif k == 'long_name': + output_merged_var.setncatts({k: 'Preciptation Type'}) + else: + output_merged_var.setncatts( + {k: input_crain_data.variables[var].getncattr(k)} + ) + output_merged_var[:] = merged_ptype[:] + output_merged_ptype_data.close() + input_crain_data.close() + input_csnow_data.close() + input_cfrzr_data.close() + input_cicep_data.close() + else: + print("\nWARNING: Missing input files cannot make output file " + +output_merged_ptype_file) + valid_date_dt = valid_date_dt + datetime.timedelta(hours=int(valid_hr_inc)) + +print("END: "+os.path.basename(__file__)) diff --git a/ush/global_det/global_det_atmos_submit_batch_job.py b/ush/global_det/global_det_atmos_submit_batch_job.py index ab46e8eab3..708cdaffec 100644 --- a/ush/global_det/global_det_atmos_submit_batch_job.py +++ b/ush/global_det/global_det_atmos_submit_batch_job.py @@ -63,6 +63,7 @@ job_card.write('#PBS -N '+job_name+'\n') job_card.write('#PBS -o '+job_output_filename+'\n') job_card.write('#PBS -e '+job_output_filename+'\n') + job_card.write('#PBS -S /bin/bash\n') job_card.write('#PBS -l walltime=6:00:00\n') job_card.write('#PBS -l debug=true\n') job_card.write('#PBS -l place=vscatter:exclhost,select=1' @@ -70,7 +71,7 @@ job_card.write('\n') job_card.write('cd $PBS_O_WORKDIR\n') elif machine == 'HERA': - job_card.write('#!/bin/sh\n') + job_card.write('#!/bin/bash\n') job_card.write('#SBATCH --qos='+QUEUE+'\n') job_card.write('#SBATCH --account='+ACCOUNT+'\n') job_card.write('#SBATCH --job-name='+job_name+'\n') @@ -79,7 +80,7 @@ job_card.write('#SBATCH --ntasks-per-node='+nproc+'\n') job_card.write('#SBATCH --time=6:00:00\n') elif machine in ['ORION', 'S4', 'JET']: - job_card.write('#!/bin/sh\n') + job_card.write('#!/bin/bash\n') job_card.write('#SBATCH --partition='+PARTITION_BATCH+'\n') job_card.write('#SBATCH --qos='+QUEUE+'\n') job_card.write('#SBATCH --account='+ACCOUNT+'\n') @@ -101,7 +102,7 @@ job_card.write('. $config\n') job_card.write('. '+load_modules_script+'\n') job_card.write('. '+set_paths_script+'\n') - job_card.write('/bin/sh '+verif_case_exscript) + job_card.write('/bin/bash '+verif_case_exscript) # Submit job card print("Submitting "+job_card_filename+" to "+QUEUE) diff --git a/ush/global_det/global_det_atmos_util.py b/ush/global_det/global_det_atmos_util.py index 429558685f..48d622b6cf 100644 --- a/ush/global_det/global_det_atmos_util.py +++ b/ush/global_det/global_det_atmos_util.py @@ -1087,6 +1087,13 @@ def check_model_files(job_dict): 'init_date': init_date_dt, 'forecast_hour': str(fhr) } + if job_dict['VERIF_CASE'] == 'grid2obs': + if job_dict['VERIF_TYPE'] == 'ptype': + fhr_check_dict[str(fhr)]['file1'] = { + 'valid_date': valid_date_dt, + 'init_date': init_date_dt, + 'forecast_hour': str(fhr) + } elif job_dict['JOB_GROUP'] == 'assemble_data': if job_dict['VERIF_CASE'] == 'grid2grid': if job_dict['VERIF_TYPE'] == 'precip': @@ -1185,6 +1192,12 @@ def check_model_files(job_dict): -datetime.timedelta(hours=fhr-12)), 'forecast_hour': str(fhr-12) } + elif job_dict['VERIF_TYPE'] == 'ptype': + fhr_check_dict[str(fhr)]['file1'] = { + 'valid_date': valid_date_dt, + 'init_date': init_date_dt, + 'forecast_hour': str(fhr) + } elif job_dict['JOB_GROUP'] == 'generate_stats': if job_dict['VERIF_CASE'] == 'grid2grid': if job_dict['VERIF_TYPE'] == 'pres_levs' \ @@ -1250,7 +1263,20 @@ def check_model_files(job_dict): model+'.{init?fmt=%Y%m%d%H}.f{lead?fmt=%3H}' ) elif job_dict['VERIF_CASE'] == 'grid2obs': - if job_dict['VERIF_TYPE'] == 'sfc' \ + if job_dict['VERIF_TYPE'] == 'ptype' \ + and job_dict['job_name'] == 'Ptype': + model_file_format = os.path.join(verif_case_dir, + 'METplus_output', + job_dict['RUN']+'.' + +'{valid?fmt=%Y%m%d}', + job_dict['MODEL'], + job_dict['VERIF_CASE'], + 'merged_ptype_' + +job_dict['VERIF_TYPE']+'_' + +job_dict['job_name']+'_' + +'init{init?fmt=%Y%m%d%H}_' + +'fhr{lead?fmt=%3H}.nc') + elif job_dict['VERIF_TYPE'] == 'sfc' \ and job_dict['job_name'] == 'DailyAvg_TempAnom2m': model_file_format = os.path.join(verif_case_dir, 'METplus_output', @@ -1352,7 +1378,7 @@ def check_truth_files(job_dict): ) truth_file_list.append(model_truth_file) elif job_dict['VERIF_CASE'] == 'grid2obs': - if job_dict['VERIF_TYPE'] in ['pres_levs', 'sfc'] \ + if job_dict['VERIF_TYPE'] in ['pres_levs', 'sfc', 'ptype'] \ and 'Prepbufr' in job_dict['job_name']: prepbufr_name = (job_dict['job_name'].replace('Prepbufr', '')\ .lower()) @@ -1378,7 +1404,7 @@ def check_truth_files(job_dict): truth_file_list.append(nccpa_file) n+=1 elif job_dict['VERIF_CASE'] == 'grid2obs': - if job_dict['VERIF_TYPE'] in ['pres_levs', 'sfc']: + if job_dict['VERIF_TYPE'] in ['pres_levs', 'sfc', 'ptype']: pb2nc_file = os.path.join( verif_case_dir, 'METplus_output', job_dict['RUN']+'.'+valid_date_dt.strftime('%Y%m%d'), @@ -1430,7 +1456,7 @@ def check_truth_files(job_dict): ) truth_file_list.append(ghrsst_median_file) elif job_dict['VERIF_CASE'] == 'grid2obs': - if job_dict['VERIF_TYPE'] in ['pres_levs', 'sfc']: + if job_dict['VERIF_TYPE'] in ['pres_levs', 'sfc', 'ptype']: pb2nc_file = os.path.join( verif_case_dir, 'METplus_output', job_dict['RUN']+'.'+valid_date_dt.strftime('%Y%m%d'), @@ -1619,7 +1645,7 @@ def initalize_job_env_dict(verif_type, group, job_env_dict['fhr_inc'] = os.environ[ verif_case_step_abbrev_type+'_fhr_inc' ] - if verif_type in ['pres_levs', 'means', 'sfc']: + if verif_type in ['pres_levs', 'means', 'sfc', 'ptype']: verif_type_valid_hr_list = ( os.environ[verif_case_step_abbrev_type+'_valid_hr_list']\ .split(' ') @@ -1797,29 +1823,16 @@ def format_thresh(thresh): thresh_symbol - threshold with symbols (string) thresh_letters - treshold with letters (string) """ - for opt in ['>=', '>', '==', '!=', '<=', '<', - 'ge', 'gt', 'eq', 'ne', 'le', 'lt']: - if opt in thresh: - thresh_opt = opt - thresh_value = thresh.replace(opt, '') - if thresh_opt in ['>', 'gt']: - thresh_symbol = '>'+thresh_value - thresh_letter = 'gt'+thresh_value - elif thresh_opt in ['>=', 'ge']: - thresh_symbol = '>='+thresh_value - thresh_letter = 'ge'+thresh_value - elif thresh_opt in ['<', 'lt']: - thresh_symbol = '<'+thresh_value - thresh_letter = 'lt'+thresh_value - elif thresh_opt in ['<=', 'le']: - thresh_symbol = '<='+thresh_value - thresh_letter = 'le'+thresh_value - elif thresh_opt in ['==', 'eq']: - thresh_symbol = '=='+thresh_value - thresh_letter = 'eq'+thresh_value - elif thresh_opt in ['!=', 'ne']: - thresh_symbol = '!='+thresh_value - thresh_letter = 'ne'+thresh_value + thresh_symbol = ( + thresh.replace('ge', '>=').replace('gt', '>')\ + .replace('eq', '==').replace('ne', '!=')\ + .replace('le', '<=').replace('lt', '<') + ) + thresh_letter = ( + thresh.replace('>=', 'ge').replace('>', 'gt')\ + .replace('==', 'eq').replace('!=', 'ne')\ + .replace('<=', 'le').replace('<', 'lt') + ) return thresh_symbol, thresh_letter def condense_model_stat_files(logger, input_dir, output_file, model, obs, @@ -1913,14 +1926,6 @@ def build_df(logger, input_dir, output_dir, model_info_dict, met_version_line_type_col_list = get_met_line_type_cols( logger, met_info_dict['root'], met_info_dict['version'], line_type ) - df_dtype_dict = {} - float_idx = met_version_line_type_col_list.index('TOTAL') - for col in met_version_line_type_col_list: - col_idx = met_version_line_type_col_list.index(col) - if col_idx < float_idx: - df_dtype_dict[col] = str - else: - df_dtype_dict[col] = np.float64 for model_num in list(model_info_dict.keys()): model_num_name = ( model_num+'/'+model_info_dict[model_num]['name'] @@ -1930,10 +1935,21 @@ def build_df(logger, input_dir, output_dir, model_info_dict, [[model_num_name], met_format_valid_dates], names=['model', 'valid_dates'] ) - model_num_df = pd.DataFrame(np.nan, index=model_num_df_index, - columns=met_version_line_type_col_list) model_dict = model_info_dict[model_num] + condensed_model_file = os.path.join( + input_dir, model_num+'_'+model_dict['name']+'.stat' + ) if len(dates) != 0: + if not os.path.exists(condensed_model_file): + write_condensed_stat_file = True + else: + write_condensed_stat_file = False + if write_condensed_stat_file: + condense_model_stat_files( + logger, input_dir, condensed_model_file, model_dict['name'], + model_dict['obs_name'], grid, vx_mask, + fcst_var_name, obs_var_name, line_type + ) parsed_model_stat_file = os.path.join( output_dir, 'fcst'+model_dict['name']+'_' @@ -1958,16 +1974,38 @@ def build_df(logger, input_dir, output_dir, model_info_dict, else: write_parse_stat_file = False read_parse_stat_file = False - if write_parse_stat_file: - condensed_model_file = os.path.join( - input_dir, model_num+'_'+model_dict['name']+'.stat' + if os.path.exists(condensed_model_file) and line_type == 'MCTC': + tmp_df = pd.read_csv( + condensed_model_file, sep=" ", skiprows=1, + skipinitialspace=True, + keep_default_na=False, dtype='str', header=None ) - if not os.path.exists(condensed_model_file): - condense_model_stat_files( - logger, input_dir, condensed_model_file, model_dict['name'], - model_dict['obs_name'], grid, vx_mask, - fcst_var_name, obs_var_name, line_type + if len(tmp_df) > 0: + ncat = int(tmp_df[25][0]) + new_met_version_line_type_col_list = [] + for col in met_version_line_type_col_list: + if col == '(N_CAT)': + new_met_version_line_type_col_list.append('N_CAT') + elif col == 'F[0-9]*_O[0-9]*': + fcount = 1 + ocount = 1 + totcount = 1 + while totcount <= ncat*ncat: + new_met_version_line_type_col_list.append( + 'F'+str(fcount)+'_'+'O'+str(ocount) + ) + if ocount < ncat: + ocount+=1 + elif ocount == ncat: + ocount = 1 + fcount+=1 + totcount+=1 + else: + new_met_version_line_type_col_list.append(col) + met_version_line_type_col_list = ( + new_met_version_line_type_col_list ) + if write_parse_stat_file: if fcst_var_thresh != 'NA': fcst_var_thresh_symbol, fcst_vat_thresh_letter = ( format_thresh(fcst_var_thresh) @@ -2035,6 +2073,8 @@ def build_df(logger, input_dir, output_dir, model_info_dict, +f"at {parsed_model_stat_file}") else: logger.debug(f"Could not create {parsed_model_stat_file}") + model_num_df = pd.DataFrame(np.nan, index=model_num_df_index, + columns=met_version_line_type_col_list) if read_parse_stat_file: if os.path.exists(parsed_model_stat_file): logger.debug(f"Reading {parsed_model_stat_file} for " @@ -2044,6 +2084,14 @@ def build_df(logger, input_dir, output_dir, model_info_dict, skipinitialspace=True, names=met_version_line_type_col_list, na_values=['NA'], header=None ) + df_dtype_dict = {} + float_idx = met_version_line_type_col_list.index('TOTAL') + for col in met_version_line_type_col_list: + col_idx = met_version_line_type_col_list.index(col) + if col_idx < float_idx: + df_dtype_dict[col] = str + else: + df_dtype_dict[col] = np.float64 model_stat_file_df = model_stat_file_df.astype(df_dtype_dict) for valid_date in met_format_valid_dates: model_stat_file_df_valid_date_idx_list = ( @@ -2315,6 +2363,8 @@ def calculate_stat(logger, data_df, line_type, stat): BAGSS = data_df.loc[:]['BAGSS'] BAGSS_BCL = data_df.loc[:]['BAGSS_BCL'] BAGSS_BCU = data_df.loc[:]['BAGSS_BCU'] + elif line_type == 'MCTC': + F1_O1 = data_df.loc[:]['F1_O1'] elif line_type == 'NBRCNT': FBS = data_df.loc[:]['FBS'] FBS_BCL = data_df.loc[:]['FBS_BCL'] @@ -2388,6 +2438,9 @@ def calculate_stat(logger, data_df, line_type, stat): elif stat == 'CSI': # Critical Success Index' if line_type == 'CTC': stat_df = FY_OY/(FY_OY + FY_ON + FN_OY) + elif stat == 'F1_O1': # Count of forecast category 1 and observation category 1 + if line_type == 'MCTC': + stat_df = F1_O1 elif stat in ['ETS', 'GSS']: # Equitable Threat Score/Gilbert Skill Score if line_type == 'CTC': TOTAL = FY_OY + FY_ON + FN_OY + FN_ON diff --git a/versions/run.ver b/versions/run.ver index ae010e7f53..aa2e671fa0 100755 --- a/versions/run.ver +++ b/versions/run.ver @@ -43,6 +43,8 @@ export sref_ver=v7.1 export rap_ver=v5.1 export aqm_ver=v6.1 export hrrr_ver=v4.1 +export gfs_ver=v16.3 +export gefs_ver=v12.3 export gfs_ver=v16.2 export gefs_ver=v12.2 export hiresw_ver=v8.1 diff --git a/versions/run_global_det_atmos_WCOSS2.ver b/versions/run_global_det_atmos_WCOSS2.ver index b590d5d969..e295b5b27b 100644 --- a/versions/run_global_det_atmos_WCOSS2.ver +++ b/versions/run_global_det_atmos_WCOSS2.ver @@ -11,8 +11,8 @@ export intel_ver=19.1.3.304 export jasper_ver=2.0.25 export libjpeg_ver=9c export libpng_ver=1.6.37 -export met_ver=10.1.1 -export metplus_ver=4.1.1 +export met_ver=10.1.2 +export metplus_ver=4.1.4 export nco_ver=4.7.9 export netcdf_ver=4.7.4 export PrgEnv_intel_ver=8.1.0