def ascii_barrier(id_vent, propagation_method, edges_list): utm_filename = "ASCII_grids/" + propagation_method + "_" + str( id_vent) + "_barrier.txt" # Creazione Matrice da stampare M = np.zeros((ROWS, COLS), dtype=int) G = utility.load_graph() for u, v in edges_list: coords = G.nodes[u]["coord_regions"].split("|")[0] coord_u_x, coord_u_y = conversion.cast_coord_attr(coords) M[coord_u_x][coord_u_y] = 1 coords = G.nodes[v]["coord_regions"].split("|")[0] coord_v_x, coord_v_y = conversion.cast_coord_attr(coords) M[coord_v_x][coord_v_y] = 1 # Scrittura del file with open(utm_filename, 'w') as utmfile: # Scrittura dell'header del file (northing...) for i in range(0, len(header)): utmfile.write(header[i] + "\n") # Scrittura valori nel DEM for x in range(0, ROWS): for y in range(0, COLS): if M[x][y] == 0: utmfile.write("0" + " ") else: utmfile.write(str(M[x][y]) + " ") utmfile.write("\n")
def vect_sim(id_vent): #matrice 91*75 M = np.zeros((91, 75), dtype=int) # carico la lista dei file delle simulazioni filelist = glob("Data/simulations/NotN_vent_" + str(id_vent) + "_" + "*" + ".txt") if len(filelist) == 0: return print("vent: ", id_vent) for vent_file in filelist: #apre ogni singolo file with open(vent_file, 'r') as in_file: # legge ogni riga del file for line in in_file: row, col = line.split(" ") row = int(row) col = int(col) #per ogni riga del file inserisce 1 nella matrice M[int(row / 25)][int(col / 25)] = 1 #carica il grafo G = load_graph() #istanzia il vettore di output vect = np.zeros((len(G.nodes)), dtype= int) #scorre i nodi del grafo for u in G.nodes(): # si ottiene una lista di coordinate coords = G.nodes[u]['coord_regions'].split("|") for coord in coords: # ottiene il valore di riga e colonna row, col = conversion.cast_coord_attr(coord) # si riempie il vettore in posizione u con il valore di M(row, col) vect[int(u)] = M[row][col] filename = "Data/real_vectors/" + str(id_vent) # esporta il vettore np.save(filename, vect)
def get_height(scaled_hmap, coord_regions): coord_regions = coord_regions.split("|") median_list = [] for coord in coord_regions: coord = conversion.cast_coord_attr(coord) median_list.append(scaled_hmap[coord[0]][coord[1]]) med = median(median_list) return med
def create_sparse(self, vect): M = np.zeros((91, 75), dtype=float) for u in self.G.nodes(): regions = self.G.nodes[u]["coord_regions"].split("|") for reg in regions: reg_row, reg_col = conversion.cast_coord_attr(reg) M[reg_row][reg_col] = vect[int(u)] sparse_M = sparse.csr_matrix(M) return sparse_M
def add_cities(G): # Estrapola dal file gml le coordinate e i nomi degli edificati city, names = mc.create_city_map() # Per ogni nodo, si va a prendere dalla matrice il corrispondente paese for u, data in G.nodes(data=True): for coords in data["coord_regions"].split("|"): coord_x, coord_y = conversion.cast_coord_attr(coords) G.node[u]['is_city'] = city[coord_x][coord_y] # Controllo fatto perché la matrice di default ha valore 0 if not names[coord_x][coord_y] == 0: G.node[u]['city_names'] += str(names[coord_x][coord_y]) return G
def graph_to_UTM(G, filename): utm_map = np.zeros((ROWS, COLS), dtype=float) for u, data in G.nodes(data=True): for coords in data["coord_regions"].split("|"): coord_x, coord_y = conversion.cast_coord_attr(coords) utm_map[coord_x][coord_y] = data["priority"] # scrittura header with open(filename, 'w') as utmfile: for i in range(0, len(header)): utmfile.write(header[i] + "\n") for x in range(0, ROWS): for y in range(0, COLS): utmfile.write(str(utm_map[x][y]) + " ") utmfile.write("\n")
def plot_3d_cmd(metric: str, id_vent: int, size: int, step: int): # Load dei grafi original_graph = utility.load_graph() immunological_graph = utility.load_graph( gexf_filename="immunological_graph.gexf") if metric == "precision": filename = "plot/" + str(id_vent) + "_" + str(size) + "_" + str( step) + "_precision3d.plt" if os.path.isfile(filename): x_coords, y_coords, original_list, trained_list = visualize.load_plot3D_from_file( filename) else: # Lista vents/nodes del sottografo id_nodes, id_vents = utility.get_node_vent_chessboard( id_vent, size, step) # Coords x_coords = [] y_coords = [] for id_node in id_nodes: x, y = conversion.cast_coord_attr( original_graph.nodes[id_node]['coord_regions']) x_coords.append(x) y_coords.append(y) # Lista precision su grafo originale original_list = metrics.get_ppv_list(original_graph, id_vents) # Lista precision su grafo trained trained_list = metrics.get_ppv_list(immunological_graph, id_vents) # Salvataggio dei risultati su file visualize.save_plot3D_on_file( x_coords, y_coords, original_list, trained_list, "plot/" + str(id_vent) + "_" + str(size) + "_" + str(step) + "_precision3d.plt") elif metric == "recall": filename = "plot/" + str(id_vent) + "_" + str(size) + "_" + str( step) + "_recall3d.plt" if os.path.isfile(filename): x_coords, y_coords, original_list, trained_list = visualize.load_plot3D_from_file( filename) else: # Lista vents/nodes del sottografo id_nodes, id_vents = utility.get_node_vent_chessboard( id_vent, size, step) # Coords x_coords = [] y_coords = [] for id_node in id_nodes: x, y = conversion.cast_coord_attr( original_graph.nodes[id_node]['coord_regions']) x_coords.append(x) y_coords.append(y) # Lista recall su grafo originale original_list = metrics.get_tpr_list(original_graph, id_vents) # Lista recall su grafo trained trained_list = metrics.get_tpr_list(immunological_graph, id_vents) # Salvataggio dei risultati su file visualize.save_plot3D_on_file( x_coords, y_coords, original_list, trained_list, "plot/" + str(id_vent) + "_" + str(size) + "_" + str(step) + "_recall3d.plt") fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.scatter(x_coords, y_coords, original_list, color='red', marker='X', s=50) ax.scatter(x_coords, y_coords, trained_list, color='blue', marker='D', s=50) for i in range(len(trained_list)): if trained_list[i] > original_list[i]: color = 'blue' else: color = 'red' ax.plot([x_coords[i], x_coords[i]], [y_coords[i], y_coords[i]], [original_list[i], trained_list[i]], color=color) plt.show()