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 new file mode 100644 index 0000000..aeeafd0 Binary files /dev/null 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 new file mode 100644 index 0000000..0d9e893 --- /dev/null +++ b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_log.log @@ -0,0 +1,550 @@ +2026-09-03 10:06:29,106 - INFO - *********************************************************************************************************************** +2026-09-03 10:06:29,106 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 10:06:29,106 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 10:06:29,106 - INFO - * Version : 2026.09.03 * +2026-09-03 10:06:29,106 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 10:06:29,109 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 10:06:29,109 - INFO - * Date : 2026-09-03 10:06:29 * +2026-09-03 10:06:29,109 - INFO - * Mode : sync * +2026-09-03 10:06:29,109 - INFO - *********************************************************************************************************************** +2026-09-03 10:06:29,110 - 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-03 10:50:34,684 - INFO - Phase 2: Création des nouvelles tables, indexation +2026-09-03 10:50:34,995 - INFO - Jonction de SHOT equates nbre: 2580 +2026-09-03 10:53:17,730 - 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-03 10:53:19,455 - INFO - Table des SHOT, visées dupliquées traités nbre: 19 +2026-09-03 10:53:19,782 - INFO - Création de l'index des tables principales et optimisation de la mémoire +2026-09-03 10:53:19,903 - INFO - Marquage des visées et des stations d'habillage nbre: 19021 +2026-09-03 10:54:11,987 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 10:54:11,991 - INFO - Phase 3: Remplissage des tables d'après les 194 entrée(s) +2026-09-03 10:54:15,090 - INFO - Phase 4: Remplissage des tables d'après les séries vides jonctionnées aux 194 entrée(s) +on 1423: 2026-09-03 10:54:50,167 - INFO - Jonction à la Station_ID: 49335 entre les entrées 49456 et 49327 +on 3318: 2026-09-03 10:55:18,098 - INFO - Jonction à la Station_ID: 229 entre les entrées 218 et 834 +on 3357: 2026-09-03 10:55:19,151 - INFO - Jonction à la Station_ID: 3525 entre les entrées 3455 et 3525 +on 6351: 2026-09-03 10:56:10,894 - INFO - Jonction à la Station_ID: 1666 entre les entrées 1613 et 2784 +on 9158: 2026-09-03 10:57:19,876 - INFO - Jonction à la Station_ID: 3348 entre les entrées 3358 et 3397 +on 9594: 2026-09-03 10:57:33,975 - INFO - Jonction à la Station_ID: 48093 entre les entrées 49183 et 48104 +on 9622: 2026-09-03 10:57:36,689 - INFO - Jonction à la Station_ID: 49838 entre les entrées 49183 et 49803 +on 10275: 2026-09-03 10:57:50,330 - INFO - Jonction à la Station_ID: 40146 entre les entrées 38328 et 39667 +on 12587: 2026-09-03 10:58:43,236 - INFO - Jonction à la Station_ID: 47396 entre les entrées 48104 et 47360 +on 13062: 2026-09-03 10:58:52,313 - INFO - Jonction à la Station_ID: 9041 entre les entrées 10902 et 8905 +on 15553: 2026-09-03 10:59:50,073 - INFO - Jonction à la Station_ID: 12059 entre les entrées 10902 et 12987 +on 16763: 2026-09-03 11:00:15,332 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902 +on 16763: 2026-09-03 11:00:15,348 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902 +on 16817: 2026-09-03 11:00:17,349 - INFO - Jonction à la Station_ID: 9547 entre les entrées 9884 et 9366 +on 17832: 2026-09-03 11:00:44,686 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852 +on 17833: 2026-09-03 11:00:44,786 - INFO - Jonction à la Station_ID: 9338 entre les entrées 10902 et 14852 +on 17833: 2026-09-03 11:00:44,845 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852 +on 18972: 2026-09-03 11:01:09,137 - INFO - Jonction à la Station_ID: 12771 entre les entrées 14852 et 9366 +on 19046: 2026-09-03 11:01:11,678 - INFO - Jonction à la Station_ID: 17222 entre les entrées 16774 et 10902 +on 21114: 2026-09-03 11:02:00,685 - INFO - Jonction à la Station_ID: 15570 entre les entrées 8905 et 9366 +on 21600: 2026-09-03 11:02:14,231 - INFO - Jonction à la Station_ID: 47077 entre les entrées 49183 et 49089 +on 23056: 2026-09-03 11:02:47,262 - INFO - Jonction à la Station_ID: 15611 entre les entrées 9366 et 8905 +on 23137: 2026-09-03 11:02:49,824 - INFO - Jonction à la Station_ID: 15557 entre les entrées 8905 et 9366 +on 23142: 2026-09-03 11:02:49,901 - INFO - Jonction à la Station_ID: 9477 entre les entrées 8905 et 14852 +on 23144: 2026-09-03 11:02:50,275 - INFO - Jonction à la Station_ID: 9834 entre les entrées 14852 et 11338 +on 24975: 2026-09-03 11:03:36,944 - INFO - Jonction à la Station_ID: 16242 entre les entrées 15665 et 14852 +on 25697: 2026-09-03 11:03:58,134 - INFO - Jonction à la Station_ID: 16259 entre les entrées 10902 et 14852 +on 25981: 2026-09-03 11:04:07,420 - INFO - Jonction à la Station_ID: 50263 entre les entrées 50909 et 50130 +on 28328: 2026-09-03 11:04:58,114 - INFO - Jonction à la Station_ID: 9522 entre les entrées 16789 et 9366 +on 28497: 2026-09-03 11:05:04,401 - INFO - Jonction à la Station_ID: 44662 entre les entrées 49456 et 43628 +on 29909: 2026-09-03 11:05:38,190 - INFO - Jonction à la Station_ID: 44814 entre les entrées 48104 et 49456 +on 30963: 2026-09-03 11:06:01,847 - INFO - Jonction à la Station_ID: 16483 entre les entrées 15665 et 10902 +on 31414: 2026-09-03 11:06:16,088 - INFO - Jonction à la Station_ID: 17453 entre les entrées 19538 et 17667 +on 31827: 2026-09-03 11:06:23,160 - INFO - Jonction à la Station_ID: 25261 entre les entrées 27454 et 24729 +2026-09-03 11:11:39,844 - INFO - Intégrations des visées orphelines (entre 2 stations existantes) nbre: 340 +2026-09-03 11:11:45,867 - INFO - Réseau: 1, entrées jonctionnées: 10, [11338, 14852, 8905, 9366, 10902, 15665, 9884, 16789, 12987, 16774] +2026-09-03 11:11:45,962 - INFO - Réseau: 2, entrées jonctionnées: 2, [3397, 3358] +2026-09-03 11:11:46,267 - INFO - Réseau: 3, entrées jonctionnées: 8, [43628, 49456, 48104, 49327, 47360, 49183, 49089, 49803] +2026-09-03 11:11:46,355 - INFO - Réseau: 4, entrées jonctionnées: 2, [1613, 2784] +2026-09-03 11:11:46,450 - INFO - Réseau: 5, entrées jonctionnées: 2, [3455, 3525] +2026-09-03 11:11:46,611 - INFO - Réseau: 6, entrées jonctionnées: 2, [24729, 27454] +2026-09-03 11:11:46,704 - INFO - Réseau: 7, entrées jonctionnées: 2, [834, 218] +2026-09-03 11:11:46,785 - INFO - Réseau: 8, entrées jonctionnées: 2, [38328, 39667] +2026-09-03 11:11:46,879 - INFO - Réseau: 9, entrées jonctionnées: 2, [50130, 50909] +2026-09-03 11:11:46,992 - INFO - Réseau: 10, entrées jonctionnées: 2, [17667, 19538] +2026-09-03 11:11:46,993 - WARNING - Phase 4: Fin du remplissage des tables, attention 82 station(s) non comptabilisé(s) +2026-09-03 11:11:47,145 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 11:13:06,083 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 11:14:08,539 - WARNING - Phase 5: Fin de traitement en 01(h)07(m)39(s), avec 1 erreur(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 11:14:08,542 - WARNING - Execution terminée avec 1 erreurs, verifier le log +2026-09-03 11:14:43,541 - INFO - *********************************************************************************************************************** +2026-09-03 11:14:43,541 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 11:14:43,542 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 11:14:43,542 - INFO - * Version : 2026.09.03 * +2026-09-03 11:14:43,542 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 11:14:43,542 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 11:14:43,543 - INFO - * Date : 2026-09-03 11:14:43 * +2026-09-03 11:14:43,543 - INFO - * Mode : sync * +2026-09-03 11:14:43,543 - INFO - *********************************************************************************************************************** +2026-09-03 11:14:43,544 - 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-03 11:14:45,695 - INFO - Phase 2: Création des nouvelles tables, indexation +2026-09-03 11:14:45,948 - INFO - Jonction de SHOT equates nbre: 2580 +2026-09-03 11:17:21,723 - 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-03 11:17:23,463 - INFO - Table des SHOT, visées dupliquées traités nbre: 19 +2026-09-03 11:17:23,667 - INFO - Création de l'index des tables principales et optimisation de la mémoire +2026-09-03 11:17:23,776 - INFO - Marquage des visées et des stations d'habillage nbre: 19021 +2026-09-03 11:18:12,605 - INFO - Phase 3: Remplissage des tables d'après les 64171 entrée(s) +2026-09-03 11:18:12,613 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 11:18:12,708 - INFO - Phase 4: Remplissage des tables d'après les séries vides jonctionnées aux 194 entrée(s) +on 1423: 2026-09-03 11:18:31,099 - INFO - Jonction à la Station_ID: 49335 entre les entrées 49456 et 49327 +on 3318: 2026-09-03 11:18:52,091 - INFO - Jonction à la Station_ID: 229 entre les entrées 218 et 834 +on 3357: 2026-09-03 11:18:52,880 - INFO - Jonction à la Station_ID: 3525 entre les entrées 3455 et 3525 +on 6351: 2026-09-03 11:19:25,802 - INFO - Jonction à la Station_ID: 1666 entre les entrées 1613 et 2784 +on 9158: 2026-09-03 11:20:08,652 - INFO - Jonction à la Station_ID: 3348 entre les entrées 3358 et 3397 +on 9594: 2026-09-03 11:20:17,286 - INFO - Jonction à la Station_ID: 48093 entre les entrées 49183 et 48104 +on 9622: 2026-09-03 11:20:20,747 - INFO - Jonction à la Station_ID: 49838 entre les entrées 49183 et 49803 +on 10275: 2026-09-03 11:20:34,488 - INFO - Jonction à la Station_ID: 40146 entre les entrées 38328 et 39667 +on 12587: 2026-09-03 11:21:28,098 - INFO - Jonction à la Station_ID: 47396 entre les entrées 48104 et 47360 +on 13062: 2026-09-03 11:21:37,895 - INFO - Jonction à la Station_ID: 9041 entre les entrées 10902 et 8905 +on 15553: 2026-09-03 11:22:35,577 - INFO - Jonction à la Station_ID: 12059 entre les entrées 10902 et 12987 +on 16763: 2026-09-03 11:23:00,524 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902 +on 16763: 2026-09-03 11:23:00,534 - INFO - Jonction à la Station_ID: 9337 entre les entrées 14852 et 10902 +on 16817: 2026-09-03 11:23:02,998 - INFO - Jonction à la Station_ID: 9547 entre les entrées 9884 et 9366 +on 17832: 2026-09-03 11:23:29,767 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852 +on 17833: 2026-09-03 11:23:29,876 - INFO - Jonction à la Station_ID: 9338 entre les entrées 10902 et 14852 +on 17833: 2026-09-03 11:23:29,927 - INFO - Jonction à la Station_ID: 12777 entre les entrées 10902 et 14852 +on 18972: 2026-09-03 11:23:54,244 - INFO - Jonction à la Station_ID: 12771 entre les entrées 14852 et 9366 +on 19046: 2026-09-03 11:23:57,263 - INFO - Jonction à la Station_ID: 17222 entre les entrées 16774 et 10902 +on 21114: 2026-09-03 11:24:46,619 - INFO - Jonction à la Station_ID: 15570 entre les entrées 8905 et 9366 +on 21600: 2026-09-03 11:25:00,794 - INFO - Jonction à la Station_ID: 47077 entre les entrées 49183 et 49089 +on 23056: 2026-09-03 11:25:34,226 - INFO - Jonction à la Station_ID: 15611 entre les entrées 9366 et 8905 +on 23137: 2026-09-03 11:25:36,913 - INFO - Jonction à la Station_ID: 15557 entre les entrées 8905 et 9366 +on 23142: 2026-09-03 11:25:37,136 - INFO - Jonction à la Station_ID: 9477 entre les entrées 8905 et 14852 +on 23144: 2026-09-03 11:25:37,434 - INFO - Jonction à la Station_ID: 9834 entre les entrées 14852 et 11338 +on 24975: 2026-09-03 11:26:23,093 - INFO - Jonction à la Station_ID: 16242 entre les entrées 15665 et 14852 +on 25697: 2026-09-03 11:26:44,909 - INFO - Jonction à la Station_ID: 16259 entre les entrées 10902 et 14852 +on 25981: 2026-09-03 11:26:54,800 - INFO - Jonction à la Station_ID: 50263 entre les entrées 50909 et 50130 +on 28328: 2026-09-03 11:27:45,777 - INFO - Jonction à la Station_ID: 9522 entre les entrées 16789 et 9366 +on 28497: 2026-09-03 11:27:51,866 - INFO - Jonction à la Station_ID: 44662 entre les entrées 49456 et 43628 +on 29909: 2026-09-03 11:28:26,382 - INFO - Jonction à la Station_ID: 44814 entre les entrées 48104 et 49456 +on 30963: 2026-09-03 11:28:50,589 - INFO - Jonction à la Station_ID: 16483 entre les entrées 15665 et 10902 +on 31414: 2026-09-03 11:29:04,439 - INFO - Jonction à la Station_ID: 17453 entre les entrées 19538 et 17667 +on 31827: 2026-09-03 11:29:12,208 - INFO - Jonction à la Station_ID: 25261 entre les entrées 27454 et 24729 +2026-09-03 11:34:30,538 - INFO - Intégrations des visées orphelines (entre 2 stations existantes) nbre: 340 +2026-09-03 11:34:37,140 - INFO - Réseau: 1, entrées jonctionnées: 10, [11338, 14852, 8905, 9366, 10902, 15665, 9884, 16789, 12987, 16774] +2026-09-03 11:34:37,240 - INFO - Réseau: 2, entrées jonctionnées: 2, [3397, 3358] +2026-09-03 11:34:37,536 - INFO - Réseau: 3, entrées jonctionnées: 8, [43628, 49456, 48104, 49327, 47360, 49183, 49089, 49803] +2026-09-03 11:34:37,622 - INFO - Réseau: 4, entrées jonctionnées: 2, [1613, 2784] +2026-09-03 11:34:37,842 - INFO - Réseau: 5, entrées jonctionnées: 2, [3455, 3525] +2026-09-03 11:34:37,947 - INFO - Réseau: 6, entrées jonctionnées: 2, [24729, 27454] +2026-09-03 11:34:38,039 - INFO - Réseau: 7, entrées jonctionnées: 2, [834, 218] +2026-09-03 11:34:38,128 - INFO - Réseau: 8, entrées jonctionnées: 2, [38328, 39667] +2026-09-03 11:34:38,236 - INFO - Réseau: 9, entrées jonctionnées: 2, [50130, 50909] +2026-09-03 11:34:38,416 - INFO - Réseau: 10, entrées jonctionnées: 2, [17667, 19538] +2026-09-03 11:34:38,416 - WARNING - Phase 4: Fin du remplissage des tables, attention 82 station(s) non comptabilisé(s) +2026-09-03 11:34:38,536 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 11:36:49,988 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 11:38:49,175 - WARNING - Phase 5: Fin de traitement en 24(m)05(s), avec 1 erreur(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 11:38:49,181 - WARNING - Execution terminée avec 1 erreurs en 1445.6780140399933 s, verifier le log +2026-09-03 15:36:12,872 - INFO - *********************************************************************************************************************** +2026-09-03 15:36:12,872 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 15:36:12,872 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 15:36:12,873 - INFO - * Version : 2026.09.03 * +2026-09-03 15:36:12,873 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 15:36:12,873 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 15:36:12,873 - INFO - * Date : 2026-09-03 15:36:12 * +2026-09-03 15:36:12,873 - INFO - * Mode : update * +2026-09-03 15:36:12,873 - INFO - *********************************************************************************************************************** +2026-09-03 15:36:12,874 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 15:37:33,117 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 15:38:37,202 - INFO - Phase 5: Fin de traitement en 02(m)24(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 15:38:37,203 - INFO - Execution terminée sans erreur en 02(m)24(s) s +2026-09-03 15:41:26,246 - INFO - *********************************************************************************************************************** +2026-09-03 15:41:26,246 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 15:41:26,247 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 15:41:26,247 - INFO - * Version : 2026.09.03 * +2026-09-03 15:41:26,247 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 15:41:26,247 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 15:41:26,247 - INFO - * Date : 2026-09-03 15:41:26 * +2026-09-03 15:41:26,248 - INFO - * Mode : update * +2026-09-03 15:41:26,248 - INFO - *********************************************************************************************************************** +2026-09-03 15:41:26,249 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 15:42:46,739 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 15:43:56,763 - INFO - Phase 5: Fin de traitement en 02(m)30(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 15:51:52,568 - INFO - *********************************************************************************************************************** +2026-09-03 15:51:52,568 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 15:51:52,568 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 15:51:52,568 - INFO - * Version : 2026.09.03 * +2026-09-03 15:51:52,568 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 15:51:52,569 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 15:51:52,569 - INFO - * Date : 2026-09-03 15:51:52 * +2026-09-03 15:51:52,569 - INFO - * Mode : update * +2026-09-03 15:51:52,569 - INFO - *********************************************************************************************************************** +2026-09-03 15:51:52,570 - INFO - Phase 5: Écriture des statistiques dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 15:53:24,948 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 15:54:35,638 - INFO - Phase 5: Fin de traitement en 02 min 43 s, résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 15:54:35,639 - INFO - Execution terminée sans erreur en 02(m)43(s) s +2026-09-03 16:06:35,238 - INFO - *********************************************************************************************************************** +2026-09-03 16:06:35,238 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 16:06:35,238 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 16:06:35,238 - INFO - * Version : 2026.09.03 * +2026-09-03 16:06:35,239 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 16:06:35,239 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 16:06:35,239 - INFO - * Date : 2026-09-03 16:06:35 * +2026-09-03 16:06:35,239 - INFO - * Mode : update * +2026-09-03 16:06:35,239 - INFO - *********************************************************************************************************************** +2026-09-03 16:06:35,240 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 16:08:57,830 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 16:11:14,595 - INFO - Phase 5: Fin de traitement en 04(m)39(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 16:11:14,597 - INFO - Execution terminée sans erreur en 04(m)39(s) s +2026-09-03 16:31:36,713 - INFO - *********************************************************************************************************************** +2026-09-03 16:31:36,713 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 16:31:36,714 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 16:31:36,714 - INFO - * Version : 2026.09.03 * +2026-09-03 16:31:36,714 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 16:31:36,714 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 16:31:36,714 - INFO - * Date : 2026-09-03 16:31:36 * +2026-09-03 16:31:36,714 - INFO - * Mode : update * +2026-09-03 16:31:36,715 - INFO - *********************************************************************************************************************** +2026-09-03 16:31:36,716 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 16:31:36,718 - INFO - Table des CENTRELINE, length: 1 +2026-09-03 16:33:02,792 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 16:34:15,254 - INFO - Phase 5: Fin de traitement en 02(m)38(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 16:34:15,256 - INFO - Execution terminée sans erreur en 02(m)38(s) +2026-09-03 16:42:01,300 - INFO - *********************************************************************************************************************** +2026-09-03 16:42:01,300 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 16:42:01,301 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 16:42:01,301 - INFO - * Version : 2026.09.03 * +2026-09-03 16:42:01,301 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 16:42:01,301 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 16:42:01,301 - INFO - * Date : 2026-09-03 16:42:01 * +2026-09-03 16:42:01,301 - INFO - * Mode : update * +2026-09-03 16:42:01,302 - INFO - *********************************************************************************************************************** +2026-09-03 16:42:01,303 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 16:42:01,305 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 16:43:27,897 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 16:44:34,616 - INFO - Phase 5: Fin de traitement en 02(m)33(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 16:44:34,617 - INFO - Execution terminée sans erreur en 02(m)33(s) +2026-09-03 16:55:35,450 - INFO - *********************************************************************************************************************** +2026-09-03 16:55:35,451 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 16:55:35,451 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 16:55:35,451 - INFO - * Version : 2026.09.03 * +2026-09-03 16:55:35,451 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 16:55:35,452 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 16:55:35,452 - INFO - * Date : 2026-09-03 16:55:35 * +2026-09-03 16:55:35,452 - INFO - * Mode : update * +2026-09-03 16:55:35,452 - INFO - *********************************************************************************************************************** +2026-09-03 16:55:35,454 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 16:55:35,456 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 16:56:59,535 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 16:58:07,388 - INFO - Phase 5: Fin de traitement en 02(m)31(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 16:58:07,389 - INFO - Execution terminée sans erreur en 02(m)31(s) +2026-09-03 17:29:43,081 - INFO - *********************************************************************************************************************** +2026-09-03 17:29:43,081 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 17:29:43,081 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 17:29:43,082 - INFO - * Version : 2026.09.03 * +2026-09-03 17:29:43,082 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 17:29:43,082 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 17:29:43,082 - INFO - * Date : 2026-09-03 17:29:43 * +2026-09-03 17:29:43,082 - INFO - * Mode : update * +2026-09-03 17:29:43,082 - INFO - *********************************************************************************************************************** +2026-09-03 17:29:43,084 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 17:29:43,086 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 17:31:10,970 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 17:32:24,148 - INFO - Phase 5: Fin de traitement en 02(m)41(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 17:32:24,148 - INFO - Execution terminée sans erreur en 02(m)41(s) +2026-09-03 17:42:08,641 - INFO - *********************************************************************************************************************** +2026-09-03 17:42:08,642 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 17:42:08,642 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 17:42:08,642 - INFO - * Version : 2026.09.03 * +2026-09-03 17:42:08,643 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 17:42:08,643 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 17:42:08,643 - INFO - * Date : 2026-09-03 17:42:08 * +2026-09-03 17:42:08,643 - INFO - * Mode : update * +2026-09-03 17:42:08,643 - INFO - *********************************************************************************************************************** +2026-09-03 17:42:08,645 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 17:42:08,649 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 17:43:42,678 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 17:44:48,289 - INFO - Phase 5: Fin de traitement en 02(m)39(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 17:44:48,290 - INFO - Execution terminée sans erreur en 02(m)39(s) +2026-09-03 18:28:25,328 - INFO - *********************************************************************************************************************** +2026-09-03 18:28:25,329 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 18:28:25,329 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 18:28:25,329 - INFO - * Version : 2026.09.03 * +2026-09-03 18:28:25,330 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 18:28:25,330 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 18:28:25,330 - INFO - * Date : 2026-09-03 18:28:25 * +2026-09-03 18:28:25,330 - INFO - * Mode : update * +2026-09-03 18:28:25,330 - INFO - *********************************************************************************************************************** +2026-09-03 18:28:25,331 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 18:28:25,334 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 18:29:51,870 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 18:31:01,755 - INFO - Phase 5: Fin de traitement en 02(m)36(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 18:31:01,757 - INFO - Execution terminée sans erreur en 02(m)36(s) +2026-09-03 18:33:32,271 - INFO - *********************************************************************************************************************** +2026-09-03 18:33:32,271 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 18:33:32,272 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 18:33:32,272 - INFO - * Version : 2026.09.03 * +2026-09-03 18:33:32,272 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 18:33:32,272 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 18:33:32,272 - INFO - * Date : 2026-09-03 18:33:32 * +2026-09-03 18:33:32,272 - INFO - * Mode : update * +2026-09-03 18:33:32,273 - INFO - *********************************************************************************************************************** +2026-09-03 18:33:32,274 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 18:33:32,275 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 18:35:03,682 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 18:36:10,772 - INFO - Phase 5: Fin de traitement en 02(m)38(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 18:36:10,773 - INFO - Execution terminée sans erreur en 02(m)38(s) +2026-09-03 18:40:19,326 - INFO - *********************************************************************************************************************** +2026-09-03 18:40:19,327 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 18:40:19,327 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 18:40:19,327 - INFO - * Version : 2026.09.03 * +2026-09-03 18:40:19,327 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 18:40:19,327 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 18:40:19,328 - INFO - * Date : 2026-09-03 18:40:19 * +2026-09-03 18:40:19,328 - INFO - * Mode : update * +2026-09-03 18:40:19,328 - INFO - *********************************************************************************************************************** +2026-09-03 18:40:19,329 - INFO - Phase 5: Écriture des statistiques dans fichier ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 18:40:19,331 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 18:41:44,417 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 18:42:51,743 - ERROR - !!! Erreur lors de l'exécution de calcul_stats: list.append() takes exactly one argument (2 given) +2026-09-03 18:44:09,807 - INFO - *********************************************************************************************************************** +2026-09-03 18:44:09,807 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 18:44:09,807 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 18:44:09,807 - INFO - * Version : 2026.09.03 * +2026-09-03 18:44:09,808 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 18:44:09,808 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 18:44:09,808 - INFO - * Date : 2026-09-03 18:44:09 * +2026-09-03 18:44:09,808 - INFO - * Mode : update * +2026-09-03 18:44:09,808 - INFO - *********************************************************************************************************************** +2026-09-03 18:44:09,809 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 18:44:09,811 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 18:45:36,402 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 18:46:48,704 - INFO - Phase 5: Fin de traitement en 02(m)38(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 18:46:48,706 - INFO - Execution terminée sans erreur en 02(m)38(s) +2026-09-03 18:49:19,658 - INFO - *********************************************************************************************************************** +2026-09-03 18:49:19,658 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 18:49:19,659 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 18:49:19,659 - INFO - * Version : 2026.09.03 * +2026-09-03 18:49:19,659 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 18:49:19,660 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 18:49:19,660 - INFO - * Date : 2026-09-03 18:49:19 * +2026-09-03 18:49:19,660 - INFO - * Mode : update * +2026-09-03 18:49:19,660 - INFO - *********************************************************************************************************************** +2026-09-03 18:49:19,661 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 18:49:19,663 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 18:50:46,052 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 18:51:53,717 - INFO - Phase 5: Fin de traitement en 02(m)34(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 18:51:53,718 - INFO - Execution terminée sans erreur en 02(m)34(s) +2026-09-03 18:54:47,462 - INFO - *********************************************************************************************************************** +2026-09-03 18:54:47,462 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 18:54:47,463 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 18:54:47,463 - INFO - * Version : 2026.09.03 * +2026-09-03 18:54:47,463 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 18:54:47,463 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 18:54:47,463 - INFO - * Date : 2026-09-03 18:54:47 * +2026-09-03 18:54:47,464 - INFO - * Mode : update * +2026-09-03 18:54:47,464 - INFO - *********************************************************************************************************************** +2026-09-03 18:54:47,465 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 18:54:47,467 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 18:56:09,456 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 18:57:19,215 - INFO - Phase 5: Fin de traitement en 02(m)31(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 18:57:19,217 - INFO - Execution terminée sans erreur en 02(m)31(s) +2026-09-03 19:06:57,404 - INFO - *********************************************************************************************************************** +2026-09-03 19:06:57,405 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 19:06:57,405 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 19:06:57,405 - INFO - * Version : 2026.09.03 * +2026-09-03 19:06:57,405 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 19:06:57,406 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 19:06:57,406 - INFO - * Date : 2026-09-03 19:06:57 * +2026-09-03 19:06:57,406 - INFO - * Mode : update * +2026-09-03 19:06:57,406 - INFO - *********************************************************************************************************************** +2026-09-03 19:06:57,408 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 19:06:57,410 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 19:08:18,626 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 19:09:22,042 - ERROR - !!! Erreur lors de l'exécution de calcul_stats: '<' not supported between instances of 'str' and 'int' +2026-09-03 19:12:32,957 - INFO - *********************************************************************************************************************** +2026-09-03 19:12:32,957 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 19:12:32,958 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 19:12:32,958 - INFO - * Version : 2026.09.03 * +2026-09-03 19:12:32,958 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 19:12:32,958 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 19:12:32,958 - INFO - * Date : 2026-09-03 19:12:32 * +2026-09-03 19:12:32,958 - INFO - * Mode : update * +2026-09-03 19:12:32,959 - INFO - *********************************************************************************************************************** +2026-09-03 19:12:32,960 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 19:12:32,962 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 19:13:55,757 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 19:14:59,330 - INFO - Phase 5: Fin de traitement en 02(m)26(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 19:14:59,331 - INFO - Execution terminée sans erreur en 02(m)26(s) +2026-09-03 19:36:40,251 - INFO - *********************************************************************************************************************** +2026-09-03 19:36:40,251 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 19:36:40,251 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 19:36:40,252 - INFO - * Version : 2026.09.03 * +2026-09-03 19:36:40,252 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 19:36:40,252 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 19:36:40,252 - INFO - * Date : 2026-09-03 19:36:40 * +2026-09-03 19:36:40,252 - INFO - * Mode : update * +2026-09-03 19:36:40,253 - INFO - *********************************************************************************************************************** +2026-09-03 19:36:40,254 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 19:36:40,256 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 19:37:59,161 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 19:39:01,455 - INFO - Phase 5: Fin de traitement en 02(m)21(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 19:39:01,457 - INFO - Execution terminée sans erreur en 02(m)21(s) +2026-09-03 19:42:36,851 - INFO - *********************************************************************************************************************** +2026-09-03 19:42:36,851 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 19:42:36,852 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 19:42:36,852 - INFO - * Version : 2026.09.03 * +2026-09-03 19:42:36,852 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 19:42:36,852 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 19:42:36,853 - INFO - * Date : 2026-09-03 19:42:36 * +2026-09-03 19:42:36,853 - INFO - * Mode : update * +2026-09-03 19:42:36,853 - INFO - *********************************************************************************************************************** +2026-09-03 19:42:36,854 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 19:42:36,856 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 19:44:01,255 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 19:45:06,226 - INFO - Phase 5: Fin de traitement en 02(m)29(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 19:45:06,227 - INFO - Execution terminée sans erreur en 02(m)29(s) +2026-09-03 19:49:45,298 - INFO - *********************************************************************************************************************** +2026-09-03 19:49:45,299 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 19:49:45,299 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 19:49:45,299 - INFO - * Version : 2026.09.03 * +2026-09-03 19:49:45,299 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 19:49:45,299 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 19:49:45,300 - INFO - * Date : 2026-09-03 19:49:45 * +2026-09-03 19:49:45,300 - INFO - * Mode : update * +2026-09-03 19:49:45,300 - INFO - *********************************************************************************************************************** +2026-09-03 19:49:45,301 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 19:49:45,303 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 19:51:06,827 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 19:52:09,595 - INFO - Phase 5: Fin de traitement en 02(m)24(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 19:52:09,596 - INFO - Execution terminée sans erreur en 02(m)24(s) +2026-09-03 20:33:03,749 - INFO - *********************************************************************************************************************** +2026-09-03 20:33:03,749 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 20:33:03,750 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 20:33:03,750 - INFO - * Version : 2026.09.03 * +2026-09-03 20:33:03,750 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 20:33:03,750 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 20:33:03,751 - INFO - * Date : 2026-09-03 20:33:03 * +2026-09-03 20:33:03,751 - INFO - * Mode : update * +2026-09-03 20:33:03,751 - INFO - *********************************************************************************************************************** +2026-09-03 20:33:03,752 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 20:33:03,754 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 20:34:24,669 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 20:35:25,616 - ERROR - !!! Erreur lors de l'exécution de calcul_stats: could not convert string to float: '61 230,74 ' +2026-09-03 20:39:28,591 - INFO - *********************************************************************************************************************** +2026-09-03 20:39:28,591 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 20:39:28,591 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 20:39:28,591 - INFO - * Version : 2026.09.03 * +2026-09-03 20:39:28,592 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 20:39:28,592 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 20:39:28,592 - INFO - * Date : 2026-09-03 20:39:28 * +2026-09-03 20:39:28,592 - INFO - * Mode : update * +2026-09-03 20:39:28,592 - INFO - *********************************************************************************************************************** +2026-09-03 20:39:28,593 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 20:39:28,595 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 20:40:56,867 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 20:42:03,877 - INFO - Phase 5: Fin de traitement en 02(m)35(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 20:42:03,878 - INFO - Execution terminée sans erreur en 02(m)35(s) +2026-09-03 20:48:54,449 - INFO - *********************************************************************************************************************** +2026-09-03 20:48:54,450 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 20:48:54,450 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 20:48:54,450 - INFO - * Version : 2026.09.03 * +2026-09-03 20:48:54,450 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 20:48:54,450 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 20:48:54,451 - INFO - * Date : 2026-09-03 20:48:54 * +2026-09-03 20:48:54,451 - INFO - * Mode : update * +2026-09-03 20:48:54,451 - INFO - *********************************************************************************************************************** +2026-09-03 20:48:54,452 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 20:48:54,454 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 20:50:20,053 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 20:51:24,353 - INFO - Phase 5: Fin de traitement en 02(m)29(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 20:51:24,354 - INFO - Execution terminée sans erreur en 02(m)29(s) +2026-09-03 21:07:26,052 - INFO - *********************************************************************************************************************** +2026-09-03 21:07:26,053 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 21:07:26,053 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 21:07:26,053 - INFO - * Version : 2026.09.03 * +2026-09-03 21:07:26,053 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 21:07:26,054 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 21:07:26,054 - INFO - * Date : 2026-09-03 21:07:26 * +2026-09-03 21:07:26,054 - INFO - * Mode : update * +2026-09-03 21:07:26,054 - INFO - *********************************************************************************************************************** +2026-09-03 21:07:26,056 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:07:26,058 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 21:08:47,927 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 21:09:52,885 - INFO - Phase 5: Fin de traitement en 02(m)26(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:09:52,886 - INFO - Execution terminée sans erreur en 02(m)26(s) +2026-09-03 21:12:35,735 - INFO - *********************************************************************************************************************** +2026-09-03 21:12:35,735 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 21:12:35,735 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 21:12:35,735 - INFO - * Version : 2026.09.03 * +2026-09-03 21:12:35,736 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 21:12:35,736 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 21:12:35,736 - INFO - * Date : 2026-09-03 21:12:35 * +2026-09-03 21:12:35,736 - INFO - * Mode : update * +2026-09-03 21:12:35,736 - INFO - *********************************************************************************************************************** +2026-09-03 21:12:35,738 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:12:35,740 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 21:13:56,425 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 21:15:00,346 - INFO - Phase 5: Fin de traitement en 02(m)24(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:15:00,347 - INFO - Execution terminée sans erreur en 02(m)24(s) +2026-09-03 21:16:57,424 - INFO - *********************************************************************************************************************** +2026-09-03 21:16:57,424 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 21:16:57,425 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 21:16:57,425 - INFO - * Version : 2026.09.03 * +2026-09-03 21:16:57,425 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 21:16:57,425 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 21:16:57,425 - INFO - * Date : 2026-09-03 21:16:57 * +2026-09-03 21:16:57,425 - INFO - * Mode : update * +2026-09-03 21:16:57,426 - INFO - *********************************************************************************************************************** +2026-09-03 21:16:57,427 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:16:57,428 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 21:18:23,954 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 21:19:27,921 - INFO - Phase 5: Fin de traitement en 02(m)30(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:19:27,922 - INFO - Execution terminée sans erreur en 02(m)30(s) +2026-09-03 21:27:14,939 - INFO - *********************************************************************************************************************** +2026-09-03 21:27:14,940 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 21:27:14,940 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 21:27:14,940 - INFO - * Version : 2026.09.03 * +2026-09-03 21:27:14,940 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 21:27:14,940 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 21:27:14,940 - INFO - * Date : 2026-09-03 21:27:14 * +2026-09-03 21:27:14,941 - INFO - * Mode : update * +2026-09-03 21:27:14,941 - INFO - *********************************************************************************************************************** +2026-09-03 21:27:14,942 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:27:14,944 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 21:28:32,699 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 21:29:36,133 - INFO - Phase 5: Fin de traitement en 02(m) 21(s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:29:36,134 - INFO - Execution terminée sans erreur en 02(m)21(s) +2026-09-03 21:38:20,297 - INFO - *********************************************************************************************************************** +2026-09-03 21:38:20,298 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 21:38:20,298 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 21:38:20,298 - INFO - * Version : 2026.09.03 * +2026-09-03 21:38:20,298 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 21:38:20,299 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 21:38:20,299 - INFO - * Date : 2026-09-03 21:38:20 * +2026-09-03 21:38:20,299 - INFO - * Mode : update * +2026-09-03 21:38:20,299 - INFO - *********************************************************************************************************************** +2026-09-03 21:38:20,300 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:38:20,302 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 21:39:43,891 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 21:40:53,029 - 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:40:53,030 - INFO - Execution terminée sans erreur en 02(m)32(s) +2026-09-03 21:45:40,911 - INFO - *********************************************************************************************************************** +2026-09-03 21:45:40,911 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 21:45:40,911 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 21:45:40,911 - INFO - * Version : 2026.09.03 * +2026-09-03 21:45:40,912 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 21:45:40,912 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 21:45:40,912 - INFO - * Date : 2026-09-03 21/45/40 * +2026-09-03 21:45:40,912 - INFO - * Mode : update * +2026-09-03 21:45:40,913 - INFO - *********************************************************************************************************************** +2026-09-03 21:45:40,914 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:45:40,916 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +2026-09-03 21:47:02,922 - INFO - Table des STATION, entrée et fix nbre: 194 +2026-09-03 21:48:11,536 - INFO - Phase 5: Fin de traitement en 02 (m) 30 (s), résultats enregistrés dans ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:48:11,537 - INFO - Execution terminée sans erreur en 02(m)30(s) +2026-09-03 21:50:35,724 - INFO - *********************************************************************************************************************** +2026-09-03 21:50:35,724 - INFO - * Calcul des statistiques par entrées d'une BD Therion * +2026-09-03 21:50:35,724 - INFO - * Script pyThStat par : alexandre.pont@yahoo.fr * +2026-09-03 21:50:35,724 - INFO - * Version : 2026.09.03 * +2026-09-03 21:50:35,725 - INFO - * Fichier source : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA.sql * +2026-09-03 21:50:35,725 - INFO - * Dossier destination : ~\Synthese-PSM_LARRA\Outputs\DB_Synthese-PSM_LARRA_Stats * +2026-09-03 21:50:35,725 - INFO - * Date : 2026-09-03 21h50m35s * +2026-09-03 21:50:35,725 - INFO - * Mode : update * +2026-09-03 21:50:35,726 - INFO - *********************************************************************************************************************** +2026-09-03 21:50:35,727 - INFO - Phase 5: Écriture des statistiques dans le fichier: ~\Outputs\DB_Synthese-PSM_LARRA_Stats\DB_Synthese-PSM_LARRA_stats +2026-09-03 21:50:35,729 - INFO - Table des CENTRELINE, longueur: [(340302.67, 15575.02, 8956.61)] +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) 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 new file mode 100644 index 0000000..3faba78 Binary files /dev/null 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 new file mode 100644 index 0000000..ba50f1b --- /dev/null +++ b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.csv @@ -0,0 +1,238 @@ +*********************************************************************************************************************** +* Calcul des statistiques par entrées d'une BD Therion * +* Script pyThStat par : alexandre.pont@yahoo.fr * +* 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 * +*********************************************************************************************************************** +**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 + +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 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 new file mode 100644 index 0000000..ed894ab Binary files /dev/null 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 new file mode 100644 index 0000000..420d182 --- /dev/null +++ b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_stats.md @@ -0,0 +1,252 @@ +-------------- +# Statistiques de la base DB_Synthese-PSM_LARRA +| | | +| :---------------- | :--- | +| Script pyThStat par | alexandre.pont@yahoo.fr | +| 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 | + +-------------- +### Développement total (m) + +Développement: `340 302,67`, dupliqué: `15 575,02`, surface: `8 956,61` + +> [!WARNING] `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 Stat. | Alt. min (m) | ID Stat. | Alt. max (m) | +|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------|------------| +| Totaux (entrées et points fixes) | 194 | 340 302,68 | 2 016,00 | 15 575,02 | 8 956,61 | 45150 | ILLA13B | 318,00 | AN634 | 2 334,00 | +| ERUSO, ODITA | 2 | 61 230,74 | 866,88 | 0,00 | 0,00 | 6345 | LAR_d_15/16 | 568,12 | ERUSO | 1 435,00 | +| C_104, C_2, C_226, C_50, D_9, LEPINEUX, M_31, M_413 | 8 | 48 226,13 | 1 113,08 | 7 349,51 | 1,81 | 6021 | - | 1 010,92 | AN532 | 2 124,00 | +| AN454, AN509, AN51, AN519, AN563, AN597, AN6, AN60, AN709, FR3 | 10 | 46 208,59 | 859,07 | 329,07 | 7 339,64 | 7484 | AN43GA2 | 1 319,13 | AN509 | 2 178,20 | +| 0, A60_GPS | 2 | 41 760,25 | 1 204,65 | 3 557,47 | 0,00 | 5594 | S7-6 | 773,77 | P1 | 1 978,42 | +| ROBINET | 1 | 12 791,76 | 491,99 | 0,00 | 0,00 | 1478 | ARP419/50 | 588,45 | ARP338/21 | 1 080,44 | +| LAK_1 | 1 | 10 493,84 | 667,68 | 1 481,76 | 0,00 | 1457 | HF3 | 856,53 | . | 1 524,21 | +| T_VENT, XEN | 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 | +| AN8, AN9 | 2 | 8 226,55 | 805,22 | 0,00 | 0,00 | 898 | AN8_d_1701 | 1 007,78 | AN9 | 1 813,00 | +| AP_7 | 1 | 7 233,06 | 377,95 | 116,43 | 0,00 | 1211 | A | 1 327,05 | AP_7 | 1 705,00 | +| 0 | 1 | 7 228,71 | 514,65 | 0,00 | 0,00 | 700 | 34 | 1 460,35 | 0 | 1 975,00 | +| B_3 | 1 | 6 615,73 | 667,24 | 0,00 | 0,00 | 740 | N-00 | 952,76 | B_3 | 1 620,00 | +| DS_49 | 1 | 5 435,99 | 696,11 | 0,00 | 0,00 | 680 | DS495/172 | 853,89 | DS_49 | 1 550,00 | +| BT_6 | 1 | 5 212,26 | 670,59 | 0,00 | 0,00 | 744 | BT6_d_2/641 | 947,41 | BT_6 | 1 618,00 | +| UK_4 | 1 | 4 164,03 | 715,19 | 0,00 | 0,00 | 581 | UK4_d_25/16 | 1 083,81 | VB11 | 1 799,00 | +| LACS | 1 | 4 054,16 | 108,40 | 0,00 | 15,50 | 435 | LAC_d_SORT27 | 529,73 | LAC_d_MS7 | 638,13 | +| CHIPI | 1 | 3 512,87 | 553,48 | 0,00 | 0,00 | 572 | CHI_d_46/6 | 941,52 | CHIPI | 1 495,00 | +| RENARD | 1 | 3 338,53 | 208,44 | 0,00 | 0,00 | 395 | REN_d_1/34 | 396,01 | REN_d_2/15 | 604,45 | +| BG_63 | 1 | 3 278,77 | 356,85 | 0,00 | 0,00 | 675 | BG6322-31 | 1 029,15 | BG_63 | 1 386,00 | +| GL_102, GL_4 | 2 | 3 026,31 | 471,24 | 111,58 | 0,00 | 323 | 25 | 1 164,76 | GL_4 | 1 636,00 | +| UK_557 | 1 | 2 564,77 | 316,87 | 0,00 | 0,00 | 327 | UK557_d_5/56 | 1 828,13 | A_4 | 2 145,00 | +| E2000 | 1 | 2 383,58 | 535,79 | 0,00 | 0,00 | 279 | B38 | 1 727,21 | AN639 | 2 263,00 | +| ALAHAIS | 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 | +| M_326 | 1 | 1 667,15 | 384,30 | 0,00 | 0,00 | 289 | M3263/199 | 1 725,70 | M_326 | 2 110,00 | +| L_5 | 1 | 1 645,48 | 371,69 | 66,04 | 0,00 | 292 | FL386.138.71 | 1 651,31 | L_5 | 2 023,00 | +| AN43 | 1 | 1 540,03 | 376,73 | 0,00 | 0,00 | 248 | BG632-31 | 1 349,27 | AN43 | 1 726,00 | +| Z_124 | 1 | 1 412,20 | 379,71 | 0,00 | 0,00 | 117 | 39V | 1 349,71 | A60_111 | 1 729,42 | +| Z_127 | 1 | 1 400,82 | 529,78 | 0,00 | 0,00 | 262 | _d_Z127_f_264 | 1 128,22 | HP10 | 1 658,00 | +| C_214 | 1 | 1 064,44 | 420,12 | 0,00 | 0,00 | 157 | C214_d_130 | 1 513,88 | C_214 | 1 934,00 | +| Z_17 | 1 | 1 011,10 | 404,84 | 0,00 | 0,00 | 115 | Z17_d_11/5 | 1 348,16 | - | 1 753,00 | +| AN669 | 1 | 1 002,32 | 352,95 | 0,00 | 23,59 | 168 | FL15 | 1 870,75 | AN669 | 2 223,70 | +| AN211, AN596 | 2 | 882,32 | 344,27 | 0,00 | 21,77 | 114 | QR2_35 | 1 715,79 | HB20 | 2 060,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 | 1 406,80 | - | 1 644,00 | +| C_230 | 1 | 836,03 | 268,62 | 0,00 | 0,00 | 135 | _d_C230_f_164 | 1 616,38 | C_230 | 1 885,00 | +| AN506 | 1 | 817,47 | 409,24 | 0,00 | 0,00 | 87 | PF10 | 1 754,06 | AN506 | 2 163,30 | +| M_414 | 1 | 807,45 | 351,32 | 40,10 | 0,00 | 119 | M414_d_1/52 | 1 762,68 | AN109 | 2 114,00 | +| BL_118 | 1 | 794,25 | 296,93 | 0,00 | 0,00 | 114 | BL118_d_2/89 | 726,07 | BL_118 | 1 023,00 | +| Z_112 | 1 | 767,20 | 261,03 | 0,00 | 0,00 | 90 | AN43DO11 | 1 377,97 | Z_112 | 1 639,00 | +| GORRIA | 1 | 750,26 | 431,36 | 0,00 | 0,00 | 137 | GOR_d_6/32 | 1 172,64 | GORRIA | 1 604,00 | +| C_110 | 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 | - | - | +| C_243 | 1 | 673,74 | 186,53 | 0,00 | 0,00 | 84 | C243_d_84 | 1 752,47 | UD13 | 1 939,00 | +| AN26 | 1 | 658,53 | 256,95 | 0,00 | 0,00 | 107 | AN26DA7 | 1 462,05 | AN26 | 1 719,00 | +| AN_594 | 1 | 639,69 | 185,76 | 0,00 | 83,78 | 165 | VB17 | 1 770,24 | AN_594 | 1 956,00 | +| AN52, AN676A | 2 | 616,56 | 100,93 | 0,00 | 51,08 | 165 | BFF47 | 2 069,07 | AN52 | 2 170,00 | +| AN_326 | 1 | 598,25 | 271,81 | 0,00 | 119,58 | 129 | AN326CF11 | 1 350,19 | AN_324 | 1 622,00 | +| AN595 | 1 | 570,06 | 291,30 | 0,00 | 92,15 | 92 | FZ28 | 1 957,20 | AN595 | 2 248,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 | 1 458,02 | E20_d_226 | 1 740,00 | +| Sima_1748 | 1 | 515,00 | 263,50 | 0,00 | 0,00 | 17 | _d_1748_f_5.7 | 1 484,50 | Sima_1748 | 1 748,00 | +| C_108 | 1 | 509,80 | 194,09 | 0,00 | 0,00 | 26 | C1085_1 | 1 702,91 | C_108 | 1 897,00 | +| Z_106 | 1 | 503,29 | 241,69 | 0,00 | 0,00 | 86 | - | 1 383,31 | FL386.160 | 1 625,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 | 1 687,74 | M_13 | 1 982,00 | +| AN109 | 1 | 436,21 | 253,70 | 0,00 | 0,00 | 73 | QO2_13 | 1 860,30 | AN109 | 2 114,00 | +| AN_702, AN_704 | 2 | 426,96 | 216,55 | 17,01 | 0,00 | 80 | MHX33 | 1 766,73 | CX15 | 1 983,28 | +| E22_00 | 1 | 410,70 | 312,59 | 0,00 | 0,00 | 43 | E22_d_38 | 1 948,41 | E22_00 | 2 261,00 | +| AN588 | 1 | 385,24 | 220,08 | 0,00 | 0,00 | 56 | QS2 | 1 862,92 | AN588 | 2 083,00 | +| AN58 | 1 | 373,97 | 127,99 | 0,00 | 24,34 | 81 | XX17 | 2 072,01 | AN58 | 2 200,00 | +| AN514 | 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 | +| Z_111 | 1 | 316,00 | 175,12 | 0,00 | 0,00 | 21 | Z11113 | 1 509,88 | Z_111 | 1 685,00 | +| AN3 | 1 | 310,92 | 205,15 | 0,00 | 44,73 | 53 | QE18 | 1 839,85 | AN3 | 2 045,00 | +| BOUQUE | 1 | 297,11 | 144,44 | 0,00 | 0,00 | 52 | BOU_d_4/6 | 1 432,56 | BOUQUE | 1 577,00 | +| AN534 | 1 | 291,51 | 133,81 | 0,00 | 178,10 | 64 | QW19 | 2 001,19 | AN534 | 2 135,00 | +| K7_00 | 1 | 278,70 | 190,43 | 0,00 | 0,00 | 15 | MA22 | 1 750,57 | K7_00 | 1 941,00 | +| AN591 | 1 | 268,36 | 102,32 | 0,00 | 0,00 | 55 | IZ40 | 2 044,68 | AN591 | 2 147,00 | +| M_405 | 1 | 255,79 | 185,38 | 0,00 | 0,00 | 46 | M405_d_2/46 | 1 939,62 | AN107 | 2 125,00 | +| A_106 | 1 | 253,98 | 126,55 | 0,00 | 0,00 | 61 | A106_d_EA1 | 1 521,45 | A_106 | 1 648,00 | +| AN73 | 1 | 248,35 | 210,40 | 0,00 | 38,50 | 23 | ESF1 | 1 861,60 | AN73 | 2 072,00 | +| ARPHIDIA | 1 | 243,24 | 68,25 | 0,00 | 0,00 | 33 | ARP100/33 | 985,75 | ROBINET | 1 054,00 | +| AN107 | 1 | 242,97 | 161,77 | 0,00 | 14,50 | 48 | AH6X | 1 963,23 | AN107 | 2 125,00 | +| ERE_80 | 1 | 240,75 | 158,68 | 0,00 | 0,00 | 18 | LIN_d_1/10 | 1 697,32 | ERE_80 | 1 856,00 | +| BB26 | 1 | 227,19 | 71,56 | 62,66 | 4,80 | 71 | 32d | 1 448,44 | LT345_79DD | 1 520,00 | +| AN61 | 1 | 224,45 | 139,93 | 0,00 | 2,78 | 44 | XA40 | 2 076,57 | AN61 | 2 216,50 | +| E3_TSR3 | 1 | 220,56 | 120,89 | 0,00 | 0,00 | 40 | F.44 | 1 809,11 | E3_TSR3 | 1 930,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 | 1 128,00 | +| AP_337 | 1 | 208,06 | 118,44 | 0,00 | 0,00 | 25 | AP_d_7A19 | 1 631,56 | AP_333 | 1 750,00 | +| UK_559 | 1 | 206,95 | 70,13 | 0,00 | 0,00 | 53 | UK559_d_1/22 | 1 967,87 | UK_559 | 2 038,00 | +| AN103 | 1 | 204,38 | 92,68 | 0,00 | 42,98 | 52 | KH7 | 2 045,32 | AN103 | 2 138,00 | +| UK_D6 | 1 | 191,26 | 61,02 | 0,00 | 0,00 | 48 | UKD6_d_1/11 | 1 963,32 | UKD6_d_2/7 | 2 024,34 | +| Z_143 | 1 | 187,50 | 113,00 | 0,00 | 0,00 | 22 | _d_Z143_f_14 | 1 561,00 | Z_143 | 1 674,00 | +| AN456 | 1 | 156,69 | 107,52 | 0,00 | 0,00 | 36 | UV7 | 1 854,48 | AN456 | 1 962,00 | +| PYRENE | 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 | 1 | 153,85 | 50,43 | 5,62 | 10,18 | 30 | HH3 | 2 046,24 | BA11 | 2 096,67 | +| A_110 | 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 | 1 | 140,65 | 47,61 | 0,00 | 0,00 | 21 | Z208_d_4 | 1 494,53 | JK01 | 1 542,14 | +| AN57 | 1 | 140,39 | 77,17 | 95,38 | 0,00 | 50 | LK1 | 1 995,23 | BFF25 | 2 072,40 | +| AN624 | 1 | 130,95 | 78,13 | 0,00 | 19,57 | 43 | HD2 | 1 870,87 | AN624 | 1 949,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 | 1 966,53 | 2 | 2 012,80 | +| AN542 | 1 | 128,43 | 76,76 | 0,00 | 0,00 | 20 | PO01 | 2 073,24 | AN542 | 2 150,00 | +| AN546 | 1 | 124,15 | 84,79 | 0,00 | 0,00 | 20 | VX14 | 2 182,21 | AN546 | 2 267,00 | +| AN619 | 1 | 122,42 | 65,84 | 0,00 | 0,00 | 19 | QD11 | 1 967,42 | QD2 | 2 033,26 | +| AN672 | 1 | 116,60 | 79,29 | 0,00 | 0,00 | 27 | RO4 | 1 883,71 | AN672 | 1 963,00 | +| AN567 | 1 | 112,67 | 75,18 | 0,00 | 0,00 | 17 | FH1 | 2 069,82 | A_4 | 2 145,00 | +| F_404 | 1 | 110,42 | 70,79 | 0,00 | 0,00 | 12 | F404_d_2/3 | 1 919,21 | LT346_80UH | 1 990,00 | +| AN683 | 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 | +| M_108 | 1 | 106,39 | 80,56 | 0,00 | 0,00 | 17 | M108_d_1/15 | 1 949,44 | M_108 | 2 030,00 | +| C_103 | 1 | 105,60 | 58,28 | 0,00 | 0,00 | 9 | C103_d_1/5 | 1 796,91 | C103_d_1/1 | 1 855,19 | +| Z_107 | 1 | 103,65 | 49,77 | 0,00 | 0,00 | 23 | - | 1 610,23 | Z_107 | 1 660,00 | +| AN639 | 1 | 102,88 | 39,06 | 0,00 | 0,00 | 18 | HF7 | 2 223,94 | AN639 | 2 263,00 | +| Z_123 | 1 | 102,29 | 45,64 | 0,00 | 0,00 | 21 | PE33 | 1 652,61 | EB45 | 1 698,25 | +| A_4 | 1 | 99,18 | 51,51 | 0,00 | 31,01 | 27 | SW11 | 2 093,49 | A_4 | 2 145,00 | +| AN671 | 1 | 96,98 | 89,95 | 0,00 | 0,00 | 10 | FM1 | 1 868,05 | AN671 | 1 958,00 | +| M_400 | 1 | 94,53 | 88,87 | 0,00 | 0,00 | 9 | PO07 | 2 114,13 | M_400 | 2 203,00 | +| AN453 | 1 | 91,25 | 66,69 | 0,00 | 0,00 | 19 | MFX11 | 1 905,31 | AN453 | 1 972,00 | +| CUCC_5 | 1 | 89,00 | 42,88 | 0,00 | 0,00 | 14 | CUCC5_d_9 | 1 668,12 | CUCC_5 | 1 711,00 | +| AN507 | 1 | 88,22 | 56,14 | 0,00 | 9,06 | 20 | HL5 | 2 089,46 | AN507 | 2 145,60 | +| AN62 | 1 | 86,80 | 64,76 | 0,00 | 0,00 | 10 | LJ2 | 2 127,24 | AN62 | 2 192,00 | +| CUCC_4 | 1 | 86,60 | 56,50 | 0,00 | 0,00 | 11 | CUCC4_d_8 | 1 671,50 | CUCC_4 | 1 728,00 | +| AN708 | 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 | +| MARMI | 1 | 76,12 | 23,64 | 0,00 | 0,00 | 14 | MARMI | 2 005,00 | MARM1/12 | 2 028,64 | +| C_213 | 1 | 75,96 | 51,79 | 0,00 | 0,00 | 18 | _d_C213_f_AA7 | 1 838,21 | C_213 | 1 890,00 | +| LAK_15 | 1 | 75,19 | 29,45 | 0,00 | 2,99 | 16 | _d_LAK15_f_AA12 | 1 505,55 | LAK_15 | 1 535,00 | +| IS_6B | 1 | 74,90 | 61,87 | 0,00 | 0,00 | 10 | IS6B_d_10 | 1 667,13 | IS_6B | 1 729,00 | +| AN616 | 1 | 69,84 | 53,77 | 0,00 | 0,00 | 14 | UD2 | 1 890,23 | AN616 | 1 944,00 | +| AN635 | 1 | 68,51 | 46,38 | 0,00 | 0,00 | 9 | TD1 | 2 268,62 | AN635 | 2 315,00 | +| AN627 | 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 | 1 | 60,62 | 30,84 | 0,00 | 0,00 | 10 | FQ9 | 2 124,16 | AN564 | 2 155,00 | +| AN_455 | 1 | 59,25 | 38,27 | 0,00 | 5,26 | 21 | OZ0 | 1 929,73 | AN_455 | 1 968,00 | +| AN692 | 1 | 58,83 | 45,51 | 0,00 | 6,95 | 20 | GF1 | 1 917,63 | CY13 | 1 963,14 | +| AN557 | 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 | +| AN646 | 1 | 54,48 | 47,28 | 0,00 | 0,00 | 10 | QC11 | 2 114,72 | AN646 | 2 162,00 | +| AN536 | 1 | 54,27 | 10,39 | 0,00 | 13,33 | 19 | BGG11 | 2 099,25 | BGG3 | 2 109,64 | +| AN_465 | 1 | 53,34 | 18,72 | 0,00 | 39,73 | 23 | PX11 | 2 106,35 | PX14 | 2 125,07 | +| AN480 | 1 | 50,56 | 47,11 | 0,00 | 0,00 | 9 | ZC8 | 1 897,89 | AN480 | 1 945,00 | +| Z_108 | 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 | +| AP_45 | 1 | 47,80 | 17,95 | 0,00 | 0,00 | 8 | AP45_d_3A | 1 684,05 | AP_45 | 1 702,00 | +| AN622 | 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 | +| Z_100 | 1 | 43,32 | 34,66 | 0,00 | 0,00 | 7 | - | 1 645,34 | Z_100 | 1 680,00 | +| IS9_00 | 1 | 43,13 | 30,43 | 0,00 | 0,00 | 9 | GDP10/24 | 1 755,57 | IS9_00 | 1 786,00 | +| AP_333 | 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 | 1 | 32,50 | 28,67 | 0,00 | 0,00 | 7 | AN45-7 | 1 627,33 | AN45 | 1 656,00 | +| AN37 | 1 | 32,00 | 27,68 | 0,00 | 0,00 | 6 | AN376 | 1 718,32 | AN37 | 1 746,00 | +| AN532 | 1 | 31,50 | 3,67 | 0,00 | 0,00 | 11 | UW10 | 2 121,19 | UW01 | 2 124,86 | +| AN711 | 1 | 31,00 | 5,85 | 0,00 | 0,00 | 10 | NE8 | 2 106,15 | AN557 | 2 112,00 | +| Z_444 | 1 | 26,44 | 6,21 | 0,00 | 0,00 | 9 | _d_Z444_f_1.5 | 1 679,79 | QUI1.38 | 1 686,00 | +| AN699 | 1 | 26,18 | 21,75 | 0,00 | 11,26 | 7 | AH13 | 1 984,25 | AN699 | 2 006,00 | +| BB_50 | 1 | 25,00 | 21,87 | 0,00 | 39,41 | 27 | _d_BB50_f_FOND | 1 515,13 | BB_50 | 1 537,00 | +| AN_324 | 1 | 20,47 | 12,89 | 0,00 | 0,00 | 7 | _d_AN324_f_5 | 1 609,11 | AN_324 | 1 622,00 | +| AN_325 | 1 | 17,74 | 10,15 | 0,00 | 0,00 | 6 | _d_AN325_f_6 | 1 592,85 | AN_325 | 1 603,00 | +| LT345_79 | 1 | 0,00 | 40,00 | 0,00 | 120,00 | 6 | LT345_79HH | 1 480,00 | LT345_79DD | 1 520,00 | +| LT346_80 | 1 | 0,00 | 20,00 | 0,00 | 60,00 | 6 | LT346_80UH | 1 990,00 | LT346_80UD | 2 010,00 | +| LT344_80 | 1 | 0,00 | 20,00 | 0,00 | 60,00 | 6 | LT346_80UH | 1 990,00 | LT346_80UD | 2 010,00 | +| LT346_78 | 1 | 0,00 | 20,00 | 0,00 | 60,00 | 6 | LT346_80UH | 1 990,00 | LT346_80UD | 2 010,00 | +| LT344_78 | 1 | 0,00 | 20,00 | 0,00 | 60,00 | 6 | LT346_80UH | 1 990,00 | LT346_80UD | 2 010,00 | +| UT683_4757 | 1 | 0,00 | 0,00 | 0,00 | 20,00 | 2 | LT346_80 | 2 000,00 | LT346_80 | 2 000,00 | +| UT684_4757 | 1 | 0,00 | 0,00 | 0,00 | 20,00 | 2 | LT346_80 | 2 000,00 | LT346_80 | 2 000,00 | +| UT684_4758 | 1 | 0,00 | 0,00 | 0,00 | 20,00 | 2 | LT346_80 | 2 000,00 | LT346_80 | 2 000,00 | +| UT683_4758 | 1 | 0,00 | 0,00 | 0,00 | 20,00 | 2 | LT346_80 | 2 000,00 | LT346_80 | 2 000,00 | +| SC_3 | 1 | 0,00 | 40,00 | 120,00 | 0,00 | 6 | 4 | 2 017,00 | AN596 | 2 057,00 | +| M_13 | 1 | 0,00 | 40,00 | 120,00 | 0,00 | 6 | AN456 | 1 962,00 | B | 2 002,00 | +| SL_19 | 1 | 0,00 | 40,00 | 120,00 | 0,00 | 6 | G | 1 747,00 | - | 1 787,00 | +| HUET | 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 | + +-------------- 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 new file mode 100644 index 0000000..fc73674 Binary files /dev/null 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 new file mode 100644 index 0000000..cafee38 Binary files /dev/null and b/Outputs/DB_Synthese-PSM_LARRA_Stats/DB_Synthese-PSM_LARRA_yearCum.pdf differ diff --git a/Scripts/pyThStat/.vscode/settings.json b/Scripts/pyThStat/.vscode/settings.json index eb614e3..1431cd9 100644 --- a/Scripts/pyThStat/.vscode/settings.json +++ b/Scripts/pyThStat/.vscode/settings.json @@ -10,6 +10,7 @@ "CENTRELINE", "Criou", "cumsum", + "debutdetraitement", "dupl", "Dupl", "duree", diff --git a/Scripts/pyThStat/Lib/__pycache__/general_fonctions.cpython-314.pyc b/Scripts/pyThStat/Lib/__pycache__/general_fonctions.cpython-314.pyc index f609fd3..23f8ed0 100644 Binary files a/Scripts/pyThStat/Lib/__pycache__/general_fonctions.cpython-314.pyc and b/Scripts/pyThStat/Lib/__pycache__/general_fonctions.cpython-314.pyc differ diff --git a/Scripts/pyThStat/Lib/__pycache__/global_data.cpython-314.pyc b/Scripts/pyThStat/Lib/__pycache__/global_data.cpython-314.pyc index 45d0ab9..b6993a7 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/general_fonctions.py b/Scripts/pyThStat/Lib/general_fonctions.py index 86d9b9f..19a2912 100644 --- a/Scripts/pyThStat/Lib/general_fonctions.py +++ b/Scripts/pyThStat/Lib/general_fonctions.py @@ -1,8 +1,8 @@ """ !############################################################################################# -# # -# general_fonctions.py for pythStat.py # -# # +!# # +!# general_fonctions.py for pythStat.py # +!# # !############################################################################################# Alex 2026 01 09 diff --git a/Scripts/pyThStat/Lib/global_data.py b/Scripts/pyThStat/Lib/global_data.py index 35d1213..a2fb861 100644 --- a/Scripts/pyThStat/Lib/global_data.py +++ b/Scripts/pyThStat/Lib/global_data.py @@ -1,12 +1,12 @@ """ !#############################################################################################! - -global_data.py for pythStat.py - +!# #! +!# global_data.py for pythStat.py #! +!# #! !#############################################################################################! """ -Version = "2026.01.09" +Version = "2026.09.03" ################################################################################################# diff --git a/Scripts/pyThStat/pythStat-VSCode.code-workspace b/Scripts/pyThStat/pythStat.code-workspace similarity index 81% rename from Scripts/pyThStat/pythStat-VSCode.code-workspace rename to Scripts/pyThStat/pythStat.code-workspace index b58d290..b8ab386 100644 --- a/Scripts/pyThStat/pythStat-VSCode.code-workspace +++ b/Scripts/pyThStat/pythStat.code-workspace @@ -7,6 +7,7 @@ "settings": { "cSpell.words": [ "ansi", + "debutdetraitement", "ENDC" ] } diff --git a/Scripts/pyThStat/pythStat.py b/Scripts/pyThStat/pythStat.py index f5b405b..a1abaf5 100644 --- a/Scripts/pyThStat/pythStat.py +++ b/Scripts/pyThStat/pythStat.py @@ -1,16 +1,16 @@ # -*- coding: utf-8 -*- """ -!####################################################################################################################################### -# # -# Script pour calculer les statistiques des entités jonctionnées # -# d'un fichier database (.sql) produit par Therion # -# By Alexandre PONT alexandre.pont@yahoo.fr # -# # -* Utilisation: # -# Exporter le fichier sql avec therion, commande therion.thconfig : export database -o Outputs/database.sql # -# Commande : python pythStat.py ./chemin/fichier.sql # -# ou : python pythStat.py pour ouvrir une fenêtre # -# Résultat : fichiers dans le dossier crée du fichier source # +!######################################################################################################################################## +!# # +!# Script pour calculer les statistiques des entités jonctionnées # +!# d'un fichier database (.sql) produit par Therion # +!# By Alexandre PONT alexandre.pont@yahoo.fr # +!# # +!# Utilisation: # +!# Exporter le fichier sql avec therion, commande therion.thconfig : export database -o Outputs/database.sql # +!# Commande : python pyThStat.py ./chemin/fichier.sql # +!# ou : python pyThStat.py pour ouvrir une fenêtre # +!# Résultat : fichiers dans le dossier crée du fichier source # !######################################################################################################################################## """ @@ -42,8 +42,11 @@ def importation_sql_data(fichier_sql): global error_count try: + ##################################################################################################################################### + # Phase 1 # Si la base de données existe, supprimez-la pour forcer l'écriture - log.info(f"Phase 1: Importation de la base de données Therion {Colors.ENDC}{safe_relpath(input_file_name, 2)}{Colors.INFO} dans: {Colors.ENDC}{safe_relpath(imported_database, 0)}") + ##################################################################################################################################### + log.info(f"{Colors.UNDERLINE}Phase 1:{Colors.ENDC}{Colors.INFO} Importation de la base de données Therion {Colors.ENDC}{safe_relpath(input_file_name, 2)}{Colors.INFO} dans: {Colors.ENDC}{safe_relpath(imported_database, 0)}") if os.path.exists(imported_database): #print("Suppression de la Bd existante: " + imported_database) os.remove(imported_database) @@ -64,11 +67,12 @@ def importation_sql_data(fichier_sql): # Exécution des commandes avec une barre de progression with alive_bar(len(commandes), title = f"{Colors.YELLOW}Progression{Colors.ENDC}", length = 20) as bar: for commande in commandes: - cursor.execute(commande) - connection.commit() + cursor.execute(commande) bar() - + + connection.commit() connection.close() + except sqlite3.Error as e: log.error(f"Erreur lors de l'exécution de la requête importation_sql_data code:{Colors.ENDC} {e}") error_count += 1 @@ -77,11 +81,11 @@ def importation_sql_data(fichier_sql): return ##################################################################################################################################### -# Fonction pour construire les tables JONCTION, SERIE, VISEE_FLAG et RESEAU # +# Fonction pour construire les tables _JONCTION, _SERIE, _VISEE_FLAG et _RESEAU # ##################################################################################################################################### def construction_tables(): """ - Fonction pour construire les tables JONCTION, SERIE, VISEE_FLAG et RESEAU + Fonction pour construire les tables spécifiques _JONCTION, _SERIE, _VISEE_FLAG et _RESEAU """ global avt_compteur global error_count @@ -91,12 +95,16 @@ def construction_tables(): #cursor = conn.cursor() # print(f"{Colors.GREEN}{Colors.BOLD}Construction des tables dans {imported_database}{Colors.ENDC}") - try : - log.info(f"Phase 2: Création des nouvelles tables, indexation") + try : + ##################################################################################################################################### + # Phase 2 + # Création des tables spécifiques + ##################################################################################################################################### + log.info(f"{Colors.UNDERLINE}Phase 2:{Colors.ENDC}{Colors.INFO} Création des nouvelles tables, indexation") - cursor.execute("DROP TABLE IF EXISTS JONCTION") # Créer et initialiser une nouvelle table de jonctions + cursor.execute("DROP TABLE IF EXISTS _JONCTION") # Créer et initialiser une nouvelle table de jonctions cursor.execute(""" - CREATE TABLE JONCTION ( + CREATE TABLE _JONCTION ( ID INTEGER PRIMARY KEY AUTOINCREMENT, STATION_ID INTEGER, SERIE_ID INTEGER, @@ -113,12 +121,12 @@ def construction_tables(): cursor.execute("select STATION.ID from STATION") results = cursor.fetchall() Next_Station_ID = cursor.fetchall() # Pour forcer le type - cursor.executemany("INSERT INTO JONCTION (STATION_ID) VALUES (?)", results) + cursor.executemany("INSERT INTO _JONCTION (STATION_ID) VALUES (?)", results) conn.commit() - cursor.execute("DROP TABLE IF EXISTS SERIE") # Créer et initialiser une nouvelle table des Series + cursor.execute("DROP TABLE IF EXISTS _SERIE") # Créer et initialiser une nouvelle table des Series cursor.execute(""" - CREATE TABLE SERIE ( + CREATE TABLE _SERIE ( SERIE_ID INTEGER PRIMARY KEY AUTOINCREMENT, SERIE_DEP_ID INTEGER, STATION_DEP_ID INTEGER, @@ -135,9 +143,9 @@ def construction_tables(): Current_Serie_ID = cursor.lastrowid conn.commit() - cursor.execute("DROP TABLE IF EXISTS RESEAU") + cursor.execute("DROP TABLE IF EXISTS _RESEAU") cursor.execute(""" - CREATE TABLE RESEAU ( + CREATE TABLE _RESEAU ( ID INTEGER PRIMARY KEY AUTOINCREMENT, RESEAU_ID INTEGER, STATION_JONC INTEGER, @@ -147,13 +155,12 @@ def construction_tables(): conn.commit() SHOT_equates_station() - issue_SHOT() duplicate_SHOT() - cursor.execute("DROP TABLE IF EXISTS VISEE_FLAG") # Créer et initialiser une nouvelle table VISEE_FLAG (suivi des visées lues) + cursor.execute("DROP TABLE IF EXISTS _VISEE_FLAG") # Créer et initialiser une nouvelle table _VISEE_FLAG (suivi des visées lues) cursor.execute(""" - CREATE TABLE VISEE_FLAG ( + CREATE TABLE _VISEE_FLAG ( ID INTEGER PRIMARY KEY AUTOINCREMENT, SHOT_ID INTEGER, SERIE_ID INTEGER, @@ -164,12 +171,12 @@ def construction_tables(): """) cursor.execute("select SHOT.ID from SHOT") results = cursor.fetchall() - cursor.executemany("INSERT INTO VISEE_FLAG (SHOT_ID) VALUES (?)", results) # type: ignore + cursor.executemany("INSERT INTO _VISEE_FLAG (SHOT_ID) VALUES (?)", results) # type: ignore conn.commit() log.info(f"Création de l'index des tables principales et optimisation de la mémoire") - cursor.execute("CREATE INDEX INDEX_JONCTION_STATION_ID ON JONCTION(STATION_ID)") + cursor.execute("CREATE INDEX INDEX_JONCTION_STATION_ID ON _JONCTION(STATION_ID)") cursor.execute("PRAGMA index_list(SHOT)") result = cursor.fetchall() @@ -181,21 +188,25 @@ def construction_tables(): cursor.execute("CREATE INDEX INDEX_SHOT_TO_ID ON SHOT(TO_ID)") cursor.execute("CREATE INDEX INDEX_SHOT_FLAG_SHOT_ID ON SHOT_FLAG(SHOT_ID)") cursor.execute("CREATE INDEX INDEX_STATION_ID ON STATION(ID)") - cursor.execute("CREATE INDEX INDEX_VISEE_FLAG_SHOT_ID ON VISEE_FLAG(SHOT_ID)") + cursor.execute("CREATE INDEX INDEX_VISEE_FLAG_SHOT_ID ON _VISEE_FLAG(SHOT_ID)") cursor.execute("CREATE INDEX INDEX_STATION_FLAG_STATION_ID ON STATION_FLAG(STATION_ID)") cursor.execute("VACUUM") conn.commit() - # A partir des entrées, remplir les tables des jonctions et des séries + ##################################################################################################################################### + # Phase 3 + # A partir des entrées, remplir les tables des jonctions et des séries + ##################################################################################################################################### + log.info(f"{Colors.UNDERLINE}Phase 3:{Colors.ENDC}{Colors.INFO} Remplissage des tables d'après les {Colors.ENDC}{len(results)}{Colors.INFO} entrée(s){Colors.ENDC}") # type: ignore + results = sql_liste_entree() - log.info(f"Phase 3: Remplissage des tables d'après les {Colors.ENDC}{len(results)}{Colors.INFO} entrée(s){Colors.ENDC}") # type: ignore for row in results: # type: ignore # if row[0]==28548: # print("debug point") cursor.execute(f""" - INSERT INTO SERIE ( + INSERT INTO _SERIE ( SERIE_DEP_ID, STATION_DEP_ID, SERIE_ARR_ID , @@ -211,7 +222,7 @@ def construction_tables(): Current_Serie_ID = cursor.lastrowid cursor.execute(f""" - UPDATE JONCTION SET + UPDATE _JONCTION SET SERIE_ID = ?, SERIE_ENT = ?, STATION_ENT = ?, @@ -225,19 +236,21 @@ def construction_tables(): """, (Current_Serie_ID, 0, row[0], 0, 0,'ent', 0, row[0], 0, row[0])) cursor.execute(f""" - UPDATE VISEE_FLAG SET + UPDATE _VISEE_FLAG SET SERIE_ID = {Current_Serie_ID}, ENTREE_ID = {row[0]}, RESEAU_ID = {0} WHERE SHOT_ID = {Current_Serie_ID} """) - conn.commit() + conn.commit() # print(f"Création Série: {Current_Serie_ID} depuis la station d'entrée Station_ID: {row[0]}") - - # A partir des série vides, itération pour remplir les tables des JONCTION et des SERIE - log.info(f"Phase 4: Remplissage des tables d'après les séries vides jonctionnées aux{Colors.ENDC} {Current_Serie_ID}{Colors.INFO} entrée(s){Colors.ENDC}") + ##################################################################################################################################### + # Phase 4 + # A partir des série vides, itération pour remplir les tables des _JONCTION et des _SERIE + ##################################################################################################################################### + log.info(f"{Colors.UNDERLINE}Phase 4:{Colors.ENDC}{Colors.INFO} Remplissage des tables d'après les séries vides jonctionnées aux{Colors.ENDC} {Current_Serie_ID}{Colors.INFO} entrée(s){Colors.ENDC}") results = sql_serie_vides() Count = 1 @@ -246,22 +259,24 @@ def construction_tables(): Current_Station_ID_Old = 0 Current_Station_ID = 0 - cursor.execute("SELECT COUNT(*) AS nbre FROM JONCTION WHERE STATION_TYPE IS NULL") + cursor.execute("SELECT COUNT(*) AS nbre FROM _JONCTION WHERE STATION_TYPE IS NULL") _compteur = cursor.fetchall() compteur_ttl = int(_compteur[0][0]) avt_compteur = 0 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 + # 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 - cursor.execute("SELECT COUNT(*) AS nbre FROM JONCTION WHERE STATION_TYPE IS NULL") + cursor.execute("SELECT COUNT(*) AS nbre FROM _JONCTION WHERE STATION_TYPE IS NULL") _compteur = cursor.fetchall() compteur = int(_compteur[0][0]) + if ( compteur_ttl - compteur ) > avt_compteur : ajout = compteur_ttl - compteur - avt_compteur bar(ajout) avt_compteur = compteur_ttl - compteur + for row in results: # type: ignore # Suivi de la série Current_Serie_ID = int(row[0]) @@ -278,30 +293,35 @@ def construction_tables(): while Fin_Serie is False: if Direction == 1 : Next_Station_ID = sql_station_depart(Current_Station_ID) + elif Direction == -1 : Current_Station_ID = int(row[4]) - Next_Station_ID = sql_station_arrivee(Current_Station_ID) + Next_Station_ID = sql_station_arrivee(Current_Station_ID) + elif Direction == 0 : Next_Station_ID_1 = sql_station_depart(Current_Station_ID) Next_Station_ID_2 = sql_station_arrivee(Current_Station_ID) if len(Next_Station_ID_1) == 0 and len(Next_Station_ID_2) == 0: # type: ignore # Entrée sans départ et sans d'arrivée : fin de la série - cursor.execute(f"UPDATE SERIE SET SERIE_NBRE_SHOT = 0 WHERE SERIE_ID = {Current_Serie_ID};") - cursor.execute(f"UPDATE JONCTION SET SERIE_ENT = -1 WHERE STATION_ID = {Current_Station_ID};") + cursor.execute(f"UPDATE _SERIE SET SERIE_NBRE_SHOT = 0 WHERE SERIE_ID = {Current_Serie_ID};") + cursor.execute(f"UPDATE _JONCTION SET SERIE_ENT = -1 WHERE STATION_ID = {Current_Station_ID};") conn.commit() Next_Station_ID = Next_Station_ID_1 + elif len(Next_Station_ID_1) == 1 and len(Next_Station_ID_2) == 0: # type: ignore # Un départ pas d'arrivée Next_Station_ID = Next_Station_ID_1 Direction = 1 - cursor.execute(f"UPDATE SERIE SET DIRECTION = 1 WHERE SERIE_ID = {Current_Serie_ID};") + cursor.execute(f"UPDATE _SERIE SET DIRECTION = 1 WHERE SERIE_ID = {Current_Serie_ID};") conn.commit() + elif len(Next_Station_ID_1) == 0 and len(Next_Station_ID_2) == 1: # type: ignore # Une arrivée pas de départ Next_Station_ID = Next_Station_ID_2 Direction = -1 - cursor.execute(f"UPDATE SERIE SET DIRECTION = -1 WHERE SERIE_ID = {Current_Serie_ID};") + cursor.execute(f"UPDATE _SERIE SET DIRECTION = -1 WHERE SERIE_ID = {Current_Serie_ID};") conn.commit() + else : # A gérer nouvelles séries nouvelles_series(Current_Station_ID, Current_Station_ID_Old, Current_Serie_ID, 1, Current_Ent) # type: ignore @@ -314,22 +334,25 @@ def construction_tables(): Next_Station_ID_1 = sql_station_depart(Current_Station_ID) # type: ignore Next_Station_ID_2 = sql_station_arrivee(Current_Station_ID) # type: ignore # print(f"\033[34m\tA gérer, fin de la Série: {Current_Serie_ID} à la Station_ID: {Current_Station_ID} nbre: {Current_Nre_Shot} Next station: {Next_Station_ID}, départs directs {len(Next_Station_ID_1)}, départs inverses {len(Next_Station_ID_2)}{Colors.ENDC}") # type: ignore - # cursor.execute(f"UPDATE SERIE SET SERIE_DEP_ID = {Current_Serie_ID} WHERE SERIE_ID = {Current_Serie_ID};") # type: ignore - # cursor.execute(f"UPDATE SERIE SET STATION_DEP_ID = {Current_Station_ID} WHERE SERIE_ID = {Current_Serie_ID};") # type: ignore - # cursor.execute(f"UPDATE SERIE SET SERIE_NBRE_SHOT = 0 WHERE SERIE_ID = {Current_Serie_ID};") # type: ignore - cursor.execute(f"DELETE FROM SERIE WHERE SERIE_ID = {Current_Serie_ID};") + # cursor.execute(f"UPDATE _SERIE SET SERIE_DEP_ID = {Current_Serie_ID} WHERE SERIE_ID = {Current_Serie_ID};") # type: ignore + # cursor.execute(f"UPDATE _SERIE SET STATION_DEP_ID = {Current_Station_ID} WHERE SERIE_ID = {Current_Serie_ID};") # type: ignore + # cursor.execute(f"UPDATE _SERIE SET SERIE_NBRE_SHOT = 0 WHERE SERIE_ID = {Current_Serie_ID};") # type: ignore + cursor.execute(f"DELETE FROM _SERIE WHERE SERIE_ID = {Current_Serie_ID};") conn.commit() # type: ignore Fin_Serie = True + elif len(Next_Station_ID) == 1 : # type: ignore suivi_serie(Current_Serie_ID, bar) Fin_Serie = True + else : #print(f"Station_ID {Current_Station_ID} de la Serie {Current_Serie_ID}, départs à gérer: {len(Next_Station_ID)}, Next station: {Next_Station_ID}") # type: ignore suivi_serie(Current_Serie_ID, bar) # Création de X nouvelles séries et mise à jour de la table des jonctions #nouvelles_series(Current_Station_ID, Current_Station_ID_Old, Current_Serie_ID, 1, Current_Ent) Fin_Serie = True - # Exécution de la requête SQL + # Exécution de la requête SQL + resultsOld = results results = sql_serie_vides() # type: ignore New_Serie_IDOld = New_Serie_ID @@ -342,7 +365,7 @@ def construction_tables(): Count += 1 - cursor.execute("SELECT COUNT(*) AS nbre FROM JONCTION WHERE STATION_TYPE IS NULL") + cursor.execute("SELECT COUNT(*) AS nbre FROM _JONCTION WHERE STATION_TYPE IS NULL") _compteur = cursor.fetchall() compteur = int(_compteur[0][0]) @@ -365,6 +388,7 @@ def construction_tables(): 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}") error_count += 1 + return ##################################################################################################################################### @@ -378,9 +402,9 @@ def orphelines_shot(): cursor.execute(""" -- Visées orphelines SELECT - VISEE_FLAG.SHOT_ID, - VISEE_FLAG.SERIE_ID, - VISEE_FLAG.ENTREE_ID, + _VISEE_FLAG.SHOT_ID, + _VISEE_FLAG.SERIE_ID, + _VISEE_FLAG.ENTREE_ID, SHOT_FLAG.FLAG, SHOT.FROM_ID, -- STATION_FROM.NAME, @@ -394,14 +418,14 @@ def orphelines_shot(): JONCTION_TO.ENTREE_ID, SHOT.LENGTH --sum (SHOT.LENGTH) - FROM VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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 JONCTION_TO.SERIE_ID is not null and JONCTION_FROM.SERIE_ID is not null + 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 JONCTION_TO.SERIE_ID is not null and JONCTION_FROM.SERIE_ID is not null """) conn.commit() orphelines = cursor.fetchall() @@ -421,7 +445,7 @@ def orphelines_shot(): _SERIE_LENGHT = row[12] cursor.execute(f""" - INSERT INTO SERIE ( + INSERT INTO _SERIE ( SERIE_DEP_ID, STATION_DEP_ID, SERIE_ARR_ID , @@ -436,7 +460,7 @@ def orphelines_shot(): _Current_Serie_ID = cursor.lastrowid cursor.execute(f""" - UPDATE VISEE_FLAG SET + UPDATE _VISEE_FLAG SET SERIE_ID = {_Current_Serie_ID}, ENTREE_ID = {row[7]}, SERIE_RANG = {1} @@ -444,7 +468,7 @@ def orphelines_shot(): """) if row[7] != row[11] : - cursor.execute(f"INSERT INTO RESEAU (STATION_JONC, ENT_1, ENT_2) VALUES (?, ?, ?)", (row[8], row[7], row[11])) + cursor.execute(f"INSERT INTO _RESEAU (STATION_JONC, ENT_1, ENT_2) VALUES (?, ?, ?)", (row[8], row[7], row[11])) # print (f"{Colors.BLUE}\t Jonction des entrées à la Station_ID: {row[8]} entre: {row[7]} et: {row[11]}{Colors.ENDC}") conn.commit() @@ -466,16 +490,16 @@ def jonction_RESEAU(): --Recherche des doublons dans les jonctions réseau SELECT ID - --GROUP_CONCAT(RESEAU.ID) as DUPP_SHOT - FROM RESEAU - GROUP BY RESEAU.ENT_1, RESEAU.ENT_2, RESEAU.STATION_JONC - HAVING COUNT(RESEAU.ENT_1)>1 AND COUNT(RESEAU.ENT_2)>1 AND COUNT(RESEAU.STATION_JONC)>1 + --GROUP_CONCAT(_RESEAU.ID) as DUPP_SHOT + FROM _RESEAU + GROUP BY _RESEAU.ENT_1, _RESEAU.ENT_2, _RESEAU.STATION_JONC + HAVING COUNT(_RESEAU.ENT_1)>1 AND COUNT(_RESEAU.ENT_2)>1 AND COUNT(_RESEAU.STATION_JONC)>1 """) conn.commit() doublons = cursor.fetchall() # print(f"Table des RESEAUX doublons nbre: {len(doublons)}") - for row in doublons : cursor.execute(f"DELETE FROM RESEAU WHERE RESEAU.ID = {row[0]}") + for row in doublons : cursor.execute(f"DELETE FROM _RESEAU WHERE _RESEAU.ID = {row[0]}") conn.commit() index_reseau = 0 @@ -483,24 +507,24 @@ def jonction_RESEAU(): while True: index_reseau += 1 cursor.execute(""" - -- Liste des entrée dans la table RESEAU + -- Liste des entrée dans la table _RESEAU SELECT - RESEAU.ENT_1 AS ENT, - RESEAU.RESEAU_ID, + _RESEAU.ENT_1 AS ENT, + _RESEAU.RESEAU_ID, STATION.NAME, STATION.Z - FROM RESEAU - JOIN STATION ON RESEAU.ENT_1 = STATION.ID - WHERE RESEAU.RESEAU_ID IS NULL + FROM _RESEAU + JOIN STATION ON _RESEAU.ENT_1 = STATION.ID + WHERE _RESEAU.RESEAU_ID IS NULL UNION --ALL SELECT - RESEAU.ENT_2 AS ENT, - RESEAU.RESEAU_ID, + _RESEAU.ENT_2 AS ENT, + _RESEAU.RESEAU_ID, STATION.NAME, STATION.Z - FROM RESEAU - JOIN STATION ON RESEAU.ENT_2 = STATION.ID - WHERE RESEAU.RESEAU_ID IS NULL + FROM _RESEAU + JOIN STATION ON _RESEAU.ENT_2 = STATION.ID + WHERE _RESEAU.RESEAU_ID IS NULL ORDER BY STATION.Z DESC """) conn.commit() @@ -509,8 +533,8 @@ def jonction_RESEAU(): if len(entrees) == 0: break # Sortie boucle while si plus d'entrées à traiter... - cursor.execute(f"UPDATE RESEAU SET RESEAU_ID = {index_reseau} WHERE RESEAU.ENT_1 = {entrees[0][0]} ") - cursor.execute(f"UPDATE RESEAU SET RESEAU_ID = {index_reseau} WHERE RESEAU.ENT_2 = {entrees[0][0]} ") + cursor.execute(f"UPDATE _RESEAU SET RESEAU_ID = {index_reseau} WHERE _RESEAU.ENT_1 = {entrees[0][0]} ") + cursor.execute(f"UPDATE _RESEAU SET RESEAU_ID = {index_reseau} WHERE _RESEAU.ENT_2 = {entrees[0][0]} ") conn.commit() liste_entrees_reseau = [] @@ -524,24 +548,24 @@ def jonction_RESEAU(): for row in liste_entrees_reseau : cursor.execute(f""" -- Recherche entrée jonctionnées - SELECT RESEAU.ENT_1 FROM RESEAU WHERE RESEAU.ENT_2 = {row} -- AND RESEAU.RESEAU_ID IS NULL + SELECT _RESEAU.ENT_1 FROM _RESEAU WHERE _RESEAU.ENT_2 = {row} -- AND _RESEAU.RESEAU_ID IS NULL UNION - SELECT RESEAU.ENT_2 FROM RESEAU WHERE RESEAU.ENT_1 = {row} -- AND RESEAU.RESEAU_ID IS NULL + SELECT _RESEAU.ENT_2 FROM _RESEAU WHERE _RESEAU.ENT_1 = {row} -- AND _RESEAU.RESEAU_ID IS NULL """) jonction = cursor.fetchall() for row2 in jonction: # type: ignore if row2[0] not in liste_entrees_reseau: # print(f"Jonction de l'entrée: {row2[0]} au reseau ID: {index_reseau}") - cursor.execute(f"UPDATE RESEAU SET RESEAU_ID = {index_reseau} WHERE RESEAU.ENT_1 = {row2[0]} ") - cursor.execute(f"UPDATE RESEAU SET RESEAU_ID = {index_reseau} WHERE RESEAU.ENT_2 = {row2[0]} ") + cursor.execute(f"UPDATE _RESEAU SET RESEAU_ID = {index_reseau} WHERE _RESEAU.ENT_1 = {row2[0]} ") + cursor.execute(f"UPDATE _RESEAU SET RESEAU_ID = {index_reseau} WHERE _RESEAU.ENT_2 = {row2[0]} ") liste_entrees_reseau.append(row2[0]) conn.commit() nbre_entree_reseau=len(liste_entrees_reseau) for row2 in liste_entrees_reseau : - cursor.execute(f"UPDATE JONCTION SET RESEAU_ID = {index_reseau} WHERE JONCTION.ENTREE_ID = {row2} ") - cursor.execute(f"UPDATE SERIE SET RESEAU_ID = {index_reseau} WHERE SERIE.STATION_ENT_ID = {row2} ") - cursor.execute(f"UPDATE VISEE_FLAG SET RESEAU_ID = {index_reseau} WHERE VISEE_FLAG.ENTREE_ID = {row2} ") + cursor.execute(f"UPDATE _JONCTION SET RESEAU_ID = {index_reseau} WHERE _JONCTION.ENTREE_ID = {row2} ") + cursor.execute(f"UPDATE _SERIE SET RESEAU_ID = {index_reseau} WHERE _SERIE.STATION_ENT_ID = {row2} ") + cursor.execute(f"UPDATE _VISEE_FLAG SET RESEAU_ID = {index_reseau} WHERE _VISEE_FLAG.ENTREE_ID = {row2} ") conn.commit() 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}") @@ -599,8 +623,8 @@ def SHOT_equates_station(): for row in filtre : cursor.execute(f"UPDATE SHOT SET TO_ID = {sous_valeurs[0]} WHERE ID = {row[0]};") - cursor.execute(f"UPDATE JONCTION SET STATION_TYPE = ? WHERE id = ?", ('equ', sous_valeurs[val])) - cursor.execute(f"UPDATE JONCTION SET STATION_JONC = ? WHERE id = ?", (sous_valeurs[0], sous_valeurs[val])) + cursor.execute(f"UPDATE _JONCTION SET STATION_TYPE = ? WHERE id = ?", ('equ', sous_valeurs[val])) + cursor.execute(f"UPDATE _JONCTION SET STATION_JONC = ? WHERE id = ?", (sous_valeurs[0], sous_valeurs[val])) #print(" ", end="") conn.commit() @@ -672,7 +696,7 @@ def duplicate_SHOT(): _Current_Station_ID = int(Current_Station_ID[0][0]) + 1 cursor.execute(f"INSERT INTO STATION (ID, NAME) VALUES ({_Current_Station_ID}, 'isu')") cursor.execute(f"UPDATE SHOT SET TO_ID = {_Current_Station_ID} WHERE SHOT.ID = {shot_flag2[0][0]}") - cursor.execute(f"INSERT INTO JONCTION (STATION_ID) VALUES ({_Current_Station_ID})") + cursor.execute(f"INSERT INTO _JONCTION (STATION_ID) VALUES ({_Current_Station_ID})") elif shot_flag2[0][1] is None and shot_flag[0][1]== 'dpl': cursor.execute("SELECT COUNT(*) AS nombre_enregistrements FROM STATION") @@ -680,7 +704,7 @@ def duplicate_SHOT(): _Current_Station_ID = int(Current_Station_ID[0][0]) + 1 cursor.execute(f"INSERT INTO STATION (ID, NAME) VALUES ({_Current_Station_ID}, 'isu')") cursor.execute(f"UPDATE SHOT SET TO_ID = {_Current_Station_ID} WHERE SHOT.ID = {shot_flag[0][0]}") - cursor.execute(f"INSERT INTO JONCTION (STATION_ID) VALUES ({_Current_Station_ID})") + cursor.execute(f"INSERT INTO _JONCTION (STATION_ID) VALUES ({_Current_Station_ID})") else : _total_length_err += float(shot_flag2[0][2]) @@ -689,7 +713,7 @@ def duplicate_SHOT(): _Current_Station_ID = int(Current_Station_ID[0][0]) + 1 cursor.execute(f"INSERT INTO STATION (ID, NAME) VALUES ({_Current_Station_ID}, 'isu')") cursor.execute(f"UPDATE SHOT SET TO_ID = {_Current_Station_ID} WHERE SHOT.ID = {shot_flag2[0][0]}") - cursor.execute(f"INSERT INTO JONCTION (STATION_ID) VALUES ({_Current_Station_ID})") + cursor.execute(f"INSERT INTO _JONCTION (STATION_ID) VALUES ({_Current_Station_ID})") log.warning(f"Table des SHOT, visées en double à traiter à la source : {Colors.ENDC}{shot_flag}{Colors.WARNING}, {Colors.ENDC}{shot_flag2}" + f"{Colors.WARNING}, station crée : {Colors.ENDC}{_Current_Station_ID}" + @@ -775,8 +799,8 @@ 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)}") 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]}") + 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]}") conn.commit() @@ -795,7 +819,7 @@ def suivi_serie( _Current_Serie_ID, bar) : global error_count try: - cursor.execute(f"SELECT * FROM SERIE WHERE SERIE_ID = {_Current_Serie_ID}") + cursor.execute(f"SELECT * FROM _SERIE WHERE SERIE_ID = {_Current_Serie_ID}") _Serie = cursor.fetchall() @@ -819,21 +843,21 @@ def suivi_serie( _Current_Serie_ID, bar) : if len(Next_Station_ID_1) == 0 and len(Next_Station_ID_2) == 0: # type: ignore # Pas de départ fin et pas d'arrivée : fin de la série Next_Station_ID = Next_Station_ID_1 - cursor.execute(f"UPDATE SERIE SET SERIE_NBRE_SHOT = 0 WHERE SERIE_ID = {_Current_Serie_ID};") + cursor.execute(f"UPDATE _SERIE SET SERIE_NBRE_SHOT = 0 WHERE SERIE_ID = {_Current_Serie_ID};") conn.commit() return elif len(Next_Station_ID_1) == 1 and len(Next_Station_ID_2) == 0: # type: ignore # Un départ pas d'arrivée Next_Station_ID = Next_Station_ID_1 Direction = 1 - cursor.execute(f"UPDATE SERIE SET DIRECTION = 1 WHERE SERIE_ID = {_Current_Serie_ID};") + cursor.execute(f"UPDATE _SERIE SET DIRECTION = 1 WHERE SERIE_ID = {_Current_Serie_ID};") conn.commit() elif len(Next_Station_ID_1) == 0 and len(Next_Station_ID_2) == 1: # type: ignore # Une arrivée pas de départ Next_Station_ID = Next_Station_ID_2 _Serie[0][4] = _Serie[0][2] Direction = -1 - cursor.execute(f"UPDATE SERIE SET DIRECTION = -1 WHERE SERIE_ID = {_Current_Serie_ID};") + cursor.execute(f"UPDATE _SERIE SET DIRECTION = -1 WHERE SERIE_ID = {_Current_Serie_ID};") conn.commit() else : # A gérer nouvelles séries @@ -873,7 +897,7 @@ def suivi_serie( _Current_Serie_ID, bar) : test_jonction(_Current_Next_Station, _Current_Serie_ID, _Current_Ent) # type: ignore cursor.execute(f""" - UPDATE SERIE SET + UPDATE _SERIE SET SERIE_DEP_ID = {_Current_Serie_ID}, STATION_DEP_ID = {_Current_Next_Station}, SERIE_NBRE_Shot = {_Current_Nre_Shot}, @@ -885,7 +909,7 @@ def suivi_serie( _Current_Serie_ID, bar) : cursor.execute(f""" - UPDATE JONCTION SET + UPDATE _JONCTION SET STATION_TYPE = 'inv', ENTREE_ID = {_Current_Ent}, SERIE_RANG = {_Current_Nre_Shot}, @@ -894,7 +918,7 @@ def suivi_serie( _Current_Serie_ID, bar) : """) cursor.execute(f""" - UPDATE VISEE_FLAG SET + UPDATE _VISEE_FLAG SET SERIE_ID = {_Current_Serie_ID}, ENTREE_ID = {_Current_Ent}, SERIE_RANG = {_Current_Nre_Shot} @@ -914,7 +938,7 @@ def suivi_serie( _Current_Serie_ID, bar) : _ID_Suite = 0 cursor.execute(f""" - UPDATE SERIE SET + UPDATE _SERIE SET SERIE_DEP_ID = {_Current_Serie_ID}, STATION_DEP_ID = {_Current_Next_Station}, SERIE_NBRE_Shot = {_Current_Nre_Shot}, @@ -928,7 +952,7 @@ def suivi_serie( _Current_Serie_ID, bar) : # print("debug point") cursor.execute(f""" - UPDATE JONCTION SET + UPDATE _JONCTION SET STATION_TYPE = 'arv', ENTREE_ID = {_Current_Ent}, SERIE_RANG = {_Current_Nre_Shot}, @@ -937,7 +961,7 @@ def suivi_serie( _Current_Serie_ID, bar) : """) cursor.execute(f""" - UPDATE VISEE_FLAG SET + UPDATE _VISEE_FLAG SET SERIE_ID = {_Current_Serie_ID}, ENTREE_ID = {_Current_Ent}, SERIE_RANG = {_Current_Nre_Shot} @@ -993,7 +1017,7 @@ def suivi_serie( _Current_Serie_ID, bar) : test_jonction(_Current_Next_Station, _Current_Serie_ID, _Current_Ent) # type: ignore cursor.execute(f""" - UPDATE SERIE SET + UPDATE _SERIE SET SERIE_DEP_ID = {_Current_Serie_ID}, STATION_DEP_ID = {_Current_Next_Station}, SERIE_NBRE_Shot = {_Current_Nre_Shot}, @@ -1008,7 +1032,7 @@ def suivi_serie( _Current_Serie_ID, bar) : cursor.execute(f""" - UPDATE JONCTION SET + UPDATE _JONCTION SET STATION_TYPE = 'dir', ENTREE_ID = {_Current_Ent}, SERIE_RANG = {_Current_Nre_Shot}, @@ -1017,7 +1041,7 @@ def suivi_serie( _Current_Serie_ID, bar) : """) cursor.execute(f""" - UPDATE VISEE_FLAG SET + UPDATE _VISEE_FLAG SET SERIE_ID = {_Current_Serie_ID}, ENTREE_ID = {_Current_Ent}, SERIE_RANG = {_Current_Nre_Shot} @@ -1038,7 +1062,7 @@ def suivi_serie( _Current_Serie_ID, bar) : _ID_Suite = 0 cursor.execute(f""" - UPDATE SERIE SET + UPDATE _SERIE SET SERIE_DEP_ID = {_Current_Serie_ID}, STATION_DEP_ID = {_Current_Next_Station}, SERIE_NBRE_Shot = {_Current_Nre_Shot}, @@ -1049,7 +1073,7 @@ def suivi_serie( _Current_Serie_ID, bar) : """) # type: ignore cursor.execute(f""" - UPDATE JONCTION SET + UPDATE _JONCTION SET STATION_TYPE = 'end', ENTREE_ID = {_Current_Ent}, SERIE_RANG = {_Current_Nre_Shot}, @@ -1058,7 +1082,7 @@ def suivi_serie( _Current_Serie_ID, bar) : """) cursor.execute(f""" - UPDATE VISEE_FLAG SET + UPDATE _VISEE_FLAG SET SERIE_ID = {_Current_Serie_ID}, ENTREE_ID = {_Current_Ent}, SERIE_RANG = {_Current_Nre_Shot} @@ -1127,13 +1151,13 @@ def nouvelles_series(_Current_Station_ID, _Current_Old_Station, _Current_Serie_I # boucle sur liste _Next_Station for Depart in _Next_Station: # type: ignore if _Current_Old_Station != Depart[0] : # type: ignore - cursor.execute(f"UPDATE JONCTION SET SERIE_JONC = {_Current_Serie_ID} WHERE STATION_ID = {_Current_Station_ID};") - cursor.execute(f"UPDATE JONCTION SET ENTREE_ID = {_STATION_ENT_ID} WHERE STATION_ID = {_Current_Station_ID};") - cursor.execute(f"UPDATE JONCTION SET STATION_JONC = {Depart[0]} WHERE STATION_ID = {_Current_Station_ID};") - cursor.execute(f"UPDATE JONCTION SET STATION_TYPE = ? WHERE id = ?", ('jon', _Current_Station_ID)) + cursor.execute(f"UPDATE _JONCTION SET SERIE_JONC = {_Current_Serie_ID} WHERE STATION_ID = {_Current_Station_ID};") + cursor.execute(f"UPDATE _JONCTION SET ENTREE_ID = {_STATION_ENT_ID} WHERE STATION_ID = {_Current_Station_ID};") + cursor.execute(f"UPDATE _JONCTION SET STATION_JONC = {Depart[0]} WHERE STATION_ID = {_Current_Station_ID};") + cursor.execute(f"UPDATE _JONCTION SET STATION_TYPE = ? WHERE id = ?", ('jon', _Current_Station_ID)) if _DIRECTION == 1 : cursor.execute(f""" - INSERT INTO SERIE ( + INSERT INTO _SERIE ( SERIE_DEP_ID, STATION_DEP_ID, SERIE_ARR_ID , @@ -1149,7 +1173,7 @@ def nouvelles_series(_Current_Station_ID, _Current_Old_Station, _Current_Serie_I # print(f"Création Série directe: {cursor.lastrowid} depuis la station: {_Current_Station_ID} vers {Depart[0]} ") elif _DIRECTION == -1 : cursor.execute(f""" - INSERT INTO SERIE ( + INSERT INTO _SERIE ( SERIE_DEP_ID, STATION_DEP_ID, SERIE_ARR_ID , @@ -1183,7 +1207,7 @@ def test_jonction(station, serie, entree) : -- Requête 6: Détection des départs depuis une station (visée directe) SELECT SHOT.TO_ID as TO_ID_RESULT, - --JONCTION.STATION_TYPE, + --_JONCTION.STATION_TYPE, SHOT.LENGTH, CASE WHEN SHOT_FLAG.FLAG = 'srf' THEN SHOT.LENGTH @@ -1196,9 +1220,9 @@ def test_jonction(station, serie, entree) : SHOT.ID -- SHOT_FLAG.FLAG as Type_Flag FROM SHOT - --JOIN JONCTION ON SHOT.TO_ID = JONCTION.STATION_ID + --JOIN _JONCTION ON SHOT.TO_ID = _JONCTION.STATION_ID LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID - WHERE SHOT.FROM_ID = {station} -- AND JONCTION.STATION_TYPE IS NULL + WHERE SHOT.FROM_ID = {station} -- AND _JONCTION.STATION_TYPE IS NULL -- AND ( SELECT SHOT.TO_ID FROM SHOT WHERE SHOT.FROM_ID = TO_ID_RESULT) """) depart = cursor.fetchall() @@ -1207,7 +1231,7 @@ def test_jonction(station, serie, entree) : -- Requête 7: Détection des arrivées depuis une station (Visée inverse) SELECT SHOT.FROM_ID as FROM_ID_RESULT, - --JONCTION.STATION_TYPE, + --_JONCTION.STATION_TYPE, SHOT.LENGTH, CASE WHEN SHOT_FLAG.FLAG = 'srf' THEN SHOT.LENGTH @@ -1220,16 +1244,16 @@ def test_jonction(station, serie, entree) : SHOT.ID -- SHOT_FLAG.FLAG FROM SHOT - --JOIN JONCTION ON SHOT.FROM_ID = JONCTION.STATION_ID + --JOIN _JONCTION ON SHOT.FROM_ID = _JONCTION.STATION_ID LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID - WHERE SHOT.TO_ID = {station} --AND JONCTION.STATION_TYPE IS NULL - --AND ( SELECT JONCTION.STATION_TYPE FROM JONCTION WHERE SHOT.TO_ID = FROM_ID_RESULT + WHERE SHOT.TO_ID = {station} --AND _JONCTION.STATION_TYPE IS NULL + --AND ( SELECT _JONCTION.STATION_TYPE FROM _JONCTION WHERE SHOT.TO_ID = FROM_ID_RESULT """) arrivee = cursor.fetchall() total = arrivee + depart # type: ignore for row in total: # type: ignore - cursor.execute(f"SELECT JONCTION.STATION_TYPE FROM JONCTION WHERE JONCTION.STATION_ID = {row[0]}") + cursor.execute(f"SELECT _JONCTION.STATION_TYPE FROM _JONCTION WHERE _JONCTION.STATION_ID = {row[0]}") # if row[1] == 5017: @@ -1239,21 +1263,21 @@ def test_jonction(station, serie, entree) : val = str(retour[0]) if val != '(None,)' : - cursor.execute(f"UPDATE JONCTION SET STATION_TYPE = ? WHERE id = ?", ('jon', row[0])) - cursor.execute(f"SELECT JONCTION.ENTREE_ID FROM JONCTION WHERE JONCTION.STATION_ID = {row[0]}") + cursor.execute(f"UPDATE _JONCTION SET STATION_TYPE = ? WHERE id = ?", ('jon', row[0])) + cursor.execute(f"SELECT _JONCTION.ENTREE_ID FROM _JONCTION WHERE _JONCTION.STATION_ID = {row[0]}") retour = cursor.fetchall() - cursor.execute(f"SELECT JONCTION.SERIE_ID FROM JONCTION WHERE JONCTION.STATION_ID = {row[0]}") + cursor.execute(f"SELECT _JONCTION.SERIE_ID FROM _JONCTION WHERE _JONCTION.STATION_ID = {row[0]}") _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]}") - cursor.execute(f"INSERT INTO RESEAU ( STATION_JONC, ENT_1, ENT_2) VALUES (?, ?, ?)", (row[0], entree, retour[0][0])) + 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): # print (f"\033[34m\tJonction à la Station_ID: {row[0]} entre les series {serie} et {_serie[0][0]}{Colors.ENDC}") - cursor.execute(f"SELECT JONCTION.STATION_TYPE FROM JONCTION WHERE JONCTION.STATION_ID = {station}") + cursor.execute(f"SELECT _JONCTION.STATION_TYPE FROM _JONCTION WHERE _JONCTION.STATION_ID = {station}") retour = cursor.fetchall() val = str(retour[0]) @@ -1261,10 +1285,10 @@ def test_jonction(station, serie, entree) : #print (f"Pas de jonction à la Station_ID: {station}, retour: {val}") return False else : - cursor.execute(f"UPDATE JONCTION SET STATION_TYPE = ? WHERE id = ?", ('jon', station)) - cursor.execute(f"SELECT JONCTION.ENTREE_ID FROM JONCTION WHERE JONCTION.STATION_ID = {station}") + cursor.execute(f"UPDATE _JONCTION SET STATION_TYPE = ? WHERE id = ?", ('jon', station)) + cursor.execute(f"SELECT _JONCTION.ENTREE_ID FROM _JONCTION WHERE _JONCTION.STATION_ID = {station}") retour = cursor.fetchall() - cursor.execute(f"SELECT JONCTION.SERIE_ID FROM JONCTION WHERE JONCTION.STATION_ID = {station}") + cursor.execute(f"SELECT _JONCTION.SERIE_ID FROM _JONCTION WHERE _JONCTION.STATION_ID = {station}") _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 : @@ -1278,27 +1302,380 @@ def test_jonction(station, serie, entree) : error_count += 1 return - + + +##################################################################################################################################### +# Nombres au format 'french' # +##################################################################################################################################### +def format_french_number(value): + """Formate un nombre en style français ou retourne la valeur si ce n'est pas un nombre""" + try: + # Essayer de convertir en float si ce n'est pas déjà un nombre + if not isinstance(value, (int, float)): + # Si c'est une chaîne qui ressemble à un nombre, on la convertit + if isinstance(value, str): + # Nettoyer la chaîne (enlever espaces, virgules, etc.) + cleaned = value.replace(" ", "").replace(",", ".") + if cleaned.replace("-", "").replace(".", "").isdigit(): + value = float(cleaned) + else: + return value + else: + return value + + # Formatage du nombre + if isinstance(value, float) and (value != value or abs(value) == float('inf')): + return value # NaN ou infini + + sign = "-" if value < 0 else "" + val_abs = abs(value) + formatted = f"{val_abs:,.2f}".replace(",", " ").replace(".", ",") + return f"{sign}{formatted}" + + except (ValueError, TypeError, AttributeError): + # Retourner la valeur originale en cas d'erreur + return value + + ##################################################################################################################################### # Fonction pour exécuter une requête et sauvegarder les résultats dans un fichier texte # ##################################################################################################################################### -def calcul_stats(output_file): +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: - log.info(f"Phase 5: Écriture des statistiques dans fichier {Colors.ENDC}{safe_relpath(output_file, 2)}") - # Enregistrement des résultats dans un fichier texte + ##################################################################################################################################### + # 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", + 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", @@ -1336,7 +1713,7 @@ def calcul_stats(output_file): f", surface: `{results[0][2]:.2f}`\n" ) - cursor.execute("SELECT COUNT(*) AS nbre FROM JONCTION WHERE STATION_TYPE IS NULL") + cursor.execute("SELECT COUNT(*) AS nbre FROM _JONCTION WHERE STATION_TYPE IS NULL") _compteur = cursor.fetchall() compteur = int(_compteur[0][0]) @@ -1410,8 +1787,10 @@ def calcul_stats(output_file): 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) @@ -1432,10 +1811,10 @@ def calcul_stats(output_file): file.writelines(output_file_ligne_csv) if error_count == 0 : - log.info(f"Phase 6: 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, 2)}") else : - log.warning(f"Phase 6: Fin de traitement en {Colors.ENDC}" + duree_formatee + 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: @@ -1474,6 +1853,246 @@ def calcul_stats(output_file): return +def calcul_stats(output_file , filename= "None"): + global error_count + + 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 le fichier: {Colors.ENDC}{safe_relpath(output_file, 2)}") + + ############################################################################################################### + # Général + ############################################################################################################### + results = sql_Centerline_length() + cursor.execute("SELECT COUNT(*) AS nbre FROM _JONCTION WHERE STATION_TYPE IS NULL") + _compteur = cursor.fetchall() + compteur = int(_compteur[0][0]) + results2=sql_bilan_reseaux() + results3=sql_bilan_annee() + 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) + + ############################################################################################################### + # Fichiers type markdown + ############################################################################################################### + output_file_ligne_md = [] + + output_file_ligne_md.extend([ + f"--------------\n", + f"# Statistiques de la base {filename}\n", + "| | |\n", + "| :---------------- | :--- |\n", + f"| {titre[2].strip()[2:].replace(":", "|")} |\n", + f"| {titre[3].strip()[2:].replace(":", "|")} |\n", + f"| {titre[4].strip()[2:].replace(":", "|")} |\n", + f"| {titre[5].strip()[2:].replace(":", "|")} |\n", + f"| {titre[6].strip()[2:].replace(":", "|")} |\n", + # f"| {titre[7].strip()[2:].replace(":", "|")}\n", + # f"--------------\n\n", + ]) + + if error_count == 0: + output_file_ligne_md.append("| Durée calcul |" + duree_formatee + " sans erreur |\n") + + else : + 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: + file.writelines(output_file_ligne_md) + + ############################################################################################################### + # Fichiers type csv + ############################################################################################################### + output_file_ligne_csv = [] + + for i in range(9): + output_file_ligne_csv.append(titre[i].ljust(118)+"*\n") + + 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)), # type: ignore + str("{:.2f}".format(results[0][1]).ljust(_largeurCol)), # type: ignore + str("{:.2f}".format(results[0][2]).ljust(_largeurCol)), # type: ignore + )) + + if compteur > 0 : # type: ignore + output_file_ligne_csv.append(f"Attention, {compteur} station(s) non comptabilisée(s) et raccordée(s)\n\n") + else : + output_file_ligne_csv.append(f"Toutes les stations sont comptabilisées et raccordées\n\n") + + if results2[0][0] != None :# type: ignore + output_file_ligne_csv.append("Développement total par réseaux\n") + for row in results2: # type: ignore + formatted_row = '\t'.join(map(str, row)) + output_file_ligne_csv.append('\t' + formatted_row + '\n') + + if results3[0][0] != None :# type: ignore + output_file_ligne_csv.append("\nDéveloppement total topographié par année(s)\n") + for row in results3: # 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') + + if error_count == 0: + output_file_ligne_csv[7] = "* Durée calcul : " + duree_formatee + " sans erreur" + 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_csv[7] = output_file_ligne_csv[7].ljust(118)+"*\n" + + 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 + +##################################################################################################################################### +# Requête : Longueur totale des centerlines # +##################################################################################################################################### +def sql_Centerline_length(): + global error_count + + sql_query = (""" + 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 + """) + + try: + cursor.execute(sql_query) + result_ent = cursor.fetchall() + + if len(result_ent) == 0 : + error_count += 1 + log.error(f"Attention aucune longueur dans le table des CENTRELINE") + + else : + log.info(f"Table des CENTRELINE, longueur: {Colors.ENDC}{(result_ent)}") + + return result_ent + + except sqlite3.Error as e: + log.error(f"Erreur lors de l'exécution de la requête (sql_Centerline_length):{Colors.ENDC} {e}") + error_count += 1 + return None + + ##################################################################################################################################### # Requête : Table des entrées (Liste des entrées avec coordonnées) # ##################################################################################################################################### @@ -1559,8 +2178,8 @@ def sql_serie_vides(): sql_query5 = (""" SELECT * - FROM SERIE - WHERE SERIE.SERIE_NBRE_SHOT = -1""") + FROM _SERIE + WHERE _SERIE.SERIE_NBRE_SHOT = -1""") try: cursor.execute(sql_query5) # Exécution de la requête SQL retour = cursor.fetchall() @@ -1627,7 +2246,7 @@ def sql_station_depart(station): -- Requête 6: Détection des départs depuis une station (visée directe) SELECT SHOT.TO_ID as TO_ID_RESULT, - --JONCTION.STATION_TYPE, + --_JONCTION.STATION_TYPE, SHOT.LENGTH, CASE WHEN SHOT_FLAG.FLAG = 'srf' THEN SHOT.LENGTH @@ -1640,9 +2259,9 @@ def sql_station_depart(station): -- SHOT_FLAG.FLAG as Type_Flag SHOT.ID FROM SHOT - JOIN JONCTION ON SHOT.TO_ID = JONCTION.STATION_ID + JOIN _JONCTION ON SHOT.TO_ID = _JONCTION.STATION_ID LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID - WHERE SHOT.FROM_ID = {station} AND JONCTION.STATION_TYPE IS NULL + WHERE SHOT.FROM_ID = {station} AND _JONCTION.STATION_TYPE IS NULL -- AND ( SELECT SHOT.TO_ID FROM SHOT WHERE SHOT.FROM_ID = TO_ID_RESULT) """) retour = cursor.fetchall() @@ -1667,7 +2286,7 @@ def sql_station_arrivee(station): -- Requête 7: Détection des arrivées depuis une station (Visée inverse) SELECT SHOT.FROM_ID as FROM_ID_RESULT, - --JONCTION.STATION_TYPE, + --_JONCTION.STATION_TYPE, SHOT.LENGTH, CASE WHEN SHOT_FLAG.FLAG = 'srf' THEN SHOT.LENGTH @@ -1680,10 +2299,10 @@ def sql_station_arrivee(station): SHOT.ID -- SHOT_FLAG.FLAG FROM SHOT - JOIN JONCTION ON SHOT.FROM_ID = JONCTION.STATION_ID + JOIN _JONCTION ON SHOT.FROM_ID = _JONCTION.STATION_ID LEFT JOIN SHOT_FLAG ON SHOT.ID = SHOT_FLAG.SHOT_ID - WHERE SHOT.TO_ID = {station} AND JONCTION.STATION_TYPE IS NULL - --AND ( SELECT JONCTION.STATION_TYPE FROM JONCTION WHERE SHOT.TO_ID = FROM_ID_RESULT + WHERE SHOT.TO_ID = {station} AND _JONCTION.STATION_TYPE IS NULL + --AND ( SELECT _JONCTION.STATION_TYPE FROM _JONCTION WHERE SHOT.TO_ID = FROM_ID_RESULT """) retour = cursor.fetchall() # if len(retour) == 0 print(f"Aucune arrivée depuis la station: {station}") @@ -1707,14 +2326,14 @@ def sql_bilan_serie(): -- Bilan table série select --STATION.NAME, - -- 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, + -- 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 - FROM SERIE - JOIN STATION ON SERIE.STATION_ENT_ID = STATION.ID + FROM _SERIE + JOIN STATION ON _SERIE.STATION_ENT_ID = STATION.ID """) retour = cursor.fetchall() return retour @@ -1750,21 +2369,21 @@ def sql_bilan_reseaux(): --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 + -- 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 + 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 + GROUP BY _SERIE.RESEAU_ID ORDER BY Long DESC """) result = cursor.fetchall() @@ -1783,13 +2402,13 @@ def sql_bilan_reseaux(): cursor.execute(f""" select COALESCE(round(sum(SHOT.length), 2), 0) as ttl, - count(VISEE_FLAG.ID) as count, + count(_VISEE_FLAG.ID) as count, STATION_TO.NAME as To_Name - from VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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]} + 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]) @@ -1798,13 +2417,13 @@ def sql_bilan_reseaux(): cursor.execute(f""" select COALESCE(round(sum(SHOT.length), 2), 0) as ttl, - count(VISEE_FLAG.ID) as count, + count(_VISEE_FLAG.ID) as count, STATION_TO.NAME as To_Name - from VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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]} + WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='dpl' and _VISEE_FLAG.RESEAU_ID ={row[0]} """) _result_length_dpl = cursor.fetchall() @@ -1814,13 +2433,13 @@ def sql_bilan_reseaux(): cursor.execute(f""" select COALESCE(round(sum(SHOT.length), 2), 0) as ttl, - count(VISEE_FLAG.ID) as count, + count(_VISEE_FLAG.ID) as count, STATION_TO.NAME as To_Name - from VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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]} + WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='srf' and _VISEE_FLAG.RESEAU_ID ={row[0]} """) _result_length_srf = cursor.fetchall() @@ -1830,23 +2449,23 @@ def sql_bilan_reseaux(): # ligne = [ 'none', 0, 0, 0, 0, 0, 0, 'none', 0, 'none', 0, 0] cursor.execute(f""" - -- Liste des entrée dans la table RESEAU + -- Liste des entrée dans la table _RESEAU SELECT - --RESEAU.ENT_1 AS ENT_ID, - --RESEAU.RESEAU_ID, + --_RESEAU.ENT_1 AS ENT_ID, + --_RESEAU.RESEAU_ID, STATION.NAME --STATION.Z - FROM RESEAU - JOIN STATION ON RESEAU.ENT_1 = STATION.ID + 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, + --_RESEAU.ENT_2 AS ENT_ID, + --_RESEAU.RESEAU_ID, STATION.NAME --STATION.Z - FROM RESEAU - JOIN STATION ON RESEAU.ENT_2 = STATION.ID + FROM _RESEAU + JOIN STATION ON _RESEAU.ENT_2 = STATION.ID WHERE RESEAU_ID = {row[0]} GROUP BY STATION.NAME ORDER BY STATION.NAME @@ -1864,10 +2483,9 @@ def sql_bilan_reseaux(): 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 Ent. + 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. @@ -1882,8 +2500,8 @@ def sql_bilan_reseaux(): join ( select Min(STATION.Z) as Val_Min from STATION - join JONCTION on STATION.ID = JONCTION.STATION_ID - WHERE JONCTION.RESEAU_ID = {row[0]} + join _JONCTION on STATION.ID = _JONCTION.STATION_ID + WHERE _JONCTION.RESEAU_ID = {row[0]} ) min on STATION.Z = min.Val_Min LIMIT 1 """) @@ -1901,8 +2519,8 @@ def sql_bilan_reseaux(): join ( select Max(STATION.Z) as Val_Max from STATION - join JONCTION on STATION.ID = JONCTION.STATION_ID - WHERE JONCTION.RESEAU_ID = {row[0]} + join _JONCTION on STATION.ID = _JONCTION.STATION_ID + WHERE _JONCTION.RESEAU_ID = {row[0]} ) max on STATION.Z = max.Val_Max LIMIT 1 """) @@ -1924,14 +2542,14 @@ def sql_bilan_reseaux(): cursor.execute(f""" SELECT sum (SHOT.LENGTH) as Long - FROM VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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 + 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() @@ -1943,14 +2561,14 @@ def sql_bilan_reseaux(): cursor.execute(f""" SELECT sum (SHOT.LENGTH) as Long - FROM VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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' + 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() @@ -1962,14 +2580,14 @@ def sql_bilan_reseaux(): cursor.execute(f""" SELECT sum (SHOT.LENGTH) as Long - FROM VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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' + 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 : @@ -1980,19 +2598,20 @@ def sql_bilan_reseaux(): cursor.execute(f""" SELECT count (SHOT.LENGTH) as Long - FROM VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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' + 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 : _result_count = 0.0 + else : _result_count = result_count[0][0] @@ -2015,8 +2634,8 @@ def sql_bilan_reseaux(): join ( select Min(STATION.Z) as Val_Min from STATION - join JONCTION on STATION.ID = JONCTION.STATION_ID - WHERE JONCTION.SERIE_ID is null + join _JONCTION on STATION.ID = _JONCTION.STATION_ID + WHERE _JONCTION.SERIE_ID is null ) min on STATION.Z = min.Val_Min LIMIT 1 """) @@ -2025,6 +2644,7 @@ def sql_bilan_reseaux(): if len(altitude_min) == 0 : _altitude_min = 0.0 _altitude_min_name = 'None' + else : _altitude_min = altitude_min[0][1] _altitude_min_name = str(altitude_min[0][0]) @@ -2041,8 +2661,8 @@ def sql_bilan_reseaux(): join ( select Max(STATION.Z) as Val_Max from STATION - join JONCTION on STATION.ID = JONCTION.STATION_ID - WHERE JONCTION.SERIE_ID is null + join _JONCTION on STATION.ID = _JONCTION.STATION_ID + WHERE _JONCTION.SERIE_ID is null ) max on STATION.Z = max.Val_Max LIMIT 1 """) @@ -2051,6 +2671,7 @@ def sql_bilan_reseaux(): if len(altitude_max) == 0 : _altitude_max = 0.0 _altitude_max_name = 'None' + else : _altitude_max = altitude_max[0][1] _altitude_max_name = str(altitude_max[0][0]) @@ -2073,10 +2694,10 @@ def sql_bilan_reseaux(): cursor.execute(f""" select COALESCE(round(sum(SHOT.length), 2), 0) as ttl, - count(VISEE_FLAG.ID) as count, + count(_VISEE_FLAG.ID) as count, STATION_TO.NAME as To_Name - from VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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 @@ -2089,10 +2710,10 @@ def sql_bilan_reseaux(): cursor.execute(f""" SELECT COALESCE(round(sum(SHOT.length), 2), 0) as ttl, - count(VISEE_FLAG.ID) as count, + count(_VISEE_FLAG.ID) as count, STATION_TO.NAME as To_Name - FROM VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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' @@ -2105,10 +2726,10 @@ def sql_bilan_reseaux(): cursor.execute(f""" SELECT COALESCE(round(sum(SHOT.length), 2), 0) as ttl, - count(VISEE_FLAG.ID) as count, + count(_VISEE_FLAG.ID) as count, STATION_TO.NAME as To_Name - FROM VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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' @@ -2119,14 +2740,14 @@ def sql_bilan_reseaux(): result_shot += int(_result_length_srf[0][1]) cursor.execute(f""" - -- Bilan table VISEE_FLAG By entrées + -- Bilan table _VISEE_FLAG By entrées select ENTREE_ID --STATION.NAME - FROM VISEE_FLAG - JOIN STATION ON VISEE_FLAG.ENTREE_ID = STATION.ID + FROM _VISEE_FLAG + JOIN STATION ON _VISEE_FLAG.ENTREE_ID = STATION.ID WHERE SERIE_ID >0 - GROUP BY VISEE_FLAG.ENTREE_ID + GROUP BY _VISEE_FLAG.ENTREE_ID """) _result_entrees = cursor.fetchall() @@ -2135,7 +2756,6 @@ def sql_bilan_reseaux(): result2 = sql_liste_entree() _total_entrees_non_topo = len(result2) - _total_entrees_topo # type: ignore - if _result_length[0][1] != None : ligne = [ ' - ', " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - ", " - "] @@ -2155,7 +2775,7 @@ def sql_bilan_reseaux(): join ( select Min(STATION.Z) as Val_Min from STATION - join JONCTION on STATION.ID = JONCTION.STATION_ID + join _JONCTION on STATION.ID = _JONCTION.STATION_ID ) min on STATION.Z = min.Val_Min LIMIT 1 """) @@ -2173,7 +2793,7 @@ def sql_bilan_reseaux(): join ( select Max(STATION.Z) as Val_Max from STATION - join JONCTION on STATION.ID = JONCTION.STATION_ID + join _JONCTION on STATION.ID = _JONCTION.STATION_ID ) max on STATION.Z = max.Val_Max LIMIT 1 """) @@ -2185,6 +2805,7 @@ def sql_bilan_reseaux(): for i in range(9): ligne[i+1] = ligne[i+1].ljust(_largeurCol) retour.append(ligne) + else : _total_entrees_non_topo = 0 _total_entrees_topo = 0 @@ -2194,14 +2815,14 @@ def sql_bilan_reseaux(): # Liste des entrées uniques ############################################################################################################### cursor.execute(f""" - -- Bilan table VISEE_FLAG By entrées + -- Bilan table _VISEE_FLAG By entrées select ENTREE_ID, STATION.NAME - FROM VISEE_FLAG - JOIN STATION ON VISEE_FLAG.ENTREE_ID = STATION.ID + 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 + GROUP BY _VISEE_FLAG.ENTREE_ID """) result = cursor.fetchall() @@ -2213,13 +2834,13 @@ def sql_bilan_reseaux(): cursor.execute(f""" select COALESCE(round(sum(SHOT.length), 2), 0) as ttl, - count(VISEE_FLAG.ID) as count, + count(_VISEE_FLAG.ID) as count, STATION_TO.NAME as To_Name - from VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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]} + WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG is null and _VISEE_FLAG.ENTREE_ID ={row[0]} """) _result_length = cursor.fetchall() @@ -2229,13 +2850,13 @@ def sql_bilan_reseaux(): cursor.execute(f""" select COALESCE(round(sum(SHOT.length), 2), 0) as ttl, - count(VISEE_FLAG.ID) as count, + count(_VISEE_FLAG.ID) as count, STATION_TO.NAME as To_Name - from VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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]} + WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='dpl' and _VISEE_FLAG.ENTREE_ID ={row[0]} """) _result_length_dpl = cursor.fetchall() @@ -2245,13 +2866,13 @@ def sql_bilan_reseaux(): cursor.execute(f""" select COALESCE(round(sum(SHOT.length), 2), 0) as ttl, - count(VISEE_FLAG.ID) as count, + count(_VISEE_FLAG.ID) as count, STATION_TO.NAME as To_Name - from VISEE_FLAG - JOIN SHOT ON SHOT.ID = VISEE_FLAG.SHOT_ID + 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]} + WHERE To_Name!='.' AND To_Name!='-' AND SHOT_FLAG.FLAG ='srf' and _VISEE_FLAG.ENTREE_ID ={row[0]} """) _result_length_srf = cursor.fetchall() @@ -2277,8 +2898,8 @@ def sql_bilan_reseaux(): join ( select Min(STATION.Z) as Val_Min from STATION - join JONCTION on STATION.ID = JONCTION.STATION_ID - WHERE JONCTION.ENTREE_ID = {row[0]} + join _JONCTION on STATION.ID = _JONCTION.STATION_ID + WHERE _JONCTION.ENTREE_ID = {row[0]} ) min on STATION.Z = min.Val_Min LIMIT 1 """) @@ -2296,8 +2917,8 @@ def sql_bilan_reseaux(): join ( select Max(STATION.Z) as Val_Max from STATION - join JONCTION on STATION.ID = JONCTION.STATION_ID - WHERE JONCTION.ENTREE_ID = {row[0]} + join _JONCTION on STATION.ID = _JONCTION.STATION_ID + WHERE _JONCTION.ENTREE_ID = {row[0]} ) max on STATION.Z = max.Val_Max LIMIT 1 """) @@ -2335,8 +2956,8 @@ def sql_bilan_reseaux(): 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' + 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 """) @@ -2354,8 +2975,8 @@ def sql_bilan_reseaux(): 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' + 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 """) @@ -2376,6 +2997,7 @@ def sql_bilan_reseaux(): 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[0] = entetes[0].ljust(_largeurColTete) + for i in range(9): entetes[i+1] = entetes[i+1].ljust(_largeurCol) _corps_retour = sorted(retour, key=cle_tri, reverse=True) @@ -2411,20 +3033,20 @@ def sql_optimisation(): try: indexes = [ - # SERIE + # _SERIE ("idx_serie_reseau", """ CREATE INDEX IF NOT EXISTS idx_serie_reseau - ON SERIE (RESEAU_ID) + ON _SERIE (RESEAU_ID) """), ("idx_serie_station", """ CREATE INDEX IF NOT EXISTS idx_serie_station - ON SERIE (STATION_ENT_ID) + ON _SERIE (STATION_ENT_ID) """), ("idx_serie_reseau_station", """ CREATE INDEX IF NOT EXISTS idx_serie_reseau_station - ON SERIE (RESEAU_ID, STATION_ENT_ID) + ON _SERIE (RESEAU_ID, STATION_ENT_ID) """), # STATION @@ -2795,8 +3417,8 @@ def PlotExploYears(graph_name, rangeyear = [1959, datetime.now().year], systems # # ##################################################################################################################################### if __name__ == '__main__': - _largeurColTete = 30 - _largeurCol = 10 + _largeurColTete = 35 + _largeurCol = 15 avt_compteur = 0 error_count = 0 visee_suprimmees= [ 0.0, 0.0, 0.0, 0] # Lg, Lg dpl, Lg surf @@ -2824,7 +3446,7 @@ if __name__ == '__main__': default="sync", choices=["sync", "update", "test"], help=( - f"Options d'execution de pythStat.py\nsync\t-> Synchronisation des données depuis une nouvelle base de données(défaut)\n" + f"Options d'execution de pyThStat.py\nsync\t-> Synchronisation des données depuis une nouvelle base de données (défaut)\n" f"update\t-> Mise à jour des statistiques de la base de données\n" ) ) @@ -2857,7 +3479,7 @@ if __name__ == '__main__': # print("Le paramètre fourni est:", input_file_name) if os.path.isfile(input_file_name) is False : print(f"{Colors.ERROR}Erreur : fichier {Colors.ENDC}{input_file_name}{Colors.ERROR} inexistant{Colors.ENDC}") - print(f"{Colors.ERROR}Commande : {Colors.ENDC}python pythStat.py -file votre_fichier_therion.sql") + print(f"{Colors.ERROR}Commande : {Colors.ENDC}python pyThStat.py -file votre_fichier_therion.sql") sys.exit() else : @@ -2869,7 +3491,8 @@ if __name__ == '__main__': else: print("\n" * 100) - outputfolder = outputs_path + "Stats_" + input_file[:-4] + "_" + maintenant.strftime("%Y-%m-%d") + "/" + # outputfolder = outputs_path + "Stats_" + input_file[:-4] + "_" + maintenant.strftime("%Y-%m-%d") + "/" + outputfolder = outputs_path + input_file[:-4] + "_Stats" + "/" if not os.path.exists(outputfolder): os.makedirs(outputfolder) @@ -2888,12 +3511,12 @@ if __name__ == '__main__': _titre =[f'{Colors.MAGENTA}{Colors.BOLD}**********************************************************************************************************************{Colors.ENDC}', f'{Colors.MAGENTA}{Colors.BOLD}* Calcul des statistiques par entrées d\'une BD Therion{Colors.ENDC} ', - f'{Colors.MAGENTA}{Colors.BOLD}* Script pythStat par : {Colors.ENDC}alexandre.pont@yahoo.fr ', + f'{Colors.MAGENTA}{Colors.BOLD}* Script pyThStat par : {Colors.ENDC}alexandre.pont@yahoo.fr ', f'{Colors.MAGENTA}{Colors.BOLD}* Version : {Colors.ENDC}{globalDat.Version} ', f'{Colors.MAGENTA}{Colors.BOLD}* Fichier source : {Colors.ENDC}{safe_relpath(input_file_name)} ', f'{Colors.MAGENTA}{Colors.BOLD}* Dossier destination : {Colors.ENDC}{safe_relpath(outputfolder)} ', - f'{Colors.MAGENTA}{Colors.BOLD}* Date : {Colors.ENDC}{maintenant.strftime("%Y-%m-%d %H:%M:%S")} ', - f'{Colors.MAGENTA}{Colors.BOLD}* {Colors.ENDC} ', + f'{Colors.MAGENTA}{Colors.BOLD}* Date : {Colors.ENDC}{maintenant.strftime("%Y-%m-%d %Hh%Mm%Ss")} ', + f'{Colors.MAGENTA}{Colors.BOLD}* Mode : {Colors.ENDC}{args.option}', f'{Colors.MAGENTA}{Colors.BOLD}**********************************************************************************************************************{Colors.ENDC}'] @@ -2903,33 +3526,43 @@ if __name__ == '__main__': if args.option == "sync" : importation_sql_data(input_file_name) - conn = sqlite3.connect(imported_database) # Connexion à la base de données SQLite cursor = conn.cursor() - construction_tables() - sql_optimisation() - - calcul_stats(output_file_name) + calcul_stats(output_file_name, 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) + calcul_stats(output_file_name, input_file[:-4]) elif args.option == "test" : - conn = sqlite3.connect(imported_database) # Connexion à la base de données SQLite cursor = conn.cursor() - value = sql_shot_full_name("16883") - print(value) conn.close() + duree = datetime.now() - 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 = f"{heures:02d}{Colors.INFO}(h){Colors.ENDC}{minutes:02d}{Colors.INFO}(m){Colors.ENDC}{secondes:02d}{Colors.INFO}(s)" + + elif duree.seconds > 60: + duree_formatee = f"{minutes:02d}{Colors.INFO}(m){Colors.ENDC}{secondes:02d}{Colors.INFO}(s)" + + else : + duree_formatee = f"{secondes:02d}{Colors.INFO}(s)" + + if error_count == 0 : + log.info(f"Execution terminée sans erreur en {Colors.ENDC}{duree_formatee}{Colors.INFO}") + + else : + log.warning(f"Execution terminée avec {Colors.ENDC}{error_count}{Colors.WARNING} erreurs en {Colors.ENDC}{duree_formatee}{Colors.WARNING}, verifier le log") diff --git a/Scripts/pyThtoQgis/pyThtoQgis-VSCode.code-workspace b/Scripts/pyThtoQgis/pyThtoQgis.code-workspace similarity index 100% rename from Scripts/pyThtoQgis/pyThtoQgis-VSCode.code-workspace rename to Scripts/pyThtoQgis/pyThtoQgis.code-workspace