(self, log)
| 11 | |
| 12 | class Env(object): |
| 13 | def __init__(self, log): |
| 14 | |
| 15 | self.log = log |
| 16 | self.sg = Setting(log) |
| 17 | self.draw = Draw(self.sg) |
| 18 | if self.sg.V["DEBUG_MODE"]: |
| 19 | print('uav num ', self.sg.V['NUM_UAV'], 'uav pos ', self.sg.V['INIT_POSITION'], 'station num ', |
| 20 | str(1), 'station pos ', self.sg.V['BASE_STATION']) |
| 21 | |
| 22 | # make save directory |
| 23 | self.sg.log() |
| 24 | self.log_dir = log.full_path |
| 25 | |
| 26 | # [ 16 , 16 ] |
| 27 | self.map_size_x = self.sg.V['MAP_X'] # 16 unit |
| 28 | self.map_size_y = self.sg.V['MAP_Y'] # 16 unit |
| 29 | |
| 30 | # map obstacle [ 16 , 16 ] |
| 31 | self.map_obstacle = np.zeros((self.map_size_x, self.map_size_y)).astype(np.int8) |
| 32 | self.map_obstacle_value = 1 |
| 33 | self.init_map_obstacle() |
| 34 | |
| 35 | # data collecting range |
| 36 | self.c_range = self.sg.V['RANGE'] # m |
| 37 | |
| 38 | # uav energy |
| 39 | self.init_uav_energy = np.asarray( |
| 40 | [self.sg.V['INITIAL_ENERGY']] * self.sg.V['NUM_UAV'], |
| 41 | dtype=np.float32 |
| 42 | ) |
| 43 | # num of uavs |
| 44 | self.uav_num = self.sg.V['NUM_UAV'] |
| 45 | |
| 46 | # action [ K , 3 ] |
| 47 | self.action = np.zeros( |
| 48 | shape=[self.sg.V['NUM_UAV'], |
| 49 | self.sg.V['ACT_NUM']], |
| 50 | dtype=np.float32 |
| 51 | ) |
| 52 | |
| 53 | # PoI |
| 54 | self.poi_data_pos, self.init_poi_data_val = self.filter_PoI_data() |
| 55 | self.bs_pos = self.filter_bs_pos() |
| 56 | # poi_data_pos->[256,2] poi_data_val->[256] |
| 57 | |
| 58 | # for render |
| 59 | self.max_uav_energy = self.sg.V['INITIAL_ENERGY'] / self.sg.V['INITIAL_ENERGY'] |
| 60 | self.max_distance = self.sg.V["MAX_DISTANCE"] |
| 61 | |
| 62 | self.reset() |
| 63 | |
| 64 | self.action_space = self.sg.V['NUM_UAV'] * self.sg.V['ACT_NUM'] |
| 65 | |
| 66 | |
| 67 | def reset(self): |
nothing calls this directly
no test coverage detected