Planpraz (Chamonix-Mont-Blanc)#

Chargement des librairies#

[1]:
import os
import sys

import matplotlib.pyplot as plt

# Ajout dans la variable PATH du système du chemin où est installée la librairie tracklib
module_path = os.path.abspath(os.path.join('../../../../tracklib'))
if module_path not in sys.path:
    sys.path.append(module_path)
# Alias pour tracklib
import tracklib as tkl

# Ajout dans la variable PATH du système du chemin où est installée la librairie footprint2graph
module_path = os.path.abspath(os.path.join('../../..'))
if module_path not in sys.path:
    sys.path.append(module_path)
[2]:
import matplotlib.pyplot as plt
import os
import time

from footprint2graph import run_iteration
from footprint2graph import read_config

from footprint2graph.util.Outdoorvision import load_raw_tracks_split

Chargement des paramètres#

[3]:
print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
print ('`````````````````````````````````````````````````````````````````````')
print ('             Generate a footprint graph                              ')
print ('                      from hiking trajectories                       ')
print ('                      in the Planpraz, summer 2024.                  ')
print ('’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’')
print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
print ('')


""" ======================================================================= """
"""     Load parameters                                                     """
"""                                                                         """

config_path = r'/home/md_vandamme/7_LIB/footprint2graph/data/config_planpraz.yml'
config = read_config(config_path)


print('Paramètres relevés dans la configuration: ')
print ('Résultats enregistrés dans le répertoire: ', config['output']['RESULT_PATH'])

NBITER = int(config['graph_construction']['NUM_ITERATIONS'])
print ('Number of iterations: ', NBITER)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
`````````````````````````````````````````````````````````````````````
             Generate a footprint graph
                      from hiking trajectories
                      in the Planpraz, summer 2024.
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Paramètres relevés dans la configuration:
Résultats enregistrés dans le répertoire:  /home/md_vandamme/4_RESEAU/ZTEMPZ2/
Number of iterations:  2

Chargement des données#

Les données proviennent de la plateforme Outdoorvision. Après avoir été formatées au format CSV, elles sont chargées dans une collection qui servira d’entrée au pipeline.

[4]:
""" ======================================================================= """
"""     Chargement de la collection de traces                               """
"""                                                                         """

# chemin où sont stockés les traces Outdoorvision:
tracespathsource = r'/home/md_vandamme/5_GPS/OV/CHAM/walk/'

# Paramètre : Coordonnées de la zone d'étude sur laquelle on construit le réseau
#                           Polygone sous la forme d'un tableau de X et de Y
# traces de la zone 1 (3km x 3km)
X = [996920, 998373, 999071, 999347, 998623, 997890, 996638, 996920]
Y = [6542674, 6542770, 6543183, 6543820, 6544857, 6544992, 6544973, 6542674]

fmt = tkl.TrackFormat({'ext': 'CSV',
                       'srid': 'ENU',
                       'id_E': 1, 'id_N': 0, 'id_U': 3, 'id_T': 2,
                       'time_fmt': '2D/2M/4Y 2h:2m:2s',
                       'separator': ';',
                       'header': 0,
                       'cmt': '#',
                       'read_all': True})
collection = load_raw_tracks_split(config['output']['RESULT_PATH'],
                                   tracespathsource, fmt, X, Y)

Loading and split outdoorvision track data...
Reading track data...
     Number files to load:  21211
Starting split ...
     500 / 21211
     1000 / 21211
     1500 / 21211
     2000 / 21211
     2500 / 21211
     3000 / 21211
     3500 / 21211
     4000 / 21211
     4500 / 21211
     5000 / 21211
     5500 / 21211
     6000 / 21211
     6500 / 21211
     7000 / 21211
     7500 / 21211
     8000 / 21211
     8500 / 21211
     9000 / 21211
     9500 / 21211
     10000 / 21211
     10500 / 21211
     11000 / 21211
     11500 / 21211
     12000 / 21211
     12500 / 21211
     13000 / 21211
     13500 / 21211
     14000 / 21211
     14500 / 21211
     15000 / 21211
     15500 / 21211
     16000 / 21211
     16500 / 21211
     17000 / 21211
     17500 / 21211
     18000 / 21211
     18500 / 21211
     19000 / 21211
     19500 / 21211
     20000 / 21211
     20500 / 21211
     21000 / 21211
     Number of tracks after split: 1451

Lancement du pipeline#

[5]:
# =====================================================================
#    Appel des pipelines pour le nombre d'itérations nécessaires
#

for idx in range(0, NBITER):
    iteration_index = int(idx) + 1

    # run pipeline for the ith iteration
    run_iteration(iteration_index, config, collection)

print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
print ('`````````````````````````````````````````````````````````````````````')
print ('                           FIN                                       ')
print ('’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’')
print ('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
-----------------------------------------------------------------
-----------------------------------------------------------------
              ITERATION  1
-----------------------------------------------------------------
-----------------------------------------------------------------
Starting segmentation and resampling...
Starting segmentation ...
     500 / 1451
     1000 / 1451
    Number of tracks after segmentation: 2015
Finished saving segmented tracks.
Starting resampling ...
    Number of tracks to resample:  2015
    Number of tracks after resampling: 2015
    Number of tracks after resampling: 2015
Finished saving resampled tracks.
Stage 1 finished: segmentation and resampling.
Starting rasterization and vectorization (iteration 1)

    Loading tracks from :  resample_grid
    Number of tracks to load:  2015
    Building high-resolution geometry density grid G1 :  2 m ...
    Building low-resolution contextual density grid G2 :  30 m ...
    Assigning track points to the G1 and G2 grids
         500 / 2015
         1000 / 2015
         1500 / 2015
         2000 / 2015
    Computing G1 ...
    Computing G2 ...
    Number of neighboring cells to consider: 7
    Building contrast grid :  2 m
    Execution time (seconds): 123.5079653263092
    Finished heatmap computation.
    Starting morphological closing image ...
    Execution time (seconds): 23.947893857955933
    Finished morphological opening.
Vectorizing cleaned image ...
Extracting road surface vector features ...
    Number of polygonize features:  111
    Number of polygonize features copied:  41
    Execution time (seconds): 0.18500256538391113
    Vectorization completed.
Smoothing polygon to remove stair-step artifacts ...
100% (483 of 483) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (2617 of 2617) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
    Execution time (seconds): 2.2707924842834473
    Road surface smoothing completed.
    Starting centerline computation ...
100% (398 of 398) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (467 of 467) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (1055 of 1055) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (927 of 927) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (1079 of 1079) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (1010 of 1010) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (1013 of 1013) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (422 of 422) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (619 of 619) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (585 of 585) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (493 of 493) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (9 of 9) |##########################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (506 of 506) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (3943 of 3943) |####################| Elapsed Time: 0:00:00 Time:  0:00:000:00
100% (744 of 744) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (698 of 698) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (468 of 468) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (548 of 548) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (334 of 334) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (2581 of 2581) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (362 of 362) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (281 of 281) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (469 of 469) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (352 of 352) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (4567 of 4567) |####################| Elapsed Time: 0:00:00 Time:  0:00:000:00
100% (417 of 417) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (771 of 771) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (2837 of 2837) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (308 of 308) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (409 of 409) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (475 of 475) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (533 of 533) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (614 of 614) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (1672 of 1672) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (364 of 364) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (648 of 648) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (805 of 805) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (795 of 795) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (2995 of 2995) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (2739 of 2739) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (2735 of 2735) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
    Execution time (seconds): 3.4580135345458984
    Centerline computed.
Stage 2 completed: rasterization and vectorization.
Starting topology creation for the network
    Number of edges in the skeleton: 7931
    Finished loaded skeleton.
    /home/md_vandamme/4_RESEAU/ZTEMPZ2/network/tmp_in.csv not exists
    /home/md_vandamme/4_RESEAU/ZTEMPZ2/network/tmp_out.csv not exists
 12% (43 of 333) |##                     | Elapsed Time: 0:00:00 ETA:   0:00:01

    Finished removing hooked parts of the skeleton.
100% (333 of 333) |######################| Elapsed Time: 0:00:02 Time:  0:00:020000
100% (333 of 333) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
    Finished simplification of the skeleton.
Building [100 x 87] spatial index...
    on coupe la trace 1
    on coupe la trace 1
    on coupe la trace 2
    on coupe la trace 1
    on coupe la trace 1
    on coupe la trace 2
    Number of edges in the skeleton (after snapping): 339
    Edge count difference after snapping :  6
    Number of edges in the simplified skeleton: 290
    Number of nodes: 340
     Shortest edges limit :  50
    Number of edges in the skeleton (after removing the shortest edges): 3
    Conflation cannot be performed for node  24 ; the three incident edges are too long: 49 24 14
    Conflation cannot be performed for node  27 ; the three incident edges are too long: 7 77 29
    Conflation cannot be performed for node  28 ; the three incident edges are too long: 7 24 55
    Conflation cannot be performed for node  137 ; the three incident edges are too long: 14 13 60
    Conflation cannot be performed for node  138 ; the three incident edges are too long: 14 13 171
    Edge count after conflation: 67
Stage 3 completed: adding topology to the skeleton.
Starting map-matching, aggregation, and conflation of GNSS trajectories.
    Loading network (1) ...
        Number of edges =  67
        Number of nodes =  114
        Total segment length of the network =  21235.511081231256
    Loading collection of tracks ...
100% (114 of 114) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
        Number of tracks: 2015
        Execution time (seconds): 9.441591024398804
    Starting map-matching ...
        Index spatial :  [100 x 87] spatial index centered on [998000.8112047985; 6543905.475636125]
Map-matching preparation...
        Parameter search_radius:  25
        Map-matching ended.
        Execution time (seconds): 603.6405894756317
        Prepare map-matching results for candidate segment generation
    Number of map-matched points = 666297 (86.84 %)
    Map-matching results restructuring completed.
        Map-matching results exported.
Starting construction of candidate trajectory segments for each topology edge ...
    33  candidates for edge 451
    228  candidates for edge 176
    206  candidates for edge 454
    126  candidates for edge 456
    101  candidates for edge 452
    83  candidates for edge 450
    110  candidates for edge 448
    55  candidates for edge 446
    10  candidates for edge 101
    65  candidates for edge 361
    121  candidates for edge 348
    43  candidates for edge 344
    25  candidates for edge 414
    35  candidates for edge 328
    23  candidates for edge 389
    23  candidates for edge 416
    34  candidates for edge 351
    220  candidates for edge 398
    176  candidates for edge 463
    69  candidates for edge 461
    121  candidates for edge 196
    545  candidates for edge 14
    330  candidates for edge 207
    124  candidates for edge 375
    5  candidates for edge 417
    85  candidates for edge 428
    203  candidates for edge 210
    326  candidates for edge 460
    67  candidates for edge 432
    55  candidates for edge 430
    49  candidates for edge 378
    182  candidates for edge 49
    51  candidates for edge 48
    36  candidates for edge 433
    30  candidates for edge 252
    57  candidates for edge 480
    51  candidates for edge 482
    21  candidates for edge 386
    77  candidates for edge 279
    51  candidates for edge 405
    43  candidates for edge 211
    26  candidates for edge 253
    36  candidates for edge 258
    7  candidates for edge 418
    82  candidates for edge 497
    132  candidates for edge 317
    55  candidates for edge 413
    90  candidates for edge 312
    219  candidates for edge 311
    89  candidates for edge 313
    87  candidates for edge 310
    79  candidates for edge 496
    123  candidates for edge 321
    45  candidates for edge 412
    26  candidates for edge 479
    36  candidates for edge 133
    16  candidates for edge 94
    29  candidates for edge 394
    35  candidates for edge 96
    30  candidates for edge 97
    18  candidates for edge 354
    90  candidates for edge 408
    87  candidates for edge 483
    19  candidates for edge 383
    34  candidates for edge 141
    13  candidates for edge 478
    7  candidates for edge 93
    Number of processed edges:  67
    Minimum number of candidate tracks per edge:  5
    Maximum number of candidate traces per edge:  545
    Average number of candidate tracks per edge:  87
    Segment construction completed.
        Execution time (seconds): 33.111122369766235
    Starting track segment aggregation for all network edges ...
        Number of candidate tracks / number of sampled tracks 33 / 30
        Number of candidate tracks / number of sampled tracks 228 / 30
        Number of candidate tracks / number of sampled tracks 206 / 30
        Number of candidate tracks / number of sampled tracks 126 / 30
        Number of candidate tracks / number of sampled tracks 101 / 30
        Number of candidate tracks / number of sampled tracks 83 / 30
        Number of candidate tracks / number of sampled tracks 110 / 30
        Number of candidate tracks / number of sampled tracks 55 / 30
        Number of candidate tracks / number of sampled tracks 10 / 10
        Number of candidate tracks / number of sampled tracks 65 / 30
        Number of candidate tracks / number of sampled tracks 121 / 30
        Number of candidate tracks / number of sampled tracks 43 / 30
        Number of candidate tracks / number of sampled tracks 25 / 25
        Number of candidate tracks / number of sampled tracks 23 / 23
        Number of candidate tracks / number of sampled tracks 23 / 23
        Number of candidate tracks / number of sampled tracks 34 / 30
        Number of candidate tracks / number of sampled tracks 220 / 30
        Number of candidate tracks / number of sampled tracks 176 / 30
        Number of candidate tracks / number of sampled tracks 69 / 30
        Number of candidate tracks / number of sampled tracks 121 / 30
        Number of candidate tracks / number of sampled tracks 124 / 30
        Number of candidate tracks / number of sampled tracks 5 / 5
        Number of candidate tracks / number of sampled tracks 85 / 30
        Number of candidate tracks / number of sampled tracks 203 / 30
        Number of candidate tracks / number of sampled tracks 300 / 30
        Number of candidate tracks / number of sampled tracks 67 / 30
        Number of candidate tracks / number of sampled tracks 55 / 30
        Number of candidate tracks / number of sampled tracks 49 / 30
        Number of candidate tracks / number of sampled tracks 182 / 30
        Number of candidate tracks / number of sampled tracks 51 / 30
        Number of candidate tracks / number of sampled tracks 36 / 30
        Number of candidate tracks / number of sampled tracks 30 / 30
        Number of candidate tracks / number of sampled tracks 57 / 30
        Number of candidate tracks / number of sampled tracks 51 / 30
        Number of candidate tracks / number of sampled tracks 21 / 21
        Number of candidate tracks / number of sampled tracks 77 / 30
        Number of candidate tracks / number of sampled tracks 51 / 30
        Number of candidate tracks / number of sampled tracks 43 / 30
        Number of candidate tracks / number of sampled tracks 26 / 26
        Number of candidate tracks / number of sampled tracks 36 / 30
        Number of candidate tracks / number of sampled tracks 7 / 7
        Number of candidate tracks / number of sampled tracks 82 / 30
        Number of candidate tracks / number of sampled tracks 55 / 30
        Number of candidate tracks / number of sampled tracks 90 / 30
        Number of candidate tracks / number of sampled tracks 79 / 30
        Number of candidate tracks / number of sampled tracks 45 / 30
        Number of candidate tracks / number of sampled tracks 26 / 26
        Number of candidate tracks / number of sampled tracks 36 / 30
        Number of candidate tracks / number of sampled tracks 16 / 16
        Number of candidate tracks / number of sampled tracks 29 / 29
        Number of candidate tracks / number of sampled tracks 18 / 18
        Number of candidate tracks / number of sampled tracks 90 / 30
        Number of candidate tracks / number of sampled tracks 87 / 30
        Number of candidate tracks / number of sampled tracks 19 / 19
        Number of candidate tracks / number of sampled tracks 34 / 30
        Number of candidate tracks / number of sampled tracks 13 / 13
        Number of candidate tracks / number of sampled tracks 7 / 7
        Number of aggregations: 67
        Number of aggregations with 30 traces: 41
        Number of aggregations with fewer than 30 traces: 16
        Minimum number of traces in aggregation: 5
        Average number of traces in aggregation: 62
        Aggregation process finished.
        Execution time (seconds): 73.89605689048767
    Starting conflation ...
        Conflation process finished.
        Execution time (seconds): 0.14773011207580566
Stage 4 completed: map-matching, aggregation, and conflation.
-----------------------------------------------------------------
-----------------------------------------------------------------
              ITERATION  2
-----------------------------------------------------------------
-----------------------------------------------------------------
Number of tracks map matched : 2015
5720
Starting rasterization and vectorization (iteration 2)

    Loading tracks from :  points_not_mm_2
    Number of tracks to load:  5720
    Building high-resolution geometry density grid G1 :  2 m ...
    Building low-resolution contextual density grid G2 :  30 m ...
    Assigning track points to the G1 and G2 grids
         500 / 5720
         1000 / 5720
         1500 / 5720
         2000 / 5720
         2500 / 5720
         3000 / 5720
         3500 / 5720
         4000 / 5720
         4500 / 5720
         5000 / 5720
         5500 / 5720
    Computing G1 ...
    Computing G2 ...
    Number of neighboring cells to consider: 7
    Building contrast grid :  2 m
    Execution time (seconds): 55.25071835517883
    Finished heatmap computation.
    Starting morphological closing image ...
    Execution time (seconds): 24.48509693145752
    Finished morphological opening.
Vectorizing cleaned image ...
Extracting road surface vector features ...
    Number of polygonize features:  77
    Number of polygonize features copied:  47
    Execution time (seconds): 0.10633659362792969
    Vectorization completed.
Smoothing polygon to remove stair-step artifacts ...
100% (107 of 107) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (128 of 128) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (161 of 161) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (533 of 533) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (85 of 85) |########################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (659 of 659) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (212 of 212) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (263 of 263) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (131 of 131) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (213 of 213) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (213 of 213) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (118 of 118) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (324 of 324) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
    Execution time (seconds): 0.7621243000030518
    Road surface smoothing completed.
    Starting centerline computation ...
100% (558 of 558) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (109 of 109) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (180 of 180) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (234 of 234) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (151 of 151) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (231 of 231) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (556 of 556) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (125 of 125) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (175 of 175) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (194 of 194) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (288 of 288) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (117 of 117) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (269 of 269) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (168 of 168) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (350 of 350) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (644 of 644) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (157 of 157) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (189 of 189) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (125 of 125) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (144 of 144) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (121 of 121) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (148 of 148) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (81 of 81) |########################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (439 of 439) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (315 of 315) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (233 of 233) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (79 of 79) |########################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (255 of 255) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (472 of 472) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (127 of 127) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (347 of 347) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (2184 of 2184) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (2734 of 2734) |####################| Elapsed Time: 0:00:00 Time:  0:00:00
100% (284 of 284) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
    Execution time (seconds): 1.2905175685882568
    Centerline computed.
Stage 2 completed: rasterization and vectorization.
Starting topology creation for the network
    Number of edges in the skeleton: 2487
    Finished loaded skeleton.
 37% (56 of 150) |########               | Elapsed Time: 0:00:00 ETA:   0:00:00

    Finished removing hooked parts of the skeleton.
100% (150 of 150) |######################| Elapsed Time: 0:00:01 Time:  0:00:010000
100% (150 of 150) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
    Finished simplification of the skeleton.
Building [100 x 92] spatial index...
    on coupe la trace 1
    on coupe la trace 2
    Number of edges in the skeleton (after snapping): 152
    Edge count difference after snapping :  2
    Number of edges in the simplified skeleton: 126
    Number of nodes: 171
     Shortest edges limit :  50
    Number of edges in the skeleton (after removing the shortest edges): 5
    Conflation cannot be performed for node  50 ; the three incident edges are too long: 31 24 25
    Conflation cannot be performed for node  53 ; the three incident edges are too long: 96 85 37
    Conflation cannot be performed for node  172 ; the three incident edges are too long: 11 36 56
    Conflation cannot be performed for node  174 ; the three incident edges are too long: 11 51 56
    Conflation cannot be performed for node  184 ; the three incident edges are too long: 40 664 411
    Edge count after conflation: 53
Stage 3 completed: adding topology to the skeleton.
Starting map-matching, aggregation, and conflation of GNSS trajectories.
    Loading network (2) ...
        Number of edges =  53
        Number of nodes =  93
        Total segment length of the network =  6180.154927407347
    Loading collection of tracks ...
100% (93 of 93) |########################| Elapsed Time: 0:00:00 Time:  0:00:00
        Number of tracks: 5720
        Execution time (seconds): 9.888888359069824
    Starting map-matching ...
        Index spatial :  [100 x 91] spatial index centered on [998107.2968269091; 6543843.350262897]
Map-matching preparation...
        Parameter search_radius:  25
        Map-matching ended.
        Execution time (seconds): 268.4186022281647
        Prepare map-matching results for candidate segment generation
    Number of map-matched points = 650800 (84.61 %)
    Map-matching results restructuring completed.
        Map-matching results exported.
Starting construction of candidate trajectory segments for each topology edge ...
    145  candidates for edge 25
    30  candidates for edge 195
    10  candidates for edge 196
    5  candidates for edge 205
    192  candidates for edge 206
    49  candidates for edge 176
    29  candidates for edge 148
    40  candidates for edge 149
    54  candidates for edge 150
    0  candidates for edge 165
    1  candidates for edge 207
    85  candidates for edge 187
    82  candidates for edge 93
    84  candidates for edge 168
    116  candidates for edge 103
    70  candidates for edge 139
    81  candidates for edge 211
    35  candidates for edge 91
    15  candidates for edge 197
    12  candidates for edge 181
    158  candidates for edge 100
    40  candidates for edge 192
    37  candidates for edge 201
    24  candidates for edge 204
    38  candidates for edge 200
    2  candidates for edge 208
    64  candidates for edge 188
    14  candidates for edge 33
    42  candidates for edge 32
    111  candidates for edge 193
    11  candidates for edge 24
    8  candidates for edge 54
    50  candidates for edge 135
    35  candidates for edge 210
    18  candidates for edge 129
    3  candidates for edge 209
    133  candidates for edge 169
    23  candidates for edge 69
    149  candidates for edge 107
    16  candidates for edge 189
    8  candidates for edge 167
    55  candidates for edge 27
    39  candidates for edge 159
    1  candidates for edge 194
    14  candidates for edge 160
    26  candidates for edge 190
    75  candidates for edge 134
    64  candidates for edge 186
    27  candidates for edge 133
    28  candidates for edge 172
    8  candidates for edge 183
    2  candidates for edge 70
    6  candidates for edge 178
    Number of processed edges:  53
    Minimum number of candidate tracks per edge:  0
    Maximum number of candidate traces per edge:  192
    Average number of candidate tracks per edge:  46
    Segment construction completed.
        Execution time (seconds): 30.998132467269897
    Starting track segment aggregation for all network edges ...
        Number of candidate tracks / number of sampled tracks 145 / 30
        Number of candidate tracks / number of sampled tracks 30 / 30
        Number of candidate tracks / number of sampled tracks 10 / 10
        Number of candidate tracks / number of sampled tracks 5 / 5
        Number of candidate tracks / number of sampled tracks 192 / 30
        Number of candidate tracks / number of sampled tracks 49 / 30
        Number of candidate tracks / number of sampled tracks 1 / 1
    Only one trajectory available for aggregation: no processing required
        Number of candidate tracks / number of sampled tracks 85 / 30
        Number of candidate tracks / number of sampled tracks 82 / 30
        Number of candidate tracks / number of sampled tracks 84 / 30
        Number of candidate tracks / number of sampled tracks 116 / 30
        Number of candidate tracks / number of sampled tracks 70 / 30
        Number of candidate tracks / number of sampled tracks 81 / 30
        Number of candidate tracks / number of sampled tracks 35 / 30
        Number of candidate tracks / number of sampled tracks 15 / 15
        Number of candidate tracks / number of sampled tracks 12 / 12
        Number of candidate tracks / number of sampled tracks 158 / 30
        Number of candidate tracks / number of sampled tracks 40 / 30
        Number of candidate tracks / number of sampled tracks 37 / 30
        Number of candidate tracks / number of sampled tracks 24 / 24
        Number of candidate tracks / number of sampled tracks 38 / 30
        Number of candidate tracks / number of sampled tracks 2 / 2
        Number of candidate tracks / number of sampled tracks 64 / 30
        Number of candidate tracks / number of sampled tracks 14 / 14
        Number of candidate tracks / number of sampled tracks 42 / 30
        Number of candidate tracks / number of sampled tracks 111 / 30
        Number of candidate tracks / number of sampled tracks 11 / 11
        Number of candidate tracks / number of sampled tracks 8 / 8
        Number of candidate tracks / number of sampled tracks 50 / 30
        Number of candidate tracks / number of sampled tracks 22 / 22
        Number of candidate tracks / number of sampled tracks 3 / 3
        Number of candidate tracks / number of sampled tracks 133 / 30
        Number of candidate tracks / number of sampled tracks 23 / 23
        Number of candidate tracks / number of sampled tracks 149 / 30
        Number of candidate tracks / number of sampled tracks 16 / 16
        Number of candidate tracks / number of sampled tracks 8 / 8
        Number of candidate tracks / number of sampled tracks 55 / 30
        Number of candidate tracks / number of sampled tracks 39 / 30
        Number of candidate tracks / number of sampled tracks 1 / 1
    Only one trajectory available for aggregation: no processing required
        Number of candidate tracks / number of sampled tracks 14 / 14
        Number of candidate tracks / number of sampled tracks 26 / 26
WARNING: TRAJECTORY FUSION HAS NOT CONVERGED (#ITER = 25 - CV = 0.09362863524887388)
        Number of candidate tracks / number of sampled tracks 75 / 30
        Number of candidate tracks / number of sampled tracks 64 / 30
        Number of candidate tracks / number of sampled tracks 27 / 27
        Number of candidate tracks / number of sampled tracks 28 / 28
        Number of candidate tracks / number of sampled tracks 8 / 8
        Number of candidate tracks / number of sampled tracks 2 / 2
        Number of candidate tracks / number of sampled tracks 6 / 6
        Number of aggregations: 52
        Number of aggregations with 30 traces: 24
        Number of aggregations with fewer than 30 traces: 24
        Minimum number of traces in aggregation: 1
        Average number of traces in aggregation: 44
        Aggregation process finished.
        Execution time (seconds): 16.357547283172607
    Starting conflation ...
        Conflation process finished.
        Execution time (seconds): 0.05210399627685547
Stage 4 completed: map-matching, aggregation, and conflation.
Merging the mobility network with the result of iteration 2.
100% (119 of 119) |######################| Elapsed Time: 0:00:00 Time:  0:00:00
Size of collection In  :  67
Size of collection In+1:  52
Size of collection In+In+1:  119
Building [100 x 88] spatial index...
Size of collection In+In+1 avec intersection:  123
        Candidate edge ignored (no intersection)
Size of collection In+In+1 avec intersection et raccordement:  171
Nombre de géométries :  171
Size of reseau de mobilité:  171
End building the mobility network.
==================================================================
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
`````````````````````````````````````````````````````````````````````
                           FIN
’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

On affiche le résultat#

[6]:
fig, ax = plt.subplots(figsize=(20, 16))

fmt = tkl.NetworkFormat({
           "pos_edge_id": 0,
           "pos_source": 1,
           "pos_target": 2,
           "pos_wkt": 4,
           "srid": "ENU",
           "separator": ",",
           "header": 1})
networkpath = config['output']['RESULT_PATH'] + 'merge_2/reseau_mobilite_2.csv'
squelette = tkl.NetworkReader.readFromFile(networkpath, fmt, verbose=False)

L = list(squelette.EDGES.items())
for i in range(len(L)):
    x1d = []
    y1d = []
    edge = L[i][1]
    for j in range(edge.geom.size()):
        x1d.append(edge.geom.getX()[j])
        y1d.append(edge.geom.getY()[j])
    ax.plot(x1d, y1d, 'r-', linewidth=3, label='Mobility Network')


# Supprime les doublons dans la légende
handles, labels = ax.get_legend_handles_labels()
by_label = dict(zip(labels, handles))
ax.legend(by_label.values(), by_label.keys())
[6]:
<matplotlib.legend.Legend at 0x7e6e81ed60b0>
../_images/examples_PedestrianGraphPlanpraz_11_1.png