88 lines
3.6 KiB
Python
88 lines
3.6 KiB
Python
class Constant:
|
|
MONTHS_LEN = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
|
|
|
|
|
|
# class TimeCounter:
|
|
# def __init__(self):
|
|
# self.month = 1
|
|
# self.day = 1
|
|
#
|
|
# def increment_day(self):
|
|
# self.day += 1
|
|
# if self.day > Constant.MONTHS_LEN[self.month - 1]:
|
|
# self.day = 1
|
|
# self.month += 1
|
|
# if self.month > 12:
|
|
# self.month = 1
|
|
#
|
|
# def get_date(self):
|
|
# return self.month, self.day
|
|
|
|
|
|
class DataManager:
|
|
def __init__(self) -> None:
|
|
self.Prices = []
|
|
self.Load_Consumption = []
|
|
self.Temperature = []
|
|
self.Irradiance = []
|
|
self.Wind = []
|
|
self.LLM = []
|
|
|
|
def add_price_element(self, element): self.Prices.append(element)
|
|
|
|
def add_load_element(self, element): self.Load_Consumption.append(element)
|
|
|
|
def add_temperature_element(self, element): self.Temperature.append(element)
|
|
|
|
def add_irradiance_element(self, element): self.Irradiance.append(element)
|
|
|
|
def add_wind_element(self, element): self.Wind.append(element)
|
|
|
|
def add_llm_element(self, element): self.LLM.append(element)
|
|
|
|
# get current time data based on given month day, and day_time
|
|
def get_price_data(self, month, day, day_time):
|
|
return self.Prices[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + day_time]
|
|
|
|
def get_load_cons_data(self, month, day, day_time):
|
|
return self.Load_Consumption[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + day_time]
|
|
|
|
def get_temperature_data(self, month, day, day_time):
|
|
return self.Temperature[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + day_time]
|
|
|
|
def get_irradiance_data(self, month, day, day_time):
|
|
return self.Irradiance[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + day_time]
|
|
|
|
def get_wind_data(self, month, day, day_time):
|
|
return self.Wind[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + day_time]
|
|
|
|
def get_llm_data(self, month, day, day_time):
|
|
index = (sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + day_time
|
|
# print(f"Index: {index}, LLM length: {len(self.LLM)}, Month: {month}, Day: {day}, Day_time: {day_time}")
|
|
return self.LLM[index]
|
|
|
|
# get series data for one episode
|
|
def get_series_price_data(self, month, day):
|
|
return self.Prices[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24:
|
|
(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + 24]
|
|
|
|
def get_series_load_cons_data(self, month, day):
|
|
return self.Load_Consumption[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24:
|
|
(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + 24]
|
|
|
|
def get_series_temperature_data(self, month, day):
|
|
return self.Temperature[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24:
|
|
(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + 24]
|
|
|
|
def get_series_irradiance_data(self, month, day):
|
|
return self.Irradiance[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24:
|
|
(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + 24]
|
|
|
|
def get_series_wind_data(self, month, day):
|
|
return self.Wind[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24:
|
|
(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + 24]
|
|
|
|
# def get_series_llm_data(self, month, day):
|
|
# return self.LLM[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24:
|
|
# (sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + 24]
|