def __init__(self, max_batt, num_sensors, solarpowerrecord,deltat, recordname=get_random_name(), num_days = 365, coordinate_generator=random_graph.generate_sorted_network_coords,full_log=False): self.max_batt = max_batt self.battery_capacity = 2000*3.7#2000mAh*3.7V self.action_space = spaces.Tuple((spaces.Discrete(num_sensors),spaces.Discrete(11))) self.deltat = deltat num_ts = int(24/deltat) self.num_ts = num_ts self.num_days = num_days base_state = spaces.Tuple((spaces.Discrete(2), spaces.Box(low = np.array([0]), high = np.array([max_batt+1])), spaces.Box(low = np.array([0]), high = np.array([max_batt+1])), spaces.Discrete(num_ts) )) self.obs_basis = {'S'+str(i):base_state for i in range(num_sensors)} self.coordinate_generator=coordinate_generator self.sensors = coordinate_generator(num_sensors)#random_graph.generate_sorted_network_coords(num_sensors) self.observation_space = spaces.Dict(self.obs_basis) self.state = self.base_state() self.seed() self.powerseries = downsample(solarpowerrecord, factor=int(48/num_ts)) #rendering uq = recordname self.full_log=full_log self.record = [] if full_log: self.fname = os.getcwd()+'/tmp/'+uq+'.json' #self.record = [] self.rewardfname = os.getcwd()+'/tmp/'+'reward'+uq+'.json' self.steps_taken=0 self.rewards = []
def get_series(deltat, numdays, monthrecord, startday): deltat = 3 num_ts = int(24 / deltat) numdays = 1 powerseries = solar_sensor_env.downsample(monthrecord, factor=int(48 / num_ts)) times = num_ts * numdays series = powerseries[startday * num_ts:startday * num_ts + times] return series