wgz_decision/models/data_manager.py

69 lines
2.9 KiB
Python

class Constant:
MONTHS_LEN = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
class DataManager:
def __init__(self) -> None:
self.Prices = []
self.Temper = []
self.Solar = []
self.Electricity = []
self.Heat = []
self.People = []
def add_price_element(self, e): self.Prices.append(e)
def add_temper_element(self, e): self.Temper.append(e)
def add_solar_element(self, e): self.Solar.append(e)
def add_electricity_element(self, e): self.Electricity.append(e)
def add_heat_element(self, e): self.Heat.append(e)
def add_people_element(self, e): self.People.append(e)
# 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_temper_data(self, month, day, day_time):
return self.Temper[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + day_time]
def get_solar_data(self, month, day, day_time):
return self.Solar[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + day_time]
def get_load_data(self, month, day, day_time):
return self.Electricity[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + day_time]
def get_heat_data(self, month, day, day_time):
return self.Heat[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + day_time]
def get_people_data(self, month, day, day_time):
return self.People[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + day_time]
# 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_temper_data(self, month, day):
return self.Temper[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24:
(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + 24]
def get_series_solar_data(self, month, day):
return self.Solar[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24:
(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + 24]
def get_series_load_data(self, month, day):
return self.Electricity[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24:
(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + 24]
def get_series_heat_data(self, month, day):
return self.Heat[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24:
(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + 24]
def get_series_people_data(self, month, day):
return self.People[(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24:
(sum(Constant.MONTHS_LEN[:month - 1]) + day - 1) * 24 + 24]