Skip to content

Commit

Permalink
issue #383 added logging support
Browse files Browse the repository at this point in the history
  • Loading branch information
bikegeek committed Mar 7, 2024
1 parent 7a366d4 commit 14b15a9
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 10 deletions.
28 changes: 20 additions & 8 deletions metplotpy/plots/tcmpr_plots/line/mean/tcmpr_line_mean.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
import os
from datetime import datetime

from metplotpy.plots.tcmpr_plots.line.mean.tcmpr_series_line_mean import TcmprSeriesLineMean
from metplotpy.plots.tcmpr_plots.line.tcmpr_line import TcmprLine
import metplotpy.plots.util as util


class TcmprLineMean(TcmprLine):
def __init__(self, config_obj, column_info, col, case_data, input_df, baseline_data, stat_name):
super().__init__(config_obj, column_info, col, case_data, input_df, None, stat_name)
print("--------------------------------------------------------")
print(f"Plotting MEAN time series by {self.config_obj.series_val_names[0]}")
super().__init__(config_obj, column_info, col, case_data, input_df, baseline_data, stat_name)

# Set up Logging
self.line_logger = util.get_common_logger(self.config_obj.log_level, self.config_obj.log_filename)

self.line_logger.info(f"--------------------------------------------------------")
self.line_logger.info(f"Plotting MEAN time series by {self.config_obj.series_val_names[0]}")

self._adjust_titles(stat_name)
self.series_list = self._create_series(self.input_df, stat_name)
Expand All @@ -18,11 +24,10 @@ def __init__(self, config_obj, column_info, col, case_data, input_df, baseline_d
self.baseline_lead_time = 'ind'
self._init_hfip_baseline_for_plot()
if self.config_obj.prefix is None or len(self.config_obj.prefix) == 0:
# self.plot_filename = f"{self.config_obj.plot_dir}{os.path.sep}{self.config_obj.list_stat_1[0]}_{stat_name}_mean.png"
self.plot_filename = f"{self.config_obj.plot_dir}{os.path.sep}{stat_name}_mean.png"
else:
self.plot_filename = f"{self.config_obj.plot_dir}{os.path.sep}{self.config_obj.prefix}_{stat_name}_mean.png"
# remove the old file if it exist
# remove the old file if it exists
if os.path.exists(self.plot_filename):
os.remove(self.plot_filename)
self._create_figure(stat_name)
Expand All @@ -39,10 +44,10 @@ def _adjust_titles(self, stat_name):

def _init_hfip_baseline_for_plot(self):
if 'Water Only' in self.config_obj.title or self.cur_baseline == 'no':
print("Plot HFIP Baseline:" + self.cur_baseline)
self.line_logger.info(f"Plot HFIP Baseline: {self.cur_baseline}")
else:
self.cur_baseline_data = self.cur_baseline_data[(self.cur_baseline_data['TYPE'] == 'CONS')]
print('Plot HFIP Baseline:' + self.cur_baseline.replace('Error ', ''))
self.line_logger.info(f"Plot HFIP Baseline: {self.cur_baseline.replace('Error ', '')}")

def _create_series(self, input_data, stat_name):
"""
Expand All @@ -62,6 +67,9 @@ def _create_series(self, input_data, stat_name):
"""

start_time = datetime.now()

series_list = []

# add series for y1 axis
Expand All @@ -75,7 +83,7 @@ def _create_series(self, input_data, stat_name):
if not isinstance(name, list):
name = [name]

series_obj = TcmprSeriesLineMean(self.config_obj, i, input_data, series_list, name)
series_obj = TcmprSeriesLineMean(self.config_obj, i, input_data, series_list, name, stat_name)
series_list.append(series_obj)

# add derived for y1 axis
Expand All @@ -96,4 +104,8 @@ def _create_series(self, input_data, stat_name):
# reorder series
series_list = self.config_obj.create_list_by_series_ordering(series_list)

end_time = datetime.now()
total_time = end_time - start_time
self.line_logger.info(f"Took {total_time} milliseconds to create series for {stat_name}")

return series_list
13 changes: 11 additions & 2 deletions metplotpy/plots/tcmpr_plots/line/mean/tcmpr_series_line_mean.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@
"""

from typing import Union
from datetime import datetime

import numpy as np

import metcalcpy.util.utils as utils
from metplotpy.plots.tcmpr_plots.tcmpr_series import TcmprSeries
from metplotpy.plots.tcmpr_plots.tcmpr_util import get_mean_ci
import metplotpy.plots.util as util


class TcmprSeriesLineMean(TcmprSeries):
Expand All @@ -29,8 +31,11 @@ class TcmprSeriesLineMean(TcmprSeries):
"""

def __init__(self, config, idx: int, input_data, series_list: list,
series_name: Union[list, tuple]):
super().__init__(config, idx, input_data, series_list, series_name)
series_name: Union[list, tuple], stat_name):
super().__init__(config, idx, input_data, series_list, series_name, stat_name)

# Set up Logging
self.seriesmn_logger = util.get_common_logger(config.log_level, config.log_filename)

def _create_series_points(self) -> dict:
"""
Expand All @@ -43,6 +48,7 @@ def _create_series_points(self) -> dict:
dictionary with CI ,point values and number of stats as keys
"""

start_time = datetime.now()
self._init_series_data()

series_points_results = {'val': [], 'ncl': [], 'ncu': [], 'nstat': [], 'mean': []}
Expand Down Expand Up @@ -76,4 +82,7 @@ def _create_series_points(self) -> dict:
else:
series_points_results['mean'].append(np.nanmean(point_data['PLOT'].tolist()))

end_time = datetime.now()
total_time = end_time - start_time
# self.seriesmn_logger.info(f"Took {total_time} milliseconds to calculate series points for line mean plot.")
return series_points_results

0 comments on commit 14b15a9

Please sign in to comment.