diff --git a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_histo.pdf b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_histo.pdf
index aeeafd0..7d54804 100644
Binary files a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_histo.pdf and b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_histo.pdf differ
diff --git a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_log.log b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_log.log
index 0d9e893..cb735d5 100644
--- a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_log.log
+++ b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_log.log
@@ -548,3 +548,484 @@ on 31827: 2026-09-03 11:29:12,208 - INFO - Jonction à la Station_ID: 25261 entr
2026-09-03 21:52:03,224 - INFO - Table des STATION, entrée et fix nbre: 194
2026-09-03 21:53:08,640 - INFO - Phase 5: Fin de traitement en 02 (m) 32 (s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats
2026-09-03 21:53:08,641 - INFO - Execution terminée sans erreur en 02(m)32(s)
+2026-09-25 08:56:02,559 - INFO - ***********************************************************************************************************************
+2026-09-25 08:56:02,560 - INFO - * Calcul des statistiques par entrées d'une BD Therion *
+2026-09-25 08:56:02,560 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr *
+2026-09-25 08:56:02,561 - INFO - * Version : 2026.09.03 *
+2026-09-25 08:56:02,561 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql *
+2026-09-25 08:56:02,561 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats *
+2026-09-25 08:56:02,561 - INFO - * Date : 2026-09-25 08h56m02s *
+2026-09-25 08:56:02,561 - INFO - * Mode : sync *
+2026-09-25 08:56:02,562 - INFO - ***********************************************************************************************************************
+2026-09-25 08:56:02,563 - INFO - Phase 1: Importation de la base de données Therion ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql dans: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats.db
+2026-09-25 08:56:05,441 - INFO - Phase 2: Création des nouvelles tables, indexation
+2026-09-25 08:56:05,737 - INFO - Jonction de SHOT equates nbre: 2580
+2026-09-25 08:59:36,514 - WARNING - Table des SHOT, visée(s) bloquante(s), même départ et arrivée, longueur nulle supprimée(s) nbre: 1688
+2026-09-25 08:59:38,323 - INFO - Table des SHOT, visées dupliquées traités nbre: 19
+2026-09-25 08:59:38,538 - INFO - Création de l'index des tables principales et optimisation de la mémoire
+2026-09-25 08:59:38,688 - INFO - Marquage des visées et des stations d'habillage nbre: 19021
+2026-09-25 09:00:39,424 - INFO - Phase 3: Remplissage des tables d'après les 64171 entrée(s)
+2026-09-25 09:00:39,431 - INFO - Table des STATION, entrée et fix nbre: 194
+2026-09-25 09:00:39,479 - INFO - Phase 4: Remplissage des tables d'après les séries vides jonctionnées aux 194 entrée(s)
+on 1423: 2026-09-25 09:00:57,496 - INFO - Jonction à la Station_ID: 49335 entre les entrées 49456 et 49327
+on 3318: 2026-09-25 09:01:18,885 - INFO - Jonction à la Station_ID: 229 entre les entrées 218 et 834
+on 3357: 2026-09-25 09:01:19,690 - INFO - Jonction à la Station_ID: 3525 entre les entrées 3455 et 3525
+on 6351: 2026-09-25 09:02:12,376 - INFO - Jonction à la Station_ID: 1666 entre les entrées 1613 et 2784
+on 9158: 2026-09-25 09:03:31,987 - INFO - Jonction à la Station_ID: 3348 entre les entrées 3358 et 3397
+on 9594: 2026-09-25 09:03:47,553 - INFO - Jonction à la Station_ID: 48093 entre les entrées 49183 et 48104
+on 9622: 2026-09-25 09:03:51,206 - INFO - Jonction à la Station_ID: 49838 entre les entrées 49183 et 49803
+on 10275: 2026-09-25 09:04:05,069 - INFO - Jonction à la Station_ID: 40146 entre les entrées 38328 et 39667
+on 12587: 2026-09-25 09:05:03,907 - INFO - Jonction à la Station_ID: 47396 entre les entrées 48104 et 47360
+on 13062: 2026-09-25 09:05:14,849 - INFO - Jonction à la Station_ID: 9041 entre les entrées 10902 et 8905
+on 15553: 2026-09-25 09:06:21,984 - INFO - Jonction à la Station_ID: 12059 entre les entrées 10902 et 12987
+on 16763: 2026-09-25 09:06:51,965 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902
+on 16763: 2026-09-25 09:06:51,978 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902
+on 16817: 2026-09-25 09:06:54,158 - INFO - Jonction à la Station_ID: 9547 entre les entrées 9884 et 9366
+on 17832: 2026-09-25 09:07:27,488 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852
+on 17833: 2026-09-25 09:07:27,618 - INFO - Jonction à la Station_ID: 9338 entre les entrées 10902 et 14852
+on 17833: 2026-09-25 09:07:27,730 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852
+on 18972: 2026-09-25 09:07:55,769 - INFO - Jonction à la Station_ID: 12771 entre les entrées 14852 et 9366
+on 19046: 2026-09-25 09:07:58,773 - INFO - Jonction à la Station_ID: 17222 entre les entrées 16774 et 10902
+on 21114: 2026-09-25 09:09:00,518 - INFO - Jonction à la Station_ID: 15570 entre les entrées 8905 et 9366
+on 21600: 2026-09-25 09:09:17,328 - INFO - Jonction à la Station_ID: 47077 entre les entrées 49183 et 49089
+on 23056: 2026-09-25 09:09:59,072 - INFO - Jonction à la Station_ID: 15611 entre les entrées 9366 et 8905
+on 23137: 2026-09-25 09:10:01,400 - INFO - Jonction à la Station_ID: 15557 entre les entrées 8905 et 9366
+on 23142: 2026-09-25 09:10:01,511 - INFO - Jonction à la Station_ID: 9477 entre les entrées 8905 et 14852
+on 23144: 2026-09-25 09:10:01,966 - INFO - Jonction à la Station_ID: 9834 entre les entrées 14852 et 11338
+on 24975: 2026-09-25 09:11:03,202 - INFO - Jonction à la Station_ID: 16242 entre les entrées 15665 et 14852
+on 25697: 2026-09-25 09:11:32,706 - INFO - Jonction à la Station_ID: 16259 entre les entrées 10902 et 14852
+on 25981: 2026-09-25 09:11:44,327 - INFO - Jonction à la Station_ID: 50263 entre les entrées 50909 et 50130
+on 28328: 2026-09-25 09:12:48,062 - INFO - Jonction à la Station_ID: 9522 entre les entrées 16789 et 9366
+on 28497: 2026-09-25 09:12:55,373 - INFO - Jonction à la Station_ID: 44662 entre les entrées 49456 et 43628
+on 29909: 2026-09-25 09:13:40,650 - INFO - Jonction à la Station_ID: 44814 entre les entrées 48104 et 49456
+on 30963: 2026-09-25 09:14:09,628 - INFO - Jonction à la Station_ID: 16483 entre les entrées 15665 et 10902
+on 31414: 2026-09-25 09:14:28,590 - INFO - Jonction à la Station_ID: 17453 entre les entrées 19538 et 17667
+on 31827: 2026-09-25 09:14:37,289 - INFO - Jonction à la Station_ID: 25261 entre les entrées 27454 et 24729
+2026-09-25 09:21:27,889 - INFO - Intégrations des visées orphelines (entre 2 stations existantes) nbre: 340
+2026-09-25 09:21:35,555 - INFO - Réseau: 1, entrées jonctionnées: 10, [11338, 14852, 8905, 9366, 10902, 15665, 9884, 16789, 12987, 16774]
+2026-09-25 09:21:35,742 - INFO - Réseau: 2, entrées jonctionnées: 2, [3397, 3358]
+2026-09-25 09:21:36,412 - INFO - Réseau: 3, entrées jonctionnées: 8, [43628, 49456, 48104, 49327, 47360, 49183, 49089, 49803]
+2026-09-25 09:21:36,558 - INFO - Réseau: 4, entrées jonctionnées: 2, [1613, 2784]
+2026-09-25 09:21:36,802 - INFO - Réseau: 5, entrées jonctionnées: 2, [3455, 3525]
+2026-09-25 09:21:36,973 - INFO - Réseau: 6, entrées jonctionnées: 2, [24729, 27454]
+2026-09-25 09:21:37,459 - INFO - Réseau: 7, entrées jonctionnées: 2, [834, 218]
+2026-09-25 09:21:37,559 - INFO - Réseau: 8, entrées jonctionnées: 2, [38328, 39667]
+2026-09-25 09:21:37,708 - INFO - Réseau: 9, entrées jonctionnées: 2, [50130, 50909]
+2026-09-25 09:21:37,862 - INFO - Réseau: 10, entrées jonctionnées: 2, [17667, 19538]
+2026-09-25 09:21:37,863 - WARNING - Phase 4: Fin du remplissage des tables, attention 82 station(s) non comptabilisé(s)
+2026-09-25 09:21:38,027 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats
+2026-09-25 09:21:38,030 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)]
+2026-09-25 09:24:08,764 - INFO - Table des STATION, entrée et fix nbre: 194
+2026-09-25 09:26:05,872 - WARNING - Phase 5: Fin de traitement en 30 (m) 03 (s), avec 1 erreur(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats
+2026-09-25 09:26:05,878 - WARNING - Execution terminée avec 1 erreurs en 30(m)03(s), verifier le log
+2026-09-25 09:28:23,185 - INFO - ***********************************************************************************************************************
+2026-09-25 09:28:23,185 - INFO - * Calcul des statistiques par entrées d'une BD Therion *
+2026-09-25 09:28:23,185 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr *
+2026-09-25 09:28:23,186 - INFO - * Version : 2026.09.25 *
+2026-09-25 09:28:23,186 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql *
+2026-09-25 09:28:23,186 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats *
+2026-09-25 09:28:23,186 - INFO - * Date : 2026-09-25 09h28m23s *
+2026-09-25 09:28:23,187 - INFO - * Mode : sync *
+2026-09-25 09:28:23,187 - INFO - ***********************************************************************************************************************
+2026-09-25 09:28:23,188 - INFO - Phase 1: Importation de la base de données Therion ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql dans: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats.db
+2026-09-25 09:28:25,913 - INFO - Phase 2: Création des nouvelles tables, indexation
+2026-09-25 09:28:26,225 - INFO - Jonction de SHOT equates nbre: 2580
+2026-09-25 09:32:19,773 - WARNING - Table des SHOT, visée(s) bloquante(s), même départ et arrivée, longueur nulle supprimée(s) nbre: 1688
+2026-09-25 09:32:22,495 - INFO - Table des SHOT, visées dupliquées traités nbre: 19
+2026-09-25 09:32:22,883 - INFO - Création de l'index des tables principales et optimisation de la mémoire
+2026-09-25 09:32:23,057 - INFO - Marquage des visées et des stations d'habillage nbre: 19021
+2026-09-25 09:33:49,244 - INFO - Phase 3: Remplissage des tables d'après les 64171 entrée(s)
+2026-09-25 09:33:49,251 - INFO - Table des STATION, entrée et fix nbre: 194
+2026-09-25 09:33:49,296 - INFO - Phase 4: Remplissage des tables d'après les séries vides jonctionnées aux 194 entrée(s)
+on 1423: 2026-09-25 09:34:07,005 - INFO - Jonction à la Station_ID: 49335 entre les entrées 49456 et 49327
+on 3318: 2026-09-25 09:34:28,031 - INFO - Jonction à la Station_ID: 229 entre les entrées 218 et 834
+on 3357: 2026-09-25 09:34:28,795 - INFO - Jonction à la Station_ID: 3525 entre les entrées 3455 et 3525
+on 6351: 2026-09-25 09:35:03,177 - INFO - Jonction à la Station_ID: 1666 entre les entrées 1613 et 2784
+on 9158: 2026-09-25 09:35:49,698 - INFO - Jonction à la Station_ID: 3348 entre les entrées 3358 et 3397
+on 9594: 2026-09-25 09:36:05,542 - INFO - Jonction à la Station_ID: 48093 entre les entrées 49183 et 48104
+on 9622: 2026-09-25 09:36:08,361 - INFO - Jonction à la Station_ID: 49838 entre les entrées 49183 et 49803
+on 10275: 2026-09-25 09:36:23,241 - INFO - Jonction à la Station_ID: 40146 entre les entrées 38328 et 39667
+on 12587: 2026-09-25 09:37:22,037 - INFO - Jonction à la Station_ID: 47396 entre les entrées 48104 et 47360
+on 13062: 2026-09-25 09:37:33,118 - INFO - Jonction à la Station_ID: 9041 entre les entrées 10902 et 8905
+on 15553: 2026-09-25 09:38:37,508 - INFO - Jonction à la Station_ID: 12059 entre les entrées 10902 et 12987
+on 16763: 2026-09-25 09:39:08,078 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902
+on 16763: 2026-09-25 09:39:08,090 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902
+on 16817: 2026-09-25 09:39:10,059 - INFO - Jonction à la Station_ID: 9547 entre les entrées 9884 et 9366
+on 17832: 2026-09-25 09:39:41,295 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852
+on 17833: 2026-09-25 09:39:41,469 - INFO - Jonction à la Station_ID: 9338 entre les entrées 10902 et 14852
+on 17833: 2026-09-25 09:39:41,516 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852
+on 18972: 2026-09-25 09:40:10,365 - INFO - Jonction à la Station_ID: 12771 entre les entrées 14852 et 9366
+on 19046: 2026-09-25 09:40:14,112 - INFO - Jonction à la Station_ID: 17222 entre les entrées 16774 et 10902
+on 21114: 2026-09-25 09:41:13,826 - INFO - Jonction à la Station_ID: 15570 entre les entrées 8905 et 9366
+on 21600: 2026-09-25 09:41:29,632 - INFO - Jonction à la Station_ID: 47077 entre les entrées 49183 et 49089
+on 23056: 2026-09-25 09:42:08,145 - INFO - Jonction à la Station_ID: 15611 entre les entrées 9366 et 8905
+on 23137: 2026-09-25 09:42:10,268 - INFO - Jonction à la Station_ID: 15557 entre les entrées 8905 et 9366
+on 23142: 2026-09-25 09:42:10,342 - INFO - Jonction à la Station_ID: 9477 entre les entrées 8905 et 14852
+on 23144: 2026-09-25 09:42:10,578 - INFO - Jonction à la Station_ID: 9834 entre les entrées 14852 et 11338
+on 24975: 2026-09-25 09:43:04,127 - INFO - Jonction à la Station_ID: 16242 entre les entrées 15665 et 14852
+on 25697: 2026-09-25 09:43:28,963 - INFO - Jonction à la Station_ID: 16259 entre les entrées 10902 et 14852
+on 25981: 2026-09-25 09:43:39,099 - INFO - Jonction à la Station_ID: 50263 entre les entrées 50909 et 50130
+on 28328: 2026-09-25 09:44:53,839 - INFO - Jonction à la Station_ID: 9522 entre les entrées 16789 et 9366
+on 28497: 2026-09-25 09:45:02,864 - INFO - Jonction à la Station_ID: 44662 entre les entrées 49456 et 43628
+2026-09-25 09:45:18,712 - INFO - ***********************************************************************************************************************
+2026-09-25 09:45:18,713 - INFO - * Calcul des statistiques par entrées d'une BD Therion *
+2026-09-25 09:45:18,713 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr *
+2026-09-25 09:45:18,713 - INFO - * Version : 2026.09.25 *
+2026-09-25 09:45:18,714 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql *
+2026-09-25 09:45:18,714 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats *
+2026-09-25 09:45:18,714 - INFO - * Date : 2026-09-25 09h45m18s *
+2026-09-25 09:45:18,715 - INFO - * Mode : sync *
+2026-09-25 09:45:18,715 - INFO - ***********************************************************************************************************************
+2026-09-25 09:45:18,717 - INFO - Phase 1: Importation de la base de données Therion ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql dans: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats.db
+2026-09-25 09:45:21,997 - INFO - Phase 2: Création des nouvelles tables, indexation
+2026-09-25 09:45:24,220 - INFO - Jonction de SHOT equates, nbre: 2580
+2026-09-25 13:29:34,757 - INFO - ***********************************************************************************************************************
+2026-09-25 13:29:34,762 - INFO - * Calcul des statistiques par entrées d'une BD Therion *
+2026-09-25 13:29:34,762 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr *
+2026-09-25 13:29:34,762 - INFO - * Version : 2026.09.25 *
+2026-09-25 13:29:34,763 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql *
+2026-09-25 13:29:34,763 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats *
+2026-09-25 13:29:34,763 - INFO - * Date : 2026-09-25 13h29m34s *
+2026-09-25 13:29:34,764 - INFO - * Mode : sync *
+2026-09-25 13:29:34,764 - INFO - ***********************************************************************************************************************
+2026-09-25 13:29:34,765 - INFO - Phase 1: Importation de la base de données Therion ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql dans: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats.db
+2026-09-25 13:29:37,109 - INFO - Phase 2: Création des nouvelles tables, indexation
+2026-09-25 13:29:37,384 - INFO - Jonction de SHOT equates, nbre: 2580
+2026-09-25 13:32:29,786 - WARNING - Table des SHOT, visée(s) bloquante(s), même départ et arrivée, longueur nulle supprimée(s), nbre: 1688
+2026-09-25 13:32:31,987 - INFO - Table des SHOT, visées dupliquées traités nbre: 19
+2026-09-25 13:32:32,237 - INFO - Création de l'index des tables principales et optimisation de la mémoire
+2026-09-25 13:32:32,393 - INFO - Marquage des visées et des stations d'habillage, nbre: 19021
+2026-09-25 13:33:29,929 - INFO - Phase 3: Remplissage des tables d'après les 64171 entrée(s)
+2026-09-25 13:33:29,935 - INFO - Table des STATION entrée et fix, nbre: 194
+2026-09-25 13:33:29,978 - INFO - Phase 4: Remplissage des tables d'après les séries vides jonctionnées aux 194 entrée(s)
+on 1423: 2026-09-25 13:33:54,316 - INFO - Jonction à la Station_ID: 49335 entre les entrées 49456 et 49327
+on 3318: 2026-09-25 13:34:24,094 - INFO - Jonction à la Station_ID: 229 entre les entrées 218 et 834
+on 3357: 2026-09-25 13:34:25,149 - INFO - Jonction à la Station_ID: 3525 entre les entrées 3455 et 3525
+on 6351: 2026-09-25 13:35:07,931 - INFO - Jonction à la Station_ID: 1666 entre les entrées 1613 et 2784
+on 9158: 2026-09-25 13:36:04,556 - INFO - Jonction à la Station_ID: 3348 entre les entrées 3358 et 3397
+on 9594: 2026-09-25 13:36:22,101 - INFO - Jonction à la Station_ID: 48093 entre les entrées 49183 et 48104
+on 9622: 2026-09-25 13:36:26,303 - INFO - Jonction à la Station_ID: 49838 entre les entrées 49183 et 49803
+on 10275: 2026-09-25 13:36:43,488 - INFO - Jonction à la Station_ID: 40146 entre les entrées 38328 et 39667
+on 12587: 2026-09-25 13:37:47,559 - INFO - Jonction à la Station_ID: 47396 entre les entrées 48104 et 47360
+on 13062: 2026-09-25 13:37:59,496 - INFO - Jonction à la Station_ID: 9041 entre les entrées 10902 et 8905
+on 15553: 2026-09-25 13:39:09,986 - INFO - Jonction à la Station_ID: 12059 entre les entrées 10902 et 12987
+on 16763: 2026-09-25 13:39:42,530 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902
+on 16763: 2026-09-25 13:39:42,543 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902
+on 16817: 2026-09-25 13:39:44,744 - INFO - Jonction à la Station_ID: 9547 entre les entrées 9884 et 9366
+on 17832: 2026-09-25 13:40:18,110 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852
+on 17833: 2026-09-25 13:40:18,207 - INFO - Jonction à la Station_ID: 9338 entre les entrées 10902 et 14852
+on 17833: 2026-09-25 13:40:18,267 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852
+on 18972: 2026-09-25 13:40:47,557 - INFO - Jonction à la Station_ID: 12771 entre les entrées 14852 et 9366
+on 19046: 2026-09-25 13:40:50,262 - INFO - Jonction à la Station_ID: 17222 entre les entrées 16774 et 10902
+on 21114: 2026-09-25 13:41:49,626 - INFO - Jonction à la Station_ID: 15570 entre les entrées 8905 et 9366
+on 21600: 2026-09-25 13:42:05,319 - INFO - Jonction à la Station_ID: 47077 entre les entrées 49183 et 49089
+on 23056: 2026-09-25 13:42:44,492 - INFO - Jonction à la Station_ID: 15611 entre les entrées 9366 et 8905
+on 23137: 2026-09-25 13:42:46,660 - INFO - Jonction à la Station_ID: 15557 entre les entrées 8905 et 9366
+on 23142: 2026-09-25 13:42:46,740 - INFO - Jonction à la Station_ID: 9477 entre les entrées 8905 et 14852
+on 23144: 2026-09-25 13:42:46,986 - INFO - Jonction à la Station_ID: 9834 entre les entrées 14852 et 11338
+on 24975: 2026-09-25 13:43:43,239 - INFO - Jonction à la Station_ID: 16242 entre les entrées 15665 et 14852
+on 25697: 2026-09-25 13:44:09,588 - INFO - Jonction à la Station_ID: 16259 entre les entrées 10902 et 14852
+on 25981: 2026-09-25 13:44:21,298 - INFO - Jonction à la Station_ID: 50263 entre les entrées 50909 et 50130
+on 28328: 2026-09-25 13:45:21,382 - INFO - Jonction à la Station_ID: 9522 entre les entrées 16789 et 9366
+on 28497: 2026-09-25 13:45:27,207 - INFO - Jonction à la Station_ID: 44662 entre les entrées 49456 et 43628
+on 29909: 2026-09-25 13:46:09,359 - INFO - Jonction à la Station_ID: 44814 entre les entrées 48104 et 49456
+on 30963: 2026-09-25 13:46:36,462 - INFO - Jonction à la Station_ID: 16483 entre les entrées 15665 et 10902
+on 31414: 2026-09-25 13:46:51,003 - INFO - Jonction à la Station_ID: 17453 entre les entrées 19538 et 17667
+on 31827: 2026-09-25 13:47:00,812 - INFO - Jonction à la Station_ID: 25261 entre les entrées 27454 et 24729
+2026-09-25 13:53:13,135 - INFO - Intégrations des visées orphelines (entre 2 stations existantes), nbre: 340
+2026-09-25 13:53:21,522 - INFO - Réseau: 1, entrées jonctionnées: 10, [11338, 14852, 8905, 9366, 10902, 15665, 9884, 16789, 12987, 16774]
+2026-09-25 13:53:21,647 - INFO - Réseau: 2, entrées jonctionnées: 2, [3397, 3358]
+2026-09-25 13:53:21,978 - INFO - Réseau: 3, entrées jonctionnées: 8, [43628, 49456, 48104, 49327, 47360, 49183, 49089, 49803]
+2026-09-25 13:53:22,074 - INFO - Réseau: 4, entrées jonctionnées: 2, [1613, 2784]
+2026-09-25 13:53:22,273 - INFO - Réseau: 5, entrées jonctionnées: 2, [3455, 3525]
+2026-09-25 13:53:22,394 - INFO - Réseau: 6, entrées jonctionnées: 2, [24729, 27454]
+2026-09-25 13:53:22,498 - INFO - Réseau: 7, entrées jonctionnées: 2, [834, 218]
+2026-09-25 13:53:22,603 - INFO - Réseau: 8, entrées jonctionnées: 2, [38328, 39667]
+2026-09-25 13:53:22,711 - INFO - Réseau: 9, entrées jonctionnées: 2, [50130, 50909]
+2026-09-25 13:53:22,874 - INFO - Réseau: 10, entrées jonctionnées: 2, [17667, 19538]
+2026-09-25 13:53:22,883 - DEBUG - Réseau ID 10, ENT_1 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532, ENT_2 full name : Explo_01_1999_07_25.Explo_01_1999_07_25.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 5613
+2026-09-25 13:53:22,888 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,903 - DEBUG - Réseau ID 13, ENT_1 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806, ENT_2 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532
+2026-09-25 13:53:22,909 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,909 - DEBUG - Réseau ID 14, ENT_1 full name : Explo_54_2002_09_27.Explo_54_2002_09_27.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 8087, ENT_2 full name : Explo_26_2001_08_06.Explo_26_2001_08_06.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 6752
+2026-09-25 13:53:22,916 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,916 - DEBUG - Réseau ID 17, ENT_1 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532, ENT_2 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806
+2026-09-25 13:53:22,923 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,923 - DEBUG - Réseau ID 18, ENT_1 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806, ENT_2 full name : Explo_26_2001_08_06.Explo_26_2001_08_06.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 6752
+2026-09-25 13:53:22,929 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,930 - DEBUG - Réseau ID 19, ENT_1 full name : Explo_386_2020_09_23.Explo_386_2020_09_23.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 24415, ENT_2 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532
+2026-09-25 13:53:22,935 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,936 - DEBUG - Réseau ID 23, ENT_1 full name : Explo_01_1999_07_25.Explo_01_1999_07_25.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 5613, ENT_2 full name : Explo_26_2001_08_06.Explo_26_2001_08_06.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 6752
+2026-09-25 13:53:22,942 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,943 - DEBUG - Réseau ID 24, ENT_1 full name : Explo_01_1999_07_25.Explo_01_1999_07_25.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 5613, ENT_2 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806
+2026-09-25 13:53:22,950 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,950 - DEBUG - Réseau ID 26, ENT_1 full name : Explo_320_2016_09_23.Explo_320_2016_09_23.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 21678, ENT_2 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806
+2026-09-25 13:53:22,958 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,958 - DEBUG - Réseau ID 27, ENT_1 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532, ENT_2 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806
+2026-09-25 13:53:22,965 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,965 - DEBUG - Réseau ID 29, ENT_1 full name : Explo_387_2021_08_03.Explo_387_2021_08_03.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 24458, ENT_2 full name : Explo_26_2001_08_06.Explo_26_2001_08_06.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 6752
+2026-09-25 13:53:22,973 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,973 - DEBUG - Réseau ID 32, ENT_1 full name : Explo_320_2016_09_23.Explo_320_2016_09_23.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 21678, ENT_2 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532
+2026-09-25 13:53:22,981 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,981 - DEBUG - Réseau ID 39, ENT_1 full name : Explo_01_1999_07_25.Explo_01_1999_07_25.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 5613, ENT_2 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532
+2026-09-25 13:53:22,989 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,989 - DEBUG - Réseau ID 40, ENT_1 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532, ENT_2 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806
+2026-09-25 13:53:22,997 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:22,998 - DEBUG - Réseau ID 41, ENT_1 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806, ENT_2 full name : Explo_01_1999_07_25.Explo_01_1999_07_25.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 5613
+2026-09-25 13:53:23,005 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,006 - DEBUG - Réseau ID 42, ENT_1 full name : Explo_26_2001_08_06.Explo_26_2001_08_06.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 6752, ENT_2 full name : Explo_387_2021_08_03.Explo_387_2021_08_03.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 24458
+2026-09-25 13:53:23,012 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,013 - DEBUG - Réseau ID 43, ENT_1 full name : Explo_26_2001_08_06.Explo_26_2001_08_06.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 6752, ENT_2 full name : Explo_54_2002_09_27.Explo_54_2002_09_27.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 8087
+2026-09-25 13:53:23,020 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,020 - DEBUG - Réseau ID 44, ENT_1 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806, ENT_2 full name : Explo_112_2007_10_04.Explo_112_2007_10_04.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 11155
+2026-09-25 13:53:23,028 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,029 - DEBUG - Réseau ID 45, ENT_1 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532, ENT_2 full name : Explo_188_2011_09_15.Explo_188_2011_09_15.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 15365
+2026-09-25 13:53:23,036 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,036 - DEBUG - Réseau ID 46, ENT_1 full name : Explo_26_2001_08_06.Explo_26_2001_08_06.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 6752, ENT_2 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806
+2026-09-25 13:53:23,043 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,043 - DEBUG - Réseau ID 47, ENT_1 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806, ENT_2 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532
+2026-09-25 13:53:23,050 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,051 - DEBUG - Réseau ID 48, ENT_1 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532, ENT_2 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806
+2026-09-25 13:53:23,058 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,059 - DEBUG - Réseau ID 49, ENT_1 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806, ENT_2 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532
+2026-09-25 13:53:23,067 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,068 - DEBUG - Réseau ID 50, ENT_1 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806, ENT_2 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532
+2026-09-25 13:53:23,075 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,076 - DEBUG - Réseau ID 51, ENT_1 full name : Explo_26_2001_08_06.Explo_26_2001_08_06.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 6752, ENT_2 full name : Explo_01_1999_07_25.Explo_01_1999_07_25.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 5613
+2026-09-25 13:53:23,083 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,084 - DEBUG - Réseau ID 52, ENT_1 full name : Explo_01_1999_07_25.Explo_01_1999_07_25.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 5613, ENT_2 full name : Explo_26_2001_08_06.Explo_26_2001_08_06.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 6752
+2026-09-25 13:53:23,092 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,092 - DEBUG - Réseau ID 53, ENT_1 full name : Explo_26_2001_08_06.Explo_26_2001_08_06.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 6752, ENT_2 full name : Explo_01_1999_07_25.Explo_01_1999_07_25.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 5613
+2026-09-25 13:53:23,099 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,100 - DEBUG - Réseau ID 54, ENT_1 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806, ENT_2 full name : Explo_320_2016_09_23.Explo_320_2016_09_23.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 21678
+2026-09-25 13:53:23,107 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,108 - DEBUG - Réseau ID 55, ENT_1 full name : Explo_279_2014_09_13.Explo_279_2014_09_13.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 19806, ENT_2 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532
+2026-09-25 13:53:23,115 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,116 - DEBUG - Réseau ID 56, ENT_1 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532, ENT_2 full name : Explo_320_2016_09_23.Explo_320_2016_09_23.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 21678
+2026-09-25 13:53:23,121 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,122 - DEBUG - Réseau ID 57, ENT_1 full name : Explo_101_2006_08_18.Explo_101_2006_08_18.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 10532, ENT_2 full name : Explo_386_2020_09_23.Explo_386_2020_09_23.Complexe_Anialarra.Synthese-PSM_LARRA, Survey ID 24415
+2026-09-25 13:53:23,128 - DEBUG - Premier commun : (5609, 'Complexe_Anialarra', 'Complexe Anialarra')
+2026-09-25 13:53:23,129 - DEBUG - Réseau ID 5, ENT_1 full name : Explo_03_2011_08_08.Explo_03_2011_08_08.AN676-Helado.Synthese-PSM_LARRA, Survey ID 2552, ENT_2 full name : Explo_04_2011_08_14.Explo_04_2011_08_14.AN676-Helado.Synthese-PSM_LARRA, Survey ID 2559
+2026-09-25 13:53:23,135 - DEBUG - Premier commun : (2534, 'AN676-Helado', 'AN676-Helado')
+2026-09-25 13:53:23,151 - DEBUG - Réseau ID 37, ENT_1 full name : Explo_04_2011_08_14.Explo_04_2011_08_14.AN676-Helado.Synthese-PSM_LARRA, Survey ID 2559, ENT_2 full name : Explo_03_2011_08_08.Explo_03_2011_08_08.AN676-Helado.Synthese-PSM_LARRA, Survey ID 2552
+2026-09-25 13:53:23,157 - DEBUG - Premier commun : (2534, 'AN676-Helado', 'AN676-Helado')
+2026-09-25 13:53:23,158 - DEBUG - Réseau ID 1, ENT_1 full name : Explo_01_2007_08_01.Explo_01_2007_08_01.C104.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64914, ENT_2 full name : Explo_01_2007_08_01.Explo_01_2007_08_01.C104.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64914
+2026-09-25 13:53:23,165 - DEBUG - Premier commun : (64912, 'Explo_01_2007_08_01', 'Explo 01 2007 08 01')
+2026-09-25 13:53:23,181 - DEBUG - Réseau ID 6, ENT_1 full name : Explo_02_1987_08_01.Explo_02_1987_08_01.C50_Pre_Hus.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64529, ENT_2 full name : Explo_23_1983_08_01.Explo_23_1983_08_01.M31_Pourtet.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 60728
+2026-09-25 13:53:23,187 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,204 - DEBUG - Réseau ID 7, ENT_1 full name : Explo_02_1987_08_01.Explo_02_1987_08_01.C50_Pre_Hus.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64529, ENT_2 full name : Explo_01_2011_08_01.Explo_01_2011_08_01.C226.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 66326
+2026-09-25 13:53:23,210 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,210 - DEBUG - Réseau ID 9, ENT_1 full name : Explo_23_1983_08_01.Explo_23_1983_08_01.M31_Pourtet.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 60728, ENT_2 full name : Explo_08_1981_08_02.Explo_08_1981_08_02.M31_Pourtet.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 58183
+2026-09-25 13:53:23,216 - DEBUG - Premier commun : (56312, 'M31_Pourtet', 'M31 Pourtet')
+2026-09-25 13:53:23,233 - DEBUG - Réseau ID 21, ENT_1 full name : Explo_02_1987_08_01.Explo_02_1987_08_01.C50_Pre_Hus.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64529, ENT_2 full name : Explo_43_2011_08_04.Explo_43_2011_08_04.M31_Pourtet.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64263
+2026-09-25 13:53:23,238 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,255 - DEBUG - Réseau ID 30, ENT_1 full name : Explo_01_2007_08_01.Explo_01_2007_08_01.C104.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64914, ENT_2 full name : Explo_01_1983_08_18.Explo_01_1983_08_18.M413_Partages.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 44188
+2026-09-25 13:53:23,261 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,262 - DEBUG - Réseau ID 31, ENT_1 full name : Explo_23_1983_08_01.Explo_23_1983_08_01.M31_Pourtet.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 60728, ENT_2 full name : Explo_01_2007_08_01.Explo_01_2007_08_01.C104.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64914
+2026-09-25 13:53:23,267 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,267 - DEBUG - Réseau ID 61, ENT_1 full name : Explo_01_1983_08_18.Explo_01_1983_08_18.M413_Partages.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 44188, ENT_2 full name : Explo_01_2007_08_01.Explo_01_2007_08_01.C104.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64914
+2026-09-25 13:53:23,272 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,273 - DEBUG - Réseau ID 62, ENT_1 full name : Explo_01_2007_08_01.Explo_01_2007_08_01.C104.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64914, ENT_2 full name : Explo_23_1983_08_01.Explo_23_1983_08_01.M31_Pourtet.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 60728
+2026-09-25 13:53:23,278 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,279 - DEBUG - Réseau ID 63, ENT_1 full name : Explo_43_2011_08_04.Explo_43_2011_08_04.M31_Pourtet.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64263, ENT_2 full name : Explo_02_1987_08_01.Explo_02_1987_08_01.C50_Pre_Hus.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64529
+2026-09-25 13:53:23,285 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,285 - DEBUG - Réseau ID 64, ENT_1 full name : Explo_08_1981_08_02.Explo_08_1981_08_02.M31_Pourtet.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 58183, ENT_2 full name : Explo_23_1983_08_01.Explo_23_1983_08_01.M31_Pourtet.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 60728
+2026-09-25 13:53:23,290 - DEBUG - Premier commun : (56312, 'M31_Pourtet', 'M31 Pourtet')
+2026-09-25 13:53:23,309 - DEBUG - Réseau ID 65, ENT_1 full name : Explo_23_1983_08_01.Explo_23_1983_08_01.M31_Pourtet.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 60728, ENT_2 full name : Explo_02_1987_08_01.Explo_02_1987_08_01.C50_Pre_Hus.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64529
+2026-09-25 13:53:23,316 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,327 - DEBUG - Réseau ID 66, ENT_1 full name : Explo_01_2007_08_01.Explo_01_2007_08_01.C104.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64914, ENT_2 full name : Explo_01_2007_08_01.Explo_01_2007_08_01.C104.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64914
+2026-09-25 13:53:23,333 - DEBUG - Premier commun : (64912, 'Explo_01_2007_08_01', 'Explo 01 2007 08 01')
+2026-09-25 13:53:23,345 - DEBUG - Réseau ID 67, ENT_1 full name : Explo_01_2011_08_01.Explo_01_2011_08_01.C226.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 66326, ENT_2 full name : Explo_02_1987_08_01.Explo_02_1987_08_01.C50_Pre_Hus.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 64529
+2026-09-25 13:53:23,351 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,364 - DEBUG - Réseau ID 36, ENT_1 full name : Explo_01_1993_09_01.Explo_01_1993_09_01.AN211.Synthese-PSM_LARRA, Survey ID 708, ENT_2 full name : Explo_01_2016_09_15.Explo_01_2016_09_15.AN596-Antartica.Synthese-PSM_LARRA, Survey ID 2272
+2026-09-25 13:53:23,371 - DEBUG - Premier commun : (57, 'Synthese-PSM_LARRA', 'Synthèse générale des réseaux de la Pierre Saint Martin-Larra')
+2026-09-25 13:53:23,389 - DEBUG - Réseau ID 3, ENT_1 full name : Explo_01_2019_09_15.Explo_01_2019_09_15.AN702-Burros.Synthese-PSM_LARRA, Survey ID 2613, ENT_2 full name : Explo_01_2019_09_19.Explo_01_2019_09_19.AN704.Synthese-PSM_LARRA, Survey ID 2651
+2026-09-25 13:53:23,396 - DEBUG - Premier commun : (57, 'Synthese-PSM_LARRA', 'Synthèse générale des réseaux de la Pierre Saint Martin-Larra')
+2026-09-25 13:53:23,409 - DEBUG - Réseau ID 38, ENT_1 full name : Explo_01_2019_09_19.Explo_01_2019_09_19.AN704.Synthese-PSM_LARRA, Survey ID 2651, ENT_2 full name : Explo_01_2019_09_15.Explo_01_2019_09_15.AN702-Burros.Synthese-PSM_LARRA, Survey ID 2613
+2026-09-25 13:53:23,414 - DEBUG - Premier commun : (57, 'Synthese-PSM_LARRA', 'Synthèse générale des réseaux de la Pierre Saint Martin-Larra')
+2026-09-25 13:53:23,415 - DEBUG - Réseau ID 34, ENT_1 full name : Explo_62_2021_07_24.Explo_62_2021_07_24.Complexe_BU56_Ilamina.Synthese-PSM_LARRA, Survey ID 30152, ENT_2 full name : Explo_06_2014_08_01.Explo_06_2014_08_01.Complexe_BU56_Ilamina.Synthese-PSM_LARRA, Survey ID 27850
+2026-09-25 13:53:23,421 - DEBUG - Premier commun : (27366, 'Complexe_BU56_Ilamina', 'Complexe BU56 Ilamina')
+2026-09-25 13:53:23,434 - DEBUG - Réseau ID 59, ENT_1 full name : Explo_06_2014_08_01.Explo_06_2014_08_01.Complexe_BU56_Ilamina.Synthese-PSM_LARRA, Survey ID 27850, ENT_2 full name : Explo_62_2021_07_24.Explo_62_2021_07_24.Complexe_BU56_Ilamina.Synthese-PSM_LARRA, Survey ID 30152
+2026-09-25 13:53:23,441 - DEBUG - Premier commun : (27366, 'Complexe_BU56_Ilamina', 'Complexe BU56 Ilamina')
+2026-09-25 13:53:23,441 - DEBUG - Réseau ID 35, ENT_1 full name : Explo_02_1992_08_01.Explo_02_1992_08_01.AN008.Synthese-PSM_LARRA, Survey ID 162, ENT_2 full name : Explo_11_2003_08_01.Explo_11_2003_08_01.AN008.Synthese-PSM_LARRA, Survey ID 225
+2026-09-25 13:53:23,447 - DEBUG - Premier commun : (151, 'AN008', 'AN008')
+2026-09-25 13:53:23,461 - DEBUG - Réseau ID 8, ENT_1 full name : GL04_Entree.GL04_Entree.GL04_Cam_Claque.Complexe_Lonne_Peyret-Bourrugues.Synthese-PSM_LARRA, Survey ID 39253, ENT_2 full name : GL102_Entree_01.Gouffre_du_Lonne_Peyret.Complexe_Lonne_Peyret-Bourrugues.Synthese-PSM_LARRA, Survey ID 40869
+2026-09-25 13:53:23,467 - DEBUG - Premier commun : (32648, 'Complexe_Lonne_Peyret-Bourrugues', 'Complexe Lonné Peyret-Bourrugues')
+2026-09-25 13:53:23,480 - DEBUG - Réseau ID 60, ENT_1 full name : GL102_Entree_01.Gouffre_du_Lonne_Peyret.Complexe_Lonne_Peyret-Bourrugues.Synthese-PSM_LARRA, Survey ID 40869, ENT_2 full name : GL04_Entree.GL04_Entree.GL04_Cam_Claque.Complexe_Lonne_Peyret-Bourrugues.Synthese-PSM_LARRA, Survey ID 39253
+2026-09-25 13:53:23,486 - DEBUG - Premier commun : (32648, 'Complexe_Lonne_Peyret-Bourrugues', 'Complexe Lonné Peyret-Bourrugues')
+2026-09-25 13:53:23,487 - DEBUG - Réseau ID 28, ENT_1 full name : Explo_14_2015_03_30.Explo_14_2015_03_30.Aranzadi.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 69727, ENT_2 full name : Explo_01_2017_05_20.Explo_01_2017_05_20.Xendako.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 67320
+2026-09-25 13:53:23,494 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,508 - DEBUG - Réseau ID 68, ENT_1 full name : Explo_01_2017_05_20.Explo_01_2017_05_20.Xendako.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 67320, ENT_2 full name : Explo_14_2015_03_30.Explo_14_2015_03_30.Aranzadi.Complexe_PSM_GdP.Synthese-PSM_LARRA, Survey ID 69727
+2026-09-25 13:53:23,512 - DEBUG - Premier commun : (44156, 'Complexe_PSM_GdP', 'Complexe PSM GdP')
+2026-09-25 13:53:23,513 - DEBUG - Réseau ID 58, ENT_1 full name : Explo_62_1994_08_06.Explo_62_1994_08_06.Complexe_Arrestelia.Synthese-PSM_LARRA, Survey ID 26086, ENT_2 full name : Explo_11_1992_06_26.Explo_11_1992_06_26.Complexe_Arrestelia.Synthese-PSM_LARRA, Survey ID 25729
+2026-09-25 13:53:23,518 - DEBUG - Premier commun : (25655, 'Complexe_Arrestelia', 'Complexe Arrestelia')
+2026-09-25 13:53:23,534 - WARNING - Phase 4: Fin du remplissage des tables, attention 82 station(s) non comptabilisé(s)
+2026-09-25 13:53:23,664 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Synthese-PSM_LARRA\Outputs\readme
+2026-09-25 13:53:23,666 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)]
+2026-09-25 13:54:51,061 - INFO - Table des STATION entrée et fix, nbre: 194
+2026-09-25 13:56:04,191 - WARNING - Phase 5: Fin de traitement en 26 (m) 29 (s), avec 1 erreur(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats
+2026-09-25 13:56:04,197 - WARNING - Execution terminée avec 1 erreurs en 26(m)29(s), verifier le log
+2026-09-25 16:47:15,690 - INFO - ***********************************************************************************************************************
+2026-09-25 16:47:15,691 - INFO - * Calcul des statistiques par entrées d'une BD Therion *
+2026-09-25 16:47:15,691 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr *
+2026-09-25 16:47:15,692 - INFO - * Version : 2026.09.25 *
+2026-09-25 16:47:15,692 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql *
+2026-09-25 16:47:15,692 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats *
+2026-09-25 16:47:15,692 - INFO - * Date : 2026-09-25 16h47m15s *
+2026-09-25 16:47:15,693 - INFO - * Mode : sync *
+2026-09-25 16:47:15,693 - INFO - ***********************************************************************************************************************
+2026-09-25 16:47:15,694 - INFO - Phase 1: Importation de la base de données Therion ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql dans: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats.db
+2026-09-25 16:47:18,753 - INFO - Phase 2: Création des nouvelles tables, indexation
+2026-09-25 16:47:19,080 - INFO - Jonction de SHOT equates, nbre: 2580
+2026-09-25 16:52:05,791 - INFO - ***********************************************************************************************************************
+2026-09-25 16:52:05,792 - INFO - * Calcul des statistiques par entrées d'une BD Therion *
+2026-09-25 16:52:05,792 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr *
+2026-09-25 16:52:05,792 - INFO - * Version : 2026.09.25 *
+2026-09-25 16:52:05,793 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql *
+2026-09-25 16:52:05,793 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats *
+2026-09-25 16:52:05,793 - INFO - * Date : 2026-09-25 16h52m05s *
+2026-09-25 16:52:05,793 - INFO - * Mode : sync *
+2026-09-25 16:52:05,794 - INFO - ***********************************************************************************************************************
+2026-09-25 16:52:05,795 - INFO - Phase 1: Importation de la base de données Therion ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql dans: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats.db
+2026-09-25 16:52:08,557 - INFO - Phase 2: Création des nouvelles tables, indexation
+2026-09-25 16:52:08,857 - INFO - Jonction de SHOT equates, nbre: 2580
+2026-09-25 16:55:11,015 - WARNING - Table des SHOT, visée(s) bloquante(s), même départ et arrivée, longueur nulle supprimée(s), nbre: 1688
+2026-09-25 16:55:12,749 - INFO - Table des SHOT, visées dupliquées traités, nbre: 19
+2026-09-25 16:55:12,965 - INFO - Création de l'index des tables principales et optimisation de la mémoire
+2026-09-25 16:55:13,091 - INFO - Marquage des visées et des stations d'habillage, nbre: 19021
+2026-09-25 16:56:05,633 - INFO - Phase 3: Remplissage des tables d'après les 64171 entrée(s)
+2026-09-25 16:56:05,639 - INFO - Table des STATION entrée et fix, nbre: 194
+2026-09-25 16:56:05,680 - INFO - Phase 4: Remplissage des tables d'après les séries vides jonctionnées aux 194 entrée(s)
+on 1423: 2026-09-25 16:56:23,587 - INFO - Jonction à la Station_ID: 49335 entre les entrées 49456 et 49327
+on 3318: 2026-09-25 16:56:45,276 - INFO - Jonction à la Station_ID: 229 entre les entrées 218 et 834
+on 3357: 2026-09-25 16:56:46,060 - INFO - Jonction à la Station_ID: 3525 entre les entrées 3455 et 3525
+on 6351: 2026-09-25 16:57:20,739 - INFO - Jonction à la Station_ID: 1666 entre les entrées 1613 et 2784
+on 9158: 2026-09-25 16:58:28,171 - INFO - Jonction à la Station_ID: 3348 entre les entrées 3358 et 3397
+on 9594: 2026-09-25 16:58:43,664 - INFO - Jonction à la Station_ID: 48093 entre les entrées 49183 et 48104
+on 9622: 2026-09-25 16:58:47,830 - INFO - Jonction à la Station_ID: 49838 entre les entrées 49183 et 49803
+on 10275: 2026-09-25 16:59:02,939 - INFO - Jonction à la Station_ID: 40146 entre les entrées 38328 et 39667
+on 12587: 2026-09-25 17:00:04,043 - INFO - Jonction à la Station_ID: 47396 entre les entrées 48104 et 47360
+on 13062: 2026-09-25 17:00:15,401 - INFO - Jonction à la Station_ID: 9041 entre les entrées 10902 et 8905
+on 15553: 2026-09-25 17:01:23,971 - INFO - Jonction à la Station_ID: 12059 entre les entrées 10902 et 12987
+on 16763: 2026-09-25 17:01:53,334 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902
+on 16763: 2026-09-25 17:01:53,348 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902
+on 16817: 2026-09-25 17:01:55,341 - INFO - Jonction à la Station_ID: 9547 entre les entrées 9884 et 9366
+on 17832: 2026-09-25 17:02:26,728 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852
+on 17833: 2026-09-25 17:02:26,819 - INFO - Jonction à la Station_ID: 9338 entre les entrées 10902 et 14852
+on 17833: 2026-09-25 17:02:26,901 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852
+on 18972: 2026-09-25 17:02:54,687 - INFO - Jonction à la Station_ID: 12771 entre les entrées 14852 et 9366
+on 19046: 2026-09-25 17:02:58,500 - INFO - Jonction à la Station_ID: 17222 entre les entrées 16774 et 10902
+on 21114: 2026-09-25 17:03:55,184 - INFO - Jonction à la Station_ID: 15570 entre les entrées 8905 et 9366
+on 21600: 2026-09-25 17:04:09,586 - INFO - Jonction à la Station_ID: 47077 entre les entrées 49183 et 49089
+on 23056: 2026-09-25 17:04:49,226 - INFO - Jonction à la Station_ID: 15611 entre les entrées 9366 et 8905
+on 23137: 2026-09-25 17:04:51,614 - INFO - Jonction à la Station_ID: 15557 entre les entrées 8905 et 9366
+on 23142: 2026-09-25 17:04:51,706 - INFO - Jonction à la Station_ID: 9477 entre les entrées 8905 et 14852
+on 23144: 2026-09-25 17:04:51,940 - INFO - Jonction à la Station_ID: 9834 entre les entrées 14852 et 11338
+on 24975: 2026-09-25 17:05:47,136 - INFO - Jonction à la Station_ID: 16242 entre les entrées 15665 et 14852
+on 25697: 2026-09-25 17:06:11,697 - INFO - Jonction à la Station_ID: 16259 entre les entrées 10902 et 14852
+on 25981: 2026-09-25 17:06:22,742 - INFO - Jonction à la Station_ID: 50263 entre les entrées 50909 et 50130
+on 28328: 2026-09-25 17:07:22,128 - INFO - Jonction à la Station_ID: 9522 entre les entrées 16789 et 9366
+on 28497: 2026-09-25 17:07:28,936 - INFO - Jonction à la Station_ID: 44662 entre les entrées 49456 et 43628
+on 29909: 2026-09-25 17:08:06,745 - INFO - Jonction à la Station_ID: 44814 entre les entrées 48104 et 49456
+on 30963: 2026-09-25 17:08:34,847 - INFO - Jonction à la Station_ID: 16483 entre les entrées 15665 et 10902
+on 31414: 2026-09-25 17:08:50,770 - INFO - Jonction à la Station_ID: 17453 entre les entrées 19538 et 17667
+on 31827: 2026-09-25 17:08:58,838 - INFO - Jonction à la Station_ID: 25261 entre les entrées 27454 et 24729
+2026-09-25 17:15:42,526 - INFO - Intégrations des visées orphelines (entre 2 stations existantes), nbre: 340
+2026-09-25 17:15:51,202 - INFO - Réseau: 1, entrées jonctionnées: 10, [11338, 14852, 8905, 9366, 10902, 15665, 9884, 16789, 12987, 16774]
+2026-09-25 17:15:51,336 - INFO - Réseau: 2, entrées jonctionnées: 2, [3397, 3358]
+2026-09-25 17:15:51,853 - INFO - Réseau: 3, entrées jonctionnées: 8, [43628, 49456, 48104, 49327, 47360, 49183, 49089, 49803]
+2026-09-25 17:15:52,002 - INFO - Réseau: 4, entrées jonctionnées: 2, [1613, 2784]
+2026-09-25 17:15:52,130 - INFO - Réseau: 5, entrées jonctionnées: 2, [3455, 3525]
+2026-09-25 17:15:52,318 - INFO - Réseau: 6, entrées jonctionnées: 2, [24729, 27454]
+2026-09-25 17:15:52,564 - INFO - Réseau: 7, entrées jonctionnées: 2, [834, 218]
+2026-09-25 17:15:52,719 - INFO - Réseau: 8, entrées jonctionnées: 2, [38328, 39667]
+2026-09-25 17:15:52,873 - INFO - Réseau: 9, entrées jonctionnées: 2, [50130, 50909]
+2026-09-25 17:15:53,057 - INFO - Réseau: 10, entrées jonctionnées: 2, [17667, 19538]
+2026-09-25 17:15:54,300 - WARNING - Phase 4: Fin du remplissage des tables, attention 82 station(s) non comptabilisé(s)
+2026-09-25 17:15:54,469 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Synthese-PSM_LARRA\Outputs\readme
+2026-09-25 17:15:54,472 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)]
+2026-09-25 17:17:51,665 - INFO - Table des STATION entrée et fix, nbre: 194
+2026-09-25 17:19:27,421 - INFO - Phase 5: Fin de traitement en 27 (m) 21 (s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats
+2026-09-25 17:19:27,425 - INFO - Execution terminée sans erreur en 27(m)21(s)
+2026-09-25 17:58:56,870 - INFO - ***********************************************************************************************************************
+2026-09-25 17:58:56,871 - INFO - * Calcul des statistiques par entrées d'une BD Therion *
+2026-09-25 17:58:56,871 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr *
+2026-09-25 17:58:56,872 - INFO - * Version : 2026.09.25 *
+2026-09-25 17:58:56,872 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql *
+2026-09-25 17:58:56,872 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats *
+2026-09-25 17:58:56,873 - INFO - * Date : 2026-09-25 17h58m56s *
+2026-09-25 17:58:56,873 - INFO - * Mode : sync *
+2026-09-25 17:58:56,873 - INFO - ***********************************************************************************************************************
+2026-09-25 17:58:56,876 - INFO - Phase 1: Importation de la base de données Therion ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql dans: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats.db
+2026-09-25 17:59:00,541 - INFO - Phase 2: Création des nouvelles tables, indexation
+2026-09-25 17:59:00,911 - INFO - Jonction de SHOT equates, nbre: 2580
+2026-09-25 18:02:49,702 - INFO - ***********************************************************************************************************************
+2026-09-25 18:02:49,703 - INFO - * Calcul des statistiques par entrées d'une BD Therion *
+2026-09-25 18:02:49,703 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr *
+2026-09-25 18:02:49,703 - INFO - * Version : 2026.09.25 *
+2026-09-25 18:02:49,704 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql *
+2026-09-25 18:02:49,704 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats *
+2026-09-25 18:02:49,704 - INFO - * Date : 2026-09-25 18h02m49s *
+2026-09-25 18:02:49,705 - INFO - * Mode : sync *
+2026-09-25 18:02:49,705 - INFO - ***********************************************************************************************************************
+2026-09-25 18:02:49,708 - INFO - Phase 1: Importation de la base de données Therion ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql dans: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats.db
+2026-09-25 18:02:54,221 - INFO - Phase 2: Création des nouvelles tables, indexation
+2026-09-25 18:02:54,679 - INFO - Jonction de SHOT equates, nbre: 2580
+2026-09-25 18:07:31,851 - WARNING - Table des SHOT, visée(s) bloquante(s), même départ et arrivée, longueur nulle supprimée(s), nbre: 1688
+2026-09-25 18:07:34,662 - INFO - Table des SHOT, visées dupliquées traités, nbre: 19
+2026-09-25 18:07:35,072 - INFO - Création de l'index des tables principales et optimisation de la mémoire
+2026-09-25 18:07:35,285 - INFO - Marquage des visées et des stations d'habillage, nbre: 19021
+2026-09-25 18:09:08,064 - INFO - Phase 3: Remplissage des tables d'après les 64171 entrée(s)
+2026-09-25 18:09:08,072 - INFO - Table des STATION entrée et fix, nbre: 194
+2026-09-25 18:09:08,122 - INFO - Phase 4: Remplissage des tables d'après les séries vides jonctionnées aux 194 entrée(s)
+on 1423: 2026-09-25 18:09:27,468 - INFO - Jonction à la Station_ID: 49335 entre les entrées 49456 et 49327
+on 3318: 2026-09-25 18:09:50,453 - INFO - Jonction à la Station_ID: 229 entre les entrées 218 et 834
+on 3357: 2026-09-25 18:09:51,295 - INFO - Jonction à la Station_ID: 3525 entre les entrées 3455 et 3525
+on 6351: 2026-09-25 18:11:00,212 - INFO - Jonction à la Station_ID: 1666 entre les entrées 1613 et 2784
+on 9158: 2026-09-25 18:12:22,402 - INFO - Jonction à la Station_ID: 3348 entre les entrées 3358 et 3397
+on 9594: 2026-09-25 18:12:38,943 - INFO - Jonction à la Station_ID: 48093 entre les entrées 49183 et 48104
+on 9622: 2026-09-25 18:12:41,762 - INFO - Jonction à la Station_ID: 49838 entre les entrées 49183 et 49803
+on 10275: 2026-09-25 18:12:56,901 - INFO - Jonction à la Station_ID: 40146 entre les entrées 38328 et 39667
+on 12587: 2026-09-25 18:13:58,237 - INFO - Jonction à la Station_ID: 47396 entre les entrées 48104 et 47360
+on 13062: 2026-09-25 18:14:09,113 - INFO - Jonction à la Station_ID: 9041 entre les entrées 10902 et 8905
+on 15553: 2026-09-25 18:15:13,682 - INFO - Jonction à la Station_ID: 12059 entre les entrées 10902 et 12987
+on 16763: 2026-09-25 18:15:42,526 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902
+on 16763: 2026-09-25 18:15:42,541 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902
+on 16817: 2026-09-25 18:15:45,430 - INFO - Jonction à la Station_ID: 9547 entre les entrées 9884 et 9366
+on 17832: 2026-09-25 18:16:17,954 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852
+on 17833: 2026-09-25 18:16:18,157 - INFO - Jonction à la Station_ID: 9338 entre les entrées 10902 et 14852
+on 17833: 2026-09-25 18:16:18,216 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852
+on 18972: 2026-09-25 18:16:46,502 - INFO - Jonction à la Station_ID: 12771 entre les entrées 14852 et 9366
+on 19046: 2026-09-25 18:16:50,330 - INFO - Jonction à la Station_ID: 17222 entre les entrées 16774 et 10902
+on 21114: 2026-09-25 18:17:46,319 - INFO - Jonction à la Station_ID: 15570 entre les entrées 8905 et 9366
+on 21600: 2026-09-25 18:18:01,235 - INFO - Jonction à la Station_ID: 47077 entre les entrées 49183 et 49089
+on 23056: 2026-09-25 18:18:39,939 - INFO - Jonction à la Station_ID: 15611 entre les entrées 9366 et 8905
+on 23137: 2026-09-25 18:18:42,163 - INFO - Jonction à la Station_ID: 15557 entre les entrées 8905 et 9366
+on 23142: 2026-09-25 18:18:42,254 - INFO - Jonction à la Station_ID: 9477 entre les entrées 8905 et 14852
+on 23144: 2026-09-25 18:18:42,494 - INFO - Jonction à la Station_ID: 9834 entre les entrées 14852 et 11338
+on 24975: 2026-09-25 18:19:36,345 - INFO - Jonction à la Station_ID: 16242 entre les entrées 15665 et 14852
+on 25697: 2026-09-25 18:19:59,598 - INFO - Jonction à la Station_ID: 16259 entre les entrées 10902 et 14852
+on 25981: 2026-09-25 18:20:11,021 - INFO - Jonction à la Station_ID: 50263 entre les entrées 50909 et 50130
+on 28328: 2026-09-25 18:21:11,688 - INFO - Jonction à la Station_ID: 9522 entre les entrées 16789 et 9366
+on 28497: 2026-09-25 18:21:20,415 - INFO - Jonction à la Station_ID: 44662 entre les entrées 49456 et 43628
+on 29909: 2026-09-25 18:22:04,612 - INFO - Jonction à la Station_ID: 44814 entre les entrées 48104 et 49456
+on 30963: 2026-09-25 18:22:34,297 - INFO - Jonction à la Station_ID: 16483 entre les entrées 15665 et 10902
+on 31414: 2026-09-25 18:22:52,151 - INFO - Jonction à la Station_ID: 17453 entre les entrées 19538 et 17667
+on 31827: 2026-09-25 18:23:00,835 - INFO - Jonction à la Station_ID: 25261 entre les entrées 27454 et 24729
+2026-09-25 18:29:19,710 - INFO - Intégrations des visées orphelines (entre 2 stations existantes), nbre: 340
+2026-09-25 18:29:27,074 - INFO - Réseau: 1, entrées jonctionnées: 10, [11338, 14852, 8905, 9366, 10902, 15665, 9884, 16789, 12987, 16774]
+2026-09-25 18:29:27,199 - INFO - Réseau: 2, entrées jonctionnées: 2, [3397, 3358]
+2026-09-25 18:29:27,602 - INFO - Réseau: 3, entrées jonctionnées: 8, [43628, 49456, 48104, 49327, 47360, 49183, 49089, 49803]
+2026-09-25 18:29:27,686 - INFO - Réseau: 4, entrées jonctionnées: 2, [1613, 2784]
+2026-09-25 18:29:27,780 - INFO - Réseau: 5, entrées jonctionnées: 2, [3455, 3525]
+2026-09-25 18:29:27,934 - INFO - Réseau: 6, entrées jonctionnées: 2, [24729, 27454]
+2026-09-25 18:29:28,027 - INFO - Réseau: 7, entrées jonctionnées: 2, [834, 218]
+2026-09-25 18:29:28,137 - INFO - Réseau: 8, entrées jonctionnées: 2, [38328, 39667]
+2026-09-25 18:29:28,246 - INFO - Réseau: 9, entrées jonctionnées: 2, [50130, 50909]
+2026-09-25 18:29:28,374 - INFO - Réseau: 10, entrées jonctionnées: 2, [17667, 19538]
+2026-09-25 18:29:28,890 - WARNING - Phase 4: Fin du remplissage des tables, attention 82 station(s) non comptabilisé(s)
+2026-09-25 18:29:29,061 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Synthese-PSM_LARRA\Outputs\readme
+2026-09-25 18:29:29,063 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)]
+2026-09-25 18:31:14,108 - INFO - Table des STATION entrée et fix, nbre: 194
+2026-09-25 18:32:29,198 - INFO - Phase 5: Fin de traitement en 29 (m) 39 (s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats
+2026-09-25 18:32:29,203 - INFO - Execution terminée sans erreur en 29(m)39(s)
diff --git a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_rose.pdf b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_rose.pdf
index 3faba78..587ad2a 100644
Binary files a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_rose.pdf and b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_rose.pdf differ
diff --git a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.csv b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.csv
index ba50f1b..3b6a172 100644
--- a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.csv
+++ b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.csv
@@ -1,238 +1,238 @@
***********************************************************************************************************************
* Calcul des statistiques par entrées d'une BD Therion *
* Script pyThStat par : alexandre.pont@yahoo.fr *
-* Version : 2026.09.03 *
+* Version : 2026.09.25 *
* Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql *
* Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats *
-* Date : 2026-09-03 21h50m35s *
-* Durée calcul : 02 (m) 32 (s) sans erreur *
+* Date : 2026-09-25 18h02m49s *
+* Durée calcul : 29 (m) 39 (s) sans erreur *
***********************************************************************************************************************
-**Développement total centerline (m):** développement: 340302.67 , dupliqué: 15575.02 , surface: 8956.61
+**Développement total centerline (m):** développement: 340302.67 , dupliqué: 15575.02 , surface: 8956.61
Attention, 82 station(s) non comptabilisée(s) et raccordée(s)
Développement total par réseaux
- Entrée(s) Nbre Dev.(m) Prof.(m) Dupl.(m) Surf.(m) Visées ID Sta. Alt. min(m) ID Sta. Alt. max(m)
- Totaux (entrées et points fixes) 194 340302.68 2016.00 15575.02 8956.61 45150 ILLA13B 318.0 AN634 2334.00
- ERUSO, ODITA 2 61230.74 866.88 0.00 0.00 6345 LAR_d_15/16 568.12 ERUSO 1435.00
- C_104, C_2, C_226, C_50, D_9, LEPINEUX, M_31, M_413 8 48226.13 1113.08 7349.51 1.81 6021 - 1010.92 AN532 2124.00
- AN454, AN509, AN51, AN519, AN563, AN597, AN6, AN60, AN709, FR3 10 46208.59 859.07 329.07 7339.64 7484 AN43GA2 1319.13 AN509 2178.20
- 0, A60_GPS 2 41760.25 1204.65 3557.47 0.00 5594 S7-6 773.77 P1 1978.42
- ROBINET 1 12791.76 491.99 0.00 0.00 1478 ARP419/50 588.45 ARP338/21 1080.44
- LAK_1 1 10493.84 667.68 1481.76 0.00 1457 HF3 856.53 . 1524.21
- T_VENT, XEN 2 8676.45 548.79 1618.14 0.00 1062 LAR_d_478/2 966.47 _d_XEN_f_XX2 1515.26
- AN8, AN9 2 8226.55 805.22 0.00 0.00 898 AN8_d_1701 1007.78 AN9 1813.00
- AP_7 1 7233.06 377.95 116.43 0.00 1211 A 1327.05 AP_7 1705.00
- 0 1 7228.71 514.65 0.00 0.00 700 34 1460.35 0 1975.00
- B_3 1 6615.73 667.24 0.00 0.00 740 N-00 952.76 B_3 1620.00
- DS_49 1 5435.99 696.11 0.00 0.00 680 DS495/172 853.89 DS_49 1550.00
- BT_6 1 5212.26 670.59 0.00 0.00 744 BT6_d_2/641 947.41 BT_6 1618.00
- UK_4 1 4164.03 715.19 0.00 0.00 581 UK4_d_25/16 1083.81 VB11 1799.00
- LACS 1 4054.16 108.40 0.00 15.50 435 LAC_d_SORT27 529.73 LAC_d_MS7 638.13
- CHIPI 1 3512.87 553.48 0.00 0.00 572 CHI_d_46/6 941.52 CHIPI 1495.00
- RENARD 1 3338.53 208.44 0.00 0.00 395 REN_d_1/34 396.01 REN_d_2/15 604.45
- BG_63 1 3278.77 356.85 0.00 0.00 675 BG6322-31 1029.15 BG_63 1386.00
- GL_102, GL_4 2 3026.31 471.24 111.58 0.00 323 25 1164.76 GL_4 1636.00
- UK_557 1 2564.77 316.87 0.00 0.00 327 UK557_d_5/56 1828.13 A_4 2145.00
- E2000 1 2383.58 535.79 0.00 0.00 279 B38 1727.21 AN639 2263.00
- ALAHAIS 1 1892.89 136.24 0.00 0.00 253 ALA_d_6/11 795.76 ALAHAIS 932.00
- SC_60 1 1795.14 323.45 64.40 0.00 269 232 1838.77 2.4 2162.22
- M_326 1 1667.15 384.30 0.00 0.00 289 M3263/199 1725.70 M_326 2110.00
- L_5 1 1645.48 371.69 66.04 0.00 292 FL386.138.71 1651.31 L_5 2023.00
- AN43 1 1540.03 376.73 0.00 0.00 248 BG632-31 1349.27 AN43 1726.00
- Z_124 1 1412.20 379.71 0.00 0.00 117 39V 1349.71 A60_111 1729.42
- Z_127 1 1400.82 529.78 0.00 0.00 262 _d_Z127_f_264 1128.22 HP10 1658.00
- C_214 1 1064.44 420.12 0.00 0.00 157 C214_d_130 1513.88 C_214 1934.00
- Z_17 1 1011.10 404.84 0.00 0.00 115 Z17_d_11/5 1348.16 - 1753.00
- AN669 1 1002.32 352.95 0.00 23.59 168 FL15 1870.75 AN669 2223.70
- AN211, AN596 2 882.32 344.27 0.00 21.77 114 QR2_35 1715.79 HB20 2060.06
- MARTIN 1 874.76 244.16 0.00 0.00 98 MAR_d_10/4 575.84 MARTIN 820.00
- Z_510 1 852.63 237.20 162.35 0.00 185 M31_d_98/3 1406.80 - 1644.00
- C_230 1 836.03 268.62 0.00 0.00 135 _d_C230_f_164 1616.38 C_230 1885.00
- AN506 1 817.47 409.24 0.00 0.00 87 PF10 1754.06 AN506 2163.30
- M_414 1 807.45 351.32 40.10 0.00 119 M414_d_1/52 1762.68 AN109 2114.00
- BL_118 1 794.25 296.93 0.00 0.00 114 BL118_d_2/89 726.07 BL_118 1023.00
- Z_112 1 767.20 261.03 0.00 0.00 90 AN43DO11 1377.97 Z_112 1639.00
- GORRIA 1 750.26 431.36 0.00 0.00 137 GOR_d_6/32 1172.64 GORRIA 1604.00
- C_110 1 735.00 303.54 0.00 0.00 52 . 1479.46 C_110 1783.00
- Visée(s) non raccordées 0 727.76 - 0.00 0.00 81 AN514 2324.00 - -
- C_243 1 673.74 186.53 0.00 0.00 84 C243_d_84 1752.47 UD13 1939.00
- AN26 1 658.53 256.95 0.00 0.00 107 AN26DA7 1462.05 AN26 1719.00
- AN_594 1 639.69 185.76 0.00 83.78 165 VB17 1770.24 AN_594 1956.00
- AN52, AN676A 2 616.56 100.93 0.00 51.08 165 BFF47 2069.07 AN52 2170.00
- AN_326 1 598.25 271.81 0.00 119.58 129 AN326CF11 1350.19 AN_324 1622.00
- AN595 1 570.06 291.30 0.00 92.15 92 FZ28 1957.20 AN595 2248.50
- STALAC 1 537.38 164.47 0.00 0.00 49 STALAC 530.00 STA_d_2/2 694.47
- BEAUF 1 530.65 281.98 0.00 0.00 67 BEAU2/10 1458.02 E20_d_226 1740.00
- Sima_1748 1 515.00 263.50 0.00 0.00 17 _d_1748_f_5.7 1484.50 Sima_1748 1748.00
- C_108 1 509.80 194.09 0.00 0.00 26 C1085_1 1702.91 C_108 1897.00
- Z_106 1 503.29 241.69 0.00 0.00 86 - 1383.31 FL386.160 1625.00
- ILLAMI 1 479.60 120.00 0.00 0.00 52 ILLA13B 318.00 ILLAMI 438.00
- CASCA 1 474.60 23.51 0.00 0.00 63 CAS_d_1/63 539.66 LAC_d_RD 563.17
- F_2 1 464.88 294.26 0.00 0.00 49 GDP1050/9 1687.74 M_13 1982.00
- AN109 1 436.21 253.70 0.00 0.00 73 QO2_13 1860.30 AN109 2114.00
- AN_702, AN_704 2 426.96 216.55 17.01 0.00 80 MHX33 1766.73 CX15 1983.28
- E22_00 1 410.70 312.59 0.00 0.00 43 E22_d_38 1948.41 E22_00 2261.00
- AN588 1 385.24 220.08 0.00 0.00 56 QS2 1862.92 AN588 2083.00
- AN58 1 373.97 127.99 0.00 24.34 81 XX17 2072.01 AN58 2200.00
- AN514 1 361.91 182.14 0.00 60.83 82 XI3 2143.31 QU6 2325.45
- SC_223 1 347.61 177.54 0.00 0.00 58 18 1981.10 SC212 2158.64
- Z_111 1 316.00 175.12 0.00 0.00 21 Z11113 1509.88 Z_111 1685.00
- AN3 1 310.92 205.15 0.00 44.73 53 QE18 1839.85 AN3 2045.00
- BOUQUE 1 297.11 144.44 0.00 0.00 52 BOU_d_4/6 1432.56 BOUQUE 1577.00
- AN534 1 291.51 133.81 0.00 178.10 64 QW19 2001.19 AN534 2135.00
- K7_00 1 278.70 190.43 0.00 0.00 15 MA22 1750.57 K7_00 1941.00
- AN591 1 268.36 102.32 0.00 0.00 55 IZ40 2044.68 AN591 2147.00
- M_405 1 255.79 185.38 0.00 0.00 46 M405_d_2/46 1939.62 AN107 2125.00
- A_106 1 253.98 126.55 0.00 0.00 61 A106_d_EA1 1521.45 A_106 1648.00
- AN73 1 248.35 210.40 0.00 38.50 23 ESF1 1861.60 AN73 2072.00
- ARPHIDIA 1 243.24 68.25 0.00 0.00 33 ARP100/33 985.75 ROBINET 1054.00
- AN107 1 242.97 161.77 0.00 14.50 48 AH6X 1963.23 AN107 2125.00
- ERE_80 1 240.75 158.68 0.00 0.00 18 LIN_d_1/10 1697.32 ERE_80 1856.00
- BB26 1 227.19 71.56 62.66 4.80 71 32d 1448.44 LT345_79DD 1520.00
- AN61 1 224.45 139.93 0.00 2.78 44 XA40 2076.57 AN61 2216.50
- E3_TSR3 1 220.56 120.89 0.00 0.00 40 F.44 1809.11 E3_TSR3 1930.00
- oueils 1 218.33 72.59 0.00 0.00 18 l1 617.41 oueils 690.00
- UT_140 1 209.48 187.18 0.00 0.00 19 UT140_d_1/19 940.82 UT_140 1128.00
- AP_337 1 208.06 118.44 0.00 0.00 25 AP_d_7A19 1631.56 AP_333 1750.00
- UK_559 1 206.95 70.13 0.00 0.00 53 UK559_d_1/22 1967.87 UK_559 2038.00
- AN103 1 204.38 92.68 0.00 42.98 52 KH7 2045.32 AN103 2138.00
- UK_D6 1 191.26 61.02 0.00 0.00 48 UKD6_d_1/11 1963.32 UKD6_d_2/7 2024.34
- Z_143 1 187.50 113.00 0.00 0.00 22 _d_Z143_f_14 1561.00 Z_143 1674.00
- AN456 1 156.69 107.52 0.00 0.00 36 UV7 1854.48 AN456 1962.00
- PYRENE 1 154.46 35.34 0.00 0.00 58 _d_PY_f_57 2274.76 _d_PY_f_3 2310.10
- AN548 1 153.85 50.43 5.62 10.18 30 HH3 2046.24 BA11 2096.67
- A_110 1 148.40 126.43 0.00 0.00 13 A110_d_1/13 1693.57 A_110 1820.00
- AN1 1 143.33 111.32 0.00 0.00 28 MD27 2057.68 AN1 2169.00
- Z208 1 140.65 47.61 0.00 0.00 21 Z208_d_4 1494.53 JK01 1542.14
- AN57 1 140.39 77.17 95.38 0.00 50 LK1 1995.23 BFF25 2072.40
- AN624 1 130.95 78.13 0.00 19.57 43 HD2 1870.87 AN624 1949.00
- MOUTON 1 128.55 43.84 0.00 0.00 19 LACS 535.00 MOU_d_3/3 578.84
- C_299 1 128.51 46.27 0.00 0.00 53 50 1966.53 2 2012.80
- AN542 1 128.43 76.76 0.00 0.00 20 PO01 2073.24 AN542 2150.00
- AN546 1 124.15 84.79 0.00 0.00 20 VX14 2182.21 AN546 2267.00
- AN619 1 122.42 65.84 0.00 0.00 19 QD11 1967.42 QD2 2033.26
- AN672 1 116.60 79.29 0.00 0.00 27 RO4 1883.71 AN672 1963.00
- AN567 1 112.67 75.18 0.00 0.00 17 FH1 2069.82 A_4 2145.00
- F_404 1 110.42 70.79 0.00 0.00 12 F404_d_2/3 1919.21 LT346_80UH 1990.00
- AN683 1 110.10 67.33 0.00 0.00 14 CK12 2082.67 AN542 2150.00
- AN561 1 109.01 88.93 0.00 0.00 17 AX18 2137.07 AN561 2226.00
- M_108 1 106.39 80.56 0.00 0.00 17 M108_d_1/15 1949.44 M_108 2030.00
- C_103 1 105.60 58.28 0.00 0.00 9 C103_d_1/5 1796.91 C103_d_1/1 1855.19
- Z_107 1 103.65 49.77 0.00 0.00 23 - 1610.23 Z_107 1660.00
- AN639 1 102.88 39.06 0.00 0.00 18 HF7 2223.94 AN639 2263.00
- Z_123 1 102.29 45.64 0.00 0.00 21 PE33 1652.61 EB45 1698.25
- A_4 1 99.18 51.51 0.00 31.01 27 SW11 2093.49 A_4 2145.00
- AN671 1 96.98 89.95 0.00 0.00 10 FM1 1868.05 AN671 1958.00
- M_400 1 94.53 88.87 0.00 0.00 9 PO07 2114.13 M_400 2203.00
- AN453 1 91.25 66.69 0.00 0.00 19 MFX11 1905.31 AN453 1972.00
- CUCC_5 1 89.00 42.88 0.00 0.00 14 CUCC5_d_9 1668.12 CUCC_5 1711.00
- AN507 1 88.22 56.14 0.00 9.06 20 HL5 2089.46 AN507 2145.60
- AN62 1 86.80 64.76 0.00 0.00 10 LJ2 2127.24 AN62 2192.00
- CUCC_4 1 86.60 56.50 0.00 0.00 11 CUCC4_d_8 1671.50 CUCC_4 1728.00
- AN708 1 79.05 31.86 0.00 2.19 23 JU2 2102.14 AN708 2134.00
- AN631 1 78.00 69.33 0.00 7.26 14 XB1 2175.67 AN631 2245.00
- MARMI 1 76.12 23.64 0.00 0.00 14 MARMI 2005.00 MARM1/12 2028.64
- C_213 1 75.96 51.79 0.00 0.00 18 _d_C213_f_AA7 1838.21 C_213 1890.00
- LAK_15 1 75.19 29.45 0.00 2.99 16 _d_LAK15_f_AA12 1505.55 LAK_15 1535.00
- IS_6B 1 74.90 61.87 0.00 0.00 10 IS6B_d_10 1667.13 IS_6B 1729.00
- AN616 1 69.84 53.77 0.00 0.00 14 UD2 1890.23 AN616 1944.00
- AN635 1 68.51 46.38 0.00 0.00 9 TD1 2268.62 AN635 2315.00
- AN627 1 67.93 15.78 0.00 11.22 25 FG6 2128.22 AN627 2144.00
- BB09 1 66.89 58.51 0.00 0.00 12 suite 1442.49 BB09 1501.00
- AN634 1 63.56 50.07 0.00 0.00 10 NA11 2283.93 AN634 2334.00
- AN564 1 60.62 30.84 0.00 0.00 10 FQ9 2124.16 AN564 2155.00
- AN_455 1 59.25 38.27 0.00 5.26 21 OZ0 1929.73 AN_455 1968.00
- AN692 1 58.83 45.51 0.00 6.95 20 GF1 1917.63 CY13 1963.14
- AN557 1 57.83 36.74 0.00 121.83 30 FS22 2080.11 FS6 2116.85
- BB27 1 57.60 26.51 17.50 0.00 22 15 1474.74 0 1501.25
- AN646 1 54.48 47.28 0.00 0.00 10 QC11 2114.72 AN646 2162.00
- AN536 1 54.27 10.39 0.00 13.33 19 BGG11 2099.25 BGG3 2109.64
- AN_465 1 53.34 18.72 0.00 39.73 23 PX11 2106.35 PX14 2125.07
- AN480 1 50.56 47.11 0.00 0.00 9 ZC8 1897.89 AN480 1945.00
- Z_108 1 49.64 9.59 0.00 0.00 15 _d_Z108_f_2.3 1675.08 _d_Z108_f_1.9 1684.67
- AP_45 1 47.80 17.95 0.00 0.00 8 AP45_d_3A 1684.05 AP_45 1702.00
- AN622 1 44.78 23.44 0.00 19.82 16 EL2 2010.56 AN622 2034.00
- AN576 1 44.01 27.71 0.00 0.00 8 JD1 2121.29 AN576 2149.00
- Z_100 1 43.32 34.66 0.00 0.00 7 - 1645.34 Z_100 1680.00
- IS9_00 1 43.13 30.43 0.00 0.00 9 GDP10/24 1755.57 IS9_00 1786.00
- AP_333 1 37.25 15.23 0.00 0.00 7 AP_d_3B07 1734.77 AP_333 1750.00
- AN66 1 33.99 32.95 0.00 5.08 6 JEX1 2078.05 JEX6 2111.00
- AN45 1 32.50 28.67 0.00 0.00 7 AN45-7 1627.33 AN45 1656.00
- AN37 1 32.00 27.68 0.00 0.00 6 AN376 1718.32 AN37 1746.00
- AN532 1 31.50 3.67 0.00 0.00 11 UW10 2121.19 UW01 2124.86
- AN711 1 31.00 5.85 0.00 0.00 10 NE8 2106.15 AN557 2112.00
- Z_444 1 26.44 6.21 0.00 0.00 9 _d_Z444_f_1.5 1679.79 QUI1.38 1686.00
- AN699 1 26.18 21.75 0.00 11.26 7 AH13 1984.25 AN699 2006.00
- BB_50 1 25.00 21.87 0.00 39.41 27 _d_BB50_f_FOND 1515.13 BB_50 1537.00
- AN_324 1 20.47 12.89 0.00 0.00 7 _d_AN324_f_5 1609.11 AN_324 1622.00
- AN_325 1 17.74 10.15 0.00 0.00 6 _d_AN325_f_6 1592.85 AN_325 1603.00
- LT345_79 1 0.00 40.00 0.00 120.00 6 LT345_79HH 1480.00 LT345_79DD 1520.00
- LT346_80 1 0.00 20.00 0.00 60.00 6 LT346_80UH 1990.00 LT346_80UD 2010.00
- LT344_80 1 0.00 20.00 0.00 60.00 6 LT346_80UH 1990.00 LT346_80UD 2010.00
- LT346_78 1 0.00 20.00 0.00 60.00 6 LT346_80UH 1990.00 LT346_80UD 2010.00
- LT344_78 1 0.00 20.00 0.00 60.00 6 LT346_80UH 1990.00 LT346_80UD 2010.00
- UT683_4757 1 0.00 0.00 0.00 20.00 2 LT346_80 2000.00 LT346_80 2000.00
- UT684_4757 1 0.00 0.00 0.00 20.00 2 LT346_80 2000.00 LT346_80 2000.00
- UT684_4758 1 0.00 0.00 0.00 20.00 2 LT346_80 2000.00 LT346_80 2000.00
- UT683_4758 1 0.00 0.00 0.00 20.00 2 LT346_80 2000.00 LT346_80 2000.00
- SC_3 1 0.00 40.00 120.00 0.00 6 4 2017.00 AN596 2057.00
- M_13 1 0.00 40.00 120.00 0.00 6 AN456 1962.00 B 2002.00
- SL_19 1 0.00 40.00 120.00 0.00 6 G 1747.00 - 1787.00
- HUET 1 0.00 40.00 120.00 0.00 6 CHI_d_38/1 1275.00 N 1315.00
- Entrée(s) sans topographie 5 0.00 245.00 0.00 0.00 0 LT345_79 1500.0 Z150_d_1_0 1745.00
+ Réseaux Entrée(s) Nbre Dev.(m) Prof.(m) Dupl.(m) Surf.(m) Visées ID Sta. Alt. min(m) ID Sta. Alt. max(m)
+ Totaux 194 340302.68 2016.00 15575.02 8956.61 45150 ILLA13B 318.0 AN634 2334.00
+ Complexe Arrestelia 555S700C2X164, 565S800C1X157 2 61230.74 866.88 0.00 0.00 6345 LAR_d_15/16 568.12 ERUSO 1435.00
+ Complexe PSM GdP C104, C2 Gouffre des quinquas, C104, C2 Gouffre des quinquas, C226 Sima grande, SECTION001 - Puits C50 , D9 Gouffre de la tête sauvage, Puits Lépineux, M31 Gouffre du Pourtet, M413 Gouffre des partages 8 48226.13 1113.08 7349.51 1.81 6021 - 1010.92 AN532 2124.00
+ Complexe Anialarra AN454-21-01, AN509-1, AN51 01, AN519 A AN519 B, AN563-14-16, AN597-16-1, AN6-02-01, AN60-11-00, AN709-20-01, FR3-FI06 16 10 46208.59 859.07 329.07 7339.64 7484 AN43GA2 1319.13 AN509 2178.20
+ Complexe BU56 Ilamina ILAMINA - BU56 A60 Explo num 06, ILAMINA - BU56 A60 Explo num 62 2 41760.25 1204.65 3557.47 0.00 5594 S7-6 773.77 P1 1978.42
+ 12S15C2X1 - 9S9C2X1 1 12791.76 491.99 0.00 0.00 1478 ARP419/50 588.45 ARP338/21 1080.44
+ Grotte de l'Ours - Perdida del Becerro Explo num 32 1 10493.84 667.68 1481.76 0.00 1457 HF3 856.53 . 1524.21
+ Complexe PSM GdP VER SECTION001 VER SECTION002 Tunnel de la Verna, Xendako ziloa 2 8676.45 548.79 1618.14 0.00 1062 LAR_d_478/2 966.47 _d_XEN_f_XX2 1515.26
+ AN008 SECTION001, SECTION014 SECTION015 2 8226.55 805.22 0.00 0.00 898 AN8_d_1701 1007.78 AN9 1813.00
+ Gouffre des arres planères AP7 1 7233.06 377.95 116.43 0.00 1211 A 1327.05 AP_7 1705.00
+ Sima del Tobozo (galerie 1) 1 7228.71 514.65 0.00 0.00 700 34 1460.35 0 1975.00
+ Gouffre des Bourrugues B3, entrée 01 : puits d'entrée 1 6615.73 667.24 0.00 0.00 740 N-00 952.76 B_3 1620.00
+ 10S6C7X1 - 9S5C6X1 1 5435.99 696.11 0.00 0.00 680 DS495/172 853.89 DS_49 1550.00
+ 1S1C1X1 2S2C1X1 3S3C1X1 1 5212.26 670.59 0.00 0.00 744 BT6_d_2/641 947.41 BT_6 1618.00
+ 1S1C1X1 2S1C4X1 1 4164.03 715.19 0.00 0.00 581 UK4_d_25/16 1083.81 VB11 1799.00
+ SECTION006 - SECTION009 1 4054.16 108.40 0.00 15.50 435 LAC_d_SORT27 529.73 LAC_d_MS7 638.13
+ 10S10C1X1 - 9S9C1X1 1 3512.87 553.48 0.00 0.00 572 CHI_d_46/6 941.52 CHIPI 1495.00
+ 1S1C1X1 - 9S9C1X1 1 3338.53 208.44 0.00 0.00 395 REN_d_1/34 396.01 REN_d_2/15 604.45
+ SECTION001 1 3278.77 356.85 0.00 0.00 675 BG6322-31 1029.15 BG_63 1386.00
+ Complexe Lonné Peyret-Bourrugues Gouffre du Lonné Peyret GL102 - Entrée, Gouffre du Cam de Caque GL04 2 3026.31 471.24 111.58 0.00 323 25 1164.76 GL_4 1636.00
+ 17S17C1X1 18S17C3X1 19S18C1X1 1S1C1X1 1 2564.77 316.87 0.00 0.00 327 UK557_d_5/56 1828.13 A_4 2145.00
+ SECTION001 1 2383.58 535.79 0.00 0.00 279 B38 1727.21 AN639 2263.00
+ 1S1C1X1 1 1892.89 136.24 0.00 0.00 253 ALA_d_6/11 795.76 ALAHAIS 932.00
+ SC 60 1 1795.14 323.45 64.40 0.00 269 232 1838.77 2.4 2162.22
+ 1S1C1X1 2S2C1X1 3S3C1X1 5S4C1X1 7S5C1X1 1 1667.15 384.30 0.00 0.00 289 M3263/199 1725.70 M_326 2110.00
+ L5 Entrée puits 1 1645.48 371.69 66.04 0.00 292 FL386.138.71 1651.31 L_5 2023.00
+ AN43SECTION001 1 1540.03 376.73 0.00 0.00 248 BG632-31 1349.27 AN43 1726.00
+ SECTION001 1 1412.20 379.71 0.00 0.00 117 39V 1349.71 A60_111 1729.42
+ Z127 SECTION001 1 1400.82 529.78 0.00 0.00 262 _d_Z127_f_264 1128.22 HP10 1658.00
+ C214 Sima de la niebla 1 1064.44 420.12 0.00 0.00 157 C214_d_130 1513.88 C_214 1934.00
+ 10S10C1X1 - 9S9C1X1 1 1011.10 404.84 0.00 0.00 115 Z17_d_11/5 1348.16 - 1753.00
+ AN669-10-20 1 1002.32 352.95 0.00 23.59 168 FL15 1870.75 AN669 2223.70
+ Synthèse générale des réseaux de la Pierre Saint Martin-Larra AN211-93 S1, AN596-16-1 2 882.32 344.27 0.00 21.77 114 QR2_35 1715.79 HB20 2060.06
+ 10S10C1X1 - 9S9C1X1 1 874.76 244.16 0.00 0.00 98 MAR_d_10/4 575.84 MARTIN 820.00
+ Gouffre Z510 1 852.63 237.20 162.35 0.00 185 M31_d_98/3 1406.80 - 1644.00
+ C230 Sima ricky et ses ours 1 836.03 268.62 0.00 0.00 135 _d_C230_f_164 1616.38 C_230 1885.00
+ AN506 MO AN506 PF 1 817.47 409.24 0.00 0.00 87 PF10 1754.06 AN506 2163.30
+ M414 (entrée) 1 807.45 351.32 40.10 0.00 119 M414_d_1/52 1762.68 AN109 2114.00
+ 1S1C1X1 2S2C1X1 1 794.25 296.93 0.00 0.00 114 BL118_d_2/89 726.07 BL_118 1023.00
+ Z112 SECTION001 1 767.20 261.03 0.00 0.00 90 AN43DO11 1377.97 Z_112 1639.00
+ 1S1C1X1 1 750.26 431.36 0.00 0.00 137 GOR_d_6/32 1172.64 GORRIA 1604.00
+ C110 1 735.00 303.54 0.00 0.00 52 . 1479.46 C_110 1783.00
+ Visée(s) non raccordées 0 727.76 - 0.00 0.00 81 AN514 2324.00 - -
+ C243 Sima de los cairns 1 673.74 186.53 0.00 0.00 84 C243_d_84 1752.47 UD13 1939.00
+ SECTION001 1 658.53 256.95 0.00 0.00 107 AN26DA7 1462.05 AN26 1719.00
+ AN594-12-25 1 639.69 185.76 0.00 83.78 165 VB17 1770.24 AN_594 1956.00
+ AN676-Helado AN676-FI11-16, AN676-FI11-10 2 616.56 100.93 0.00 51.08 165 BFF47 2069.07 AN52 2170.00
+ AN326SECTION001 1 598.25 271.81 0.00 119.58 129 AN326CF11 1350.19 AN_324 1622.00
+ AN595-FI10-25 1 570.06 291.30 0.00 92.15 92 FZ28 1957.20 AN595 2248.50
+ 1S1C1X1 - 7S8C1X1 1 537.38 164.47 0.00 0.00 49 STALAC 530.00 STA_d_2/2 694.47
+ 1S1C1X1 4S4C1X1 5S5C1X1 6S6C1X1 7S7C1X1 1 530.65 281.98 0.00 0.00 67 BEAU2/10 1458.02 E20_d_226 1740.00
+ 1748 SECTION001 1 515.00 263.50 0.00 0.00 17 _d_1748_f_5.7 1484.50 Sima_1748 1748.00
+ C108 Sima H 1 509.80 194.09 0.00 0.00 26 C1085_1 1702.91 C_108 1897.00
+ 1S1C1X1 2S2C1X1 3S3C1X1 4S4C1X1 5S5C1X1 1 503.29 241.69 0.00 0.00 86 - 1383.31 FL386.160 1625.00
+ SECTION001 SECTION002 1 479.60 120.00 0.00 0.00 52 ILLA13B 318.00 ILLAMI 438.00
+ 1S1C1X1 1 474.60 23.51 0.00 0.00 63 CAS_d_1/63 539.66 LAC_d_RD 563.17
+ 1S1C1X1 2S2C1X1 1 464.88 294.26 0.00 0.00 49 GDP1050/9 1687.74 M_13 1982.00
+ AN109 S1 - AN109 S6 1 436.21 253.70 0.00 0.00 73 QO2_13 1860.30 AN109 2114.00
+ Synthèse générale des réseaux de la Pierre Saint Martin-Larra AN702-19-01, AN704-19-01 2 426.96 216.55 17.01 0.00 80 MHX33 1766.73 CX15 1983.28
+ SECTION001 1 410.70 312.59 0.00 0.00 43 E22_d_38 1948.41 E22_00 2261.00
+ AN588-FI10-12 1 385.24 220.08 0.00 0.00 56 QS2 1862.92 AN588 2083.00
+ AN58-2024-02 1 373.97 127.99 0.00 24.34 81 XX17 2072.01 AN58 2200.00
+ AN514-08 14 1 361.91 182.14 0.00 60.83 82 XI3 2143.31 QU6 2325.45
+ SC 223 1 347.61 177.54 0.00 0.00 58 18 1981.10 SC212 2158.64
+ SECTION001 1 316.00 175.12 0.00 0.00 21 Z11113 1509.88 Z_111 1685.00
+ AN3-2023-01 AN3-2023-02 1 310.92 205.15 0.00 44.73 53 QE18 1839.85 AN3 2045.00
+ 1S1C1X1 1 297.11 144.44 0.00 0.00 52 BOU_d_4/6 1432.56 BOUQUE 1577.00
+ AN534-01 AN534-02 1 291.51 133.81 0.00 178.10 64 QW19 2001.19 AN534 2135.00
+ K7 Hourat det soure 1 278.70 190.43 0.00 0.00 15 MA22 1750.57 K7_00 1941.00
+ AN591-FI11 20 1 268.36 102.32 0.00 0.00 55 IZ40 2044.68 AN591 2147.00
+ 1S1C1X1 2S2C1X1 1 255.79 185.38 0.00 0.00 46 M405_d_2/46 1939.62 AN107 2125.00
+ A106 SECTION001 1 253.98 126.55 0.00 0.00 61 A106_d_EA1 1521.45 A_106 1648.00
+ AN73-86-05 1 248.35 210.40 0.00 38.50 23 ESF1 1861.60 AN73 2072.00
+ 30S100C1X11 1 243.24 68.25 0.00 0.00 33 ARP100/33 985.75 ROBINET 1054.00
+ AN107-03 12 1 242.97 161.77 0.00 14.50 48 AH6X 1963.23 AN107 2125.00
+ 1S1C1X1 2S2C2X2 3S3C2X2 1 240.75 158.68 0.00 0.00 18 LIN_d_1/10 1697.32 ERE_80 1856.00
+ BB26 zone d'entree 1 227.19 71.56 62.66 4.80 71 32d 1448.44 LT345_79DD 1520.00
+ AN61 01 AN61 02 1 224.45 139.93 0.00 2.78 44 XA40 2076.57 AN61 2216.50
+ 1S1C1X1 - 9S5C1X1 1 220.56 120.89 0.00 0.00 40 F.44 1809.11 E3_TSR3 1930.00
+ Oueils exondé étiage 1 218.33 72.59 0.00 0.00 18 l1 617.41 oueils 690.00
+ 1S1C1X1 1 209.48 187.18 0.00 0.00 19 UT140_d_1/19 940.82 UT_140 1128.00
+ SECTION001 1 208.06 118.44 0.00 0.00 25 AP_d_7A19 1631.56 AP_333 1750.00
+ 1S1C2X1 - 7S6C1X1 1 206.95 70.13 0.00 0.00 53 UK559_d_1/22 1967.87 UK_559 2038.00
+ AN103 1 1 204.38 92.68 0.00 42.98 52 KH7 2045.32 AN103 2138.00
+ 1S1C1X1 - 9S8C1X1 1 191.26 61.02 0.00 0.00 48 UKD6_d_1/11 1963.32 UKD6_d_2/7 2024.34
+ Z143 SECTION001 1 187.50 113.00 0.00 0.00 22 _d_Z143_f_14 1561.00 Z_143 1674.00
+ AN456-21-01 1 156.69 107.52 0.00 0.00 36 UV7 1854.48 AN456 1962.00
+ SECTION001 1 154.46 35.34 0.00 0.00 58 _d_PY_f_57 2274.76 _d_PY_f_3 2310.10
+ AN548-FI03 04 1 153.85 50.43 5.62 10.18 30 HH3 2046.24 BA11 2096.67
+ 1S1C1X1 1 148.40 126.43 0.00 0.00 13 A110_d_1/13 1693.57 A_110 1820.00
+ AN1 1 143.33 111.32 0.00 0.00 28 MD27 2057.68 AN1 2169.00
+ Z208 SECTION001 Z208 SECTION002 1 140.65 47.61 0.00 0.00 21 Z208_d_4 1494.53 JK01 1542.14
+ AN57-FI07-03 1 140.39 77.17 95.38 0.00 50 LK1 1995.23 BFF25 2072.40
+ AN624-16-1 1 130.95 78.13 0.00 19.57 43 HD2 1870.87 AN624 1949.00
+ 1S1C1X1 2S2C1X1 3S3C1X1 1 128.55 43.84 0.00 0.00 19 LACS 535.00 MOU_d_3/3 578.84
+ C299 Gouffre belle gueule 1 128.51 46.27 0.00 0.00 53 50 1966.53 2 2012.80
+ FI00 21 FI00 21b 1 128.43 76.76 0.00 0.00 20 PO01 2073.24 AN542 2150.00
+ AN546-FI00 18 1 124.15 84.79 0.00 0.00 20 VX14 2182.21 AN546 2267.00
+ AN619-13-16 1 122.42 65.84 0.00 0.00 19 QD11 1967.42 QD2 2033.26
+ AN672-FI10-06 1 116.60 79.29 0.00 0.00 27 RO4 1883.71 AN672 1963.00
+ FI02 05 1 112.67 75.18 0.00 0.00 17 FH1 2069.82 A_4 2145.00
+ 1S1C1X1 2S2C1X1 3S3C1X1 1 110.42 70.79 0.00 0.00 12 F404_d_2/3 1919.21 LT346_80UH 1990.00
+ AN683-FI12-31 1 110.10 67.33 0.00 0.00 14 CK12 2082.67 AN542 2150.00
+ AN561 1 109.01 88.93 0.00 0.00 17 AX18 2137.07 AN561 2226.00
+ 1S1C1X1 1 106.39 80.56 0.00 0.00 17 M108_d_1/15 1949.44 M_108 2030.00
+ 1S1C1X1 2S2C1X1 3S3C1X1 1 105.60 58.28 0.00 0.00 9 C103_d_1/5 1796.91 C103_d_1/1 1855.19
+ Z107 SECTION001 1 103.65 49.77 0.00 0.00 23 - 1610.23 Z_107 1660.00
+ AN639-15-01 1 102.88 39.06 0.00 0.00 18 HF7 2223.94 AN639 2263.00
+ Z123 SECTION001 1 102.29 45.64 0.00 0.00 21 PE33 1652.61 EB45 1698.25
+ FI00 19 1 99.18 51.51 0.00 31.01 27 SW11 2093.49 A_4 2145.00
+ AN671-16-1 1 96.98 89.95 0.00 0.00 10 FM1 1868.05 AN671 1958.00
+ 1S1C1X1 1 94.53 88.87 0.00 0.00 9 PO07 2114.13 M_400 2203.00
+ AN453-20-01 1 91.25 66.69 0.00 0.00 19 MFX11 1905.31 AN453 1972.00
+ SECTION001 1 89.00 42.88 0.00 0.00 14 CUCC5_d_9 1668.12 CUCC_5 1711.00
+ AN507-15-1 1 88.22 56.14 0.00 9.06 20 HL5 2089.46 AN507 2145.60
+ FI02 16 1 86.80 64.76 0.00 0.00 10 LJ2 2127.24 AN62 2192.00
+ SECTION001 1 86.60 56.50 0.00 0.00 11 CUCC4_d_8 1671.50 CUCC_4 1728.00
+ AN708-19-1 1 79.05 31.86 0.00 2.19 23 JU2 2102.14 AN708 2134.00
+ AN631 1 78.00 69.33 0.00 7.26 14 XB1 2175.67 AN631 2245.00
+ 1S1C1X1 2S2C1X1 1 76.12 23.64 0.00 0.00 14 MARMI 2005.00 MARM1/12 2028.64
+ C213 SECTION001 1 75.96 51.79 0.00 0.00 18 _d_C213_f_AA7 1838.21 C_213 1890.00
+ LAK15 SECTION001 1 75.19 29.45 0.00 2.99 16 _d_LAK15_f_AA12 1505.55 LAK_15 1535.00
+ SECTION001 1 74.90 61.87 0.00 0.00 10 IS6B_d_10 1667.13 IS_6B 1729.00
+ AN616-15-1 1 69.84 53.77 0.00 0.00 14 UD2 1890.23 AN616 1944.00
+ AN635-04-00 1 68.51 46.38 0.00 0.00 9 TD1 2268.62 AN635 2315.00
+ AN627-14-21 1 67.93 15.78 0.00 11.22 25 FG6 2128.22 AN627 2144.00
+ BB09 1 66.89 58.51 0.00 0.00 12 suite 1442.49 BB09 1501.00
+ AN634 1 63.56 50.07 0.00 0.00 10 NA11 2283.93 AN634 2334.00
+ AN564-17-1 1 60.62 30.84 0.00 0.00 10 FQ9 2124.16 AN564 2155.00
+ AN455-23-01 1 59.25 38.27 0.00 5.26 21 OZ0 1929.73 AN_455 1968.00
+ AN692-15-1 1 58.83 45.51 0.00 6.95 20 GF1 1917.63 CY13 1963.14
+ AN5577-17-1 1 57.83 36.74 0.00 121.83 30 FS22 2080.11 FS6 2116.85
+ BB27 1 57.60 26.51 17.50 0.00 22 15 1474.74 0 1501.25
+ FI08 15 1 54.48 47.28 0.00 0.00 10 QC11 2114.72 AN646 2162.00
+ AN536-FI12-07 1 54.27 10.39 0.00 13.33 19 BGG11 2099.25 BGG3 2109.64
+ AN465-23-01 1 53.34 18.72 0.00 39.73 23 PX11 2106.35 PX14 2125.07
+ AN480-21-01 1 50.56 47.11 0.00 0.00 9 ZC8 1897.89 AN480 1945.00
+ Z108 SECTION001 1 49.64 9.59 0.00 0.00 15 _d_Z108_f_2.3 1675.08 _d_Z108_f_1.9 1684.67
+ SECTION001 1 47.80 17.95 0.00 0.00 8 AP45_d_3A 1684.05 AP_45 1702.00
+ AN622-14-05 1 44.78 23.44 0.00 19.82 16 EL2 2010.56 AN622 2034.00
+ AN576 1 44.01 27.71 0.00 0.00 8 JD1 2121.29 AN576 2149.00
+ Z100 SECTION001 1 43.32 34.66 0.00 0.00 7 - 1645.34 Z_100 1680.00
+ SECTION001 1 43.13 30.43 0.00 0.00 9 GDP10/24 1755.57 IS9_00 1786.00
+ SECTION001 1 37.25 15.23 0.00 0.00 7 AP_d_3B07 1734.77 AP_333 1750.00
+ AN66 1 33.99 32.95 0.00 5.08 6 JEX1 2078.05 JEX6 2111.00
+ AN45 SECTION001 1 32.50 28.67 0.00 0.00 7 AN45-7 1627.33 AN45 1656.00
+ SECTION001 1 32.00 27.68 0.00 0.00 6 AN376 1718.32 AN37 1746.00
+ AN532-FI00 22 1 31.50 3.67 0.00 0.00 11 UW10 2121.19 UW01 2124.86
+ AN711-21-01 1 31.00 5.85 0.00 0.00 10 NE8 2106.15 AN557 2112.00
+ Z444 SECTION001 1 26.44 6.21 0.00 0.00 9 _d_Z444_f_1.5 1679.79 QUI1.38 1686.00
+ AN699-19-01 1 26.18 21.75 0.00 11.26 7 AH13 1984.25 AN699 2006.00
+ BB50 SECTION001 1 25.00 21.87 0.00 39.41 27 _d_BB50_f_FOND 1515.13 BB_50 1537.00
+ AN324 SECTION001 1 20.47 12.89 0.00 0.00 7 _d_AN324_f_5 1609.11 AN_324 1622.00
+ AN325 SECTION001 1 17.74 10.15 0.00 0.00 6 _d_AN325_f_6 1592.85 AN_325 1603.00
+ Lambert Square 1 0.00 40.00 0.00 120.00 6 LT345_79HH 1480.00 LT345_79DD 1520.00
+ Lambert Square 1 0.00 20.00 0.00 60.00 6 LT346_80UH 1990.00 LT346_80UD 2010.00
+ Lambert Square 1 0.00 20.00 0.00 60.00 6 LT346_80UH 1990.00 LT346_80UD 2010.00
+ Lambert Square 1 0.00 20.00 0.00 60.00 6 LT346_80UH 1990.00 LT346_80UD 2010.00
+ Lambert Square 1 0.00 20.00 0.00 60.00 6 LT346_80UH 1990.00 LT346_80UD 2010.00
+ UTM Square 1 0.00 0.00 0.00 20.00 2 LT346_80 2000.00 LT346_80 2000.00
+ UTM Square 1 0.00 0.00 0.00 20.00 2 LT346_80 2000.00 LT346_80 2000.00
+ UTM Square 1 0.00 0.00 0.00 20.00 2 LT346_80 2000.00 LT346_80 2000.00
+ UTM Square 1 0.00 0.00 0.00 20.00 2 LT346_80 2000.00 LT346_80 2000.00
+ Entrées non racordées 1 0.00 40.00 120.00 0.00 6 4 2017.00 AN596 2057.00
+ Entrées non racordées 1 0.00 40.00 120.00 0.00 6 AN456 1962.00 B 2002.00
+ Entrées non racordées 1 0.00 40.00 120.00 0.00 6 G 1747.00 - 1787.00
+ Entrées non racordées 1 0.00 40.00 120.00 0.00 6 CHI_d_38/1 1275.00 N 1315.00
+ Entrée(s) sans topographie 5 0.00 245.00 0.00 0.00 0 LT345_79 1500.0 Z150_d_1_0 1745.00
Développement total topographié par année(s)
- Année Dev.(m) Cumul (m) Dupl.(m) Cumul (m) Surf.(m) Cumul (m)
- 1950 1724.74 1724.74 0.00 0.00 0.00 0.00
- 1971 2627.02 4351.76 116.43 116.43 0.00 0.00
- 1974 575.30 4927.06 0.00 116.43 0.00 0.00
- 1976 606.16 5533.22 0.00 116.43 0.00 0.00
- 1977 1411.32 6944.54 0.00 116.43 0.00 0.00
- 1978 2081.24 9025.78 0.00 116.43 0.00 0.00
- 1979 5031.79 14057.57 64.40 180.83 0.00 0.00
- 1980 940.79 14998.36 0.00 180.83 0.00 0.00
- 1981 4122.90 19121.26 0.00 180.83 0.00 0.00
- 1982 6422.46 25543.72 0.00 180.83 0.00 0.00
- 1983 8885.25 34428.97 1022.47 1203.30 0.00 0.00
- 1984 5635.70 40064.67 0.00 1203.30 0.00 0.00
- 1985 7594.11 47658.78 0.00 1203.30 0.00 0.00
- 1986 2747.84 50406.62 0.00 1203.30 38.50 38.50
- 1987 10648.06 61054.68 70.66 1273.96 0.00 38.50
- 1988 1310.71 62365.39 0.00 1273.96 0.00 38.50
- 1989 4088.49 66453.88 0.00 1273.96 0.00 38.50
- 1990 6920.12 73374.00 0.00 1273.96 0.00 38.50
- 1991 1164.14 74538.14 0.00 1273.96 0.00 38.50
- 1992 14467.22 89005.36 0.00 1273.96 0.00 38.50
- 1993 19380.69 108386.05 0.00 1273.96 0.00 38.50
- 1994 8749.22 117135.27 0.00 1273.96 0.00 38.50
- 1995 5661.53 122796.80 0.00 1273.96 0.00 38.50
- 1996 8964.07 131760.87 70.08 1344.04 0.00 38.50
- 1997 13193.45 144954.32 0.00 1344.04 0.00 38.50
- 1998 12640.07 157594.39 21.10 1365.14 0.00 38.50
- 1999 10657.59 168251.98 3706.31 5071.45 137.44 175.94
- 2000 6419.46 174671.44 1214.92 6286.37 409.80 585.74
- 2001 12440.67 187112.11 596.17 6882.54 27.39 613.13
- 2002 5107.89 192220.00 247.31 7129.85 45.44 658.57
- 2003 3927.29 196147.29 0.00 7129.85 406.12 1064.69
- 2004 2645.33 198792.62 11.06 7140.91 178.02 1242.71
- 2005 2733.71 201526.33 0.00 7140.91 405.03 1647.74
- 2006 7659.27 209185.60 80.00 7220.91 203.64 1851.38
- 2007 6496.08 215681.68 95.38 7316.29 9.35 1860.73
- 2008 4780.88 220462.56 0.00 7316.29 158.13 2018.86
- 2009 4993.39 225455.95 71.84 7388.13 875.47 2894.33
- 2010 4406.45 229862.40 404.20 7792.33 181.61 3075.94
- 2011 5698.22 235560.62 0.00 7792.33 309.63 3385.57
- 2012 9116.66 244677.28 0.00 7792.33 1382.85 4768.42
- 2013 9810.78 254488.06 7.42 7799.75 527.56 5295.98
- 2014 9800.55 264288.61 150.80 7950.55 286.91 5582.89
- 2015 8429.72 272718.33 1054.63 9005.18 1347.63 6930.52
- 2016 9689.42 282407.75 1381.39 10386.57 211.21 7141.73
- 2017 4858.50 287266.25 83.46 10470.03 294.39 7436.12
- 2018 7369.21 294635.46 395.87 10865.90 496.43 7932.55
- 2019 6017.18 300652.64 289.22 11155.12 266.20 8198.75
- 2020 5050.76 305703.40 265.07 11420.19 24.74 8223.49
- 2021 7945.59 313648.99 529.80 11949.99 315.77 8539.26
- 2022 6913.36 320562.35 1794.04 13744.03 42.40 8581.66
- 2023 6343.27 326905.62 1180.34 14924.37 79.70 8661.36
- 2024 7701.11 334606.73 547.76 15472.13 144.72 8806.08
- 2025 5695.94 340302.67 102.89 15575.02 150.53 8956.61
+ Année Dev.(m) Cumul (m) Dupl.(m) Cumul (m) Surf.(m) Cumul (m)
+ 1950 1724.74 1724.74 0.00 0.00 0.00 0.00
+ 1971 2627.02 4351.76 116.43 116.43 0.00 0.00
+ 1974 575.30 4927.06 0.00 116.43 0.00 0.00
+ 1976 606.16 5533.22 0.00 116.43 0.00 0.00
+ 1977 1411.32 6944.54 0.00 116.43 0.00 0.00
+ 1978 2081.24 9025.78 0.00 116.43 0.00 0.00
+ 1979 5031.79 14057.57 64.40 180.83 0.00 0.00
+ 1980 940.79 14998.36 0.00 180.83 0.00 0.00
+ 1981 4122.90 19121.26 0.00 180.83 0.00 0.00
+ 1982 6422.46 25543.72 0.00 180.83 0.00 0.00
+ 1983 8885.25 34428.97 1022.47 1203.30 0.00 0.00
+ 1984 5635.70 40064.67 0.00 1203.30 0.00 0.00
+ 1985 7594.11 47658.78 0.00 1203.30 0.00 0.00
+ 1986 2747.84 50406.62 0.00 1203.30 38.50 38.50
+ 1987 10648.06 61054.68 70.66 1273.96 0.00 38.50
+ 1988 1310.71 62365.39 0.00 1273.96 0.00 38.50
+ 1989 4088.49 66453.88 0.00 1273.96 0.00 38.50
+ 1990 6920.12 73374.00 0.00 1273.96 0.00 38.50
+ 1991 1164.14 74538.14 0.00 1273.96 0.00 38.50
+ 1992 14467.22 89005.36 0.00 1273.96 0.00 38.50
+ 1993 19380.69 108386.05 0.00 1273.96 0.00 38.50
+ 1994 8749.22 117135.27 0.00 1273.96 0.00 38.50
+ 1995 5661.53 122796.80 0.00 1273.96 0.00 38.50
+ 1996 8964.07 131760.87 70.08 1344.04 0.00 38.50
+ 1997 13193.45 144954.32 0.00 1344.04 0.00 38.50
+ 1998 12640.07 157594.39 21.10 1365.14 0.00 38.50
+ 1999 10657.59 168251.98 3706.31 5071.45 137.44 175.94
+ 2000 6419.46 174671.44 1214.92 6286.37 409.80 585.74
+ 2001 12440.67 187112.11 596.17 6882.54 27.39 613.13
+ 2002 5107.89 192220.00 247.31 7129.85 45.44 658.57
+ 2003 3927.29 196147.29 0.00 7129.85 406.12 1064.69
+ 2004 2645.33 198792.62 11.06 7140.91 178.02 1242.71
+ 2005 2733.71 201526.33 0.00 7140.91 405.03 1647.74
+ 2006 7659.27 209185.60 80.00 7220.91 203.64 1851.38
+ 2007 6496.08 215681.68 95.38 7316.29 9.35 1860.73
+ 2008 4780.88 220462.56 0.00 7316.29 158.13 2018.86
+ 2009 4993.39 225455.95 71.84 7388.13 875.47 2894.33
+ 2010 4406.45 229862.40 404.20 7792.33 181.61 3075.94
+ 2011 5698.22 235560.62 0.00 7792.33 309.63 3385.57
+ 2012 9116.66 244677.28 0.00 7792.33 1382.85 4768.42
+ 2013 9810.78 254488.06 7.42 7799.75 527.56 5295.98
+ 2014 9800.55 264288.61 150.80 7950.55 286.91 5582.89
+ 2015 8429.72 272718.33 1054.63 9005.18 1347.63 6930.52
+ 2016 9689.42 282407.75 1381.39 10386.57 211.21 7141.73
+ 2017 4858.50 287266.25 83.46 10470.03 294.39 7436.12
+ 2018 7369.21 294635.46 395.87 10865.90 496.43 7932.55
+ 2019 6017.18 300652.64 289.22 11155.12 266.20 8198.75
+ 2020 5050.76 305703.40 265.07 11420.19 24.74 8223.49
+ 2021 7945.59 313648.99 529.80 11949.99 315.77 8539.26
+ 2022 6913.36 320562.35 1794.04 13744.03 42.40 8581.66
+ 2023 6343.27 326905.62 1180.34 14924.37 79.70 8661.36
+ 2024 7701.11 334606.73 547.76 15472.13 144.72 8806.08
+ 2025 5695.94 340302.67 102.89 15575.02 150.53 8956.61
diff --git a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.db b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.db
index ed894ab..13dad5d 100644
Binary files a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.db and b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.db differ
diff --git a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.md b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.md
index 420d182..1f3fdd3 100644
--- a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.md
+++ b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.md
@@ -6,8 +6,8 @@
| Version | 2026.09.03 |
| Fichier source | ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql |
| Dossier destination | ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats |
-| Date | 2026-09-03 21h50m35s |
-| Durée calcul |02 (m) 32 (s) sans erreur |
+| Date | 2026-09-25 08h56m02s |
+| Durée calcul |30 (m) 03 (s) avec erreur(s): 1 |
--------------
### Développement total (m)
diff --git a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_year.pdf b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_year.pdf
index fc73674..98271be 100644
Binary files a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_year.pdf and b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_year.pdf differ
diff --git a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_yearCum.pdf b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_yearCum.pdf
index cafee38..b902eaa 100644
Binary files a/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_yearCum.pdf and b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_yearCum.pdf differ
diff --git a/Outputs/readme.md b/Outputs/readme.md
new file mode 100644
index 0000000..6945c08
--- /dev/null
+++ b/Outputs/readme.md
@@ -0,0 +1,259 @@
+-------------
+# Statistiques de `Synthèse générale des réseaux de la Pierre Saint Martin-Larra`
+--------------
+
+### Développement total
+
+Développement topographié: `340 302,67 (m)`
+Développement topographie dupliqués: `15 575,02 (m)`
+Développement topographie de surface: `8 956,61 (m)`
+Soit un grand total de : `364 834,30 (m)`
+> [!WARNING] `82` station(s) non comptabilisée(s) et raccordée(s)
+
+
+--------------
+### Développement total par réseau
+| Réseau | Entrée(s) | Nbre | Dev. (m) | Prof. (m) | Dupl. (m) | Surf. (m) | Visées | ID Stat. | Alt. min (m) | ID Stat. | Alt. max (m) |
+|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|
+| | **Totaux** | **194** | **340 302,68** | **2 016,00** | **15 575,02** | **8 956,61** | **45150** | **ILLA13B** | **318,00** | **AN634** | **2 334,00** |
+| Complexe Arrestelia | 555S700C2X164, 565S800C1X157 | 2 | 61 230,74 | 866,88 | 0,00 | 0,00 | 6345 | LAR_d_15/16 | 568,12 | ERUSO | 1 435,00 |
+| Complexe PSM GdP | C104, C2 Gouffre des quinquas, C104, C2 Gouffre des quinquas, C226 Sima grande, SECTION001 - Puits C50 , D9 Gouffre de la tête sauvage, Puits Lépineux, M31 Gouffre du Pourtet, M413 Gouffre des partages | 8 | 48 226,13 | 1 113,08 | 7 349,51 | 1,81 | 6021 | - | 1 010,92 | AN532 | 2 124,00 |
+| Complexe Anialarra | AN454-21-01, AN509-1, AN51 01, AN519 A AN519 B, AN563-14-16, AN597-16-1, AN6-02-01, AN60-11-00, AN709-20-01, FR3-FI06 16 | 10 | 46 208,59 | 859,07 | 329,07 | 7 339,64 | 7484 | AN43GA2 | 1 319,13 | AN509 | 2 178,20 |
+| Complexe BU56 Ilamina | ILAMINA - BU56 A60 Explo num 06, ILAMINA - BU56 A60 Explo num 62 | 2 | 41 760,25 | 1 204,65 | 3 557,47 | 0,00 | 5594 | S7-6 | 773,77 | P1 | 1 978,42 |
+| | 12S15C2X1 - 9S9C2X1 | 1 | 12 791,76 | 491,99 | 0,00 | 0,00 | 1478 | ARP419/50 | 588,45 | ARP338/21 | 1 080,44 |
+| | Grotte de l'Ours - Perdida del Becerro Explo num 32 | 1 | 10 493,84 | 667,68 | 1 481,76 | 0,00 | 1457 | HF3 | 856,53 | . | 1 524,21 |
+| Complexe PSM GdP | VER SECTION001 VER SECTION002 Tunnel de la Verna, Xendako ziloa | 2 | 8 676,45 | 548,79 | 1 618,14 | 0,00 | 1062 | LAR_d_478/2 | 966,47 | _d_XEN_f_XX2 | 1 515,26 |
+| AN008 | SECTION001, SECTION014 SECTION015 | 2 | 8 226,55 | 805,22 | 0,00 | 0,00 | 898 | AN8_d_1701 | 1 007,78 | AN9 | 1 813,00 |
+| | Gouffre des arres planères AP7 | 1 | 7 233,06 | 377,95 | 116,43 | 0,00 | 1211 | A | 1 327,05 | AP_7 | 1 705,00 |
+| | Sima del Tobozo (galerie 1) | 1 | 7 228,71 | 514,65 | 0,00 | 0,00 | 700 | 34 | 1 460,35 | 0 | 1 975,00 |
+| | Gouffre des Bourrugues B3, entrée 01 : puits d'entrée | 1 | 6 615,73 | 667,24 | 0,00 | 0,00 | 740 | N-00 | 952,76 | B_3 | 1 620,00 |
+| | 10S6C7X1 - 9S5C6X1 | 1 | 5 435,99 | 696,11 | 0,00 | 0,00 | 680 | DS495/172 | 853,89 | DS_49 | 1 550,00 |
+| | 1S1C1X1 2S2C1X1 3S3C1X1 | 1 | 5 212,26 | 670,59 | 0,00 | 0,00 | 744 | BT6_d_2/641 | 947,41 | BT_6 | 1 618,00 |
+| | 1S1C1X1 2S1C4X1 | 1 | 4 164,03 | 715,19 | 0,00 | 0,00 | 581 | UK4_d_25/16 | 1 083,81 | VB11 | 1 799,00 |
+| | SECTION006 - SECTION009 | 1 | 4 054,16 | 108,40 | 0,00 | 15,50 | 435 | LAC_d_SORT27 | 529,73 | LAC_d_MS7 | 638,13 |
+| | 10S10C1X1 - 9S9C1X1 | 1 | 3 512,87 | 553,48 | 0,00 | 0,00 | 572 | CHI_d_46/6 | 941,52 | CHIPI | 1 495,00 |
+| | 1S1C1X1 - 9S9C1X1 | 1 | 3 338,53 | 208,44 | 0,00 | 0,00 | 395 | REN_d_1/34 | 396,01 | REN_d_2/15 | 604,45 |
+| | SECTION001 | 1 | 3 278,77 | 356,85 | 0,00 | 0,00 | 675 | BG6322-31 | 1 029,15 | BG_63 | 1 386,00 |
+| Complexe Lonné Peyret-Bourrugues | Gouffre du Lonné Peyret GL102 - Entrée, Gouffre du Cam de Caque GL04 | 2 | 3 026,31 | 471,24 | 111,58 | 0,00 | 323 | 25 | 1 164,76 | GL_4 | 1 636,00 |
+| | 17S17C1X1 18S17C3X1 19S18C1X1 1S1C1X1 | 1 | 2 564,77 | 316,87 | 0,00 | 0,00 | 327 | UK557_d_5/56 | 1 828,13 | A_4 | 2 145,00 |
+| | SECTION001 | 1 | 2 383,58 | 535,79 | 0,00 | 0,00 | 279 | B38 | 1 727,21 | AN639 | 2 263,00 |
+| | 1S1C1X1 | 1 | 1 892,89 | 136,24 | 0,00 | 0,00 | 253 | ALA_d_6/11 | 795,76 | ALAHAIS | 932,00 |
+| | SC 60 | 1 | 1 795,14 | 323,45 | 64,40 | 0,00 | 269 | 232 | 1 838,77 | 2.4 | 2 162,22 |
+| | 1S1C1X1 2S2C1X1 3S3C1X1 5S4C1X1 7S5C1X1 | 1 | 1 667,15 | 384,30 | 0,00 | 0,00 | 289 | M3263/199 | 1 725,70 | M_326 | 2 110,00 |
+| | L5 Entrée puits | 1 | 1 645,48 | 371,69 | 66,04 | 0,00 | 292 | FL386.138.71 | 1 651,31 | L_5 | 2 023,00 |
+| | AN43SECTION001 | 1 | 1 540,03 | 376,73 | 0,00 | 0,00 | 248 | BG632-31 | 1 349,27 | AN43 | 1 726,00 |
+| | SECTION001 | 1 | 1 412,20 | 379,71 | 0,00 | 0,00 | 117 | 39V | 1 349,71 | A60_111 | 1 729,42 |
+| | Z127 SECTION001 | 1 | 1 400,82 | 529,78 | 0,00 | 0,00 | 262 | _d_Z127_f_264 | 1 128,22 | HP10 | 1 658,00 |
+| | C214 Sima de la niebla | 1 | 1 064,44 | 420,12 | 0,00 | 0,00 | 157 | C214_d_130 | 1 513,88 | C_214 | 1 934,00 |
+| | 10S10C1X1 - 9S9C1X1 | 1 | 1 011,10 | 404,84 | 0,00 | 0,00 | 115 | Z17_d_11/5 | 1 348,16 | - | 1 753,00 |
+| | AN669-10-20 | 1 | 1 002,32 | 352,95 | 0,00 | 23,59 | 168 | FL15 | 1 870,75 | AN669 | 2 223,70 |
+| Synthèse générale des réseaux de la Pierre Saint Martin-Larra | AN211-93 S1, AN596-16-1 | 2 | 882,32 | 344,27 | 0,00 | 21,77 | 114 | QR2_35 | 1 715,79 | HB20 | 2 060,06 |
+| | 10S10C1X1 - 9S9C1X1 | 1 | 874,76 | 244,16 | 0,00 | 0,00 | 98 | MAR_d_10/4 | 575,84 | MARTIN | 820,00 |
+| | Gouffre Z510 | 1 | 852,63 | 237,20 | 162,35 | 0,00 | 185 | M31_d_98/3 | 1 406,80 | - | 1 644,00 |
+| | C230 Sima ricky et ses ours | 1 | 836,03 | 268,62 | 0,00 | 0,00 | 135 | _d_C230_f_164 | 1 616,38 | C_230 | 1 885,00 |
+| | AN506 MO AN506 PF | 1 | 817,47 | 409,24 | 0,00 | 0,00 | 87 | PF10 | 1 754,06 | AN506 | 2 163,30 |
+| | M414 (entrée) | 1 | 807,45 | 351,32 | 40,10 | 0,00 | 119 | M414_d_1/52 | 1 762,68 | AN109 | 2 114,00 |
+| | 1S1C1X1 2S2C1X1 | 1 | 794,25 | 296,93 | 0,00 | 0,00 | 114 | BL118_d_2/89 | 726,07 | BL_118 | 1 023,00 |
+| | Z112 SECTION001 | 1 | 767,20 | 261,03 | 0,00 | 0,00 | 90 | AN43DO11 | 1 377,97 | Z_112 | 1 639,00 |
+| | 1S1C1X1 | 1 | 750,26 | 431,36 | 0,00 | 0,00 | 137 | GOR_d_6/32 | 1 172,64 | GORRIA | 1 604,00 |
+| | C110 | 1 | 735,00 | 303,54 | 0,00 | 0,00 | 52 | . | 1 479,46 | C_110 | 1 783,00 |
+| | Visée(s) non raccordées | 0 | 727,76 | - | 0,00 | 0,00 | 81 | AN514 | 2 324,00 | - | - |
+| | C243 Sima de los cairns | 1 | 673,74 | 186,53 | 0,00 | 0,00 | 84 | C243_d_84 | 1 752,47 | UD13 | 1 939,00 |
+| | SECTION001 | 1 | 658,53 | 256,95 | 0,00 | 0,00 | 107 | AN26DA7 | 1 462,05 | AN26 | 1 719,00 |
+| | AN594-12-25 | 1 | 639,69 | 185,76 | 0,00 | 83,78 | 165 | VB17 | 1 770,24 | AN_594 | 1 956,00 |
+| AN676-Helado | AN676-FI11-16, AN676-FI11-10 | 2 | 616,56 | 100,93 | 0,00 | 51,08 | 165 | BFF47 | 2 069,07 | AN52 | 2 170,00 |
+| | AN326SECTION001 | 1 | 598,25 | 271,81 | 0,00 | 119,58 | 129 | AN326CF11 | 1 350,19 | AN_324 | 1 622,00 |
+| | AN595-FI10-25 | 1 | 570,06 | 291,30 | 0,00 | 92,15 | 92 | FZ28 | 1 957,20 | AN595 | 2 248,50 |
+| | 1S1C1X1 - 7S8C1X1 | 1 | 537,38 | 164,47 | 0,00 | 0,00 | 49 | STALAC | 530,00 | STA_d_2/2 | 694,47 |
+| | 1S1C1X1 4S4C1X1 5S5C1X1 6S6C1X1 7S7C1X1 | 1 | 530,65 | 281,98 | 0,00 | 0,00 | 67 | BEAU2/10 | 1 458,02 | E20_d_226 | 1 740,00 |
+| | 1748 SECTION001 | 1 | 515,00 | 263,50 | 0,00 | 0,00 | 17 | _d_1748_f_5.7 | 1 484,50 | Sima_1748 | 1 748,00 |
+| | C108 Sima H | 1 | 509,80 | 194,09 | 0,00 | 0,00 | 26 | C1085_1 | 1 702,91 | C_108 | 1 897,00 |
+| | 1S1C1X1 2S2C1X1 3S3C1X1 4S4C1X1 5S5C1X1 | 1 | 503,29 | 241,69 | 0,00 | 0,00 | 86 | - | 1 383,31 | FL386.160 | 1 625,00 |
+| | SECTION001 SECTION002 | 1 | 479,60 | 120,00 | 0,00 | 0,00 | 52 | ILLA13B | 318,00 | ILLAMI | 438,00 |
+| | 1S1C1X1 | 1 | 474,60 | 23,51 | 0,00 | 0,00 | 63 | CAS_d_1/63 | 539,66 | LAC_d_RD | 563,17 |
+| | 1S1C1X1 2S2C1X1 | 1 | 464,88 | 294,26 | 0,00 | 0,00 | 49 | GDP1050/9 | 1 687,74 | M_13 | 1 982,00 |
+| | AN109 S1 - AN109 S6 | 1 | 436,21 | 253,70 | 0,00 | 0,00 | 73 | QO2_13 | 1 860,30 | AN109 | 2 114,00 |
+| Synthèse générale des réseaux de la Pierre Saint Martin-Larra | AN702-19-01, AN704-19-01 | 2 | 426,96 | 216,55 | 17,01 | 0,00 | 80 | MHX33 | 1 766,73 | CX15 | 1 983,28 |
+| | SECTION001 | 1 | 410,70 | 312,59 | 0,00 | 0,00 | 43 | E22_d_38 | 1 948,41 | E22_00 | 2 261,00 |
+| | AN588-FI10-12 | 1 | 385,24 | 220,08 | 0,00 | 0,00 | 56 | QS2 | 1 862,92 | AN588 | 2 083,00 |
+| | AN58-2024-02 | 1 | 373,97 | 127,99 | 0,00 | 24,34 | 81 | XX17 | 2 072,01 | AN58 | 2 200,00 |
+| | AN514-08 14 | 1 | 361,91 | 182,14 | 0,00 | 60,83 | 82 | XI3 | 2 143,31 | QU6 | 2 325,45 |
+| | SC 223 | 1 | 347,61 | 177,54 | 0,00 | 0,00 | 58 | 18 | 1 981,10 | SC212 | 2 158,64 |
+| | SECTION001 | 1 | 316,00 | 175,12 | 0,00 | 0,00 | 21 | Z11113 | 1 509,88 | Z_111 | 1 685,00 |
+| | AN3-2023-01 AN3-2023-02 | 1 | 310,92 | 205,15 | 0,00 | 44,73 | 53 | QE18 | 1 839,85 | AN3 | 2 045,00 |
+| | 1S1C1X1 | 1 | 297,11 | 144,44 | 0,00 | 0,00 | 52 | BOU_d_4/6 | 1 432,56 | BOUQUE | 1 577,00 |
+| | AN534-01 AN534-02 | 1 | 291,51 | 133,81 | 0,00 | 178,10 | 64 | QW19 | 2 001,19 | AN534 | 2 135,00 |
+| | K7 Hourat det soure | 1 | 278,70 | 190,43 | 0,00 | 0,00 | 15 | MA22 | 1 750,57 | K7_00 | 1 941,00 |
+| | AN591-FI11 20 | 1 | 268,36 | 102,32 | 0,00 | 0,00 | 55 | IZ40 | 2 044,68 | AN591 | 2 147,00 |
+| | 1S1C1X1 2S2C1X1 | 1 | 255,79 | 185,38 | 0,00 | 0,00 | 46 | M405_d_2/46 | 1 939,62 | AN107 | 2 125,00 |
+| | A106 SECTION001 | 1 | 253,98 | 126,55 | 0,00 | 0,00 | 61 | A106_d_EA1 | 1 521,45 | A_106 | 1 648,00 |
+| | AN73-86-05 | 1 | 248,35 | 210,40 | 0,00 | 38,50 | 23 | ESF1 | 1 861,60 | AN73 | 2 072,00 |
+| | 30S100C1X11 | 1 | 243,24 | 68,25 | 0,00 | 0,00 | 33 | ARP100/33 | 985,75 | ROBINET | 1 054,00 |
+| | AN107-03 12 | 1 | 242,97 | 161,77 | 0,00 | 14,50 | 48 | AH6X | 1 963,23 | AN107 | 2 125,00 |
+| | 1S1C1X1 2S2C2X2 3S3C2X2 | 1 | 240,75 | 158,68 | 0,00 | 0,00 | 18 | LIN_d_1/10 | 1 697,32 | ERE_80 | 1 856,00 |
+| | BB26 zone d'entree | 1 | 227,19 | 71,56 | 62,66 | 4,80 | 71 | 32d | 1 448,44 | LT345_79DD | 1 520,00 |
+| | AN61 01 AN61 02 | 1 | 224,45 | 139,93 | 0,00 | 2,78 | 44 | XA40 | 2 076,57 | AN61 | 2 216,50 |
+| | 1S1C1X1 - 9S5C1X1 | 1 | 220,56 | 120,89 | 0,00 | 0,00 | 40 | F.44 | 1 809,11 | E3_TSR3 | 1 930,00 |
+| | Oueils exondé étiage | 1 | 218,33 | 72,59 | 0,00 | 0,00 | 18 | l1 | 617,41 | oueils | 690,00 |
+| | 1S1C1X1 | 1 | 209,48 | 187,18 | 0,00 | 0,00 | 19 | UT140_d_1/19 | 940,82 | UT_140 | 1 128,00 |
+| | SECTION001 | 1 | 208,06 | 118,44 | 0,00 | 0,00 | 25 | AP_d_7A19 | 1 631,56 | AP_333 | 1 750,00 |
+| | 1S1C2X1 - 7S6C1X1 | 1 | 206,95 | 70,13 | 0,00 | 0,00 | 53 | UK559_d_1/22 | 1 967,87 | UK_559 | 2 038,00 |
+| | AN103 1 | 1 | 204,38 | 92,68 | 0,00 | 42,98 | 52 | KH7 | 2 045,32 | AN103 | 2 138,00 |
+| | 1S1C1X1 - 9S8C1X1 | 1 | 191,26 | 61,02 | 0,00 | 0,00 | 48 | UKD6_d_1/11 | 1 963,32 | UKD6_d_2/7 | 2 024,34 |
+| | Z143 SECTION001 | 1 | 187,50 | 113,00 | 0,00 | 0,00 | 22 | _d_Z143_f_14 | 1 561,00 | Z_143 | 1 674,00 |
+| | AN456-21-01 | 1 | 156,69 | 107,52 | 0,00 | 0,00 | 36 | UV7 | 1 854,48 | AN456 | 1 962,00 |
+| | SECTION001 | 1 | 154,46 | 35,34 | 0,00 | 0,00 | 58 | _d_PY_f_57 | 2 274,76 | _d_PY_f_3 | 2 310,10 |
+| | AN548-FI03 04 | 1 | 153,85 | 50,43 | 5,62 | 10,18 | 30 | HH3 | 2 046,24 | BA11 | 2 096,67 |
+| | 1S1C1X1 | 1 | 148,40 | 126,43 | 0,00 | 0,00 | 13 | A110_d_1/13 | 1 693,57 | A_110 | 1 820,00 |
+| | AN1 | 1 | 143,33 | 111,32 | 0,00 | 0,00 | 28 | MD27 | 2 057,68 | AN1 | 2 169,00 |
+| | Z208 SECTION001 Z208 SECTION002 | 1 | 140,65 | 47,61 | 0,00 | 0,00 | 21 | Z208_d_4 | 1 494,53 | JK01 | 1 542,14 |
+| | AN57-FI07-03 | 1 | 140,39 | 77,17 | 95,38 | 0,00 | 50 | LK1 | 1 995,23 | BFF25 | 2 072,40 |
+| | AN624-16-1 | 1 | 130,95 | 78,13 | 0,00 | 19,57 | 43 | HD2 | 1 870,87 | AN624 | 1 949,00 |
+| | 1S1C1X1 2S2C1X1 3S3C1X1 | 1 | 128,55 | 43,84 | 0,00 | 0,00 | 19 | LACS | 535,00 | MOU_d_3/3 | 578,84 |
+| | C299 Gouffre belle gueule | 1 | 128,51 | 46,27 | 0,00 | 0,00 | 53 | 50 | 1 966,53 | 2 | 2 012,80 |
+| | FI00 21 FI00 21b | 1 | 128,43 | 76,76 | 0,00 | 0,00 | 20 | PO01 | 2 073,24 | AN542 | 2 150,00 |
+| | AN546-FI00 18 | 1 | 124,15 | 84,79 | 0,00 | 0,00 | 20 | VX14 | 2 182,21 | AN546 | 2 267,00 |
+| | AN619-13-16 | 1 | 122,42 | 65,84 | 0,00 | 0,00 | 19 | QD11 | 1 967,42 | QD2 | 2 033,26 |
+| | AN672-FI10-06 | 1 | 116,60 | 79,29 | 0,00 | 0,00 | 27 | RO4 | 1 883,71 | AN672 | 1 963,00 |
+| | FI02 05 | 1 | 112,67 | 75,18 | 0,00 | 0,00 | 17 | FH1 | 2 069,82 | A_4 | 2 145,00 |
+| | 1S1C1X1 2S2C1X1 3S3C1X1 | 1 | 110,42 | 70,79 | 0,00 | 0,00 | 12 | F404_d_2/3 | 1 919,21 | LT346_80UH | 1 990,00 |
+| | AN683-FI12-31 | 1 | 110,10 | 67,33 | 0,00 | 0,00 | 14 | CK12 | 2 082,67 | AN542 | 2 150,00 |
+| | AN561 | 1 | 109,01 | 88,93 | 0,00 | 0,00 | 17 | AX18 | 2 137,07 | AN561 | 2 226,00 |
+| | 1S1C1X1 | 1 | 106,39 | 80,56 | 0,00 | 0,00 | 17 | M108_d_1/15 | 1 949,44 | M_108 | 2 030,00 |
+| | 1S1C1X1 2S2C1X1 3S3C1X1 | 1 | 105,60 | 58,28 | 0,00 | 0,00 | 9 | C103_d_1/5 | 1 796,91 | C103_d_1/1 | 1 855,19 |
+| | Z107 SECTION001 | 1 | 103,65 | 49,77 | 0,00 | 0,00 | 23 | - | 1 610,23 | Z_107 | 1 660,00 |
+| | AN639-15-01 | 1 | 102,88 | 39,06 | 0,00 | 0,00 | 18 | HF7 | 2 223,94 | AN639 | 2 263,00 |
+| | Z123 SECTION001 | 1 | 102,29 | 45,64 | 0,00 | 0,00 | 21 | PE33 | 1 652,61 | EB45 | 1 698,25 |
+| | FI00 19 | 1 | 99,18 | 51,51 | 0,00 | 31,01 | 27 | SW11 | 2 093,49 | A_4 | 2 145,00 |
+| | AN671-16-1 | 1 | 96,98 | 89,95 | 0,00 | 0,00 | 10 | FM1 | 1 868,05 | AN671 | 1 958,00 |
+| | 1S1C1X1 | 1 | 94,53 | 88,87 | 0,00 | 0,00 | 9 | PO07 | 2 114,13 | M_400 | 2 203,00 |
+| | AN453-20-01 | 1 | 91,25 | 66,69 | 0,00 | 0,00 | 19 | MFX11 | 1 905,31 | AN453 | 1 972,00 |
+| | SECTION001 | 1 | 89,00 | 42,88 | 0,00 | 0,00 | 14 | CUCC5_d_9 | 1 668,12 | CUCC_5 | 1 711,00 |
+| | AN507-15-1 | 1 | 88,22 | 56,14 | 0,00 | 9,06 | 20 | HL5 | 2 089,46 | AN507 | 2 145,60 |
+| | FI02 16 | 1 | 86,80 | 64,76 | 0,00 | 0,00 | 10 | LJ2 | 2 127,24 | AN62 | 2 192,00 |
+| | SECTION001 | 1 | 86,60 | 56,50 | 0,00 | 0,00 | 11 | CUCC4_d_8 | 1 671,50 | CUCC_4 | 1 728,00 |
+| | AN708-19-1 | 1 | 79,05 | 31,86 | 0,00 | 2,19 | 23 | JU2 | 2 102,14 | AN708 | 2 134,00 |
+| | AN631 | 1 | 78,00 | 69,33 | 0,00 | 7,26 | 14 | XB1 | 2 175,67 | AN631 | 2 245,00 |
+| | 1S1C1X1 2S2C1X1 | 1 | 76,12 | 23,64 | 0,00 | 0,00 | 14 | MARMI | 2 005,00 | MARM1/12 | 2 028,64 |
+| | C213 SECTION001 | 1 | 75,96 | 51,79 | 0,00 | 0,00 | 18 | _d_C213_f_AA7 | 1 838,21 | C_213 | 1 890,00 |
+| | LAK15 SECTION001 | 1 | 75,19 | 29,45 | 0,00 | 2,99 | 16 | _d_LAK15_f_AA12 | 1 505,55 | LAK_15 | 1 535,00 |
+| | SECTION001 | 1 | 74,90 | 61,87 | 0,00 | 0,00 | 10 | IS6B_d_10 | 1 667,13 | IS_6B | 1 729,00 |
+| | AN616-15-1 | 1 | 69,84 | 53,77 | 0,00 | 0,00 | 14 | UD2 | 1 890,23 | AN616 | 1 944,00 |
+| | AN635-04-00 | 1 | 68,51 | 46,38 | 0,00 | 0,00 | 9 | TD1 | 2 268,62 | AN635 | 2 315,00 |
+| | AN627-14-21 | 1 | 67,93 | 15,78 | 0,00 | 11,22 | 25 | FG6 | 2 128,22 | AN627 | 2 144,00 |
+| | BB09 | 1 | 66,89 | 58,51 | 0,00 | 0,00 | 12 | suite | 1 442,49 | BB09 | 1 501,00 |
+| | AN634 | 1 | 63,56 | 50,07 | 0,00 | 0,00 | 10 | NA11 | 2 283,93 | AN634 | 2 334,00 |
+| | AN564-17-1 | 1 | 60,62 | 30,84 | 0,00 | 0,00 | 10 | FQ9 | 2 124,16 | AN564 | 2 155,00 |
+| | AN455-23-01 | 1 | 59,25 | 38,27 | 0,00 | 5,26 | 21 | OZ0 | 1 929,73 | AN_455 | 1 968,00 |
+| | AN692-15-1 | 1 | 58,83 | 45,51 | 0,00 | 6,95 | 20 | GF1 | 1 917,63 | CY13 | 1 963,14 |
+| | AN5577-17-1 | 1 | 57,83 | 36,74 | 0,00 | 121,83 | 30 | FS22 | 2 080,11 | FS6 | 2 116,85 |
+| | BB27 | 1 | 57,60 | 26,51 | 17,50 | 0,00 | 22 | 15 | 1 474,74 | 0 | 1 501,25 |
+| | FI08 15 | 1 | 54,48 | 47,28 | 0,00 | 0,00 | 10 | QC11 | 2 114,72 | AN646 | 2 162,00 |
+| | AN536-FI12-07 | 1 | 54,27 | 10,39 | 0,00 | 13,33 | 19 | BGG11 | 2 099,25 | BGG3 | 2 109,64 |
+| | AN465-23-01 | 1 | 53,34 | 18,72 | 0,00 | 39,73 | 23 | PX11 | 2 106,35 | PX14 | 2 125,07 |
+| | AN480-21-01 | 1 | 50,56 | 47,11 | 0,00 | 0,00 | 9 | ZC8 | 1 897,89 | AN480 | 1 945,00 |
+| | Z108 SECTION001 | 1 | 49,64 | 9,59 | 0,00 | 0,00 | 15 | _d_Z108_f_2.3 | 1 675,08 | _d_Z108_f_1.9 | 1 684,67 |
+| | SECTION001 | 1 | 47,80 | 17,95 | 0,00 | 0,00 | 8 | AP45_d_3A | 1 684,05 | AP_45 | 1 702,00 |
+| | AN622-14-05 | 1 | 44,78 | 23,44 | 0,00 | 19,82 | 16 | EL2 | 2 010,56 | AN622 | 2 034,00 |
+| | AN576 | 1 | 44,01 | 27,71 | 0,00 | 0,00 | 8 | JD1 | 2 121,29 | AN576 | 2 149,00 |
+| | Z100 SECTION001 | 1 | 43,32 | 34,66 | 0,00 | 0,00 | 7 | - | 1 645,34 | Z_100 | 1 680,00 |
+| | SECTION001 | 1 | 43,13 | 30,43 | 0,00 | 0,00 | 9 | GDP10/24 | 1 755,57 | IS9_00 | 1 786,00 |
+| | SECTION001 | 1 | 37,25 | 15,23 | 0,00 | 0,00 | 7 | AP_d_3B07 | 1 734,77 | AP_333 | 1 750,00 |
+| | AN66 | 1 | 33,99 | 32,95 | 0,00 | 5,08 | 6 | JEX1 | 2 078,05 | JEX6 | 2 111,00 |
+| | AN45 SECTION001 | 1 | 32,50 | 28,67 | 0,00 | 0,00 | 7 | AN45-7 | 1 627,33 | AN45 | 1 656,00 |
+| | SECTION001 | 1 | 32,00 | 27,68 | 0,00 | 0,00 | 6 | AN376 | 1 718,32 | AN37 | 1 746,00 |
+| | AN532-FI00 22 | 1 | 31,50 | 3,67 | 0,00 | 0,00 | 11 | UW10 | 2 121,19 | UW01 | 2 124,86 |
+| | AN711-21-01 | 1 | 31,00 | 5,85 | 0,00 | 0,00 | 10 | NE8 | 2 106,15 | AN557 | 2 112,00 |
+| | Z444 SECTION001 | 1 | 26,44 | 6,21 | 0,00 | 0,00 | 9 | _d_Z444_f_1.5 | 1 679,79 | QUI1.38 | 1 686,00 |
+| | AN699-19-01 | 1 | 26,18 | 21,75 | 0,00 | 11,26 | 7 | AH13 | 1 984,25 | AN699 | 2 006,00 |
+| | BB50 SECTION001 | 1 | 25,00 | 21,87 | 0,00 | 39,41 | 27 | _d_BB50_f_FOND | 1 515,13 | BB_50 | 1 537,00 |
+| | AN324 SECTION001 | 1 | 20,47 | 12,89 | 0,00 | 0,00 | 7 | _d_AN324_f_5 | 1 609,11 | AN_324 | 1 622,00 |
+| | AN325 SECTION001 | 1 | 17,74 | 10,15 | 0,00 | 0,00 | 6 | _d_AN325_f_6 | 1 592,85 | AN_325 | 1 603,00 |
+| | Lambert Square | 1 | 0,00 | 40,00 | 0,00 | 120,00 | 6 | LT345_79HH | 1 480,00 | LT345_79DD | 1 520,00 |
+| | Lambert Square | 1 | 0,00 | 20,00 | 0,00 | 60,00 | 6 | LT346_80UH | 1 990,00 | LT346_80UD | 2 010,00 |
+| | Lambert Square | 1 | 0,00 | 20,00 | 0,00 | 60,00 | 6 | LT346_80UH | 1 990,00 | LT346_80UD | 2 010,00 |
+| | Lambert Square | 1 | 0,00 | 20,00 | 0,00 | 60,00 | 6 | LT346_80UH | 1 990,00 | LT346_80UD | 2 010,00 |
+| | Lambert Square | 1 | 0,00 | 20,00 | 0,00 | 60,00 | 6 | LT346_80UH | 1 990,00 | LT346_80UD | 2 010,00 |
+| | UTM Square | 1 | 0,00 | 0,00 | 0,00 | 20,00 | 2 | LT346_80 | 2 000,00 | LT346_80 | 2 000,00 |
+| | UTM Square | 1 | 0,00 | 0,00 | 0,00 | 20,00 | 2 | LT346_80 | 2 000,00 | LT346_80 | 2 000,00 |
+| | UTM Square | 1 | 0,00 | 0,00 | 0,00 | 20,00 | 2 | LT346_80 | 2 000,00 | LT346_80 | 2 000,00 |
+| | UTM Square | 1 | 0,00 | 0,00 | 0,00 | 20,00 | 2 | LT346_80 | 2 000,00 | LT346_80 | 2 000,00 |
+| | Entrées non racordées | 1 | 0,00 | 40,00 | 120,00 | 0,00 | 6 | 4 | 2 017,00 | AN596 | 2 057,00 |
+| | Entrées non racordées | 1 | 0,00 | 40,00 | 120,00 | 0,00 | 6 | AN456 | 1 962,00 | B | 2 002,00 |
+| | Entrées non racordées | 1 | 0,00 | 40,00 | 120,00 | 0,00 | 6 | G | 1 747,00 | - | 1 787,00 |
+| | Entrées non racordées | 1 | 0,00 | 40,00 | 120,00 | 0,00 | 6 | CHI_d_38/1 | 1 275,00 | N | 1 315,00 |
+| | Entrée(s) sans topographie | 5 | 0,00 | 245,00 | 0,00 | 0,00 | 0 | LT345_79 | 1 500,00 | Z150_d_1_0 | 1 745,00 |
+
+
+--------------
+
+### Développement total topographié par année(s)
+| Année | Dev. (m) | Cumul (m) | Dupl. (m) | Cumul (m) | Surf. (m) | Cumul (m) |
+|---|---|---|---|---|---|---|
+| 1950 | 1 724,74 | 1 724,74 | 0,00 | 0,00 | 0,00 | 0,00 |
+| 1971 | 2 627,02 | 4 351,76 | 116,43 | 116,43 | 0,00 | 0,00 |
+| 1974 | 575,30 | 4 927,06 | 0,00 | 116,43 | 0,00 | 0,00 |
+| 1976 | 606,16 | 5 533,22 | 0,00 | 116,43 | 0,00 | 0,00 |
+| 1977 | 1 411,32 | 6 944,54 | 0,00 | 116,43 | 0,00 | 0,00 |
+| 1978 | 2 081,24 | 9 025,78 | 0,00 | 116,43 | 0,00 | 0,00 |
+| 1979 | 5 031,79 | 14 057,57 | 64,40 | 180,83 | 0,00 | 0,00 |
+| 1980 | 940,79 | 14 998,36 | 0,00 | 180,83 | 0,00 | 0,00 |
+| 1981 | 4 122,90 | 19 121,26 | 0,00 | 180,83 | 0,00 | 0,00 |
+| 1982 | 6 422,46 | 25 543,72 | 0,00 | 180,83 | 0,00 | 0,00 |
+| 1983 | 8 885,25 | 34 428,97 | 1 022,47 | 1 203,30 | 0,00 | 0,00 |
+| 1984 | 5 635,70 | 40 064,67 | 0,00 | 1 203,30 | 0,00 | 0,00 |
+| 1985 | 7 594,11 | 47 658,78 | 0,00 | 1 203,30 | 0,00 | 0,00 |
+| 1986 | 2 747,84 | 50 406,62 | 0,00 | 1 203,30 | 38,50 | 38,50 |
+| 1987 | 10 648,06 | 61 054,68 | 70,66 | 1 273,96 | 0,00 | 38,50 |
+| 1988 | 1 310,71 | 62 365,39 | 0,00 | 1 273,96 | 0,00 | 38,50 |
+| 1989 | 4 088,49 | 66 453,88 | 0,00 | 1 273,96 | 0,00 | 38,50 |
+| 1990 | 6 920,12 | 73 374,00 | 0,00 | 1 273,96 | 0,00 | 38,50 |
+| 1991 | 1 164,14 | 74 538,14 | 0,00 | 1 273,96 | 0,00 | 38,50 |
+| 1992 | 14 467,22 | 89 005,36 | 0,00 | 1 273,96 | 0,00 | 38,50 |
+| 1993 | 19 380,69 | 108 386,05 | 0,00 | 1 273,96 | 0,00 | 38,50 |
+| 1994 | 8 749,22 | 117 135,27 | 0,00 | 1 273,96 | 0,00 | 38,50 |
+| 1995 | 5 661,53 | 122 796,80 | 0,00 | 1 273,96 | 0,00 | 38,50 |
+| 1996 | 8 964,07 | 131 760,87 | 70,08 | 1 344,04 | 0,00 | 38,50 |
+| 1997 | 13 193,45 | 144 954,32 | 0,00 | 1 344,04 | 0,00 | 38,50 |
+| 1998 | 12 640,07 | 157 594,39 | 21,10 | 1 365,14 | 0,00 | 38,50 |
+| 1999 | 10 657,59 | 168 251,98 | 3 706,31 | 5 071,45 | 137,44 | 175,94 |
+| 2000 | 6 419,46 | 174 671,44 | 1 214,92 | 6 286,37 | 409,80 | 585,74 |
+| 2001 | 12 440,67 | 187 112,11 | 596,17 | 6 882,54 | 27,39 | 613,13 |
+| 2002 | 5 107,89 | 192 220,00 | 247,31 | 7 129,85 | 45,44 | 658,57 |
+| 2003 | 3 927,29 | 196 147,29 | 0,00 | 7 129,85 | 406,12 | 1 064,69 |
+| 2004 | 2 645,33 | 198 792,62 | 11,06 | 7 140,91 | 178,02 | 1 242,71 |
+| 2005 | 2 733,71 | 201 526,33 | 0,00 | 7 140,91 | 405,03 | 1 647,74 |
+| 2006 | 7 659,27 | 209 185,60 | 80,00 | 7 220,91 | 203,64 | 1 851,38 |
+| 2007 | 6 496,08 | 215 681,68 | 95,38 | 7 316,29 | 9,35 | 1 860,73 |
+| 2008 | 4 780,88 | 220 462,56 | 0,00 | 7 316,29 | 158,13 | 2 018,86 |
+| 2009 | 4 993,39 | 225 455,95 | 71,84 | 7 388,13 | 875,47 | 2 894,33 |
+| 2010 | 4 406,45 | 229 862,40 | 404,20 | 7 792,33 | 181,61 | 3 075,94 |
+| 2011 | 5 698,22 | 235 560,62 | 0,00 | 7 792,33 | 309,63 | 3 385,57 |
+| 2012 | 9 116,66 | 244 677,28 | 0,00 | 7 792,33 | 1 382,85 | 4 768,42 |
+| 2013 | 9 810,78 | 254 488,06 | 7,42 | 7 799,75 | 527,56 | 5 295,98 |
+| 2014 | 9 800,55 | 264 288,61 | 150,80 | 7 950,55 | 286,91 | 5 582,89 |
+| 2015 | 8 429,72 | 272 718,33 | 1 054,63 | 9 005,18 | 1 347,63 | 6 930,52 |
+| 2016 | 9 689,42 | 282 407,75 | 1 381,39 | 10 386,57 | 211,21 | 7 141,73 |
+| 2017 | 4 858,50 | 287 266,25 | 83,46 | 10 470,03 | 294,39 | 7 436,12 |
+| 2018 | 7 369,21 | 294 635,46 | 395,87 | 10 865,90 | 496,43 | 7 932,55 |
+| 2019 | 6 017,18 | 300 652,64 | 289,22 | 11 155,12 | 266,20 | 8 198,75 |
+| 2020 | 5 050,76 | 305 703,40 | 265,07 | 11 420,19 | 24,74 | 8 223,49 |
+| 2021 | 7 945,59 | 313 648,99 | 529,80 | 11 949,99 | 315,77 | 8 539,26 |
+| 2022 | 6 913,36 | 320 562,35 | 1 794,04 | 13 744,03 | 42,40 | 8 581,66 |
+| 2023 | 6 343,27 | 326 905,62 | 1 180,34 | 14 924,37 | 79,70 | 8 661,36 |
+| 2024 | 7 701,11 | 334 606,73 | 547,76 | 15 472,13 | 144,72 | 8 806,08 |
+| 2025 | 5 695,94 | 340 302,67 | 102,89 | 15 575,02 | 150,53 | 8 956,61 |
+
+
+--------------
+### Bilan final
+| | |
+| :---------------- | :--- |
+| Script pyThStat par | alexandre.pont@yahoo.fr |
+| Version | 2026.09.25 |
+| Fichier source | ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql |
+| Dossier destination | ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats |
+| Date | 2026-09-25 18h02m49s |
+| Durée calcul |29 (m) 39 (s) sans erreur |
+
+--------------
diff --git a/Scripts/pyCreateTh.log b/Scripts/pyCreateTh.log
new file mode 100644
index 0000000..6841730
--- /dev/null
+++ b/Scripts/pyCreateTh.log
@@ -0,0 +1,11 @@
+2026-09-09 13:12:03,027 - INFO - ######################################################################################################################################################
+2026-09-09 13:12:03,028 - INFO - # Files conversion th, dat, mak, tro and trox to therion files and folders #
+2026-09-09 13:12:03,028 - INFO - # Script pyCreateTh by : alexandre.pont@yahoo.fr #
+2026-09-09 13:12:03,028 - INFO - # Version : 2026.01.08 #
+2026-09-09 13:12:03,033 - INFO - # Input file : . #
+2026-09-09 13:12:03,033 - INFO - # Output folder : . #
+2026-09-09 13:12:03,033 - INFO - # Log file : pyCreateTh.log #
+2026-09-09 13:12:03,034 - INFO - # Config file : config.ini, profile : CRIOU #
+2026-09-09 13:12:03,034 - INFO - # #
+2026-09-09 13:12:03,034 - INFO - ######################################################################################################################################################
+2026-09-09 13:12:03,034 - CRITICAL - !!! No valid file selected, try again
diff --git a/Scripts/pyCreateTh/Template/Outputs/Outputs.md b/Scripts/pyCreateTh/Template/Outputs/Outputs.md
new file mode 100644
index 0000000..3cadd51
--- /dev/null
+++ b/Scripts/pyCreateTh/Template/Outputs/Outputs.md
@@ -0,0 +1,2 @@
+## Folder where Therion outputs are exported
+
diff --git a/Scripts/pyCreateTh/Template/Outputs/outputs.txt b/Scripts/pyCreateTh/Template/Outputs/outputs.txt
deleted file mode 100644
index 4a3b6e4..0000000
--- a/Scripts/pyCreateTh/Template/Outputs/outputs.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Folder where Therion outputs are exported
-
diff --git a/Scripts/pyCreateTh/Template/Sources/Sources.md b/Scripts/pyCreateTh/Template/Sources/Sources.md
new file mode 100644
index 0000000..84b4bb3
--- /dev/null
+++ b/Scripts/pyCreateTh/Template/Sources/Sources.md
@@ -0,0 +1,2 @@
+## Folder where you can put your originals files
+
diff --git a/Scripts/pyCreateTh/Template/template.thconfig b/Scripts/pyCreateTh/Template/template.thconfig
index 292dc70..441d2b7 100644
--- a/Scripts/pyCreateTh/Template/template.thconfig
+++ b/Scripts/pyCreateTh/Template/template.thconfig
@@ -89,7 +89,7 @@ layout layout-Plan
grid-size 50 50 50 m
## la topo est transparente (on peut voir les galeries en dessous)
- ## C'est on par défaut, donc, pas vraiment besoin de specifier
+ ## C'est 'on' par défaut, donc, pas vraiment besoin de specifier
transparency on
## Couleurs de la topographie
@@ -103,7 +103,7 @@ layout layout-Plan
#colour-legend off
colour map-fg 90
- ## ça marche seulement si transparency est "on" 90% blanc= 10% noir
+ ## Ça marche seulement si 'transparency' est "on" 90% blanc= 10% noir
opacity 75
#surface bottom
#surface-opacity 100
@@ -123,7 +123,7 @@ layout layout-Plan
## ou une autre combinaison...
map-header 2 -98 nw
- ## arrière plan de la manchette
+ ## Arrière plan de la manchette
map-header-bg on
## Légende pour expliciter les symboles. "on" imprimera seulement la légende des symboles dessinés
@@ -260,7 +260,7 @@ layout layout-Extended
#grid-size 250 250 250 m
## la topo est transparente (on peut voir les galeries inférieurs)
- ## C'est on par défaut, donc, pas vraiment besoin de spécifier
+ ## C'est 'on' par défaut, donc, pas vraiment besoin de spécifier
transparency on
## Couleurs de la topographie
@@ -274,7 +274,7 @@ layout layout-Extended
#colour-legend off
colour map-fg 90
- ## ça marche seulement si transparency est "on" 90% blanc= 10% noir
+ ## Ça marche seulement si transparency est "on" 90% blanc= 10% noir
opacity 75
#surface bottom
#surface-opacity 100
@@ -294,7 +294,7 @@ layout layout-Extended
## ou une autre combinaison...
map-header 98 98 ne
- ## arrière plan de la manchette
+ ## Arrière plan de la manchette
map-header-bg on
## Légende pour expliciter les symboles. "on" imprimera seulement la légende des symboles dessinés
@@ -381,11 +381,11 @@ layout xviexport
## taille de la grille
grid-size 2 2 2 m
- ## mettre la grille en arrière plan
+ ## Mettre la grille en arrière plan
grid bottom
endlayout
-## fin de la définition du layout
+## Fin de la définition du layout
###############################################################################################
## 3-EXPORT ##
@@ -423,8 +423,6 @@ endlayout
# export database -fmt sql -o Outputs/{fileName}-Database.sql
# export continuation-list -o Outputs/{fileName}-Continuations.html
-
-
###############################################################################################
## END FILE ##
-###############################################################################################
\ No newline at end of file
+###############################################################################################
diff --git a/Scripts/pyCreateTh/config.ini b/Scripts/pyCreateTh/config.ini
index 7dbbb21..8147b3f 100644
--- a/Scripts/pyCreateTh/config.ini
+++ b/Scripts/pyCreateTh/config.ini
@@ -7,15 +7,15 @@
#############################################################################################
[Survey_Data] # Default
Author = Alexandre Pont
-Copyright1 = # Copyright (C) ARSIP {YEAR}
+Copyright1 = # Copyright (C) {YEAR}
Copyright2 = # This work is under the Creative Commons Attribution-NonCommercial-NoDerivatives License:
Copyright3 = #
Copyright_Short = License CC by-nc-nd : http://creativecommons.org/licenses/by-nc-nd/4.0/
-map_comment = Massif de la Pierre Saint Martin - Larra
-club = ARSIP
+map_comment =
+club =
thanksto = Merci à tout le monde
-datat = https://github.com/Alex38Lyon/Synthese-PSM_LARRA
-wpage = https://www.arsip.fr/
+datat =
+wpage =
cs = UTM30
[Survey_Data:Tritons]
@@ -70,6 +70,19 @@ datat =
wpage =
cs = UTM48
+[Survey_Data:CRIOU]
+Author = Alexandre Pont
+Copyright1 = # Copyright (C) Collectif Mirolda {YEAR}
+Copyright2 = # This work is under the Creative Commons Attribution-NonCommercial-NoDerivatives License:
+Copyright3 = #
+Copyright_Short = License CC by-nc-nd : http://creativecommons.org/licenses/by-nc-nd/4.0/
+map_comment = Collectif Mirolda {YEAR}
+club = Collectif Mirolda {YEAR}
+thanksto = Merci à tout le monde
+datat = https://github.com/robertxa/Mirolda
+wpage = https://github.com/robertxa/Mirolda
+cs = UTM32
+
#############################################################################################
# Configuration data
#############################################################################################
@@ -82,7 +95,7 @@ parse_tro_files_by_explo = True
final_therion_exe = True
therion_path = C:\Program Files\Therion\therion.exe
-# Survey prefix name use tu create Survey folders
+# Survey prefix name use to create survey folders
survey_prefix_name = Explo_
# Options for th2 files
diff --git a/Scripts/pyCreateTh/therion.log b/Scripts/pyCreateTh/therion.log
deleted file mode 100644
index c1d6f56..0000000
--- a/Scripts/pyCreateTh/therion.log
+++ /dev/null
@@ -1,7 +0,0 @@
-therion 6.3.4+999e03f9+dev (2026-03-16)
- - using Proj 9.5.1, compiled against 9.7.1
-C:\Program Files\Therion\therion.exe: warning -- Proj version mismatch: using 9.5.1, compiled against 9.7.1
-initialization file: C:\Program Files\Therion/therion.ini
-reading ... done
-C:\Program Files\Therion\therion.exe: error -- can't open file for input -- Xendako.thconfig
-Press ENTER to exit!
\ No newline at end of file
diff --git a/Scripts/pyThStat/Lib/__pycache__/global_data.cpython-314.pyc b/Scripts/pyThStat/Lib/__pycache__/global_data.cpython-314.pyc
index b6993a7..301ef92 100644
Binary files a/Scripts/pyThStat/Lib/__pycache__/global_data.cpython-314.pyc and b/Scripts/pyThStat/Lib/__pycache__/global_data.cpython-314.pyc differ
diff --git a/Scripts/pyThStat/Lib/global_data.py b/Scripts/pyThStat/Lib/global_data.py
index a2fb861..777cb40 100644
--- a/Scripts/pyThStat/Lib/global_data.py
+++ b/Scripts/pyThStat/Lib/global_data.py
@@ -6,9 +6,11 @@
!#############################################################################################!
"""
-Version = "2026.09.03"
+Version = "2026.09.25"
#################################################################################################
# error_count = 0 # Compteur d'erreurs
-debug_log = False
\ No newline at end of file
+debug_log = False
+
+outputFilename = "readme"
\ No newline at end of file
diff --git a/Scripts/pyThStat/pythStat.py b/Scripts/pyThStat/pythStat.py
index a1abaf5..25376f1 100644
--- a/Scripts/pyThStat/pythStat.py
+++ b/Scripts/pyThStat/pythStat.py
@@ -17,6 +17,7 @@
import sqlite3, sys, os, re, argparse
from pathlib import Path
from os.path import isfile, join, abspath, splitext
+from turtle import color
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
@@ -55,7 +56,7 @@ def importation_sql_data(fichier_sql):
cursor = connection.cursor()
# Lecture du fichier SQL et exécution des commandes
- with open(fichier_sql, 'r') as sql_file:
+ with open(fichier_sql, 'r', encoding='utf-8') as sql_file:
sql_script = sql_file.read()
@@ -150,7 +151,8 @@ def construction_tables():
RESEAU_ID INTEGER,
STATION_JONC INTEGER,
ENT_1 INTEGER,
- ENT_2 INTEGER)
+ ENT_2 INTEGER,
+ RESEAU_NAME)
""")
conn.commit()
@@ -267,7 +269,7 @@ def construction_tables():
with alive_bar(compteur_ttl, title = f"{Colors.YELLOW}Progression{Colors.ENDC}", length = 20) as bar:
while len(results) > 0: # type: ignore
# print(f"{Colors.GREEN}{Colors.BOLD}Phase 4.{Count}: Remplissage des tables _JONCTION et _SERIE itération: {Count}, séries créée(s): {New_Serie_ID} ajoutée(s): {New_Serie_ID-New_Serie_IDOld} à traiter: {len(results)}{Colors.ENDC}") # type: ignore
- bar.text(f"{Colors.YELLOW}itération(s): {Colors.ENDC}{Count}{Colors.YELLOW}, série(s) créée(s): {Colors.ENDC}{New_Serie_ID}") # type: ignore
+ bar.text(f"{Colors.YELLOW}itération(s): {Colors.ENDC}{Count}{Colors.YELLOW}, série(s) créée(s): {Colors.ENDC}{New_Serie_ID}{Colors.YELLOW}") # type: ignore
cursor.execute("SELECT COUNT(*) AS nbre FROM _JONCTION WHERE STATION_TYPE IS NULL")
_compteur = cursor.fetchall()
compteur = int(_compteur[0][0])
@@ -377,16 +379,16 @@ def construction_tables():
orphelines_shot()
jonction_RESEAU()
+ name_RESEAU()
if compteur > 0 :
log.warning(f"Phase 4: Fin du remplissage des tables,{Colors.WARNING} attention {Colors.ENDC}{compteur}{Colors.WARNING} station(s) non comptabilisé(s)")
- error_count += 1
# else :
# print(f"{Colors.GREEN}{Colors.BOLD}Phase 4: Fin du remplissage des tables voir {imported_database}{Colors.ENDC}")
except sqlite3.Error as e:
- log.error(f"Erreur lors de l'exécution d'une des requêtes (construction_tables) code:{Colors.ENDC} {e}")
+ log.error(f"Erreur lors de l'exécution d'une de la fonction construction_tables, code:{Colors.ENDC} {e}")
error_count += 1
return
@@ -430,7 +432,7 @@ def orphelines_shot():
conn.commit()
orphelines = cursor.fetchall()
- log.info(f"Intégrations des visées orphelines (entre 2 stations existantes) nbre: {Colors.ENDC}{len(orphelines)}")
+ log.info(f"Intégrations des visées orphelines (entre 2 stations existantes), nbre: {Colors.ENDC}{len(orphelines)}")
for row in orphelines:
_SERIE_LENGHT = 0
@@ -571,7 +573,70 @@ def jonction_RESEAU():
log.info(f"Réseau: {Colors.ENDC}{index_reseau}{Colors.INFO}, entrées jonctionnées: {Colors.ENDC}{len(liste_entrees_reseau)}{Colors.INFO}, {Colors.ENDC}{liste_entrees_reseau}")
except sqlite3.Error as e:
- log.error(f"Erreur lors de l'exécution de la requête Jonction_RESEAU code:{Colors.ENDC} {e}")
+ log.error(f"Erreur lors de l'exécution de la fonction Jonction_RESEAU, code:{Colors.ENDC} {e}")
+ error_count += 1
+
+ return
+
+#####################################################################################################################################
+# Fonction pour nommer les réseaux d'après les survey name #
+#####################################################################################################################################
+def name_RESEAU():
+ global error_count
+
+ try:
+ cursor.execute("""
+ SELECT
+ _RESEAU.ID AS _ID,
+ _RESEAU.RESEAU_ID AS _RESEAU_ID,
+ _RESEAU.ENT_1,
+ _RESEAU.ENT_2,
+ STATION_ENT_1.NAME AS S1_NAME,
+ STATION_ENT_2.NAME AS S2_NAME,
+ SURVEY_ENT_1.NAME AS SURVEY_NAME_ENT_1,
+ SURVEY_ENT_1.FULL_NAME AS SURVEY_FULL_NAME_ENT_1,
+ SURVEY_ENT_1.ID AS SURVEY_ID_ENT_1,
+ SURVEY_ENT_1.TITLE AS SURVEY_TITLE_NAME_ENT_1,
+ SURVEY_ENT_2.NAME AS SURVEY_NAME_ENT_2,
+ SURVEY_ENT_2.FULL_NAME AS SURVEY_FULL_NAME_ENT_2,
+ SURVEY_ENT_2.ID AS SURVEY_ID_ENT_2,
+ SURVEY_ENT_2.TITLE AS SURVEY_TITLE_NAME_ENT_2
+ FROM _RESEAU AS _RESEAU
+ INNER JOIN STATION AS STATION_ENT_1 ON _RESEAU.ENT_1 = STATION_ENT_1.ID
+ LEFT JOIN STATION AS STATION_ENT_2 ON _RESEAU.ENT_2 = STATION_ENT_2.ID
+ INNER JOIN SURVEY AS SURVEY_ENT_1 ON STATION_ENT_1.SURVEY_ID = SURVEY_ENT_1.ID
+ INNER JOIN SURVEY AS SURVEY_ENT_2 ON STATION_ENT_2.SURVEY_ID = SURVEY_ENT_2.ID
+ ORDER BY _RESEAU_ID;
+ """)
+
+ conn.commit()
+ name_reseau = cursor.fetchall()
+
+ for row in name_reseau :
+ log.debug(f"{Colors.BLUE}Réseau ID {Colors.ENDC}{row[0]}{Colors.BLUE}, ENT_1 full name : {Colors.ENDC}{row[7]}{Colors.BLUE}, Survey ID {Colors.ENDC}{row[8]}{Colors.BLUE}, ENT_2 full name : {Colors.ENDC}{row[11]}{Colors.BLUE}, Survey ID {Colors.ENDC}{row[12]}{Colors.BLUE}")
+
+ parent_ent_01 = sql_Parents_Survey(row[8])
+ parent_ent_02 = sql_Parents_Survey(row[12])
+
+ # IDs communs aux deux listes, en parcourant depuis la racine vers l'enfant
+ ids_01 = [row[0] for row in parent_ent_01] # type: ignore
+ ids_02 = [row[0] for row in parent_ent_02] # type: ignore
+
+ # Ancêtres communs = intersection
+ communs = set(ids_01) & set(ids_02)
+
+ # Premier parent commun = celui le plus proche des enfants
+ # → dans les listes ordonnées enfant→racine, c'est le commun le plus "à gauche"
+ premier_commun = next( (row for row in parent_ent_01 if row[0] in communs), )# type: ignore
+ log.debug(f"{Colors.BLUE}Premier commun : {Colors.ENDC}{premier_commun}")
+
+ cursor.execute("UPDATE _RESEAU SET RESEAU_NAME = ? WHERE RESEAU_ID = ?", (premier_commun[2], row[1]))
+ conn.commit()
+
+
+
+ except sqlite3.Error as e:
+ log.error(f"Erreur lors de l'exécution de la fonction name_RESEAU, code:{Colors.ENDC} {e}")
error_count += 1
return
@@ -605,7 +670,7 @@ def SHOT_equates_station():
""")
equate = cursor.fetchall()
- log.info(f"Jonction de SHOT equates nbre: {Colors.ENDC}{len(equate)}")
+ log.info(f"Jonction de SHOT equates, nbre: {Colors.ENDC}{len(equate)}")
for row in equate :
sous_valeurs = row[0].split(',')
# print(f": {sous_valeurs[0]} = ", end="")
@@ -730,7 +795,7 @@ def duplicate_SHOT():
# filtre = cursor.fetchall()
if len(duplicate) > 0:
- log.info(f"Table des SHOT, visées dupliquées traités nbre: {Colors.ENDC}{len(duplicate)}")
+ log.info(f"Table des SHOT, visées dupliquées traités, nbre: {Colors.ENDC}{len(duplicate)}")
# print(f"Visées dupliqués supprimés {duplicate}")
else :
@@ -768,7 +833,7 @@ def issue_SHOT():
if len(issue) > 0:
- log.warning(f"Table des SHOT, visée(s) bloquante(s), même départ et arrivée, longueur nulle supprimée(s) nbre: {Colors.ENDC}{len(issue)}")
+ log.warning(f"Table des SHOT, visée(s) bloquante(s), même départ et arrivée, longueur nulle supprimée(s), nbre: {Colors.ENDC}{len(issue)}")
# print(f"Visée(s) bloquante(s) supprimée(s) {issue}")
else :
log.info(f"Table des SHOT, aucune visée bloquante")
@@ -797,7 +862,7 @@ def marquage_visee_station_habillage() :
""" )
filtre = cursor.fetchall()
- log.info(f"Marquage des visées et des stations d'habillage nbre: {Colors.ENDC}{len(filtre)}")
+ log.info(f"Marquage des visées et des stations d'habillage, nbre: {Colors.ENDC}{len(filtre)}")
for row in filtre :
cursor.execute(f"UPDATE _JONCTION SET STATION_TYPE = 'hab' WHERE STATION_ID = {row[0]}")
cursor.execute(f"UPDATE _VISEE_FLAG SET SERIE_ID = -1 WHERE SHOT_ID = {row[1]}")
@@ -1270,7 +1335,7 @@ def test_jonction(station, serie, entree) :
_serie = cursor.fetchall()
# print (f"Jonction à proximité de la Station_ID: {row[0]}, retour: {str(val)}, serie {serie} - {_serie[0][0]}, entrée {entree} - {retour[0][0]}")
if (retour[0][0] != entree) and (retour[0][0] != None) :
- log.info(f"Jonction à la Station_ID: {Colors.ENDC}{row[0]}{Colors.INFO} entre les entrées {Colors.ENDC}{entree}{Colors.INFO} et {Colors.ENDC}{retour[0][0]}")
+ log.info(f"Jonction à la Station_ID: {Colors.ENDC}{row[0]}{Colors.INFO} entre les entrées {Colors.ENDC}{entree}{Colors.INFO} et {Colors.ENDC}{retour[0][0]}{Colors.YELLOW}")
cursor.execute(f"INSERT INTO _RESEAU ( STATION_JONC, ENT_1, ENT_2) VALUES (?, ?, ?)", (row[0], entree, retour[0][0]))
conn.commit()
# if _serie[0][0] != serie and (_serie[0][0] != None):
@@ -1292,9 +1357,9 @@ def test_jonction(station, serie, entree) :
_serie = cursor.fetchall()
# print (f"Jonction à proximité de la Station_ID: {row[0]}, retour: {str(val)}, serie {serie} - {_serie[0][0]}, entrée {entree} - {retour[0][0]}")
if retour[0][0] != entree :
- log.info(f"Jonction à la Station_ID: {Colors.ENDC}{station}{Colors.INFO} entre les entrées {Colors.ENDC}{entree}{Colors.INFO} et {Colors.ENDC}{retour[0][0]}")
+ log.info(f"Jonction à la Station_ID: {Colors.ENDC}{station}{Colors.INFO} entre les entrées {Colors.ENDC}{entree}{Colors.INFO} et {Colors.ENDC}{retour[0][0]}{Colors.YELLOW}")
if _serie[0][0] != serie :
- log.info (f"Jonction à la Station_ID: {Colors.ENDC}{station}{Colors.INFO} entre les series {Colors.ENDC}{serie}{Colors.INFO} et {Colors.ENDC}{_serie[0][0]}")
+ log.info (f"Jonction à la Station_ID: {Colors.ENDC}{station}{Colors.INFO} entre les series {Colors.ENDC}{serie}{Colors.INFO} et {Colors.ENDC}{_serie[0][0]}{Colors.YELLOW}")
return True
except sqlite3.Error as e:
@@ -1340,520 +1405,7 @@ def format_french_number(value):
#####################################################################################################################################
# Fonction pour exécuter une requête et sauvegarder les résultats dans un fichier texte #
#####################################################################################################################################
-def calcul_statsNew(output_file, filename= "None"):
- global error_count
-
- try:
- # =====================================================================
- # Phase 5 - Génération des statistiques
- # =====================================================================
-
- log.info(
- f"{Colors.UNDERLINE}Phase 5:{Colors.ENDC}"
- f"{Colors.INFO} Écriture des statistiques dans "
- f"{Colors.ENDC}{safe_relpath(output_file, 2)}"
- )
-
- md = []
- csv = []
-
- # ---------------------------------------------------------------------
- # En-tête CSV
- # ---------------------------------------------------------------------
-
- csv.extend(f"{titre[i].ljust(118)}*\n" for i in range(9))
-
- # ---------------------------------------------------------------------
- # En-tête Markdown
- # ---------------------------------------------------------------------
-
- md.extend([
- f"# {titre[1].strip()[2:]}\n\n",
- "## Informations générales\n\n",
- f"| Information | Valeur |\n",
- "|---|---|\n",
- f"| Script | {titre[2].strip()[2:]} |\n",
- f"| Version | {titre[3].strip()[2:]} |\n",
- f"| Fichier source | `{titre[4].strip()[2:]}` |\n",
- f"| Dossier destination | `{titre[5].strip()[2:]}` |\n",
- f"| Date | {titre[6].strip()[2:]} |\n",
- ])
-
- # ---------------------------------------------------------------------
- # Développement total
- # ---------------------------------------------------------------------
-
- cursor.execute("""
- SELECT
- ROUND(SUM(LENGTH), 2),
- ROUND(SUM(DUPLICATE_LENGTH), 2),
- ROUND(SUM(SURFACE_LENGTH), 2)
- FROM CENTRELINE
- """)
-
- total = cursor.fetchone()
-
- developpement = total[0] or 0
- duplique = total[1] or 0
- surface = total[2] or 0
-
- md.extend([
- "\n## Synthèse\n\n",
- "| Statistique | Valeur |\n",
- "|---|---:|\n",
- f"| Développement total | **{developpement:.2f} m** |\n",
- f"| Développement dupliqué | {duplique:.2f} m |\n",
- f"| Surface | {surface:.2f} m² |\n",
- ])
-
- csv.append(
- f"**Développement total centerline (m):**\t"
- f"développement: {developpement:.2f}\t"
- f"dupliqué: {duplique:.2f}\t"
- f"surface: {surface:.2f}\n"
- )
-
- # ---------------------------------------------------------------------
- # Vérification des stations
- # ---------------------------------------------------------------------
-
- cursor.execute(
- "SELECT COUNT(*) FROM _JONCTION WHERE STATION_TYPE IS NULL"
- )
-
- compteur = int(cursor.fetchone()[0])
-
- md.append("\n### Raccordement des stations\n\n")
-
- if compteur > 0:
- md.append(
- f"> [!WARNING]\n"
- f"> **{compteur} station(s)** ne sont pas comptabilisées "
- f"et sont raccordées.\n\n"
- )
-
- csv.append(
- f"Attention, {compteur} station(s) non comptabilisée(s) "
- f"et raccordée(s)\n"
- )
- else:
- md.append(
- "> [!NOTE]\n"
- "> Toutes les stations sont comptabilisées et raccordées.\n\n"
- )
-
- csv.append(
- "Toutes les stations sont comptabilisées et raccordées\n"
- )
-
- # ---------------------------------------------------------------------
- # Développement par réseaux
- # ---------------------------------------------------------------------
-
- results = sql_bilan_reseaux()
-
- if results and results[0][0] is not None:
-
- headers = [
- "Entrée(s)", "Nbre", "Dev. (m)", "Prof. (m)",
- "Dupl. (m)", "Surf. (m)", "Visées",
- "ID min", "Alt. min (m)", "ID max", "Alt. max (m)"
- ]
-
- md.extend([
- "## Développement par réseaux\n\n",
- "\n",
- "Afficher le détail des réseaux
\n\n",
- "| " + " | ".join(headers) + " |\n",
- "|" + "|".join(["---"] * len(headers)) + "|\n",
- ])
-
- csv.append("\nDéveloppement total par réseaux\n")
-
- for row in results:
- csv.append("\t" + "\t".join(map(str, row)) + "\n")
-
- for row in results[1:]:
- values = [str(v) for v in row]
-
- md.append("| " + " | ".join(values) + " |\n")
-
- md.extend([
- "\n \n\n"
- ])
-
- # ---------------------------------------------------------------------
- # Développement par année
- # ---------------------------------------------------------------------
-
- results = sql_bilan_annee()
-
- if results and results[0][0] is not None:
-
- headers = [
- "Année", "Dev. (m)", "Cumul (m)",
- "Dupl. (m)", "Cumul (m)",
- "Surf. (m²)", "Cumul (m²)"
- ]
-
- md.extend([
- "## Développement topographié par année\n\n",
- "| " + " | ".join(headers) + " |\n",
- "|" + "|".join(["---"] * len(headers)) + "|\n",
- ])
-
- csv.append("\nDéveloppement total topographié par année(s)\n")
-
- for row in results[1:]:
- if (
- str(row[1]).strip() != "0.00"
- or str(row[3]).strip() != "0.00"
- or str(row[5]).strip() != "0.00"
- ):
- csv.append("\t" + "\t".join(map(str, row)) + "\n")
-
- md.append(
- "| " + " | ".join(map(str, row)) + " |\n"
- )
-
- md.append("\n")
-
- # ---------------------------------------------------------------------
- # Graphiques
- # ---------------------------------------------------------------------
-
- Rose(output_file_name_rose)
- Shot_lengths_histogram(output_file_name_histo)
-
- md.extend([
- "## Graphiques\n\n",
- f"- [Rose des directions]({output_file_name_rose})\n",
- f"- [Histogramme des longueurs]({output_file_name_histo})\n\n",
- ])
-
- # ---------------------------------------------------------------------
- # Durée totale
- # ---------------------------------------------------------------------
-
- duree = datetime.now() - maintenant
- secondes_total = int(duree.total_seconds())
-
- heures, reste = divmod(secondes_total, 3600)
- minutes, secondes = divmod(reste, 60)
-
- if heures:
- duree_formatee = f"{heures:02d} h {minutes:02d} min {secondes:02d} s"
- elif minutes:
- duree_formatee = f"{minutes:02d} min {secondes:02d} s"
- else:
- duree_formatee = f"{secondes:02d} s"
-
- if error_count == 0:
- md.extend([
- "## Traitement\n\n",
- f"> [!NOTE]\n"
- f"> **Traitement terminé sans erreur.** "
- f"Durée : **{duree_formatee}**.\n"
- ])
-
- csv[7] = (
- f"* Durée calcul : {duree_formatee} sans erreur"
- )
- else:
- md.extend([
- "## Traitement\n\n",
- f"> [!WARNING]\n"
- f"> **Traitement terminé avec {error_count} erreur(s).** "
- f"Durée : **{duree_formatee}**.\n"
- ])
-
- csv[7] = (
- f"* Durée calcul : {duree_formatee} "
- f"avec erreur(s): {error_count}"
- )
-
- csv[7] = csv[7].ljust(118) + "*\n"
-
- # ---------------------------------------------------------------------
- # Écriture des fichiers
- # ---------------------------------------------------------------------
-
- with open(output_file + ".md", "w", encoding="utf-8") as file:
- file.writelines(md)
-
- with open(output_file + ".csv", "w", encoding="utf-8") as file:
- file.writelines(csv)
-
- # ---------------------------------------------------------------------
- # Journalisation
- # ---------------------------------------------------------------------
-
- if error_count == 0:
- log.info(
- f"Phase 5: Fin de traitement en {Colors.ENDC}{duree_formatee}"
- f"{Colors.INFO}, résultats enregistrés dans "
- f"{Colors.ENDC}{safe_relpath(output_file, 2)}"
- )
- else:
- log.warning(
- f"Phase 5: Fin de traitement en {Colors.ENDC}{duree_formatee}, "
- f"{Colors.WARNING}avec {Colors.ENDC}{error_count}"
- f"{Colors.WARNING} erreur(s), {Colors.INFO}"
- f"résultats enregistrés dans {Colors.ENDC}"
- f"{safe_relpath(output_file, 2)}"
- )
-
- except sqlite3.Error as e:
- log.error(
- f"Erreur lors de l'exécution des requêtes calcul_stats:"
- f"{Colors.ENDC} {e}"
- )
- error_count += 1
-
- md.append(
- f"\n> [!CAUTION]\n"
- f"> **Erreur SQLite :** `{e}`\n"
- )
- csv.append(f"Erreur lors de l'exécution de calcul_stats: {e}\n")
-
- with open(output_file + ".md", "w", encoding="utf-8") as file:
- file.writelines(md)
-
- with open(output_file + ".csv", "w", encoding="utf-8") as file:
- file.writelines(csv)
-
- except FileNotFoundError:
- log.error(
- f"Erreur d'ouverture du fichier: {Colors.ENDC}"
- f"{safe_relpath(output_file)}"
- )
- error_count += 1
-
- except Exception as e:
- log.error(
- f"Erreur lors de l'exécution de calcul_stats:"
- f"{Colors.ENDC} {e}"
- )
- error_count += 1
-
- md.append(
- f"\n> [!CAUTION]\n"
- f"> **Erreur lors de l'exécution de calcul_stats :** `{e}`\n"
- )
- csv.append(f"Erreur lors de l'exécution de calcul_stats: {e}\n")
-
- with open(output_file + ".md", "w", encoding="utf-8") as file:
- file.writelines(md)
-
- with open(output_file + ".csv", "w", encoding="utf-8") as file:
- file.writelines(csv)
-
-def calcul_statsOld(output_file, filename= "None"):
- global error_count
- global _largeurCol
- global _largeurColTete
-
- try:
- #####################################################################################################################################
- # Phase 5
- # Enregistrement des résultats dans un fichier
- #####################################################################################################################################
- log.info(f"{Colors.UNDERLINE}Phase 5:{Colors.ENDC}{Colors.INFO} Écriture des statistiques dans fichier {Colors.ENDC}{safe_relpath(output_file, 2)}")
-
- output_file_ligne_md = []
- output_file_ligne_csv = []
-
- for i in range(9):
- output_file_ligne_csv.append(titre[i].ljust(118)+"*\n")
-
-
- output_file_ligne_md.extend([
- f"--------------\n",
- f"# {titre[1].strip()[2:]}\n",
- "|---|---|\n",
- f"| Script | {titre[2].strip()[2:]} |\n",
- f"| Version | {titre[3].strip()[2:]} |\n",
- f"| Fichier source | `{titre[4].strip()[2:]}` |\n",
- f"| Dossier destination | `{titre[5].strip()[2:]}` |\n",
- f"| Date | {titre[6].strip()[2:]} |\n",
- f"- {titre[2].strip()[2:]}\n",
- f"- {titre[3].strip()[2:]}\n",
- f"- {titre[4].strip()[2:]}\n",
- f"- {titre[5].strip()[2:]}\n",
- f"- {titre[6].strip()[2:]}\n",
- f"- {titre[7].strip()[2:]}\n",
- f"--------------\n\n",
- ])
-
-
- sql_query1 = ("""
- Select
- round(sum(LENGTH), 2) as Lg,
- round(sum(DUPLICATE_LENGTH),2) as Duplicate,
- round(sum(SURFACE_LENGTH),2) as Surface
- -- round(sum(LENGTH) + sum(DUPLICATE_LENGTH), 2) as Total
- from CENTRELINE length
- """)
-
- cursor.execute(sql_query1)
- results = cursor.fetchall()
- vide ="-".ljust(_largeurCol)
-
- output_file_ligne_csv.append(
- f"**Développement total centerline (m):**\tdéveloppement: %s,\tdupliqué: %s,\tsurface: %s\n"
- %(str("{:.2f}".format(results[0][0]).ljust(_largeurCol)),
- str("{:.2f}".format(results[0][1]).ljust(_largeurCol)),
- str("{:.2f}".format(results[0][2]).ljust(_largeurCol)),
- ))
-
- output_file_ligne_md.append(
- f"**Développement total des centerlines (m):**"
- f" développement: `{results[0][0]:.2f}`"
- f", dupliqué: `{results[0][1]:.2f}`"
- f", surface: `{results[0][2]:.2f}`\n"
- )
-
- cursor.execute("SELECT COUNT(*) AS nbre FROM _JONCTION WHERE STATION_TYPE IS NULL")
- _compteur = cursor.fetchall()
- compteur = int(_compteur[0][0])
-
- if compteur > 0 : # type: ignore
- output_file_ligne_md.append(f"!!Attention, `{compteur}` station(s) non comptabilisée(s) et raccordée(s)\n\n")
- output_file_ligne_csv.append(f"Attention, {compteur} station(s) non comptabilisée(s) et raccordée(s)\n\n")
- else :
- output_file_ligne_md.append(f"Toutes les stations sont comptabilisées et raccordées\n\n")
- output_file_ligne_csv.append(f"Toutes les stations sont comptabilisées et raccordées\n\n")
-
- results=sql_bilan_reseaux()
-
- # def format_markdown_row(row_data):
- # return '| ' + ' | '.join(f"{str(item):>10}" for item in row_data) + ' |'
-
- if results[0][0] != None :# type: ignore
- output_file_ligne_csv.append("Développement total par réseaux\n")
- for row in results: # type: ignore
- formatted_row = '\t'.join(map(str, row))
- output_file_ligne_csv.append('\t' + formatted_row + '\n')
-
- #print('Développement total: ' + formatted_row + 'm')
-
- output_file_ligne_md.append(f"\n--------------\n")
- output_file_ligne_md.append("**Développement total par réseaux**\n")
-
- headers = ["Entrée(s)", "Nbre", "Dev.(m)", "Prof.(m)", "Dupl.(m)", "Surf.(m)", "Visées", "ID Sta.", "Alt. min(m)", "ID Sta.", "Alt. max(m)"]
- output_file_ligne_md.append("| " + " | ".join(headers) + " |\n")
- output_file_ligne_md.append("|" + "|".join(["------"] * len(headers)) + "|\n")
-
- for row in results[1:]: # type: ignore
- formatted_row = [str(v) for v in row]
- output_file_ligne_md.append("| " + " | ".join(formatted_row) + " |\n")
-
-
- results=sql_bilan_annee()
-
- if results[0][0] != None :# type: ignore
- output_file_ligne_csv.append("\nDéveloppement total topographié par année(s)\n")
- for row in results: # type: ignore
- if row[1].strip() != "0.00" or row[3].strip() != "0.00" or row[5].strip() != "0.00" :
- formatted_row = '\t'.join(map(str, row))
- output_file_ligne_csv.append('\t' + formatted_row + '\n')
- #print('Développement total: ' + formatted_row + 'm')
-
- output_file_ligne_md.append(f"\n--------------\n")
- output_file_ligne_md.append("\n**Développement total topographié par année(s)**\n")
- headers = ["Année", "Dev.(m)", "Cumul (m)", "Dupl.(m)", "Cumul (m)", "Surf.(m)", "Cumul (m)"]
-
- output_file_ligne_md.append("| " + " | ".join(headers) + " |\n")
- output_file_ligne_md.append("|" + "|".join(["---"] * len(headers)) + "|\n")
-
- for row in results[1:]: # type: ignore
- if row[1].strip() != "0.00" or row[3].strip() != "0.00" or row[5].strip() != "0.00" :
- formatted_row = [str(v) for v in row]
- output_file_ligne_md.append("| " + " | ".join(formatted_row) + " |\n")
-
-
- output_file_ligne_md.append(f"\n--------------\n")
-
- Rose(output_file_name_rose)
-
- Shot_lengths_histogram(output_file_name_histo)
-
-
- findetraitement = datetime.now()
-
- duree = findetraitement - maintenant
- jours, secondes = divmod(duree.seconds, 86400) # 86400 secondes dans une journée
- heures, secondes = divmod(secondes, 3600) # 3600 secondes dans une heure
- minutes, secondes = divmod(secondes, 60) # 60 secondes dans une minute
- if duree.seconds > 3600:
- duree_formatee = "{:02}(h){:02}(m){:02}(s)".format(heures, minutes, secondes)
-
- elif duree.seconds > 60:
- duree_formatee = "{:02}(m){:02}(s)".format(minutes, secondes)
-
- else :
- duree_formatee = "{:02}(s)".format(secondes)
-
- if error_count == 0:
- output_file_ligne_csv[7] = "* Durée calcul : " + duree_formatee + " sans erreur"
- output_file_ligne_md[7] = "- Durée calcul : " + duree_formatee + " sans erreur\n"
- output_file_ligne_csv[7] = output_file_ligne_csv[7].ljust(118)+"*\n"
-
- else :
- output_file_ligne_csv[7] = "* Durée calcul : " + duree_formatee + " avec erreur(s): " + str(error_count)
- output_file_ligne_md[7] = "- Durée calcul : " + duree_formatee + "!! avec erreur(s): " + str(error_count) + "\n"
- output_file_ligne_csv[7] = output_file_ligne_csv[7].ljust(118)+"*\n"
-
- with open(output_file + ".md", 'w', encoding='utf-8') as file:
- file.writelines(output_file_ligne_md)
-
- with open(output_file + ".csv", 'w', encoding='utf-8') as file:
- file.writelines(output_file_ligne_csv)
-
- if error_count == 0 :
- log.info(f"Phase 5: Fin de traitement en {Colors.ENDC}" + duree_formatee + f"{Colors.INFO}, résultats enregistrés dans {Colors.ENDC}{safe_relpath(output_file, 2)}")
-
- else :
- log.warning(f"Phase 5: Fin de traitement en {Colors.ENDC}" + duree_formatee
- + f",{Colors.WARNING} avec {Colors.ENDC}{error_count}{Colors.WARNING} erreur(s), {Colors.INFO}résultats enregistrés dans {Colors.ENDC}{safe_relpath(output_file, 2)}")
-
- except sqlite3.Error as e:
- log.error(f"Erreur lors de l'exécution des requêtes calcul_stats:{Colors.ENDC} {e}")
- error_count += 1
- output_file_ligne_md.append(f"!!! Erreur lors de l'exécution des requêtes calcul_stats: {e}\n")
- output_file_ligne_csv.append(f"Erreur lors de l'exécution des requêtes calcul_stats: {e}\n")
-
- with open(output_file + ".md", 'w', encoding='utf-8') as file:
- file.writelines(output_file_ligne_md)
-
- with open(output_file + ".csv", 'w', encoding='utf-8') as file:
- file.writelines(output_file_ligne_csv)
-
- return
-
- except FileNotFoundError:
- log.error(f"Erreur d'ouverture du fichier: {Colors.ENDC}{safe_relpath(output_file)} ")
- error_count += 1
-
- return
-
- except Exception as e:
- log.error(f"Erreur lors de l'exécution de calcul_stats:{Colors.ENDC} {e}")
- error_count += 1
- output_file_ligne_md.append(f"!! Erreur lors de l'exécution de calcul_stats: {e}\n")
- output_file_ligne_csv.append(f"Erreur lors de l'exécution de calcul_stats: {e}\n")
-
- with open(output_file + ".md", 'w', encoding='utf-8') as file:
- file.writelines(output_file_ligne_md)
-
- with open(output_file + ".csv", 'w', encoding='utf-8') as file:
- file.writelines(output_file_ligne_csv)
-
- return
-
- return
-
-def calcul_stats(output_file , filename= "None"):
+def calcul_stats(output_file_csv , output_file_md, filename= "None", ):
global error_count
try:
@@ -1861,7 +1413,7 @@ def calcul_stats(output_file , filename= "None"):
# Phase 5
# Enregistrement des résultats dans un fichier
#####################################################################################################################################
- log.info(f"{Colors.UNDERLINE}Phase 5:{Colors.ENDC}{Colors.INFO} Écriture des statistiques dans le fichier: {Colors.ENDC}{safe_relpath(output_file, 2)}")
+ log.info(f"{Colors.UNDERLINE}Phase 5:{Colors.ENDC}{Colors.INFO} Écriture des statistiques dans le fichier: {Colors.ENDC}{safe_relpath(output_file_md, 2)}")
###############################################################################################################
# Général
@@ -1875,6 +1427,8 @@ def calcul_stats(output_file , filename= "None"):
Rose(output_file_name_rose)
Shot_lengths_histogram(output_file_name_histo)
+ base_name= sql_base_name()
+
findetraitement = datetime.now()
duree = findetraitement - maintenant
@@ -1896,9 +1450,75 @@ def calcul_stats(output_file , filename= "None"):
###############################################################################################################
output_file_ligne_md = []
+ output_file_ligne_md.append(f"-------------\n")
+ output_file_ligne_md.append(f"# Statistiques de `{base_name}`\n")
+ output_file_ligne_md.append(f"--------------\n\n")
+ output_file_ligne_md.append(
+ f"### Développement total\n\n"
+ f"Développement topographié: \t`{format_french_number(results[0][0])} (m)`\n" # type: ignore
+ f"Développement topographie dupliqués: \t`{format_french_number(results[0][1])} (m)`\n" # type: ignore
+ f"Développement topographie de surface:\t`{format_french_number(results[0][2])} (m)`\n" # type: ignore
+ f"Soit un grand total de : \t`{format_french_number(results[0][0] + results[0][1] + results[0][2])} (m)`\n" # type: ignore
+ )
+
+ if compteur > 0 : # type: ignore
+ output_file_ligne_md.append(f"> [!WARNING] `{compteur}` station(s) non comptabilisée(s) et raccordée(s)\n\n")
+
+ else :
+ output_file_ligne_md.append(f"Toutes les stations sont comptabilisées et raccordées\n\n")
+
+ output_file_ligne_md.append(f"\n--------------\n")
+
+ if results2[0][0] != None : # type: ignore
+ output_file_ligne_md.append("### Développement total par réseau\n")
+
+ headers = [" Réseau ", " Entrée(s) ", " Nbre ", " Dev. (m) ", " Prof. (m) ", " Dupl. (m) ", "Surf. (m)", " Visées ", " ID Stat. ", " Alt. min (m) ", " ID Stat. ", " Alt. max (m) "]
+ output_file_ligne_md.append("| " + " | ".join(headers) + " |\n")
+ output_file_ligne_md.append("|" + "|".join(["------------"] * len(headers)) + "|\n")
+
+ vals = results2[1]
+
+ def fmt(v, idx):
+ if v is None: return ""
+ return format_french_number(v) if idx in (3,4,5,6,9,11) else str(v).replace(' ', '')
+
+ first = fmt(vals[0], 0) if vals[0] is not None else " "
+ reste = " | ".join(f"**{fmt(v, i+1)}**" for i, v in enumerate(vals[1:]))
+
+ output_file_ligne_md.append(f"| {first}" + (f" | {reste}" if reste else "") + " |\n")
+
+
+ for row in results2[2:]: # type: ignore
+
+ clean_row = (v.strip() for v in row)
+ _row = [
+ format_french_number(v) if idx in (3, 4, 5, 6, 9, 11) else str(v)
+ for idx, v in enumerate(clean_row)
+ ]
+ formatted_row = [str(v) for v in _row]
+ output_file_ligne_md.append("| " + " | ".join(formatted_row) + " |\n")
+
+ if results3[0][0] != None : # type: ignore
+ output_file_ligne_md.append(f"\n\n--------------\n")
+ output_file_ligne_md.append("\n### Développement total topographié par année(s)\n")
+ headers = [" Année ", "Dev. (m)", "Cumul (m)", "Dupl. (m)", "Cumul (m)", "Surf. (m)", "Cumul (m)"]
+
+ output_file_ligne_md.append("| " + " | ".join(headers) + " |\n")
+ output_file_ligne_md.append("|" + "|".join(["---"] * len(headers)) + "|\n")
+
+ for row in results3[1:]: # type: ignore
+ if row[1].strip() != "0.00" or row[3].strip() != "0.00" or row[5].strip() != "0.00" :
+ _row = [
+ format_french_number(v) if idx in (1, 2, 3, 4, 5, 6) else str(v)
+ for idx, v in enumerate(row)
+ ]
+ formatted_row = [str(v) for v in _row]
+ output_file_ligne_md.append("| " + " | ".join(formatted_row) + " |\n")
+
+ output_file_ligne_md.append(f"\n\n--------------\n")
+
output_file_ligne_md.extend([
- f"--------------\n",
- f"# Statistiques de la base {filename}\n",
+ f"### Bilan final\n",
"| | |\n",
"| :---------------- | :--- |\n",
f"| {titre[2].strip()[2:].replace(":", "|")} |\n",
@@ -1917,59 +1537,9 @@ def calcul_stats(output_file , filename= "None"):
output_file_ligne_md.append("| Durée calcul |" + duree_formatee + " avec erreur(s): " + str(error_count) + " |\n")
output_file_ligne_md.append(f"\n--------------\n")
-
- output_file_ligne_md.append(
- f"### Développement total (m)\n\n"
- f"Développement:\t`{format_french_number(results[0][0])}`" # type: ignore
- f", dupliqué:\t`{format_french_number(results[0][1])}`" # type: ignore
- f", surface:\t`{format_french_number(results[0][2])}`\n\n" # type: ignore
- )
-
- if compteur > 0 : # type: ignore
- output_file_ligne_md.append(f"> [!WARNING] `{compteur}` station(s) non comptabilisée(s) et raccordée(s)\n\n")
- else :
- output_file_ligne_md.append(f"Toutes les stations sont comptabilisées et raccordées\n\n")
-
- output_file_ligne_md.append(f"\n--------------\n")
-
- if results2[0][0] != None : # type: ignore
- output_file_ligne_md.append("### Développement total par réseaux\n")
-
- headers = [" Entrée(s) ", " Nbre ", " Dev. (m) ", " Prof. (m) ", " Dupl. (m) ", "Surf. (m)", " Visées ", " ID Stat. ", " Alt. min (m) ", " ID Stat. ", " Alt. max (m) "]
- output_file_ligne_md.append("| " + " | ".join(headers) + " |\n")
- output_file_ligne_md.append("|" + "|".join(["------------"] * len(headers)) + "|\n")
-
- for row in results2[1:]: # type: ignore
- _row = [
- format_french_number(v) if idx in (2, 3, 4, 5, 8, 10) else str(v)
- for idx, v in enumerate(row)
- ]
- formatted_row = [str(v) for v in _row]
- output_file_ligne_md.append("| " + " | ".join(formatted_row) + " |\n")
-
- if results3[0][0] != None : # type: ignore
- output_file_ligne_md.append(f"\n--------------\n")
- output_file_ligne_md.append("\n### Développement total topographié par année(s)\n")
- headers = [" Année ", "Dev. (m)", "Cumul (m)", "Dupl. (m)", "Cumul (m)", "Surf. (m)", "Cumul (m)"]
-
- output_file_ligne_md.append("| " + " | ".join(headers) + " |\n")
- output_file_ligne_md.append("|" + "|".join(["---"] * len(headers)) + "|\n")
-
- for row in results3[1:]: # type: ignore
- if row[1].strip() != "0.00" or row[3].strip() != "0.00" or row[5].strip() != "0.00" :
- _row = [
- format_french_number(v) if idx in (1, 2, 3, 4, 5, 6) else str(v)
- for idx, v in enumerate(row)
- ]
- formatted_row = [str(v) for v in _row]
- output_file_ligne_md.append("| " + " | ".join(formatted_row) + " |\n")
-
- output_file_ligne_md.append(f"\n--------------\n")
-
-
- with open(output_file + ".md", 'w', encoding='utf-8') as file:
+ with open(output_file_md + ".md", 'w', encoding='utf-8') as file:
file.writelines(output_file_ligne_md)
###############################################################################################################
@@ -2013,15 +1583,15 @@ def calcul_stats(output_file , filename= "None"):
output_file_ligne_csv[7] = "* Durée calcul : " + duree_formatee + " avec erreur(s): " + str(error_count)
output_file_ligne_csv[7] = output_file_ligne_csv[7].ljust(118)+"*\n"
- with open(output_file + ".csv", 'w', encoding='utf-8') as file:
+ with open(output_file_csv + ".csv", 'w', encoding='utf-8') as file:
file.writelines(output_file_ligne_csv)
if error_count == 0 :
- log.info(f"Phase 5: Fin de traitement en {Colors.ENDC}" + duree_formatee + f"{Colors.INFO}, résultats enregistrés dans {Colors.ENDC}{safe_relpath(output_file, 2)}")
+ log.info(f"Phase 5: Fin de traitement en {Colors.ENDC}" + duree_formatee + f"{Colors.INFO}, résultats enregistrés dans {Colors.ENDC}{safe_relpath(output_file_csv, 2)}")
else :
log.warning(f"Phase 5: Fin de traitement en {Colors.ENDC}" + duree_formatee
- + f",{Colors.WARNING} avec {Colors.ENDC}{error_count}{Colors.WARNING} erreur(s), {Colors.INFO}résultats enregistrés dans {Colors.ENDC}{safe_relpath(output_file, 2)}")
+ + f",{Colors.WARNING} avec {Colors.ENDC}{error_count}{Colors.WARNING} erreur(s), {Colors.WARNING}résultats enregistrés dans {Colors.ENDC}{safe_relpath(output_file_csv, 2)}")
except sqlite3.Error as e:
log.error(f"Erreur lors de l'exécution des requêtes calcul_stats:{Colors.ENDC} {e}")
@@ -2029,16 +1599,16 @@ def calcul_stats(output_file , filename= "None"):
output_file_ligne_md.append(f"!!! Erreur lors de l'exécution des requêtes calcul_stats: {e}\n")
output_file_ligne_csv.append(f"Erreur lors de l'exécution des requêtes calcul_stats: {e}\n")
- with open(output_file + ".md", 'w', encoding='utf-8') as file:
+ with open(output_file_md + ".md", 'w', encoding='utf-8') as file:
file.writelines(output_file_ligne_md)
- with open(output_file + ".csv", 'w', encoding='utf-8') as file:
+ with open(output_file_csv + ".csv", 'w', encoding='utf-8') as file:
file.writelines(output_file_ligne_csv)
return
except FileNotFoundError:
- log.error(f"Erreur d'ouverture du fichier: {Colors.ENDC}{safe_relpath(output_file)} ")
+ log.error(f"Erreur d'ouverture du fichier: {Colors.ENDC}{safe_relpath(output_file_ligne_md)} ")
error_count += 1
return
@@ -2049,16 +1619,56 @@ def calcul_stats(output_file , filename= "None"):
output_file_ligne_md.append(f"!! Erreur lors de l'exécution de calcul_stats: {e}\n")
output_file_ligne_csv.append(f"Erreur lors de l'exécution de calcul_stats: {e}\n")
- with open(output_file + ".md", 'w', encoding='utf-8') as file:
+ with open(output_file_md + ".md", 'w', encoding='utf-8') as file:
file.writelines(output_file_ligne_md)
- with open(output_file + ".csv", 'w', encoding='utf-8') as file:
+ with open(output_file_csv + ".csv", 'w', encoding='utf-8') as file:
file.writelines(output_file_ligne_csv)
return
return
+#####################################################################################################################################
+# Requête : parents d'une survey #
+#####################################################################################################################################
+def sql_Parents_Survey(ID):
+ global error_count
+
+ sql_query = (f"""
+ WITH RECURSIVE PARENTS AS (
+ SELECT ID, PARENT_ID, NAME, TITLE
+ FROM SURVEY
+ WHERE ID = {ID}
+
+ UNION ALL
+
+ SELECT SURVEY.ID, SURVEY.PARENT_ID, SURVEY.NAME, SURVEY.TITLE
+ FROM SURVEY AS SURVEY
+ INNER JOIN PARENTS AS PARENTS ON SURVEY.ID = PARENTS.PARENT_ID
+ WHERE PARENTS.PARENT_ID <> 0
+ )
+ SELECT ID AS PARENT_ID, NAME, TITLE
+ FROM PARENTS
+ WHERE ID <> {ID};
+ """)
+
+ try:
+ cursor.execute(sql_query)
+ result_ent = cursor.fetchall()
+
+ if len(result_ent) == 0 :
+ error_count += 1
+ log.error(f"Attention aucun parents à l'ID {ID}")
+
+ return result_ent
+
+ except sqlite3.Error as e:
+ log.error(f"Erreur lors de l'exécution de la requête (sql_Parents_Survey):{Colors.ENDC} {e}")
+ error_count += 1
+ return None
+
+
#####################################################################################################################################
# Requête : Longueur totale des centerlines #
#####################################################################################################################################
@@ -2092,7 +1702,6 @@ def sql_Centerline_length():
error_count += 1
return None
-
#####################################################################################################################################
# Requête : Table des entrées (Liste des entrées avec coordonnées) #
#####################################################################################################################################
@@ -2141,7 +1750,7 @@ def sql_liste_entree():
error_count += 1
log.warning(f"Attention aucune entrée ou point fix comptabilisé")
else :
- log.info(f"Table des STATION, entrée et fix nbre: {Colors.ENDC}{len(result_ent)}")
+ log.info(f"Table des STATION entrée et fix, nbre: {Colors.ENDC}{len(result_ent)}")
return result_ent
@@ -2362,175 +1971,187 @@ def sql_bilan_reseaux():
###############################################################################################################
cursor.execute(f"""
- -- Bilan table série By Réseaux
- select
- --SURVEY_RESEAU.TITLE as Réseau,
- --SURVEY_RESEAU.NAME,
- --SURVEY_RESEAU.ID,
- RESEAU_ID,
- --STATION.NAME as Nom,
- -- sum(_SERIE.SERIE_LENGHT) as Total,
- round(sum(_SERIE.SERIE_LENGHT) - sum(_SERIE.SERIE_LENGHT_SURFACE)- sum(_SERIE.SERIE_LENGHT_DUPLICATE), 2) as Long,
- round(sum(_SERIE.SERIE_LENGHT_DUPLICATE),2) as Duplicate,
- round(sum(_SERIE.SERIE_LENGHT_SURFACE),2) as Surface,
- sum(_SERIE.SERIE_NBRE_SHOT) as Nbre_Shot
- --COUNT(*) AS Nbre_serie
- --round(max(STATION.Z),2) as Max_Z,
- --round(min(STATION.Z),2) as Min_Z,
- --max(STATION.Z) - min(STATION.Z) as Delta_Z
- FROM _SERIE
- JOIN STATION ON _SERIE.STATION_ENT_ID = STATION.ID
- JOIN SURVEY AS SURVEY_JONCTION ON STATION.SURVEY_ID = SURVEY_JONCTION.ID
- JOIN SURVEY AS SURVEY_RESEAU ON SURVEY_JONCTION.PARENT_ID = SURVEY_RESEAU.ID
- WHERE RESEAU_ID is not NULL and RESEAU_ID !=0
- GROUP BY _SERIE.RESEAU_ID
- ORDER BY Long DESC
- """)
+ -- Bilan table série By Réseaux
+ select
+ --SURVEY_RESEAU.TITLE as Réseau,
+ --SURVEY_RESEAU.NAME,
+ --SURVEY_RESEAU.ID,
+ RESEAU_ID,
+ --STATION.NAME as Nom,
+ -- sum(_SERIE.SERIE_LENGHT) as Total,
+ round(sum(_SERIE.SERIE_LENGHT) - sum(_SERIE.SERIE_LENGHT_SURFACE)- sum(_SERIE.SERIE_LENGHT_DUPLICATE), 2) as Long,
+ round(sum(_SERIE.SERIE_LENGHT_DUPLICATE),2) as Duplicate,
+ round(sum(_SERIE.SERIE_LENGHT_SURFACE),2) as Surface,
+ sum(_SERIE.SERIE_NBRE_SHOT) as Nbre_Shot
+ --COUNT(*) AS Nbre_serie
+ --round(max(STATION.Z),2) as Max_Z,
+ --round(min(STATION.Z),2) as Min_Z,
+ --max(STATION.Z) - min(STATION.Z) as Delta_Z
+ FROM _SERIE
+ JOIN STATION ON _SERIE.STATION_ENT_ID = STATION.ID
+ JOIN SURVEY AS SURVEY_JONCTION ON STATION.SURVEY_ID = SURVEY_JONCTION.ID
+ JOIN SURVEY AS SURVEY_RESEAU ON SURVEY_JONCTION.PARENT_ID = SURVEY_RESEAU.ID
+ WHERE RESEAU_ID is not NULL and RESEAU_ID !=0
+ GROUP BY _SERIE.RESEAU_ID
+ ORDER BY Long DESC
+ """)
result = cursor.fetchall()
if len(result) >0 :
- # _ligne = [ ' - ', " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
- # _ligne[0]= 'Aucun réseau'.ljust(_largeurColTete)
- # retour.append(_ligne)
- # return retour
for row in result:
- ligne = [ ' - ', " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
+ ligne = [ " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
result_shot = 0
cursor.execute(f"""
- select
- COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
- count(_VISEE_FLAG.ID) as count,
- STATION_TO.NAME as To_Name
- from _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG is null and _VISEE_FLAG.RESEAU_ID ={row[0]}
- """)
+ select
+ COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
+ count(_VISEE_FLAG.ID) as count,
+ STATION_TO.NAME as To_Name
+ from _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG is null and _VISEE_FLAG.RESEAU_ID ={row[0]}
+ """)
_result_length = cursor.fetchall()
result_length = float(_result_length[0][0])
result_shot = int(_result_length[0][1])
cursor.execute(f"""
- select
- COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
- count(_VISEE_FLAG.ID) as count,
- STATION_TO.NAME as To_Name
- from _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='dpl' and _VISEE_FLAG.RESEAU_ID ={row[0]}
- """)
-
+ select
+ COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
+ count(_VISEE_FLAG.ID) as count,
+ STATION_TO.NAME as To_Name
+ from _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='dpl' and _VISEE_FLAG.RESEAU_ID ={row[0]}
+ """)
_result_length_dpl = cursor.fetchall()
result_length_dpl = float(_result_length_dpl[0][0])
result_shot += int(_result_length_dpl[0][1])
cursor.execute(f"""
- select
- COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
- count(_VISEE_FLAG.ID) as count,
- STATION_TO.NAME as To_Name
- from _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='srf' and _VISEE_FLAG.RESEAU_ID ={row[0]}
- """)
-
+ select
+ COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
+ count(_VISEE_FLAG.ID) as count,
+ STATION_TO.NAME as To_Name
+ from _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='srf' and _VISEE_FLAG.RESEAU_ID ={row[0]}
+ """)
_result_length_srf = cursor.fetchall()
result_length_srf = float(_result_length_srf[0][0])
result_shot += int(_result_length_srf[0][1])
-
- # ligne = [ 'none', 0, 0, 0, 0, 0, 0, 'none', 0, 'none', 0, 0]
cursor.execute(f"""
- -- Liste des entrée dans la table _RESEAU
- SELECT
- --_RESEAU.ENT_1 AS ENT_ID,
- --_RESEAU.RESEAU_ID,
- STATION.NAME
- --STATION.Z
- FROM _RESEAU
- JOIN STATION ON _RESEAU.ENT_1 = STATION.ID
- WHERE RESEAU_ID = {row[0]}
- UNION --ALL
- SELECT
- --_RESEAU.ENT_2 AS ENT_ID,
- --_RESEAU.RESEAU_ID,
- STATION.NAME
- --STATION.Z
- FROM _RESEAU
- JOIN STATION ON _RESEAU.ENT_2 = STATION.ID
- WHERE RESEAU_ID = {row[0]}
- GROUP BY STATION.NAME
- ORDER BY STATION.NAME
- --ORDER BY STATION.Z DESC
- """)
+ SELECT DISTINCT
+ _RESEAU.RESEAU_NAME
+ FROM _RESEAU
+ WHERE _RESEAU.RESEAU_ID ={row[0]};
+ """)
+ reseau = cursor.fetchall()
+
+ if len(reseau) :
+ _reseau = ", ".join(row[0] for row in reseau if row[0])
+
+ else : _reseau = reseau[0]
+
+ cursor.execute(f"""
+ -- Liste des entrée dans la table _RESEAU
+ SELECT
+ --_RESEAU.ENT_1 AS ENT_ID,
+ --_RESEAU.RESEAU_ID,
+ STATION.NAME,
+ SURVEY.NAME AS Survey_Name,
+ SURVEY.TITLE AS Survey_Title
+ --STATION.Z
+ FROM _RESEAU
+ JOIN STATION ON _RESEAU.ENT_1 = STATION.ID
+ JOIN SURVEY ON STATION.SURVEY_ID = SURVEY.ID
+ WHERE RESEAU_ID = {row[0]}
+ UNION --ALL
+ SELECT
+ --_RESEAU.ENT_2 AS ENT_ID,
+ --_RESEAU.RESEAU_ID,
+ STATION.NAME,
+ SURVEY.NAME AS Survey_Name,
+ SURVEY.TITLE AS Survey_Title
+ --STATION.Z
+ FROM _RESEAU
+ JOIN STATION ON _RESEAU.ENT_2 = STATION.ID
+ JOIN SURVEY ON STATION.SURVEY_ID = SURVEY.ID
+ WHERE RESEAU_ID = {row[0]}
+ GROUP BY STATION.NAME
+ ORDER BY STATION.NAME
+ --ORDER BY STATION.Z DESC
+ """)
liste_entree = cursor.fetchall()
- _liste_ent = liste_entree[0][0]
+ _liste_ent = liste_entree[0][2]
index = 1
while index < len(liste_entree):
- _liste_ent += ", " + liste_entree[index][0]
+ _liste_ent += ", " + liste_entree[index][2]
index += 1
if len(_liste_ent) > _largeurColTete :
_largeurColTete = len(_liste_ent) + 2
- ligne[0] =_liste_ent.ljust(_largeurColTete) # Liste Entrées
- ligne[1] = str(len(liste_entree)) # Nre Entrées
- ligne[2] = str("{:.2f}".format(result_length)) # Dev.
- ligne[4] = str("{:.2f}".format(result_length_dpl)) # Dupl.
- ligne[5] = str("{:.2f}".format(result_length_srf)) # Surf.
- ligne[6] = str(result_shot) # Visées
+ ligne[0] = str(_reseau)
+ ligne[1] = str(_liste_ent.ljust(_largeurColTete)) # Liste Entrées
+ ligne[2] = str(len(liste_entree)) # Nre Entrées
+ ligne[3] = str("{:.2f}".format(result_length)) # Dev.
+ ligne[5] = str("{:.2f}".format(result_length_dpl)) # Dupl.
+ ligne[6] = str("{:.2f}".format(result_length_srf)) # Surf.
+ ligne[7] = str(result_shot) # Visées
cursor.execute(f"""
- -- Requête pour rechercher le point bas d'un réseau / entrée
- SELECT
- STATION.name,
- STATION.Z as Min
- from STATION
- join (
- select Min(STATION.Z) as Val_Min
- from STATION
- join _JONCTION on STATION.ID = _JONCTION.STATION_ID
- WHERE _JONCTION.RESEAU_ID = {row[0]}
- ) min on STATION.Z = min.Val_Min
- LIMIT 1
- """)
+ -- Requête pour rechercher le point bas d'un réseau / entrée
+ SELECT
+ STATION.name,
+ STATION.Z as Min
+ from STATION
+ join (
+ select Min(STATION.Z) as Val_Min
+ from STATION
+ join _JONCTION on STATION.ID = _JONCTION.STATION_ID
+ WHERE _JONCTION.RESEAU_ID = {row[0]}
+ ) min on STATION.Z = min.Val_Min
+ LIMIT 1
+ """)
altitude_min = cursor.fetchall()
- ligne[7] = altitude_min[0][0]
- ligne[8] = str("{:.2f}".format(altitude_min[0][1]))
+ ligne[8] = str(altitude_min[0][0])
+ ligne[9] = str("{:.2f}".format(altitude_min[0][1]))
cursor.execute(f"""
- -- Requête pour rechercher le point haut d'un réseau / entrée
- SELECT
- STATION.name,
- STATION.Z as Max
- from STATION
- join (
- select Max(STATION.Z) as Val_Max
- from STATION
- join _JONCTION on STATION.ID = _JONCTION.STATION_ID
- WHERE _JONCTION.RESEAU_ID = {row[0]}
- ) max on STATION.Z = max.Val_Max
- LIMIT 1
- """)
+ -- Requête pour rechercher le point haut d'un réseau / entrée
+ SELECT
+ STATION.name,
+ STATION.Z as Max
+ from STATION
+ join (
+ select Max(STATION.Z) as Val_Max
+ from STATION
+ join _JONCTION on STATION.ID = _JONCTION.STATION_ID
+ WHERE _JONCTION.RESEAU_ID = {row[0]}
+ ) max on STATION.Z = max.Val_Max
+ LIMIT 1
+ """)
altitude_max = cursor.fetchall()
- ligne[9] = altitude_max[0][0]
- ligne[10] = str("{:.2f}".format(altitude_max[0][1]))
- ligne[3] = "{:.2f}".format(altitude_max[0][1] - altitude_min[0][1])
+ ligne[10] = str(altitude_max[0][0])
+ ligne[11] = str("{:.2f}".format(altitude_max[0][1]))
+ ligne[4] = str("{:.2f}".format(altitude_max[0][1] - altitude_min[0][1]))
- for i in range(9): ligne[i+1] = ligne[i+1].ljust(_largeurCol)
+ for i in range(10): ligne[i+1] = ligne[i+1].ljust(_largeurCol)
retour.append(ligne)
# print(f"Reseau num {row[0]}, {len(liste_entree)} entrée(s): {_liste_ent} ")
@@ -2540,17 +2161,17 @@ def sql_bilan_reseaux():
# Liste des visées non raccordées
###############################################################################################################
cursor.execute(f"""
- SELECT
- sum (SHOT.LENGTH) as Long
- FROM _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- JOIN STATION AS STATION_FROM ON SHOT.FROM_ID = STATION_FROM.ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- JOIN _JONCTION AS JONCTION_FROM ON SHOT.FROM_ID = JONCTION_FROM.ID
- JOIN _JONCTION AS JONCTION_TO ON SHOT.TO_ID = JONCTION_TO.ID
- WHERE _VISEE_FLAG.SERIE_ID is NULL and SHOT_FLAG.FLAG is NULL
- """)
+ SELECT
+ sum (SHOT.LENGTH) as Long
+ FROM _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ JOIN STATION AS STATION_FROM ON SHOT.FROM_ID = STATION_FROM.ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ JOIN _JONCTION AS JONCTION_FROM ON SHOT.FROM_ID = JONCTION_FROM.ID
+ JOIN _JONCTION AS JONCTION_TO ON SHOT.TO_ID = JONCTION_TO.ID
+ WHERE _VISEE_FLAG.SERIE_ID is NULL and SHOT_FLAG.FLAG is NULL
+ """)
result_long = cursor.fetchall()
if result_long[0][0] is None :
@@ -2559,17 +2180,17 @@ def sql_bilan_reseaux():
_result_long = result_long[0][0]
cursor.execute(f"""
- SELECT
- sum (SHOT.LENGTH) as Long
- FROM _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- JOIN STATION AS STATION_FROM ON SHOT.FROM_ID = STATION_FROM.ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- JOIN _JONCTION AS JONCTION_FROM ON SHOT.FROM_ID = JONCTION_FROM.ID
- JOIN _JONCTION AS JONCTION_TO ON SHOT.TO_ID = JONCTION_TO.ID
- WHERE _VISEE_FLAG.SERIE_ID is NULL and SHOT_FLAG.FLAG ='dpl'
- """)
+ SELECT
+ sum (SHOT.LENGTH) as Long
+ FROM _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ JOIN STATION AS STATION_FROM ON SHOT.FROM_ID = STATION_FROM.ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ JOIN _JONCTION AS JONCTION_FROM ON SHOT.FROM_ID = JONCTION_FROM.ID
+ JOIN _JONCTION AS JONCTION_TO ON SHOT.TO_ID = JONCTION_TO.ID
+ WHERE _VISEE_FLAG.SERIE_ID is NULL and SHOT_FLAG.FLAG ='dpl'
+ """)
result_dpl = cursor.fetchall()
if result_dpl[0][0] is None :
@@ -2578,17 +2199,17 @@ def sql_bilan_reseaux():
_result_dpl = result_dpl[0][0]
cursor.execute(f"""
- SELECT
- sum (SHOT.LENGTH) as Long
- FROM _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- JOIN STATION AS STATION_FROM ON SHOT.FROM_ID = STATION_FROM.ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- JOIN _JONCTION AS JONCTION_FROM ON SHOT.FROM_ID = JONCTION_FROM.ID
- JOIN _JONCTION AS JONCTION_TO ON SHOT.TO_ID = JONCTION_TO.ID
- WHERE _VISEE_FLAG.SERIE_ID is NULL and SHOT_FLAG.FLAG ='srf'
- """)
+ SELECT
+ sum (SHOT.LENGTH) as Long
+ FROM _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ JOIN STATION AS STATION_FROM ON SHOT.FROM_ID = STATION_FROM.ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ JOIN _JONCTION AS JONCTION_FROM ON SHOT.FROM_ID = JONCTION_FROM.ID
+ JOIN _JONCTION AS JONCTION_TO ON SHOT.TO_ID = JONCTION_TO.ID
+ WHERE _VISEE_FLAG.SERIE_ID is NULL and SHOT_FLAG.FLAG ='srf'
+ """)
result_srf = cursor.fetchall()
if result_srf[0][0] is None :
_result_srf = 0.0
@@ -2596,17 +2217,17 @@ def sql_bilan_reseaux():
_result_srf = result_srf[0][0]
cursor.execute(f"""
- SELECT
- count (SHOT.LENGTH) as Long
- FROM _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- JOIN STATION AS STATION_FROM ON SHOT.FROM_ID = STATION_FROM.ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- JOIN _JONCTION AS JONCTION_FROM ON SHOT.FROM_ID = JONCTION_FROM.ID
- JOIN _JONCTION AS JONCTION_TO ON SHOT.TO_ID = JONCTION_TO.ID
- WHERE _VISEE_FLAG.SERIE_ID is NULL --and SHOT_FLAG.FLAG ='srf'
- """)
+ SELECT
+ count (SHOT.LENGTH) as Long
+ FROM _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ JOIN STATION AS STATION_FROM ON SHOT.FROM_ID = STATION_FROM.ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ JOIN _JONCTION AS JONCTION_FROM ON SHOT.FROM_ID = JONCTION_FROM.ID
+ JOIN _JONCTION AS JONCTION_TO ON SHOT.TO_ID = JONCTION_TO.ID
+ WHERE _VISEE_FLAG.SERIE_ID is NULL --and SHOT_FLAG.FLAG ='srf'
+ """)
result_count = cursor.fetchall()
if result_count[0][0] is None :
@@ -2615,30 +2236,31 @@ def sql_bilan_reseaux():
else :
_result_count = result_count[0][0]
- ligne = [ ' - ', " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
+ ligne = [ " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
_liste_ent = "Visée(s) non raccordées"
_liste_ent = _liste_ent.ljust(_largeurColTete)
- ligne[0] = _liste_ent
- ligne[1] = str("0")
- ligne[2] = str("{:.2f}".format(_result_long))
- ligne[4] = str("{:.2f}".format(_result_dpl))
- ligne[5] = str("{:.2f}".format(_result_srf))
- ligne[6] = str(_result_count)
+ ligne[0] = str(" ")
+ ligne[1] = str(_liste_ent)
+ ligne[2] = str("0")
+ ligne[3] = str("{:.2f}".format(_result_long))
+ ligne[5] = str("{:.2f}".format(_result_dpl))
+ ligne[6] = str("{:.2f}".format(_result_srf))
+ ligne[7] = str(_result_count)
cursor.execute(f"""
- -- Requête pour rechercher le point bas d'un réseau / entrée
- SELECT
- STATION.name,
- STATION.Z as Min
- from STATION
- join (
- select Min(STATION.Z) as Val_Min
- from STATION
- join _JONCTION on STATION.ID = _JONCTION.STATION_ID
- WHERE _JONCTION.SERIE_ID is null
- ) min on STATION.Z = min.Val_Min
- LIMIT 1
- """)
+ -- Requête pour rechercher le point bas d'un réseau / entrée
+ SELECT
+ STATION.name,
+ STATION.Z as Min
+ from STATION
+ join (
+ select Min(STATION.Z) as Val_Min
+ from STATION
+ join _JONCTION on STATION.ID = _JONCTION.STATION_ID
+ WHERE _JONCTION.SERIE_ID is null
+ ) min on STATION.Z = min.Val_Min
+ LIMIT 1
+ """)
altitude_min = cursor.fetchall()
if len(altitude_min) == 0 :
@@ -2649,23 +2271,23 @@ def sql_bilan_reseaux():
_altitude_min = altitude_min[0][1]
_altitude_min_name = str(altitude_min[0][0])
- ligne[7] = str(_altitude_min_name)
- ligne[8] = str("{:.2f}".format(_altitude_min))
+ ligne[8] = str(_altitude_min_name)
+ ligne[9] = str("{:.2f}".format(_altitude_min))
cursor.execute(f"""
- -- Requête pour rechercher le point haut d'un réseau / entrée
- SELECT
- STATION.name,
- STATION.Z as Max
- from STATION
- join (
- select Max(STATION.Z) as Val_Max
- from STATION
- join _JONCTION on STATION.ID = _JONCTION.STATION_ID
- WHERE _JONCTION.SERIE_ID is null
- ) max on STATION.Z = max.Val_Max
- LIMIT 1
- """)
+ -- Requête pour rechercher le point haut d'un réseau / entrée
+ SELECT
+ STATION.name,
+ STATION.Z as Max
+ from STATION
+ join (
+ select Max(STATION.Z) as Val_Max
+ from STATION
+ join _JONCTION on STATION.ID = _JONCTION.STATION_ID
+ WHERE _JONCTION.SERIE_ID is null
+ ) max on STATION.Z = max.Val_Max
+ LIMIT 1
+ """)
altitude_max = cursor.fetchall()
if len(altitude_max) == 0 :
@@ -2676,12 +2298,12 @@ def sql_bilan_reseaux():
_altitude_max = altitude_max[0][1]
_altitude_max_name = str(altitude_max[0][0])
- ligne[7] = str(_altitude_max_name)
- ligne[8] = str("{:.2f}".format(_altitude_max))
- ligne[3] = "-" #"{:.2f}".format(altitude_max[0][1] - altitude_min[0][1])
+ ligne[8] = str(_altitude_max_name)
+ ligne[9] = str("{:.2f}".format(_altitude_max))
+ ligne[4] = str("-") #"{:.2f}".format(altitude_max[0][1] - altitude_min[0][1])
- for i in range(9): ligne[i+1] = ligne[i+1].ljust(_largeurCol)
+ for i in range(10): ligne[i+1] = ligne[i+1].ljust(_largeurCol)
if _result_long !=0 or _result_dpl != 0 or _result_srf !=0 or _result_count !=0:
retour.append(ligne)
@@ -2692,63 +2314,63 @@ def sql_bilan_reseaux():
result_shot = 0
cursor.execute(f"""
- select
- COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
- count(_VISEE_FLAG.ID) as count,
- STATION_TO.NAME as To_Name
- from _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG is null
- """)
- _result_length = cursor.fetchall()
+ select
+ COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
+ count(_VISEE_FLAG.ID) as count,
+ STATION_TO.NAME as To_Name
+ from _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG is 'apx' OR SHOT_FLAG.FLAG is NULL
+ """)
+ _result_length = cursor.fetchall() # Visées normales & Approximates (apx)
result_length = float(_result_length[0][0])
result_shot = int(_result_length[0][1])
cursor.execute(f"""
- SELECT
- COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
- count(_VISEE_FLAG.ID) as count,
- STATION_TO.NAME as To_Name
- FROM _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='dpl'
- """)
+ SELECT
+ COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
+ count(_VISEE_FLAG.ID) as count,
+ STATION_TO.NAME as To_Name
+ FROM _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='dpl'
+ """)
_result_length_dpl = cursor.fetchall()
result_length_dpl = float(_result_length_dpl[0][0])
result_shot += int(_result_length_dpl[0][1])
cursor.execute(f"""
- SELECT
- COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
- count(_VISEE_FLAG.ID) as count,
- STATION_TO.NAME as To_Name
- FROM _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='srf'
- """)
+ SELECT
+ COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
+ count(_VISEE_FLAG.ID) as count,
+ STATION_TO.NAME as To_Name
+ FROM _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='srf'
+ """)
_result_length_srf = cursor.fetchall()
result_length_srf = float(_result_length_srf[0][0])
result_shot += int(_result_length_srf[0][1])
cursor.execute(f"""
- -- Bilan table _VISEE_FLAG By entrées
- select
- ENTREE_ID
- --STATION.NAME
- FROM _VISEE_FLAG
- JOIN STATION ON _VISEE_FLAG.ENTREE_ID = STATION.ID
- WHERE SERIE_ID >0
- GROUP BY _VISEE_FLAG.ENTREE_ID
- """)
+ -- Bilan table _VISEE_FLAG By entrées
+ select
+ ENTREE_ID
+ --STATION.NAME
+ FROM _VISEE_FLAG
+ JOIN STATION ON _VISEE_FLAG.ENTREE_ID = STATION.ID
+ WHERE SERIE_ID >0
+ GROUP BY _VISEE_FLAG.ENTREE_ID
+ """)
_result_entrees = cursor.fetchall()
_total_entrees_topo = len(_result_entrees)
@@ -2757,53 +2379,54 @@ def sql_bilan_reseaux():
_total_entrees_non_topo = len(result2) - _total_entrees_topo # type: ignore
if _result_length[0][1] != None :
- ligne = [ ' - ', " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
+ ligne = [ " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
- ligne[0] = "Totaux (entrées et points fixes)".ljust(_largeurColTete) # Liste Entrées
- ligne[1] = str("{:.0f}".format(len(result2))) # type: ignore # Nre Ent.
- ligne[2] = str("{:.2f}".format(result_length)) # Dev.
- ligne[4] = str("{:.2f}".format(result_length_dpl)) # Dupl.
- ligne[5] = str("{:.2f}".format(result_length_srf)) # Surf.
- ligne[6] = str(result_shot) # Visées
+ ligne[0] = str(" ")
+ ligne[1] = str("Totaux".ljust(_largeurColTete)) # Liste Entrées
+ ligne[2] = str("{:.0f}".format(len(result2))) # type: ignore # Nre Ent.
+ ligne[3] = str("{:.2f}".format(result_length)) # Dev.
+ ligne[5] = str("{:.2f}".format(result_length_dpl)) # Dupl.
+ ligne[6] = str("{:.2f}".format(result_length_srf)) # Surf.
+ ligne[7] = str(result_shot) # Visées
cursor.execute(f"""
- -- Requête pour rechercher le point bas d'un réseau / entrée
- SELECT
- STATION.name,
- STATION.Z as Min
- from STATION
- join (
- select Min(STATION.Z) as Val_Min
- from STATION
- join _JONCTION on STATION.ID = _JONCTION.STATION_ID
- ) min on STATION.Z = min.Val_Min
- LIMIT 1
- """)
+ -- Requête pour rechercher le point bas d'un réseau / entrée
+ SELECT
+ STATION.name,
+ STATION.Z as Min
+ from STATION
+ join (
+ select Min(STATION.Z) as Val_Min
+ from STATION
+ join _JONCTION on STATION.ID = _JONCTION.STATION_ID
+ ) min on STATION.Z = min.Val_Min
+ LIMIT 1
+ """)
altitude_min = cursor.fetchall()
- ligne[7] = altitude_min[0][0]
- ligne[8] = str(altitude_min[0][1])
+ ligne[8] = str(altitude_min[0][0])
+ ligne[9] = str(altitude_min[0][1])
cursor.execute(f"""
- -- Requête pour rechercher le point haut d'un réseau / entrée
- SELECT
- STATION.name,
- STATION.Z as Max
- from STATION
- join (
- select Max(STATION.Z) as Val_Max
- from STATION
- join _JONCTION on STATION.ID = _JONCTION.STATION_ID
- ) max on STATION.Z = max.Val_Max
- LIMIT 1
- """)
+ -- Requête pour rechercher le point haut d'un réseau / entrée
+ SELECT
+ STATION.name,
+ STATION.Z as Max
+ from STATION
+ join (
+ select Max(STATION.Z) as Val_Max
+ from STATION
+ join _JONCTION on STATION.ID = _JONCTION.STATION_ID
+ ) max on STATION.Z = max.Val_Max
+ LIMIT 1
+ """)
altitude_max = cursor.fetchall()
- ligne[9] = altitude_max[0][0]
- ligne[10] = str("{:.2f}".format(altitude_max[0][1]))
- ligne[3] = "{:.2f}".format(altitude_max[0][1] - altitude_min[0][1])
+ ligne[10] = str(altitude_max[0][0])
+ ligne[11] = str("{:.2f}".format(altitude_max[0][1]))
+ ligne[4] = str("{:.2f}".format(altitude_max[0][1] - altitude_min[0][1]))
- for i in range(9): ligne[i+1] = ligne[i+1].ljust(_largeurCol)
+ for i in range(10): ligne[i+1] = ligne[i+1].ljust(_largeurCol)
retour.append(ligne)
else :
@@ -2815,65 +2438,70 @@ def sql_bilan_reseaux():
# Liste des entrées uniques
###############################################################################################################
cursor.execute(f"""
- -- Bilan table _VISEE_FLAG By entrées
- select
- ENTREE_ID,
- STATION.NAME
- FROM _VISEE_FLAG
- JOIN STATION ON _VISEE_FLAG.ENTREE_ID = STATION.ID
- WHERE RESEAU_ID ==0 or RESEAU_ID is null and SERIE_ID >0
- GROUP BY _VISEE_FLAG.ENTREE_ID
- """)
+ -- Bilan table _VISEE_FLAG By entrées
+ select
+ ENTREE_ID,
+ STATION.NAME,
+ STATION.SURVEY_ID,
+ SURVEY.NAME AS Survey_Name,
+ SURVEY.TITLE AS Survey_Title
+ FROM _VISEE_FLAG
+ JOIN STATION ON _VISEE_FLAG.ENTREE_ID = STATION.ID
+ JOIN SURVEY ON STATION.SURVEY_ID = SURVEY.ID
+ WHERE RESEAU_ID ==0 or RESEAU_ID is null and SERIE_ID >0
+ GROUP BY _VISEE_FLAG.ENTREE_ID
+ """)
+
result = cursor.fetchall()
for row in result :
- ligne = [ ' - ', " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
+ ligne = [ " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
result_shot = 0
cursor.execute(f"""
- select
- COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
- count(_VISEE_FLAG.ID) as count,
- STATION_TO.NAME as To_Name
- from _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG is null and _VISEE_FLAG.ENTREE_ID ={row[0]}
- """)
+ select
+ COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
+ count(_VISEE_FLAG.ID) as count,
+ STATION_TO.NAME as To_Name
+ from _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG is null and _VISEE_FLAG.ENTREE_ID ={row[0]}
+ """)
_result_length = cursor.fetchall()
result_length = float(_result_length[0][0])
result_shot = int(_result_length[0][1])
cursor.execute(f"""
- select
- COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
- count(_VISEE_FLAG.ID) as count,
- STATION_TO.NAME as To_Name
- from _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='dpl' and _VISEE_FLAG.ENTREE_ID ={row[0]}
- """)
+ select
+ COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
+ count(_VISEE_FLAG.ID) as count,
+ STATION_TO.NAME as To_Name
+ from _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='dpl' and _VISEE_FLAG.ENTREE_ID ={row[0]}
+ """)
_result_length_dpl = cursor.fetchall()
result_length_dpl = float(_result_length_dpl[0][0])
result_shot += int(_result_length_dpl[0][1])
cursor.execute(f"""
- select
- COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
- count(_VISEE_FLAG.ID) as count,
- STATION_TO.NAME as To_Name
- from _VISEE_FLAG
- JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
- JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
- LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
- WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='srf' and _VISEE_FLAG.ENTREE_ID ={row[0]}
- """)
+ select
+ COALESCE(round(sum(SHOT.length), 2), 0) as ttl,
+ count(_VISEE_FLAG.ID) as count,
+ STATION_TO.NAME as To_Name
+ from _VISEE_FLAG
+ JOIN SHOT ON SHOT.ID = _VISEE_FLAG.SHOT_ID
+ JOIN STATION AS STATION_TO ON SHOT.TO_ID = STATION_TO.ID
+ LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID
+ WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='srf' and _VISEE_FLAG.ENTREE_ID ={row[0]}
+ """)
_result_length_srf = cursor.fetchall()
result_length_srf = float(_result_length_srf[0][0])
@@ -2881,112 +2509,115 @@ def sql_bilan_reseaux():
if result_length_srf == 0.0 and result_length == 0.0 and result_length_dpl == 0.0 :
_total_entrees_non_topo+=1
+
else :
- ligne[0] = str((row[1])).ljust(_largeurColTete)
- ligne[1] = str("1")
- ligne[2] = str("{:.2f}".format(result_length)) # Dev.
- ligne[4] = str("{:.2f}".format(result_length_dpl)) # Dupl.
- ligne[5] = str("{:.2f}".format(result_length_srf)) # Surf.
- ligne[6] = str(result_shot) # Visées
+ ligne[0] = str(" ")
+ ligne[1] = str((row[4])).ljust(_largeurColTete)
+ ligne[2] = str("1")
+ ligne[3] = str("{:.2f}".format(result_length)) # Dev.
+ ligne[5] = str("{:.2f}".format(result_length_dpl)) # Dupl.
+ ligne[6] = str("{:.2f}".format(result_length_srf)) # Surf.
+ ligne[7] = str(result_shot) # Visées
cursor.execute(f"""
- -- Requête pour rechercher le point bas d'un réseau / entrée
- SELECT
- STATION.name,
- STATION.Z as Min
- from STATION
- join (
- select Min(STATION.Z) as Val_Min
- from STATION
- join _JONCTION on STATION.ID = _JONCTION.STATION_ID
- WHERE _JONCTION.ENTREE_ID = {row[0]}
- ) min on STATION.Z = min.Val_Min
- LIMIT 1
- """)
+ -- Requête pour rechercher le point bas d'un réseau / entrée
+ SELECT
+ STATION.name,
+ STATION.Z as Min
+ from STATION
+ join (
+ select Min(STATION.Z) as Val_Min
+ from STATION
+ join _JONCTION on STATION.ID = _JONCTION.STATION_ID
+ WHERE _JONCTION.ENTREE_ID = {row[0]}
+ ) min on STATION.Z = min.Val_Min
+ LIMIT 1
+ """)
altitude_min = cursor.fetchall()
- ligne[7] = altitude_min[0][0]
- ligne[8] = str("{:.2f}".format(altitude_min[0][1]))
+ ligne[8] = str(altitude_min[0][0])
+ ligne[9] = str("{:.2f}".format(altitude_min[0][1]))
cursor.execute(f"""
- -- Requête pour rechercher le point haut d'un réseau / entrée
- SELECT
- STATION.name,
- STATION.Z as Max
- from STATION
- join (
- select Max(STATION.Z) as Val_Max
- from STATION
- join _JONCTION on STATION.ID = _JONCTION.STATION_ID
- WHERE _JONCTION.ENTREE_ID = {row[0]}
- ) max on STATION.Z = max.Val_Max
- LIMIT 1
- """)
+ -- Requête pour rechercher le point haut d'un réseau / entrée
+ SELECT
+ STATION.name,
+ STATION.Z as Max
+ from STATION
+ join (
+ select Max(STATION.Z) as Val_Max
+ from STATION
+ join _JONCTION on STATION.ID = _JONCTION.STATION_ID
+ WHERE _JONCTION.ENTREE_ID = {row[0]}
+ ) max on STATION.Z = max.Val_Max
+ LIMIT 1
+ """)
altitude_max = cursor.fetchall()
- ligne[9] = altitude_max[0][0]
- ligne[10] = str("{:.2f}".format(altitude_max[0][1]))
- ligne[3] = "{:.2f}".format(altitude_max[0][1] - altitude_min[0][1])
+ ligne[10] = str(altitude_max[0][0])
+ ligne[11] = str("{:.2f}".format(altitude_max[0][1]))
+ ligne[4] = str("{:.2f}".format(altitude_max[0][1] - altitude_min[0][1]))
- for i in range(9): ligne[i+1] = ligne[i+1].ljust(_largeurCol)
+ for i in range(10): ligne[i+1] = ligne[i+1].ljust(_largeurCol)
retour.append(ligne)
###############################################################################################################
# Entrées sans topo
###############################################################################################################
- ligne = [ ' - ', " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
+ ligne = [ " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "]
if _total_entrees_non_topo >=1 :
- ligne[0] = "Entrée(s) sans topographie".ljust(_largeurColTete)
- ligne[1] = str(_total_entrees_non_topo)
- ligne[2] = "0.00"
- ligne[3] = "0.00"
- ligne[4] = "0.00"
- ligne[5] = "0.00"
- ligne[6] = "0"
+ ligne[0] = str(" ")
+ ligne[1] = str("Entrée(s) sans topographie".ljust(_largeurColTete))
+ ligne[2] = str(_total_entrees_non_topo)
+ ligne[3] = str("0.00")
+ ligne[4] = str("0.00")
+ ligne[5] = str("0.00")
+ ligne[6] = str("0.00")
+ ligne[7] = str("0")
cursor.execute(f"""
- -- Requête pour rechercher le points bas d'un réseau / entrée
- SELECT
- STATION.name,
- STATION.Z as Min
- from STATION
- join (
- select Min(STATION.Z) as Val_Min
- from STATION
- join _JONCTION on STATION.ID = _JONCTION.STATION_ID
- WHERE _JONCTION.SERIE_ENT = -1 AND _JONCTION.STATION_TYPE = 'ent'
- ) min on STATION.Z = min.Val_Min
- LIMIT 1
- """)
+ -- Requête pour rechercher le points bas d'un réseau / entrée
+ SELECT
+ STATION.name,
+ STATION.Z as Min
+ from STATION
+ join (
+ select Min(STATION.Z) as Val_Min
+ from STATION
+ join _JONCTION on STATION.ID = _JONCTION.STATION_ID
+ WHERE _JONCTION.SERIE_ENT = -1 AND _JONCTION.STATION_TYPE = 'ent'
+ ) min on STATION.Z = min.Val_Min
+ LIMIT 1
+ """)
altitude_min = cursor.fetchall()
- ligne[7] = altitude_min[0][0]
- ligne[8] = str(altitude_min[0][1])
+ ligne[8] = str(altitude_min[0][0])
+ ligne[9] = str(altitude_min[0][1])
cursor.execute(f"""
- -- Requête pour rechercher le point haut d'un réseau / entrée
- SELECT
- STATION.name,
- STATION.Z as Max
- from STATION
- join (
- select Max(STATION.Z) as Val_Max
- from STATION
- join _JONCTION on STATION.ID = _JONCTION.STATION_ID
- WHERE _JONCTION.SERIE_ENT = -1 AND _JONCTION.STATION_TYPE = 'ent'
- ) max on STATION.Z = max.Val_Max
- LIMIT 1
- """)
+ -- Requête pour rechercher le point haut d'un réseau / entrée
+ SELECT
+ STATION.name,
+ STATION.Z as Max
+ from STATION
+ join (
+ select Max(STATION.Z) as Val_Max
+ from STATION
+ join _JONCTION on STATION.ID = _JONCTION.STATION_ID
+ WHERE _JONCTION.SERIE_ENT = -1 AND _JONCTION.STATION_TYPE = 'ent'
+ ) max on STATION.Z = max.Val_Max
+ LIMIT 1
+ """)
altitude_max = cursor.fetchall()
- ligne[9] = altitude_max[0][0]
- ligne[10] = str("{:.2f}".format(altitude_max[0][1]))
- ligne[3] = "{:.2f}".format(altitude_max[0][1] - altitude_min[0][1])
+ ligne[10] = str(altitude_max[0][0])
+ ligne[11] = str("{:.2f}".format(altitude_max[0][1]))
+ ligne[4] = str("{:.2f}".format(altitude_max[0][1] - altitude_min[0][1]))
- for i in range(9): ligne[i+1] = ligne[i+1].ljust(_largeurCol)
+ for i in range(10): ligne[i+1] = ligne[i+1].ljust(_largeurCol)
retour.append(ligne)
@@ -2995,10 +2626,10 @@ def sql_bilan_reseaux():
# Tri et résultats
###############################################################################################################
- entetes = [ 'Entrée(s)', "Nbre", "Dev.(m)", "Prof.(m)", "Dupl.(m)", "Surf.(m)", "Visées", "ID Sta.", "Alt. min(m)", "ID Sta.", "Alt. max(m)" ]
+ entetes = [ "Réseaux", "Entrée(s)", "Nbre", "Dev.(m)", "Prof.(m)", "Dupl.(m)", "Surf.(m)", "Visées", "ID Sta.", "Alt. min(m)", "ID Sta.", "Alt. max(m)" ]
entetes[0] = entetes[0].ljust(_largeurColTete)
- for i in range(9): entetes[i+1] = entetes[i+1].ljust(_largeurCol)
+ for i in range(10): entetes[i+1] = entetes[i+1].ljust(_largeurCol)
_corps_retour = sorted(retour, key=cle_tri, reverse=True)
@@ -3080,7 +2711,37 @@ def sql_optimisation():
# Clé de tri #
#####################################################################################################################################
def cle_tri(element):
- return float(element[2])
+ return float(element[3])
+
+#####################################################################################################################################
+# Nom de base de la base de donnée #
+#####################################################################################################################################
+def sql_base_name():
+ global error_count
+
+ try:
+
+ cursor.execute(f"""
+ SELECT
+ SURVEY.TITLE
+ FROM SURVEY
+ WHERE PARENT_ID = 1
+ """)
+ result = cursor.fetchall()
+
+ return str(result[0][0])
+
+
+ except sqlite3.Error as e:
+ log.error(f"Exécution de la requête (sql_base_name):{Colors.ENDC} {e}")
+ error_count += 1
+ return None
+
+ except Exception as e:
+ log.error(f"Exécution de sql_base_name:{Colors.ENDC} {e}")
+ error_count += 1
+
+ return None
#####################################################################################################################################
# Bilan topo par années #
@@ -3094,11 +2755,11 @@ def sql_bilan_annee():
retour = []
cursor.execute(f"""
- select strftime('%Y', TOPO_DATE) as annee
- from CENTRELINE
- Where TOPO_DATE is not NULL
- order by TOPO_DATE
- """)
+ select strftime('%Y', TOPO_DATE) as annee
+ from CENTRELINE
+ Where TOPO_DATE is not NULL
+ order by TOPO_DATE
+ """)
result = cursor.fetchall()
entetes = [ "Année" , "Dev.(m)", "Cumul (m)", "Dupl.(m)", "Cumul (m)", "Surf.(m)", "Cumul (m)" ]
@@ -3111,13 +2772,13 @@ def sql_bilan_annee():
# topo sans année
cursor.execute(f"""
- select
- COALESCE( sum(LENGTH), 0),
- COALESCE (sum(DUPLICATE_LENGTH), 0),
- COALESCE( sum(SURFACE_LENGTH), 0)
- from CENTRELINE
- where TOPO_DATE IS NULL
- """)
+ select
+ COALESCE( sum(LENGTH), 0),
+ COALESCE (sum(DUPLICATE_LENGTH), 0),
+ COALESCE( sum(SURFACE_LENGTH), 0)
+ from CENTRELINE
+ where TOPO_DATE IS NULL
+ """)
bilan_annee = cursor.fetchall()
if ( len(bilan_annee) >= 1 ) and (( float(bilan_annee[0][0]) > 0.0) or (float(bilan_annee[0][1]) > 0.0 ) or (float(bilan_annee[0][2]) > 0.0 )):
@@ -3146,13 +2807,13 @@ def sql_bilan_annee():
for annee in range(debut, fin + 1, 1 ):
cursor.execute(f"""
- select
- COALESCE (sum(LENGTH), 0),
- COALESCE (sum(DUPLICATE_LENGTH), 0),
- COALESCE (sum(SURFACE_LENGTH), 0)
- from CENTRELINE
- where TOPO_DATE between '{annee}-01-01' and '{annee}-12-31';
- """)
+ select
+ COALESCE (sum(LENGTH), 0),
+ COALESCE (sum(DUPLICATE_LENGTH), 0),
+ COALESCE (sum(SURFACE_LENGTH), 0)
+ from CENTRELINE
+ where TOPO_DATE between '{annee}-01-01' and '{annee}-12-31';
+ """)
bilan_annee = cursor.fetchall()
ligne = [ " - ", " - ", " - ", " - ", " - ", " - ", " - " ]
@@ -3175,12 +2836,12 @@ def sql_bilan_annee():
except sqlite3.Error as e:
- log.error(f"Erreur lors de l'exécution de la requête (sql_bilan_annee):{Colors.ENDC} {e}")
+ log.error(f"Exécution de la requête (sql_bilan_annee):{Colors.ENDC} {e}")
error_count += 1
return None
except Exception as e:
- log.error(f"Erreur lors de l'exécution de sql_bilan_annee:{Colors.ENDC} {e}")
+ log.error(f"Exécution de sql_bilan_annee:{Colors.ENDC} {e}")
error_count += 1
return None
@@ -3410,15 +3071,16 @@ def PlotExploYears(graph_name, rangeyear = [1959, datetime.now().year], systems
return
-
+#####################################################################################################################################
#####################################################################################################################################
# #
# Main #
# #
#####################################################################################################################################
+#####################################################################################################################################
if __name__ == '__main__':
- _largeurColTete = 35
- _largeurCol = 15
+ _largeurColTete = 40
+ _largeurCol = 20
avt_compteur = 0
error_count = 0
visee_suprimmees= [ 0.0, 0.0, 0.0, 0] # Lg, Lg dpl, Lg surf
@@ -3502,6 +3164,8 @@ if __name__ == '__main__':
output_file_name_histo = outputfolder + input_file[:-4] + "_histo.pdf"
output_file_name_year = outputfolder + input_file[:-4] + "_year"
imported_database = outputfolder + input_file[:-4] + "_stats.db"
+
+ output_file_md = os.path.join(os.path.dirname(input_file_name), globalDat.outputFilename)
log = setup_logger(output_file_name_log, globalDat.debug_log)
@@ -3530,12 +3194,12 @@ if __name__ == '__main__':
cursor = conn.cursor()
construction_tables()
sql_optimisation()
- calcul_stats(output_file_name, input_file[:-4])
+ calcul_stats(output_file_name, output_file_md, input_file[:-4])
elif args.option == "update" :
conn = sqlite3.connect(imported_database) # Connexion à la base de données SQLite
cursor = conn.cursor()
- calcul_stats(output_file_name, input_file[:-4])
+ calcul_stats(output_file_name, output_file_md, input_file[:-4])
elif args.option == "test" :
conn = sqlite3.connect(imported_database) # Connexion à la base de données SQLite
@@ -3551,13 +3215,13 @@ if __name__ == '__main__':
minutes, secondes = divmod(secondes, 60) # 60 secondes dans une minute
if duree.seconds > 3600:
- duree_formatee = f"{heures:02d}{Colors.INFO}(h){Colors.ENDC}{minutes:02d}{Colors.INFO}(m){Colors.ENDC}{secondes:02d}{Colors.INFO}(s)"
+ duree_formatee = f"{heures:02d}{Colors.ENDC}(h){Colors.ENDC}{minutes:02d}{Colors.ENDC}(m){Colors.ENDC}{secondes:02d}{Colors.ENDC}(s)"
elif duree.seconds > 60:
- duree_formatee = f"{minutes:02d}{Colors.INFO}(m){Colors.ENDC}{secondes:02d}{Colors.INFO}(s)"
+ duree_formatee = f"{minutes:02d}{Colors.ENDC}(m){Colors.ENDC}{secondes:02d}{Colors.ENDC}(s)"
else :
- duree_formatee = f"{secondes:02d}{Colors.INFO}(s)"
+ duree_formatee = f"{secondes:02d}{Colors.ENDC}(s)"
if error_count == 0 :
log.info(f"Execution terminée sans erreur en {Colors.ENDC}{duree_formatee}{Colors.INFO}")