|
99 | 99 | filter_stats_jobs_dict = copy.deepcopy(condense_stats_jobs_dict)
|
100 | 100 | #### aeronet
|
101 | 101 | for aeronet_job in list(filter_stats_jobs_dict['aeronet'].keys()):
|
| 102 | + ## column of "DESC" values |
102 | 103 | filter_stats_jobs_dict['aeronet'][aeronet_job]['grid'] = 'G004'
|
103 | 104 | if 'aeronet' in aeronet_job:
|
104 | 105 | filter_stats_jobs_dict['aeronet'][aeronet_job]['interps'] = ['NEAREST/1']
|
|
119 | 120 | filter_stats_jobs_dict['aeronet'][aeronet_job]['obs_var_dict']['threshs'] = (
|
120 | 121 | aeronet_job_obs_threshs
|
121 | 122 | )
|
| 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 | + ] |
122 | 142 | #### airnow
|
123 | 143 | for airnow_job in list(filter_stats_jobs_dict['airnow'].keys()):
|
124 | 144 | filter_stats_jobs_dict['airnow'][airnow_job]['grid'] = 'G004'
|
|
141 | 161 | filter_stats_jobs_dict['airnow'][airnow_job]['obs_var_dict']['threshs'] = (
|
142 | 162 | airnow_job_obs_threshs
|
143 | 163 | )
|
| 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 | + ] |
144 | 183 | if JOB_GROUP == 'filter_stats':
|
145 | 184 | JOB_GROUP_dict = filter_stats_jobs_dict
|
146 | 185 |
|
|
152 | 191 | for aeronet_job in list(make_plots_jobs_dict['aeronet'].keys()):
|
153 | 192 | del make_plots_jobs_dict['aeronet'][aeronet_job]['line_types']
|
154 | 193 | 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'] |
156 | 195 | make_plots_jobs_dict['aeronet'][aeronet_job+'_FBAR_OBAR'] = copy.deepcopy(
|
157 | 196 | make_plots_jobs_dict['aeronet'][aeronet_job]
|
158 | 197 | )
|
|
166 | 205 | make_plots_jobs_dict['aeronet'][aeronet_job+'_FBAR_OBAR']['plots'] = [
|
167 | 206 | 'time_series', 'lead_average', 'threshold_average'
|
168 | 207 | ]
|
| 208 | + elif aeronet_job in ['AOD_Thresh']: |
| 209 | + aeronet_job_line_type_stats = ['CTC/CSI'] |
169 | 210 | else:
|
170 | 211 | aeronet_job_line_type_stats = ['SL1L2/RMSE', 'SL1L2/ME']
|
| 212 | + |
171 | 213 | make_plots_jobs_dict['aeronet'][aeronet_job]['line_type_stats'] = (
|
172 | 214 | aeronet_job_line_type_stats
|
173 | 215 | )
|
174 | 216 |
|
175 | 217 | if aeronet_job in ['AOD']:
|
176 | 218 | 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'] |
177 | 221 | else:
|
178 | 222 | aeronet_job_plots = ['time_series', 'lead_average']
|
179 | 223 | make_plots_jobs_dict['aeronet'][aeronet_job]['plots'] = aeronet_job_plots
|
|
191 | 235 | for airnow_job in list(make_plots_jobs_dict['airnow'].keys()):
|
192 | 236 | del make_plots_jobs_dict['airnow'][airnow_job]['line_types']
|
193 | 237 | 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'] |
195 | 239 | make_plots_jobs_dict['airnow'][airnow_job+'_FBAR_OBAR'] = copy.deepcopy(
|
196 | 240 | make_plots_jobs_dict['airnow'][airnow_job]
|
197 | 241 | )
|
|
205 | 249 | make_plots_jobs_dict['airnow'][airnow_job+'_FBAR_OBAR']['plots'] = [
|
206 | 250 | 'time_series', 'lead_average', 'threshold_average'
|
207 | 251 | ]
|
| 252 | + elif airnow_job in ['PM25_Thresh']: |
| 253 | + airnow_job_line_type_stats = ['CTC/CSI'] |
208 | 254 | else:
|
209 | 255 | airnow_job_line_type_stats = ['SL1L2/RMSE', 'SL1L2/ME']
|
210 | 256 | make_plots_jobs_dict['airnow'][airnow_job]['line_type_stats'] = (
|
|
213 | 259 |
|
214 | 260 | if airnow_job in ['PM25']:
|
215 | 261 | 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'] |
216 | 264 | else:
|
217 | 265 | airnow_job_plots = ['time_series', 'lead_average']
|
218 | 266 | make_plots_jobs_dict['airnow'][airnow_job]['plots'] = airnow_job_plots
|
|
233 | 281 | #### tar_images jobs
|
234 | 282 | ################################################
|
235 | 283 | 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': { |
237 | 291 | 'search_base_dir': os.path.join(DATA, f"{VERIF_CASE}_{STEP}",
|
238 | 292 | 'plot_output', f"{RUN}.{end_date}",
|
239 |
| - f"{VERIF_CASE}_sfc", |
| 293 | + f"{VERIF_CASE}_airnow", |
240 | 294 | f"last{NDAYS}days")
|
241 | 295 | }
|
242 | 296 | }
|
|
503 | 557 | gda_util.make_dir(output_dir)
|
504 | 558 | run_global_ens_chem_plots = ['global_ens_chem_plots.py']
|
505 | 559 | if evs_run_mode == 'production' and \
|
506 |
| - verif_type in ['pres_levs', 'sfc'] and \ |
| 560 | + verif_type in ['aeronet', 'airnow'] and \ |
507 | 561 | job_env_dict['plot'] in \
|
508 | 562 | ['lead_average', 'lead_by_level',
|
509 | 563 | 'lead_by_date']:
|
510 | 564 | run_global_ens_chem_plots.append(
|
511 |
| - 'global_ens_chem_plots_production_tof240.py' |
| 565 | + 'global_ens_chem_plots_production_tof120.py' |
512 | 566 | )
|
513 | 567 | for run_global_ens_chem_plot in run_global_ens_chem_plots:
|
514 | 568 | # Create job file
|
|
0 commit comments