Pedestrian Graph “Planpraz”#
[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>