Skip to content

Commit 111a5d7

Browse files
committed
chore: finished processing all test-data sets
1 parent 715e9a3 commit 111a5d7

28 files changed

+36733
-124840
lines changed

test-data/README.md

Lines changed: 18 additions & 211 deletions
Original file line numberDiff line numberDiff line change
@@ -54,27 +54,10 @@ Each log has its own subdirectory (`log_XXXXX/`) containing the source GNSS CSV
5454
- [Path calculation](#path-calculation-10)
5555
- [Path projection](#path-projection-10)
5656
- [L36-A → L36C-A → L25N-B – log\_31259](#l36-a--l36c-a--l25n-b--log_31259)
57+
- [L36-A → L36C-A → L25N-B, very bad GNSS – log\_28586](#l36-a--l36c-a--l25n-b-very-bad-gnss--log_28586)
5758
- [Simple projection](#simple-projection-11)
5859
- [Path calculation](#path-calculation-11)
5960
- [Path projection](#path-projection-11)
60-
- [Airport branch (L36N)](#airport-branch-l36n)
61-
- [L36N track A – log\_29224](#l36n-track-a--log_29224)
62-
- [Simple projection](#simple-projection-12)
63-
- [Path calculation](#path-calculation-12)
64-
- [Path projection](#path-projection-12)
65-
- [L36N track A – log\_30779](#l36n-track-a--log_30779)
66-
- [Simple projection](#simple-projection-13)
67-
- [Path calculation](#path-calculation-13)
68-
- [Path projection](#path-projection-13)
69-
- [Degraded GNSS cases](#degraded-gnss-cases)
70-
- [L36-A → L36C-A → L25N-B, very bad GNSS – log\_28586](#l36-a--l36c-a--l25n-b-very-bad-gnss--log_28586)
71-
- [Simple projection](#simple-projection-14)
72-
- [Path calculation](#path-calculation-14)
73-
- [Path projection](#path-projection-14)
74-
- [L36 track A, very bad GNSS – log\_38373](#l36-track-a-very-bad-gnss--log_38373)
75-
- [Simple projection](#simple-projection-15)
76-
- [Path calculation](#path-calculation-15)
77-
- [Path projection](#path-projection-15)
7861
- [File reorganisation](#file-reorganisation)
7962

8063
Root folder for release exe: `target/release/`
@@ -610,232 +593,56 @@ Good result:
610593

611594
Log file ID: 31259
612595

613-
Same route as log_28573. The path calculation resolves fewer segments than the other four logs of this route — the GNSS coverage ends earlier on the L25N-B leg.
614-
615-
#### Simple projection
616-
617-
```bash
618-
target/release/tp-cli.exe simple-projection --gnss test-data/log_31259/log_31259_L36-A_to_L36C-A_to_L25N-B.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_31259/log_31259_L36-A_to_L36C-A_to_L25N-B-simple-projection.geojson
619-
```
620-
621-
![L36-A to L36C-A to L25N-B (log_31259) - Simple projection](log_31259/log_31259_L36-A_to_L36C-A_to_L25N-B-simple-projection.png)
622-
623-
#### Path calculation
624-
625-
```bash
626-
target/release/tp-cli.exe calculate-path --gnss test-data/log_31259/log_31259_L36-A_to_L36C-A_to_L25N-B.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_31259/log_31259_L36-A_to_L36C-A_to_L25N-B-path-calculation.geojson
627-
```
628-
629-
Expected output:
630-
1. 88_L_1388 (prob=0.957)
631-
2. 88_L_11046 (prob=0.558)
632-
3. 88_L_11885 (prob=1.000)
633-
4. 88_L_7137 (prob=1.000)
634-
5. 88_L_109 (prob=1.000)
635-
6. 88_L_11721 (prob=1.000)
636-
7. 88_L_5210 (prob=0.285)
637-
8. 88_L_1728 (prob=0.316)
638-
9. 88_L_18686 (prob=0.139)
639-
10. 88_L_5589 (prob=0.501)
640-
11. 88_L_7154 (prob=0.388)
641-
642-
![L36-A to L36C-A to L25N-B (log_31259) - Path calculation](log_31259/log_31259_L36-A_to_L36C-A_to_L25N-B-path.png)
643-
644-
#### Path projection
645-
646-
```bash
647-
target/release/tp-cli.exe --gnss test-data/log_31259/log_31259_L36-A_to_L36C-A_to_L25N-B.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_31259/log_31259_L36-A_to_L36C-A_to_L25N-B-path-projection.geojson
648-
```
649-
650-
![L36-A to L36C-A to L25N-B (log_31259) - Path projection](log_31259/log_31259_L36-A_to_L36C-A_to_L25N-B-path-projection.png)
596+
Same route as log_28573. Quality of GNSS is also relatively good, small drift near the station of the airport. No screenshots because nothing special to report.
651597

652598
---
653599

654-
## Airport branch (L36N)
655-
656-
### L36N track A – log_29224
657-
658-
Log file ID: 29224
659-
660-
Train traveling on the L36N airport branch, track A (underground tunnel beneath the airport).
661-
662-
#### Simple projection
663-
664-
```bash
665-
target/release/tp-cli.exe simple-projection --gnss test-data/log_29224/log_29224_L36N-A.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_29224/log_29224_L36N-A-simple-projection.geojson
666-
```
667-
668-
![L36N track A (log_29224) - Simple projection](log_29224/log_29224_L36N-A-simple-projection.png)
669-
670-
#### Path calculation
671-
672-
```bash
673-
target/release/tp-cli.exe calculate-path --gnss test-data/log_29224/log_29224_L36N-A.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_29224/log_29224_L36N-A-path-calculation.geojson
674-
```
675-
676-
Expected output:
677-
1. 88_L_1932 (prob=0.930)
678-
2. 88_L_3878 (prob=0.946)
679-
3. 88_L_9764 (prob=0.925)
680-
4. 88_L_7824 (prob=0.400)
681-
5. 88_L_2026 (prob=0.048)
682-
6. 88_L_42 (prob=0.488)
683-
7. 88_L_111 (prob=0.395)
684-
8. 88_L_155 (prob=0.433)
685-
686-
![L36N track A (log_29224) - Path calculation](log_29224/log_29224_L36N-A-path.png)
687-
688-
#### Path projection
689-
690-
```bash
691-
target/release/tp-cli.exe --gnss test-data/log_29224/log_29224_L36N-A.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_29224/log_29224_L36N-A-path-projection.geojson
692-
```
693-
694-
![L36N track A (log_29224) - Path projection](log_29224/log_29224_L36N-A-path-projection.png)
695-
696-
---
697-
698-
### L36N track A – log_30779
699-
700-
Log file ID: 30779
701-
702-
Second log of the L36N airport branch, track A. Slightly different segment coverage than log_29224 at the far end.
703-
704-
#### Simple projection
705-
706-
```bash
707-
target/release/tp-cli.exe simple-projection --gnss test-data/log_30779/log_30779_L36N-A.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_30779/log_30779_L36N-A-simple-projection.geojson
708-
```
709-
710-
![L36N track A (log_30779) - Simple projection](log_30779/log_30779_L36N-A-simple-projection.png)
711-
712-
#### Path calculation
713-
714-
```bash
715-
target/release/tp-cli.exe calculate-path --gnss test-data/log_30779/log_30779_L36N-A.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_30779/log_30779_L36N-A-path-calculation.geojson
716-
```
717-
718-
Expected output:
719-
1. 88_L_9764 (prob=0.900)
720-
2. 88_L_3878 (prob=0.909)
721-
3. 88_L_1932 (prob=0.848)
722-
4. 88_L_2094 (prob=0.320)
723-
5. 88_L_111 (prob=0.362)
724-
6. 88_L_42 (prob=0.427)
725-
7. 88_L_2026 (prob=0.049)
726-
8. 88_L_5916 (prob=0.342)
727-
728-
![L36N track A (log_30779) - Path calculation](log_30779/log_30779_L36N-A-path.png)
729-
730-
#### Path projection
731-
732-
```bash
733-
target/release/tp-cli.exe --gnss test-data/log_30779/log_30779_L36N-A.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_30779/log_30779_L36N-A-path-projection.geojson
734-
```
735-
736-
![L36N track A (log_30779) - Path projection](log_30779/log_30779_L36N-A-path-projection.png)
600+
### L36-A → L36C-A → L25N-B, very bad GNSS – log_28586
737601

738-
---
602+
Log file ID: 28586
739603

740-
## Degraded GNSS cases
604+
Coming from Brussels towards Leuven, taking the junction to the airport and then returning to Brussels again. The GNSS solution is in very bad shape:
741605

742-
These logs have heavily corrupted GNSS data. Despite the degraded input, the path calculation algorithm should still find the correct route (or the most plausible route given the available evidence).
606+
![L36-A to L36C-A to L25N-B very bad GNSS - Simple projection](log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-raw.png)
743607

744-
### L36-A → L36C-A → L25N-B, very bad GNSS – log_28586
608+
Zoom in on problem area:
745609

746-
Log file ID: 28586
610+
![L36-A to L36C-A to L25N-B very bad GNSS - Simple projection](log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-raw-detail.png)
747611

748-
Same route as log_28573 but with severely degraded GNSS data. The algorithm is expected to find the same netelement sequence despite the noise.
749612

750613
#### Simple projection
751614

752615
```bash
753616
target/release/tp-cli.exe simple-projection --gnss test-data/log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-very-bad.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-very-bad-simple-projection.geojson
754617
```
755618

756-
Expected to produce many erroneous projections onto adjacent netelements.
619+
Expected result:
757620

758-
![L36-A to L36C-A to L25N-B very bad GNSS - Simple projection](log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-very-bad-simple-projection.png)
621+
![L36-A to L36C-A to L25N-B very bad GNSS - Simple projection](log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-simple-projection.png)
759622

760623
#### Path calculation
761624

762625
```bash
763626
target/release/tp-cli.exe calculate-path --gnss test-data/log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-very-bad.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-very-bad-path-calculation.geojson
764627
```
765628

766-
Expected output (same route as log_28573 — the path algorithm recovers fully despite the noise):
767-
1. 88_L_1388 (prob=0.892)
768-
2. 88_L_11046 (prob=0.561)
769-
3. 88_L_11885 (prob=1.000)
770-
4. 88_L_7137 (prob=1.000)
771-
5. 88_L_109 (prob=1.000)
772-
6. 88_L_11721 (prob=1.000)
773-
7. 88_L_5210 (prob=0.612)
774-
8. 88_L_1727 (prob=1.000)
775-
9. 88_L_17875 (prob=1.000)
776-
10. 88_L_7141 (prob=0.387)
777-
11. 88_L_6042 (prob=1.000)
778-
12. 88_L_16654 (prob=1.000)
779-
13. 88_L_13635 (prob=1.000)
780-
14. 88_L_7819 (prob=1.000)
781-
15. 88_L_7154 (prob=0.621)
782-
16. 88_L_5589 (prob=0.585)
783-
17. 88_L_18686 (prob=0.031)
784-
18. 88_L_1728 (prob=0.376)
785-
786-
![L36-A to L36C-A to L25N-B very bad GNSS - Path calculation](log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-very-bad-path.png)
787-
788-
#### Path projection
789-
790-
```bash
791-
target/release/tp-cli.exe --gnss test-data/log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-very-bad.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-very-bad-path-projection.geojson
792-
```
793-
794-
![L36-A to L36C-A to L25N-B very bad GNSS - Path projection](log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-very-bad-path-projection.png)
795-
796-
---
797-
798-
### L36 track A, very bad GNSS – log_38373
799-
800-
Log file ID: 38373
801-
802-
Degraded GNSS data on L36 track A (no switches). The path calculation finds a plausible route but the low probability values reflect the poor signal quality.
803-
804-
#### Simple projection
805-
806-
```bash
807-
target/release/tp-cli.exe simple-projection --gnss test-data/log_38373/log_38373_L36-A-very-bad.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_38373/log_38373_L36-A-very-bad-simple-projection.geojson
808-
```
809-
810-
![L36 track A very bad GNSS - Simple projection](log_38373/log_38373_L36-A-very-bad-simple-projection.png)
811-
812-
#### Path calculation
813-
814-
```bash
815-
target/release/tp-cli.exe calculate-path --gnss test-data/log_38373/log_38373_L36-A-very-bad.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_38373/log_38373_L36-A-very-bad-path-calculation.geojson
816-
```
629+
Good result:
817630

818-
Expected output:
819-
1. 88_L_5916 (prob=0.396)
820-
2. 88_L_2026 (prob=1.000)
821-
3. 88_L_42 (prob=0.180)
822-
4. 88_L_111 (prob=1.000)
823-
5. 88_L_2094 (prob=1.000)
824-
6. 88_L_1932 (prob=1.000)
825-
7. 88_L_3878 (prob=0.777)
826-
8. 88_L_9764 (prob=0.845)
631+
![L36-A to L36C-A to L25N-B very bad GNSS - Path calculation](log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-path.png)
827632

828-
Note: the path diverges from clean L36-A logs (e.g., log_29083) in the later segments (`88_L_2094, 88_L_1932, 88_L_3878, 88_L_9764`), following the L36N-A branch instead of continuing purely on L36-A. This is a known limitation with very sparse GNSS data where the algorithm cannot distinguish between adjacent tracks.
633+
Zoom on detail:
829634

830-
![L36 track A very bad GNSS - Path calculation](log_38373/log_38373_L36-A-very-bad-path.png)
635+
![L36-A to L36C-A to L25N-B very bad GNSS - Path calculation](log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-path-detail.png)
831636

832637
#### Path projection
833638

834639
```bash
835-
target/release/tp-cli.exe --gnss test-data/log_38373/log_38373_L36-A-very-bad.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_38373/log_38373_L36-A-very-bad-path-projection.geojson
640+
target/release/tp-cli.exe --gnss test-data/log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-very-bad.csv --crs EPSG:4326 --network test-data/network_airport.geojson --output test-data/log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-very-bad-path-projection.geojson
836641
```
837642

838-
![L36 track A very bad GNSS - Path projection](log_38373/log_38373_L36-A-very-bad-path-projection.png)
643+
Expected result, again showing the need to also perform longitudal post processing:
644+
645+
![L36-A to L36C-A to L25N-B very bad GNSS - Path projection](log_28586/log_28586_L36-A_to_L36C-A_to_L25N-B-path-projection.png)
839646

840647
---
841648

49.6 KB
Loading
68.5 KB
Loading
77.2 KB
Loading
44.6 KB
Loading
85.7 KB
Loading
73.6 KB
Loading

0 commit comments

Comments
 (0)