Skip to content

Commit fa0d301

Browse files
incremental change for plots 06/18/2023 NOAA-EMC#1
1 parent 5d71a32 commit fa0d301

11 files changed

+710
-24
lines changed

parm/metplus_config/stats/global_ens/chem_grid2grid/SeriesAnalysis_fcstGEFS_obsABI.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ SERIES_ANALYSIS_ONCE_PER_FIELD = False
6161

6262
## SERIES_ANALYSIS_OUTPUT_PREFIX = {ENV[MODELNAME]}_{ENV[DATA_TYPE]}_TAOD
6363
SERIES_ANALYSIS_OUTPUT_PREFIX = {ENV[OutputId]}
64-
SERIES_ANALYSIS_DESC = NA
64+
SERIES_ANALYSIS_DESC = G004
6565

6666
# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary
6767
# See MET User's Guide for more information

parm/metplus_config/stats/global_ens/chem_grid2grid/SeriesAnalysis_fcstGEFS_obsVIIRS.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ SERIES_ANALYSIS_ONCE_PER_FIELD = False
6262

6363
## SERIES_ANALYSIS_OUTPUT_PREFIX = {ENV[MODELNAME]}_{ENV[DATA_TYPE]}_TAOD
6464
SERIES_ANALYSIS_OUTPUT_PREFIX = {ENV[OutputId]}
65-
SERIES_ANALYSIS_DESC = NA
65+
SERIES_ANALYSIS_DESC = G004
6666

6767
#SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE_PER_LEAD
6868
#SERIES_ANALYSIS_RUNTIME_FREQ = RUN_ONCE_PER_INIT_OR_VALID

parm/metplus_config/stats/global_ens/chem_grid2obs/PointStat_fcstGEFSAero_obsAERONET.conf

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ LOG_METPLUS = {LOG_DIR}/metplus_{ENV[MODELNAME]}_{ENV[RUN]}_{ENV[ObsType]}.log.{
2626

2727
VALID_TIME_FMT = %Y%m%d%H
2828

29-
MODEL = {ENV[CMODEL]}
29+
MODEL = {ENV[VMODEL]}
3030
OBTYPE = {ENV[ObsType]}
3131

3232
LEAD_SEQ = {ENV[fcsthours]}
@@ -42,7 +42,7 @@ OBS_POINT_STAT_WINDOW_END = 1800
4242
#OBS_WINDOW_BEGIN = -3600
4343
#OBS_WINDOW_END = 3600
4444

45-
POINT_STAT_DESC = NA
45+
POINT_STAT_DESC = G004
4646

4747
FCST_VAR1_NAME = AOTK
4848
FCST_VAR1_LEVELS = L0

parm/metplus_config/stats/global_ens/chem_grid2obs/PointStat_fcstGEFSAero_obsAERONET_FULL.conf

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ LOG_METPLUS = {LOG_DIR}/metplus_{ENV[MODELNAME]}_{ENV[RUN]}_{ENV[ObsType]}.log.{
2626

2727
VALID_TIME_FMT = %Y%m%d%H
2828

29-
MODEL = {ENV[CMODEL]}
29+
MODEL = {ENV[VMODEL]}
3030
OBTYPE = {ENV[ObsType]}
3131

3232
LEAD_SEQ = {ENV[fcsthours]}
@@ -42,7 +42,7 @@ OBS_POINT_STAT_WINDOW_END = 1800
4242
#OBS_WINDOW_BEGIN = -3600
4343
#OBS_WINDOW_END = 3600
4444

45-
POINT_STAT_DESC = NA
45+
POINT_STAT_DESC = G004
4646

4747
FCST_VAR1_NAME = AOTK
4848
FCST_VAR1_LEVELS = A0

parm/metplus_config/stats/global_ens/chem_grid2obs/PointStat_fcstGEFSAero_obsAIRNOW.conf

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ LOG_METPLUS = {LOG_DIR}/metplus_{ENV[MODELNAME]}_{ENV[RUN]}_{ENV[ObsType]}.log.{
2424

2525
VALID_TIME_FMT = %Y%m%d%H
2626

27-
MODEL = {ENV[CMODEL]}
27+
MODEL = {ENV[VMODEL]}
2828
OBTYPE = {ENV[ObsType]}
2929

3030
LEAD_SEQ = {ENV[fcsthours]}
@@ -49,7 +49,7 @@ VALID_INCREMENT = 1H
4949
OBS_WINDOW_BEGIN = -3600
5050
OBS_WINDOW_END = -3600
5151

52-
POINT_STAT_DESC = NA
52+
POINT_STAT_DESC = G004
5353

5454
POINT_STAT_MASK_POLY = {ENV[MASK_DIR]}/G004_GLOBAL.nc, {ENV[MASK_DIR]}/G004_NAMERICA.nc, {ENV[MASK_DIR]}/G004_SAMERICA.nc, {ENV[MASK_DIR]}/G004_AFRICA.nc, {ENV[MASK_DIR]}/G004_ASIA.nc, {ENV[MASK_DIR]}/Bukovsky_G004_CONUS.nc, {ENV[MASK_DIR]}/Bukovsky_G004_CONUS_East.nc, {ENV[MASK_DIR]}/Bukovsky_G004_CONUS_West.nc, {ENV[MASK_DIR]}/Bukovsky_G004_CONUS_Central.nc, {ENV[MASK_DIR]}/Bukovsky_G004_CONUS_South.nc
5555

parm/metplus_config/stats/global_ens/chem_grid2obs/PointStat_fcstGEFSAero_obsAIRNOW_FULL.conf

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ LOG_METPLUS = {LOG_DIR}/metplus_{ENV[MODELNAME]}_{ENV[RUN]}_{ENV[ObsType]}.log.{
2424

2525
VALID_TIME_FMT = %Y%m%d%H
2626

27-
MODEL = {ENV[CMODEL]}
27+
MODEL = {ENV[VMODEL]}
2828
OBTYPE = {ENV[ObsType]}
2929

3030
LEAD_SEQ = {ENV[fcsthours]}
@@ -49,7 +49,7 @@ VALID_INCREMENT = 1H
4949
OBS_WINDOW_BEGIN = -3600
5050
OBS_WINDOW_END = -3600
5151

52-
POINT_STAT_DESC = NA
52+
POINT_STAT_DESC = G004
5353

5454
POINT_STAT_POLY = {ENV[MASK_DIR]}/Bukovsky_G148_CONUS.nc, {ENV[MASK_DIR]}/Bukovsky_G148_CONUS_East.nc, {ENV[MASK_DIR]}/Bukovsky_G148_CONUS_West.nc, {ENV[MASK_DIR]}/Bukovsky_G148_CONUS_South.nc, {ENV[MASK_DIR]}/Bukovsky_G148_CONUS_Central.nc, {ENV[MASK_DIR]}/Bukovsky_G148_Appalachia.nc, {ENV[MASK_DIR]}/Bukovsky_G148_CPlains.nc, {ENV[MASK_DIR]}/Bukovsky_G148_DeepSouth.nc, {ENV[MASK_DIR]}/Bukovsky_G148_GreatBasin.nc, {ENV[MASK_DIR]}/Bukovsky_G148_GreatLakes.nc, {ENV[MASK_DIR]}/Bukovsky_G148_Mezquital.nc, {ENV[MASK_DIR]}/Bukovsky_G148_MidAtlantic.nc, {ENV[MASK_DIR]}/Bukovsky_G148_NorthAtlantic.nc, {ENV[MASK_DIR]}/Bukovsky_G148_NPlains.nc, {ENV[MASK_DIR]}/Bukovsky_G148_NRockies.nc, {ENV[MASK_DIR]}/Bukovsky_G148_PacificNW.nc, {ENV[MASK_DIR]}/Bukovsky_G148_PacificSW.nc, {ENV[MASK_DIR]}/Bukovsky_G148_Prairie.nc, {ENV[MASK_DIR]}/Bukovsky_G148_Southeast.nc, {ENV[MASK_DIR]}/Bukovsky_G148_Southwest.nc, {ENV[MASK_DIR]}/Bukovsky_G148_SPlains.nc, {ENV[MASK_DIR]}/Bukovsky_G148_SRockies.nc
5555

scripts/stats/global_ens/exevs_global_ens_chem_grid2obs_stats.sh

+3-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ export finalstat=${DATA}/final # config variable
2323
mkdir -p ${finalstat}
2424

2525
export CMODEL=`echo ${MODELNAME} | tr a-z A-Z` # define config variable
26+
vmodel=`echo ${gefs_ver} | awk -F"." '{print $1}'`
27+
export VMODEL=${MODELNAME}${vmodel}
2628

2729
export CONFIGevs=${CONFIGevs:-${PARMevs}/metplus_config/${STEP}/${COMPONENT}/${RUN}_${VERIF_CASE}}
2830
export config_common=${PARMevs}/metplus_config/machine.conf
@@ -182,7 +184,7 @@ for ObsType in ${grid2obs_list}; do
182184

183185
done
184186
if [ "${flag_send_message}" == "YES" ]; then
185-
export subject="${OBSTYPE} Obs or ${CMODLE} Fcst files Missing for EVS ${COMPONENT} ${RUN} ${VERIF_CASE}"
187+
export subject="${OBSTYPE} Obs or ${CMODEL} Fcst files Missing for EVS ${COMPONENT} ${RUN} ${VERIF_CASE}"
186188
echo "Job ID: ${jobid}" >> mailmsg
187189
cat mailmsg | mail -s "${subject}" ${MAILTO}
188190
fi

ush/global_ens_chem/global_ens_chem_check_settings.py

+10-6
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@
5656
os.environ[VERIF_CASE_STEP_abbrev+'_type_list'].split(' ')
5757
)
5858
valid_VERIF_CASE_STEP_type_opts_dict = {
59-
'RUN_GRID2GRID_PLOTS': ['sfc' ],
60-
'RUN_GRID2OBS_PLOTS': ['sfc' ]
59+
'RUN_GRID2GRID_PLOTS': ['aeronet', 'airnow'],
60+
'RUN_GRID2OBS_PLOTS': ['aeronet', 'airnow']
6161
}
6262
for VERIF_CASE_STEP_type in VERIF_CASE_STEP_type_list:
6363
if VERIF_CASE_STEP_type \
@@ -109,10 +109,12 @@
109109

110110
verif_case_step_settings_dict = {
111111
'RUN_GRID2GRID_PLOTS': {
112-
'sfc': ['init_hr_list', 'valid_hr_list']
112+
'aeronet': ['init_hr_list', 'valid_hr_list'],
113+
'arinow': ['init_hr_list', 'valid_hr_list']
113114
},
114115
'RUN_GRID2OBS_PLOTS': {
115-
'sfc': ['init_hr_list', 'valid_hr_list']
116+
'aeronet': ['init_hr_list', 'valid_hr_list'],
117+
'airnow': ['init_hr_list', 'valid_hr_list']
116118
}
117119
}
118120

@@ -166,10 +168,12 @@
166168
+'_model_plot_name_list')
167169
verif_case_step_check_len_dict = {
168170
'RUN_GRID2GRID_PLOTS': {
169-
'sfc': []
171+
'aeronet': [],
172+
'airnow': []
170173
},
171174
'RUN_GRID2OBS_PLOTS': {
172-
'sfc': []
175+
'aeronet': [],
176+
'airnow': []
173177
},
174178
}
175179
for verif_type in verif_type_list:

ush/global_ens_chem/global_ens_chem_get_data_files.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
source_model_date_stat_file = os.path.join(
4646
model_evs_data_dir+'.'+date_dt.strftime('%Y%m%d'),
4747
'evs.stats.'+model+'.'+RUN+'.'+VERIF_CASE+'.'
48-
+'v'+date_dt.strftime('%Y%m%d')+'.stat'
48+
+obstype+"_"+obsvar+"."+'v'+date_dt.strftime('%Y%m%d')+'.stat'
4949
)
5050
else:
5151
## model_evs_data_dir = ${COMIN}/stats/${COMPONENT}/gefs

ush/global_ens_chem/global_ens_chem_plots_grid2obs_create_job_scripts.py

+60-6
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
filter_stats_jobs_dict = copy.deepcopy(condense_stats_jobs_dict)
100100
#### aeronet
101101
for aeronet_job in list(filter_stats_jobs_dict['aeronet'].keys()):
102+
## column of "DESC" values
102103
filter_stats_jobs_dict['aeronet'][aeronet_job]['grid'] = 'G004'
103104
if 'aeronet' in aeronet_job:
104105
filter_stats_jobs_dict['aeronet'][aeronet_job]['interps'] = ['NEAREST/1']
@@ -119,6 +120,25 @@
119120
filter_stats_jobs_dict['aeronet'][aeronet_job]['obs_var_dict']['threshs'] = (
120121
aeronet_job_obs_threshs
121122
)
123+
if aeronet_job in ['AOD']:
124+
filter_stats_jobs_dict['aeronet'][aeronet_job]['line_types'] = ['SL1L2']
125+
filter_stats_jobs_dict['aeronet'][f"{aeronet_job}_Thresh"] = copy.deepcopy(
126+
filter_stats_jobs_dict['aeronet'][aeronet_job]
127+
)
128+
filter_stats_jobs_dict['aeronet'][f"{aeronet_job}_Thresh"]['line_types'] = [
129+
'CTC'
130+
]
131+
if aeronet_job == 'Dewpoint2m':
132+
(filter_stats_jobs_dict['aeronet'][f"{aeronet_job}_Thresh"]\
133+
['fcst_var_dict']['threshs']) = [
134+
'ge0.1', 'ge0.2', 'ge0.4', 'ge0.6', 'ge0.8', 'ge1.0',
135+
'ge1.5', 'ge2.0'
136+
]
137+
(filter_stats_jobs_dict['aeronet'][f"{aeronet_job}_Thresh"]\
138+
['obs_var_dict']['threshs']) = [
139+
'ge0.1', 'ge0.2', 'ge0.4', 'ge0.6', 'ge0.8', 'ge1.0',
140+
'ge1.5', 'ge2.0'
141+
]
122142
#### airnow
123143
for airnow_job in list(filter_stats_jobs_dict['airnow'].keys()):
124144
filter_stats_jobs_dict['airnow'][airnow_job]['grid'] = 'G004'
@@ -141,6 +161,25 @@
141161
filter_stats_jobs_dict['airnow'][airnow_job]['obs_var_dict']['threshs'] = (
142162
airnow_job_obs_threshs
143163
)
164+
if arinow_job in ['PM25']:
165+
filter_stats_jobs_dict['arinow'][arinow_job]['line_types'] = ['SL1L2']
166+
filter_stats_jobs_dict['arinow'][f"{arinow_job}_Thresh"] = copy.deepcopy(
167+
filter_stats_jobs_dict['arinow'][arinow_job]
168+
)
169+
filter_stats_jobs_dict['arinow'][f"{arinow_job}_Thresh"]['line_types'] = [
170+
'CTC'
171+
]
172+
if arinow_job == 'PM25':
173+
(filter_stats_jobs_dict['arinow'][f"{arinow_job}_Thresh"]\
174+
['fcst_var_dict']['threshs']) = [
175+
'gt5', 'gt10', 'gt15', 'gt20', 'gt25', 'gt30', 'gt35',
176+
'gt40', 'gt45', 'gt50', 'gt55', 'gt60', 'gt65'
177+
]
178+
(filter_stats_jobs_dict['arinow'][f"{arinow_job}_Thresh"]\
179+
['obs_var_dict']['threshs']) = [
180+
'gt5', 'gt10', 'gt15', 'gt20', 'gt25', 'gt30', 'gt35',
181+
'gt40', 'gt45', 'gt50', 'gt55', 'gt60', 'gt65'
182+
]
144183
if JOB_GROUP == 'filter_stats':
145184
JOB_GROUP_dict = filter_stats_jobs_dict
146185

@@ -152,7 +191,7 @@
152191
for aeronet_job in list(make_plots_jobs_dict['aeronet'].keys()):
153192
del make_plots_jobs_dict['aeronet'][aeronet_job]['line_types']
154193
if aeronet_job in ['AOD']:
155-
aeronet_job_line_type_stats = ['SL1L2/RMSE', 'SL1L2/ME', 'CTC/FBIAS']
194+
aeronet_job_line_type_stats = ['SL1L2/RMSE', 'SL1L2/ME', 'CTC/CSI']
156195
make_plots_jobs_dict['aeronet'][aeronet_job+'_FBAR_OBAR'] = copy.deepcopy(
157196
make_plots_jobs_dict['aeronet'][aeronet_job]
158197
)
@@ -166,14 +205,19 @@
166205
make_plots_jobs_dict['aeronet'][aeronet_job+'_FBAR_OBAR']['plots'] = [
167206
'time_series', 'lead_average', 'threshold_average'
168207
]
208+
elif aeronet_job in ['AOD_Thresh']:
209+
aeronet_job_line_type_stats = ['CTC/CSI']
169210
else:
170211
aeronet_job_line_type_stats = ['SL1L2/RMSE', 'SL1L2/ME']
212+
171213
make_plots_jobs_dict['aeronet'][aeronet_job]['line_type_stats'] = (
172214
aeronet_job_line_type_stats
173215
)
174216

175217
if aeronet_job in ['AOD']:
176218
aeronet_job_plots = ['time_series', 'lead_average', 'threshold_average']
219+
elif aeronet_job in ['AOD_Thresh']:
220+
aeronet_job_plots = ['time_series', 'lead_average', 'threshold_average']
177221
else:
178222
aeronet_job_plots = ['time_series', 'lead_average']
179223
make_plots_jobs_dict['aeronet'][aeronet_job]['plots'] = aeronet_job_plots
@@ -191,7 +235,7 @@
191235
for airnow_job in list(make_plots_jobs_dict['airnow'].keys()):
192236
del make_plots_jobs_dict['airnow'][airnow_job]['line_types']
193237
if airnow_job in ['PM25']:
194-
airnow_job_line_type_stats = ['SL1L2/RMSE', 'SL1L2/ME', 'CTC/FBIAS']
238+
airnow_job_line_type_stats = ['SL1L2/RMSE', 'SL1L2/ME', 'CTC/CSI']
195239
make_plots_jobs_dict['airnow'][airnow_job+'_FBAR_OBAR'] = copy.deepcopy(
196240
make_plots_jobs_dict['airnow'][airnow_job]
197241
)
@@ -205,6 +249,8 @@
205249
make_plots_jobs_dict['airnow'][airnow_job+'_FBAR_OBAR']['plots'] = [
206250
'time_series', 'lead_average', 'threshold_average'
207251
]
252+
elif airnow_job in ['PM25_Thresh']:
253+
airnow_job_line_type_stats = ['CTC/CSI']
208254
else:
209255
airnow_job_line_type_stats = ['SL1L2/RMSE', 'SL1L2/ME']
210256
make_plots_jobs_dict['airnow'][airnow_job]['line_type_stats'] = (
@@ -213,6 +259,8 @@
213259

214260
if airnow_job in ['PM25']:
215261
airnow_job_plots = ['time_series', 'lead_average', 'threshold_average']
262+
elif airnow_job in ['PM25_Thresh']:
263+
airnow_job_plots = ['time_series', 'lead_average', 'threshold_average']
216264
else:
217265
airnow_job_plots = ['time_series', 'lead_average']
218266
make_plots_jobs_dict['airnow'][airnow_job]['plots'] = airnow_job_plots
@@ -233,10 +281,16 @@
233281
#### tar_images jobs
234282
################################################
235283
tar_images_jobs_dict = {
236-
'sfc': {
284+
'aeronet': {
285+
'search_base_dir': os.path.join(DATA, f"{VERIF_CASE}_{STEP}",
286+
'plot_output', f"{RUN}.{end_date}",
287+
f"{VERIF_CASE}_aeronet",
288+
f"last{NDAYS}days")
289+
}
290+
'airnow': {
237291
'search_base_dir': os.path.join(DATA, f"{VERIF_CASE}_{STEP}",
238292
'plot_output', f"{RUN}.{end_date}",
239-
f"{VERIF_CASE}_sfc",
293+
f"{VERIF_CASE}_airnow",
240294
f"last{NDAYS}days")
241295
}
242296
}
@@ -503,12 +557,12 @@
503557
gda_util.make_dir(output_dir)
504558
run_global_ens_chem_plots = ['global_ens_chem_plots.py']
505559
if evs_run_mode == 'production' and \
506-
verif_type in ['pres_levs', 'sfc'] and \
560+
verif_type in ['aeronet', 'airnow'] and \
507561
job_env_dict['plot'] in \
508562
['lead_average', 'lead_by_level',
509563
'lead_by_date']:
510564
run_global_ens_chem_plots.append(
511-
'global_ens_chem_plots_production_tof240.py'
565+
'global_ens_chem_plots_production_tof120.py'
512566
)
513567
for run_global_ens_chem_plot in run_global_ens_chem_plots:
514568
# Create job file

0 commit comments

Comments
 (0)