summaryrefslogtreecommitdiff
path: root/ero1/src/helper/main_parcours.py
diff options
context:
space:
mode:
authorMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:07:58 +0200
committerMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:07:58 +0200
commit967be9e750221ab2ab783f95df79bb26d290a45e (patch)
tree6802900a5e975f9f68b169f0f503f040056d6952 /ero1/src/helper/main_parcours.py
add: added projectsHEADmain
Diffstat (limited to 'ero1/src/helper/main_parcours.py')
-rw-r--r--ero1/src/helper/main_parcours.py137
1 files changed, 137 insertions, 0 deletions
diff --git a/ero1/src/helper/main_parcours.py b/ero1/src/helper/main_parcours.py
new file mode 100644
index 0000000..02b92de
--- /dev/null
+++ b/ero1/src/helper/main_parcours.py
@@ -0,0 +1,137 @@
+import time
+from src.helper.debug_printer import debug_print
+from src.helper.export_cost import export_cost
+from src.helper.export_to_kml import export_to_kml
+from src.deneigeuses.hierholzer import process_hierholzer
+from src.deneigeuses.directed_cpp import oriented_cpt
+from src.helper.display_graph import display_graph
+from src.helper.output_debug import output_debug
+from src.generation.graph_generation import generate_graph
+from src.helper.color_suburbs import display_suburbs_with_colors
+from src.helper.prune_maps import prune_verdun
+import networkx as nx
+
+
+# IMPORT FOR YAML
+from src.helper.export_import_yaml import load_paths_from_yaml
+from src.helper.partitions import partition
+from src.generation.suburb_snowplow_generation import generate_quartiers_from_path
+
+# IMPORT FOR DRONE
+from src.drone.postier_chinoisV2 import final_path
+# from src.drone.postier_chinoisV2 import postier_chinois_process
+
+def main_parcours(debug_mode=False, place_name=None, reversed_legend=None):
+ """
+ Fonction principale pour le parcours du graphe.
+ Parameters:
+ debug_mode : Indique si le mode debug est activé ou non.
+ place_name : Le nom de la place à parcourir.
+ reversed_legend : Si la légende est inversée.
+ """
+
+ #output_debug(None, None, None, debug_mode)
+
+ parcours_deneigeuses = []
+ # ---------------------- GENERATION DU GRAPHE ---------------------------
+
+ debug_print("Génération du graph de Montréal en cours...", debug_mode)
+ graph = generate_graph("Montréal, Québec, Canada", debug_mode)
+ debug_print("Graph généré avec succès.", debug_mode)
+
+ # ---------------------- GENERATION DU GRAPHE ---------------------------
+
+ # ---------------------- PARCOURS - DRONE ---------------------------
+
+ start_time_drone = time.time()
+
+ #debug_print("Parcours du drone dans chaque arrondissement", debug_mode)
+ # - Load from the saved file directly
+ parcours_drone = load_paths_from_yaml(graph, filename="paths/paths-PostierChinoisV1.yml") # Nom à rajouter du coup
+ finalPath = final_path(graph, parcours_drone)
+
+ # - Postier Chinois V{?}
+ # parcours_drone, finalPath = postier_chinois_process(graph, debug_mode)
+
+ end_time_drone = time.time()
+
+ # ---------------------- PARCOURS - DRONE ---------------------------
+
+ # display_suburbs_with_colors(graph, parcours_drone, connections)
+
+ # ---------------------- RECUPERATION DU PARCOURS DU DRONE ---------------------------
+ temp = []
+ # if place_name in parcours_drone:
+ # debug_print("Parcours du drone dans l'arrondissement de " + place_name, debug_mode)
+ # for elt in ["Outremont", "Verdun", "Anjou", "Rivière-des-Prairies–Pointe-aux-Trembles", "Le Plateau-Mont-Royal"] :
+ # if elt in parcours_drone:
+ # print(elt, len(parcours_drone[elt]))
+ # temp.extend(parcours_drone[elt])
+ # else:
+ # print("Arrondissement non trouvé:", elt)
+ # print("Total", len(temp))
+ # parcours_drone = temp
+ # else:
+ # debug_print("Parcours du drone dans l'arrondissement de " + place_name + " non trouvé", debug_mode)
+
+ # ---------------------- RECUPERATION DU PARCOURS DU DRONE ---------------------------
+
+ #debug_print("Etablissement de connections entre arrondissement :", debug_mode)
+ #connections = connect_circuits(graph, parcours_drone)
+
+ #output_debug(graph, parcours_drone, connections, debug_mode)
+
+ # ---------------------- PARCOURS - DENEIGEUSE ---------------------------
+
+ # G_partition = generate_quartiers_from_path(parcours_drone, graph, suburb_list=["Outremont", "Verdun", "Anjou", "Rivière-des-Prairies–Pointe-aux-Trembles", "Le Plateau-Mont-Royal"], debug_mode=True)
+ # partitions = partition(G_partition, 5, debug_mode=True)
+
+ # display_graph(graph, "Test 1", reversed_legend, parcours_drone, None, False)
+
+ start_time_deneigeuse = time.time()
+
+ # TEMP FIX
+ # parcours_deneigeuse = parcours_drone
+
+ ## Postier chinois qui fonctionne que sur un graph fortement connexe
+
+ verdun = generate_graph("Verdun, Montreal, Canada", debug_mode=debug_mode)
+ # verdun = prune_verdun(verdun)
+ parcours_deneigeuse = oriented_cpt(verdun, graph, debug_mode)
+
+ # for elt in partitions:
+ # drone_edges = [(u, v) for u, v in elt.edges()]
+ # parcours_deneigeuses.append(process_hierholzer(graph, drone_edges, debug_mode))
+ # parcours_deneigeuse = process_hierholzer(graph, parcours_drone, debug_mode)
+ end_time_deneigeuse = time.time()
+
+ # ---------------------- PARCOURS - DENEIGEUSE ---------------------------
+
+ #display_graph(graph, "Test 2", reversed_legend, parcours_deneigeuse, None, False)
+
+ # ---------------------- EXPORT COST ---------------------------
+
+ # parcours_deneigeuses.append(parcours_deneigeuse)
+ for elt in ["Outremont", "Verdun", "Anjou", "Rivière-des-Prairies–Pointe-aux-Trembles", "Le Plateau-Mont-Royal"] :
+ if elt in parcours_drone:
+ print(elt, len(parcours_drone[elt]))
+ temp.extend(parcours_drone[elt])
+ else:
+ print("Arrondissement non trouvé:", elt)
+ print("Total", len(temp))
+ parcours_drone = temp
+
+ if "verdun" in place_name.lower():
+ export_cost(parcours_drone, parcours_deneigeuses, graph, debug_mode, end_time_deneigeuse - start_time_deneigeuse, end_time_drone - start_time_drone)
+ else:
+ print("/!\\ Exportation du coût du parcours désactivée : Seul Verdun est supporté")
+
+ # ---------------------- EXPORT COST ---------------------------
+
+ # ---------------------- EXPORT TO KML ---------------------------
+
+ export_to_kml(parcours_deneigeuses, finalPath, graph, debug_mode)
+
+ # ---------------------- EXPORT TO KML ---------------------------
+
+ return True