From 295b788303bdedcc91019714f549a5712aa5d9ec Mon Sep 17 00:00:00 2001 From: "Egli Adrian (IT-SCI-API-PFI)" <adrian.egli@sbb.ch> Date: Wed, 2 Oct 2019 14:16:35 +0200 Subject: [PATCH] added debug print --- flatland/envs/rail_generators.py | 24 +++++++++++++++++------- flatland/utils/graphics_pil.py | 14 ++++++++++++-- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/flatland/envs/rail_generators.py b/flatland/envs/rail_generators.py index 39a91bc4..d98b9644 100644 --- a/flatland/envs/rail_generators.py +++ b/flatland/envs/rail_generators.py @@ -547,6 +547,8 @@ def sparse_rail_generator(num_cities=5, grid_mode=False, max_inter_city_rails=4, """ G = nx.DiGraph() + DEBUG_PRINT_TIMING = False + def generator(width, height, num_agents, num_resets=0) -> RailGeneratorProduct: rail_trans = RailEnvTransitions() @@ -581,19 +583,22 @@ def sparse_rail_generator(num_cities=5, grid_mode=False, max_inter_city_rails=4, # reduce nb_nodes, _num_cities, _num_intersections if less were generated in not_grid_mode nb_nodes = len(node_positions) - print("City position time", time.time() - node_time_start, "Seconds") + if DEBUG_PRINT_TIMING: + print("City position time", time.time() - node_time_start, "Seconds") # Set up connection points for all cities node_connection_time = time.time() inner_connection_points, outer_connection_points, connection_info, city_orientations = _generate_node_connection_points( node_positions, node_radius, max_inter_city_rails_allowed, rail_in_city) - print("Connection points", time.time() - node_connection_time) + if DEBUG_PRINT_TIMING: + print("Connection points", time.time() - node_connection_time) # Connect the cities through the connection points city_connection_time = time.time() inter_city_lines = _connect_cities(node_positions, outer_connection_points, connection_info, city_cells, rail_trans, grid_map) - print("City connection time", time.time() - city_connection_time) + if DEBUG_PRINT_TIMING: + print("City connection time", time.time() - city_connection_time) # Build inner cities city_build_time = time.time() through_tracks, free_tracks = _build_inner_cities(node_positions, inner_connection_points, @@ -601,24 +606,29 @@ def sparse_rail_generator(num_cities=5, grid_mode=False, max_inter_city_rails=4, node_radius, rail_trans, grid_map) - print("City build time", time.time() - city_build_time) + if DEBUG_PRINT_TIMING: + print("City build time", time.time() - city_build_time) # Populate cities train_station_time = time.time() train_stations, built_num_trainstation = _set_trainstation_positions(node_positions, node_radius, free_tracks, grid_map) - print("Trainstation placing time", time.time() - train_station_time) + if DEBUG_PRINT_TIMING: + print("Trainstation placing time", time.time() - train_station_time) # Fix all transition elements grid_fix_time = time.time() _fix_transitions(city_cells, inter_city_lines, grid_map) - print("Grid fix time", time.time() - grid_fix_time) + if DEBUG_PRINT_TIMING: + print("Grid fix time", time.time() - grid_fix_time) # Generate start target pairs schedule_time = time.time() agent_start_targets_nodes, num_agents = _generate_start_target_pairs(num_agents, nb_nodes, train_stations, city_orientations) - print("Schedule time", time.time() - schedule_time) + if DEBUG_PRINT_TIMING: + print("Schedule time", time.time() - schedule_time) + return grid_map, {'agents_hints': { 'num_agents': num_agents, 'agent_start_targets_nodes': agent_start_targets_nodes, diff --git a/flatland/utils/graphics_pil.py b/flatland/utils/graphics_pil.py index f3c7706e..ea43dbb9 100644 --- a/flatland/utils/graphics_pil.py +++ b/flatland/utils/graphics_pil.py @@ -8,6 +8,9 @@ from PIL import Image, ImageDraw, ImageTk, ImageFont from numpy import array from pkg_resources import resource_string as resource_bytes +from flatland.core.grid.grid_utils import Vec2dOperations +from flatland.core.transition_map import GridTransitionMap +from flatland.envs.grid4_generators_utils import connect_nodes from flatland.utils.graphics_layer import GraphicsLayer @@ -109,7 +112,11 @@ class PILGL(GraphicsLayer): rebuild = True if rebuild: + # rebuild background_grid to control the visualisation of buildings, trees, mountains, lakes and river self.background_grid = np.zeros(shape=(self.width, self.height)) + + + # build base distance map (distance to targets) for x in range(self.width): for y in range(self.height): distance = int(np.ceil(np.sqrt(self.width ** 2.0 + self.height ** 2.0))) @@ -363,7 +370,10 @@ class PILSVG(PILGL): ] scenery_files_water = [ - "Scenery_Water.svg" + "Scenery_Water.svg", + "Scenery_Water_left.svg", + "Scenery_Water_center.svg", + "Scenery_Water_right.svg" ] img_back_ground = self.pil_from_svg_file('svg', "Background_Light_green.svg") @@ -641,7 +651,7 @@ class PILSVG(PILGL): pil_zug = self.pil_zug[(in_direction % 4, out_direction % 4, color_idx)] self.draw_image_row_col(pil_zug, (row, col), layer=PILGL.AGENT_LAYER) if rail_grid is not None: - if rail_grid[row,col] == 0.0: + if rail_grid[row, col] == 0.0: self.draw_image_row_col(self.scenery_background_white, (row, col), layer=PILGL.RAIL_LAYER) if is_selected: -- GitLab