diff --git a/src/ecotope_package_cs2306/__init__.py b/src/ecotope_package_cs2306/__init__.py index 2c58809..15e127b 100644 --- a/src/ecotope_package_cs2306/__init__.py +++ b/src/ecotope_package_cs2306/__init__.py @@ -1,8 +1,8 @@ from .extract import get_noaa_data, json_to_df, extract_files, get_last_line, get_last_line, extract_new, csv_to_df, get_sub_dirs -from .transform import rename_sensors, avg_duplicate_times, remove_outliers, ffill_missing, sensor_adjustment, get_energy_by_min, verify_power_energy, aggregate_values, calculate_cop_values, round_time, aggregate_df, join_to_hourly, concat_last_row, join_to_daily, get_temp_zones120, get_storage_gals120 +from .transform import rename_sensors, avg_duplicate_times, remove_outliers, ffill_missing, sensor_adjustment, get_energy_by_min, verify_power_energy, aggregate_values, estimate_cop_values, calculate_cop_values, round_time, aggregate_df, join_to_hourly, concat_last_row, join_to_daily, get_temp_zones120, get_storage_gals120 from .load import get_login_info, connect_db, check_table_exists, create_new_table, load_database from .lbnl import aqsuite_filter_new, site_specific, condensate_calculations, gas_valve_diff, gather_outdoor_conditions, aqsuite_csv_to_df, add_date __all__ = ["get_last_line", "set_input", "set_output","get_noaa_data", "json_to_df", "extract_files", "avg_duplicate_times", "remove_outliers", "ffill_missing", "sensor_adjustment", "get_energy_by_min", "verify_power_energy", - "set_data", "aggregate_values", "calculate_cop_values", "get_login_info", "connect_db", "check_table_exists", "create_new_table", "createUnknownColumns", "load_database", "rename_sensors", "round_time", "aggregate_df", + "set_data", "aggregate_values", "estimate_cop_values", "calculate_cop_values", "get_login_info", "connect_db", "check_table_exists", "create_new_table", "createUnknownColumns", "load_database", "rename_sensors", "round_time", "aggregate_df", "extract_new", "csv_to_df", "set_config", "get_sub_dirs", "join_to_hourly", "concat_last_row", "join_to_daily", "get_temp_zones120", "get_storage_gals120", "site_specific", "condensate_calculations", "gas_valve_diff", "aqsuite_filter_new", "gather_outdoor_conditions", "aqsuite_csv_to_df", "add_date"] diff --git a/src/ecotope_package_cs2306/pickles/capFunctionPickle.pkl b/src/ecotope_package_cs2306/pickles/capFunctionPickle.pkl new file mode 100644 index 0000000..4d478dd Binary files /dev/null and b/src/ecotope_package_cs2306/pickles/capFunctionPickle.pkl differ diff --git a/src/ecotope_package_cs2306/pickles/copFunctionPickle.pkl b/src/ecotope_package_cs2306/pickles/copFunctionPickle.pkl new file mode 100644 index 0000000..3135690 Binary files /dev/null and b/src/ecotope_package_cs2306/pickles/copFunctionPickle.pkl differ diff --git a/src/ecotope_package_cs2306/transform.py b/src/ecotope_package_cs2306/transform.py index 2853c1e..8a750b4 100644 --- a/src/ecotope_package_cs2306/transform.py +++ b/src/ecotope_package_cs2306/transform.py @@ -6,8 +6,13 @@ from dateutil.parser import parse from ecotope_package_cs2306.unit_convert import energy_to_power, energy_btu_to_kwh, energy_kwh_to_kbtu from ecotope_package_cs2306.config import _input_directory, _output_directory +import pickle pd.set_option('display.max_columns', None) +func_path = os.path.join(os.path.dirname(__file__), 'pickles', 'copFunctionPickle.pkl') +copFunctionPickle = open(func_path, 'rb') +copFunction = pickle.load(copFunctionPickle) +copFunctionPickle.close() def concat_last_row(df : pd.DataFrame, last_row : pd.DataFrame): """ @@ -272,6 +277,11 @@ def aggregate_values(df: pd.DataFrame, thermo_slice: str) -> dict: return cop_inter +def estimate_cop_values(df: pd.DataFrame) -> pd.DataFrame: + cop_mapped = copFunction(df[['Temp_HPWHInlet', 'Temp_HPWHOutlet', 'OAT_HPWH']].values) + df['cop_mapped'] = cop_mapped + return df + def calculate_cop_values(df: pd.DataFrame, heatLoss_fixed: int, thermo_slice: str) -> dict: cop_inter = pd.DataFrame() diff --git a/testing/Bayview/transform/pickles/estimated_cop.pkl b/testing/Bayview/transform/pickles/estimated_cop.pkl new file mode 100644 index 0000000..51762e8 Binary files /dev/null and b/testing/Bayview/transform/pickles/estimated_cop.pkl differ diff --git a/testing/Bayview/transform/transform_test.py b/testing/Bayview/transform/transform_test.py index ccb385b..2a0fa20 100644 --- a/testing/Bayview/transform/transform_test.py +++ b/testing/Bayview/transform/transform_test.py @@ -1,6 +1,7 @@ import unittest import pandas as pd -from ecotope_package_cs2306 import rename_sensors, avg_duplicate_times, remove_outliers, ffill_missing, sensor_adjustment, get_energy_by_min, verify_power_energy, calculate_cop_values, round_time, aggregate_df, join_to_hourly, join_to_daily, concat_last_row, get_temp_zones120, get_storage_gals120 +import numpy as np +from ecotope_package_cs2306 import rename_sensors, avg_duplicate_times, remove_outliers, ffill_missing, sensor_adjustment, get_energy_by_min, verify_power_energy, estimate_cop_values, calculate_cop_values, round_time, aggregate_df, join_to_hourly, join_to_daily, concat_last_row, get_temp_zones120, get_storage_gals120 class Test_Transform(unittest.TestCase): @@ -204,6 +205,15 @@ def test_calculate_cop_values(self): self.assertEqual(list(cop_values.columns), list(cop_df.columns)) """ + #estimate_cop_values(df) - returns estimated cop_values as array + def test_estimate_cop_values(self): + pruned = pd.read_pickle("testing/Bayview/transform/pickles/pruned_outliers.pkl") + estimated_values = pd.read_pickle("testing/Bayview/transform/pickles/estimated_cop.pkl") + + cop_df = estimate_cop_values(pruned) + + np.testing.assert_array_equal(estimated_values['cop_mapped'], cop_df['cop_mapped']) + #aggregate_df(df) - returns hourly_df and daily_df def test_aggregate_df_valid(self): #NOTE: This is potentially a candidate for extra testing