Skip to content

Commit 3178acd

Browse files
committed
Clean up plots logging messages
Refs: NOAA-EMC#1
1 parent 8d554a6 commit 3178acd

23 files changed

+642
-432
lines changed

ush/global_det/global_det_atmos_plots.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,8 @@
202202
for v in range(len(fcst_var_prod)):
203203
var_info.append((fcst_var_prod[v], obs_var_prod[v]))
204204
else:
205-
logger.error("FORECAST AND OBSERVATION VARIABLE INFORMATION NOT THE "
206-
+"SAME LENGTH")
205+
logger.error("Forecast and observation variable information not "
206+
+"the same length")
207207
sys.exit(1)
208208

209209

@@ -334,7 +334,7 @@
334334
DATAjob_filter_stats_model_file)
335335
else:
336336
all_model_df = gda_util.build_df(
337-
logger, DATAjob, DATAjob,
337+
JOB_GROUP, logger, DATAjob, DATAjob,
338338
model_info_dict, met_info_dict,
339339
plot_info_dict['fcst_var_name'],
340340
plot_info_dict['fcst_var_level'],
@@ -360,7 +360,7 @@
360360
COMOUTjob_filter_stats_model_file)
361361
elif JOB_GROUP == 'make_plots':
362362
if len(model_list) > 10:
363-
logger.error("TOO MANY MODELS LISTED ("+str(len(model_list))
363+
logger.error("Too many models requested ("+str(len(model_list))
364364
+", ["+', '.join(model_list)+"]), maximum is 10")
365365
sys.exit(1)
366366
plot_specs = PlotSpecs(logger, plot)
@@ -813,7 +813,8 @@
813813
gda_util.copy_file(DATAjob_image_name,
814814
COMOUTjob_image_name)
815815
else:
816-
logger.warning(plot+" not recongized")
816+
logger.error(plot+" not recongized")
817+
sys.exit(1)
817818
elif JOB_GROUP == 'tar_images':
818819
cwd = os.getcwd()
819820
tar_file = os.path.join(
@@ -833,7 +834,8 @@
833834
gda_util.run_shell_command(['tar', '-cvf', tar_file, '*'])
834835
os.chdir(cwd)
835836
else:
836-
logger.warning(f"No images generated in {DATAjob}")
837+
logger.warning(f"No images generated in {DATAjob}, "
838+
+"cannot make tar file")
837839
if KEEPDATA != 'YES':
838840
if os.path.exists(DATAjob):
839841
logger.info(f"Removing {DATAjob}")

ush/global_det/global_det_atmos_plots_lead_average.py

+49-28
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
class LeadAverage:
2727
"""
28-
Create a lead average graphic
28+
Make a lead average graphic
2929
"""
3030

3131
def __init__(self, logger, input_dir, output_dir, model_info_dict,
@@ -54,13 +54,13 @@ def __init__(self, logger, input_dir, output_dir, model_info_dict,
5454
self.logo_dir = logo_dir
5555

5656
def make_lead_average(self):
57-
"""! Create the lead average graphic
57+
"""! Make the lead average graphic
5858
5959
Args:
6060
6161
Returns:
6262
"""
63-
self.logger.info(f"Creating lead average...")
63+
self.logger.info("Plot Type: Lead Average")
6464
self.logger.debug(f"Input directory: {self.input_dir}")
6565
self.logger.debug(f"Output directory: {self.output_dir}")
6666
self.logger.debug(f"Model information dictionary: "
@@ -74,13 +74,14 @@ def make_lead_average(self):
7474
self.logger.error("Cannot make lead_average for stat "
7575
+f"{self.plot_info_dict['stat']}")
7676
sys.exit(1)
77-
# Create dataframe for all forecast hours
77+
# Make dataframe for all forecast hours
7878
self.logger.info("Building dataframe for all forecast hours")
79+
self.logger.info(f"Reading in model stat files from {self.input_dir}")
7980
fcst_units = []
8081
for forecast_hour in self.date_info_dict['forecast_hours']:
81-
self.logger.debug(f"Building data for forecast hour {forecast_hour}")
82+
self.logger.info(f"Building data for forecast hour {forecast_hour}")
8283
# Get dates to plot
83-
self.logger.info("Creating valid and init date arrays")
84+
self.logger.debug("Making valid and init date arrays")
8485
valid_dates, init_dates = gda_util.get_plot_dates(
8586
self.logger,
8687
self.date_info_dict['date_type'],
@@ -114,9 +115,8 @@ def make_lead_average(self):
114115
+', '.join(format_valid_dates))
115116
plot_dates = init_dates
116117
# Read in data
117-
self.logger.info(f"Reading in model stat files from {self.input_dir}")
118118
all_model_df = gda_util.build_df(
119-
self.logger, self.input_dir, self.output_dir,
119+
'make_plots', self.logger, self.input_dir, self.output_dir,
120120
self.model_info_dict, self.met_info_dict,
121121
self.plot_info_dict['fcst_var_name'],
122122
self.plot_info_dict['fcst_var_level'],
@@ -148,7 +148,7 @@ def make_lead_average(self):
148148
stat_df.index.get_level_values(0).unique().tolist()
149149
)
150150
if self.plot_info_dict['event_equalization'] == 'YES':
151-
self.logger.debug("Doing event equalization")
151+
self.logger.info("Doing event equalization")
152152
masked_stat_array = np.ma.masked_invalid(stat_array)
153153
stat_array = np.ma.mask_cols(masked_stat_array)
154154
stat_array = stat_array.filled(fill_value=np.nan)
@@ -226,7 +226,7 @@ def make_lead_average(self):
226226
# scale=stats.sem(np.ma.compressed(model_idx_model1_diff))
227227
#)
228228
# Set up plot
229-
self.logger.info(f"Doing plot set up")
229+
self.logger.info(f"Setting up plot")
230230
plot_specs_la = PlotSpecs(self.logger, 'lead_average')
231231
plot_specs_la.set_up_plot()
232232
n_xticks = 17
@@ -261,7 +261,6 @@ def make_lead_average(self):
261261
self.plot_info_dict, self.date_info_dict,
262262
fcst_units[0]
263263
)
264-
plot_left_logo = False
265264
plot_left_logo_path = os.path.join(self.logo_dir, 'noaa.png')
266265
if os.path.exists(plot_left_logo_path):
267266
plot_left_logo = True
@@ -274,7 +273,9 @@ def make_lead_average(self):
274273
plot_specs_la.fig_size[1], plt.rcParams['figure.dpi']
275274
)
276275
)
277-
plot_right_logo = False
276+
else:
277+
plot_left_logo = False
278+
self.logger.debug(f"{plot_left_logo_path} does not exist")
278279
plot_right_logo_path = os.path.join(self.logo_dir, 'nws.png')
279280
if os.path.exists(plot_right_logo_path):
280281
plot_right_logo = True
@@ -287,11 +288,14 @@ def make_lead_average(self):
287288
plot_specs_la.fig_size[1], plt.rcParams['figure.dpi']
288289
)
289290
)
291+
else:
292+
plot_right_logo = False
293+
self.logger.debug(f"{plot_right_logo_path} does not exist")
290294
image_name = plot_specs_la.get_savefig_name(
291295
self.output_dir, self.plot_info_dict, self.date_info_dict
292296
)
293-
# Create plot
294-
self.logger.info(f"Creating plot for {self.plot_info_dict['stat']} ")
297+
# Make plot
298+
self.logger.info(f"Making plot")
295299
fig, (ax1, ax2) = plt.subplots(2,1,
296300
figsize=(plot_specs_la.fig_size[0],
297301
plot_specs_la.fig_size[1]),
@@ -360,11 +364,11 @@ def make_lead_average(self):
360364
model_num_plot_settings_dict = (
361365
model_plot_settings_dict[model_num]
362366
)
363-
self.logger.debug(f"Plotting {model_num} - {model_num_name} "
364-
+f"- {model_num_plot_name}")
365367
masked_model_num_data = np.ma.masked_invalid(model_num_data)
366368
if model_num == 'model1':
367369
model1_masked_model_num_data = masked_model_num_data
370+
model1_name = model_num_name
371+
model1_plot_name = model_num_plot_name
368372
model_num_npts = (
369373
len(masked_model_num_data)
370374
- np.ma.count_masked(masked_model_num_data)
@@ -373,9 +377,9 @@ def make_lead_average(self):
373377
np.ma.getmask(masked_model_num_data),
374378
forecast_hours_avg_df.columns.values.tolist()
375379
)
380+
self.logger.debug(f"Plotting {model_num} [{model_num_name},"
381+
+f"{model_num_plot_name}]")
376382
if model_num_npts != 0:
377-
self.logger.debug(f"Plotting {model_num} - {model_num_name} "
378-
+f"- {model_num_plot_name}")
379383
ax1.plot(
380384
np.ma.compressed(masked_forecast_hours),
381385
np.ma.compressed(masked_model_num_data),
@@ -400,6 +404,9 @@ def make_lead_average(self):
400404
stat_min_max_dict['ax1_stat_max'] = (
401405
masked_model_num_data.max()
402406
)
407+
else:
408+
self.logger.debug(f"{model_num} [{model_num_name},"
409+
+f"{model_num_plot_name}] has no points")
403410
masked_model_num_model1_diff_data = np.ma.masked_invalid(
404411
model_num_data - model1_masked_model_num_data
405412
)
@@ -411,10 +418,11 @@ def make_lead_average(self):
411418
np.ma.getmask(masked_model_num_model1_diff_data),
412419
forecast_hours_avg_df.columns.values.tolist()
413420
)
421+
self.logger.debug(f"Plotting {model_num} [{model_num_name},"
422+
+f"{model_num_plot_name}] difference from "
423+
+f"model1 [{model1_name},"
424+
+f"{model1_plot_name}]")
414425
if model_num_diff_npts != 0:
415-
self.logger.debug(f"Plotting {model_num} - {model_num_name} "
416-
+f"- {model_num_plot_name} difference from "
417-
+self.model_info_dict['model1']['plot_name'])
418426
ax2.plot(
419427
np.ma.compressed(masked_diff_forecast_hours),
420428
np.ma.compressed(masked_model_num_model1_diff_data),
@@ -438,6 +446,12 @@ def make_lead_average(self):
438446
stat_min_max_dict['ax2_stat_max'] = (
439447
masked_model_num_model1_diff_data.max()
440448
)
449+
else:
450+
self.logger.debug(f"{model_num} [{model_num_name},"
451+
+f"{model_num_plot_name}] difference from "
452+
+f"model1 [{model1_name},{model1_plot_name}] "
453+
+"has no points")
454+
441455
if model_num == 'model1':
442456
ax2.plot(
443457
forecast_hours_avg_df.columns.values.tolist(),
@@ -462,13 +476,13 @@ def make_lead_average(self):
462476
np.ma.getmask(masked_model_num_model1_diff_ci_data),
463477
forecast_hours_ci_df.columns.values.tolist()
464478
)
479+
self.logger.debug(f"Plotting {model_num} ["
480+
+f"{model_num_name},"
481+
+f"{model_num_plot_name}] difference "
482+
+f"from model1 [{model1_name},"
483+
+f"{model1_plot_name}] "
484+
+"confidence intervals")
465485
if model_num_ci_npts != 0:
466-
self.logger.debug(f"Plotting {model_num} - "
467-
+f"{model_num_name}"
468-
+f"- {model_num_plot_name} "
469-
+"difference from "
470-
+self.model_info_dict['model1']['plot_name']
471-
+" confidence intervals")
472486
ci_min = masked_model_num_model1_diff_ci_data.min()
473487
ci_max = masked_model_num_model1_diff_ci_data.max()
474488
if ci_min < stat_min_max_dict['ax2_stat_min'] \
@@ -510,6 +524,13 @@ def make_lead_average(self):
510524
color = 'None',
511525
edgecolor=model_num_plot_settings_dict['color'],
512526
linewidth=1)
527+
else:
528+
self.logger.debug(f"{model_num}: ["
529+
+f"{model_num_name},"
530+
+f"{model_num_plot_name}] difference "
531+
+f"from model1 [{model1_name},"
532+
+f"{model1_plot_name}] "
533+
+"confidence intervals has no points")
513534
subplot_num = 1
514535
for ax in fig.get_axes():
515536
stat_min = stat_min_max_dict['ax'+str(subplot_num)+'_stat_min']
@@ -649,7 +670,7 @@ def main():
649670
'root': '/PATH/TO/MET',
650671
'version': '11.0.2'
651672
}
652-
# Create OUTPUT_DIR
673+
# Make OUTPUT_DIR
653674
gda_util.make_dir(OUTPUT_DIR)
654675
# Set up logging
655676
logging_dir = os.path.join(OUTPUT_DIR, 'logs')

0 commit comments

Comments
 (0)