Beispiel #1
0
 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