Trenesis/tests/assets/trenesis/network/graph_assets.h
Paul Breugnot 61aec3d856 Internal train network structure
- Defines Network, StopArea, StopPoints and JourneySections
- Loads them from json using the build_from_json method
2026-01-03 14:34:00 +01:00

994 lines
24 KiB
C++

constexpr auto single_node_stop_points =
R"-(
{
"stop_points": [
{
"id": "stop_point:SNCF:87713040:Train",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
},
"stop_area": {
"id": "stop_area:SNCF:87713040",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
}
}
}
]
}
)-";
constexpr auto single_node_journey =
// This is a simplified extract from /coverage/sncf/vehicle_journeys
// representing the line Dijon -> Cercy -> Nevers
R"-(
{
"vehicle_journeys": [
{
"stop_times": [
{
"arrival_time": "081200",
"utc_arrival_time": "071200",
"departure_time": "081200",
"utc_departure_time": "071200",
"headsign": "893009",
"stop_point": {
"id": "stop_point:SNCF:87713040:Train",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
},
"links": [],
"equipments": []
},
"pickup_allowed": true,
"drop_off_allowed": false,
"skipped_stop": false
}
]
}
]
}
)-";
constexpr auto dijon_cercy_nevers_stop_points =
// This is a simplified extract from /coverage/sncf/stop_points
// representing stations Dijon, Cercy, Nevers
R"-(
{
"stop_points": [
{
"id": "stop_point:SNCF:87713040:Train",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
},
"stop_area": {
"id": "stop_area:SNCF:87713040",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
}
}
},
{
"id": "stop_point:SNCF:87696492:Train",
"name": "Cercy-la-Tour",
"label": "Cercy-la-Tour (Cercy-la-Tour)",
"coord": {
"lon": "3.645084",
"lat": "46.85793"
},
"stop_area": {
"id": "stop_area:SNCF:87696492",
"name": "Cercy-la-Tour",
"label": "Cercy-la-Tour (Cercy-la-Tour)",
"coord": {
"lon": "3.645084",
"lat": "46.85793"
}
}
},
{
"id": "stop_point:SNCF:87696005:Train",
"name": "Nevers",
"label": "Nevers (Nevers)",
"coord": {
"lon": "3.150743",
"lat": "46.987282"
},
"stop_area": {
"id": "stop_area:SNCF:87696005",
"name": "Nevers",
"label": "Nevers (Nevers)",
"coord": {
"lon": "3.150743",
"lat": "46.987282"
}
}
}
]
}
)-";
constexpr auto dijon_cercy_nevers_journey =
// This is a simplified extract from /coverage/sncf/vehicle_journeys
// representing the line Dijon -> Cercy -> Nevers
R"-(
{
"vehicle_journeys": [
{
"stop_times": [
{
"arrival_time": "081200",
"utc_arrival_time": "071200",
"departure_time": "081200",
"utc_departure_time": "071200",
"headsign": "893009",
"stop_point": {
"id": "stop_point:SNCF:87713040:Train",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
}
}
},
{
"arrival_time": "095300",
"utc_arrival_time": "085300",
"departure_time": "095400",
"utc_departure_time": "085400",
"headsign": "893009",
"stop_point": {
"id": "stop_point:SNCF:87696492:Train",
"name": "Cercy-la-Tour",
"label": "Cercy-la-Tour (Cercy-la-Tour)",
"coord": {
"lon": "3.645084",
"lat": "46.85793"
}
}
},
{
"arrival_time": "102900",
"utc_arrival_time": "092900",
"departure_time": "102900",
"utc_departure_time": "092900",
"headsign": "893009",
"stop_point": {
"id": "stop_point:SNCF:87696005:Train",
"name": "Nevers",
"label": "Nevers (Nevers)",
"coord": {
"lon": "3.150743",
"lat": "46.987282"
}
}
}
]
}
]
}
)-";
constexpr auto besancon_dijon_lons_train_only_stop_points =
R"-(
{
"stop_points": [
{
"id": "stop_point:SNCF:87718007:Train",
"name": "Besançon Viotte",
"label": "Besançon Viotte (Besançon)",
"coord": {
"lon": "6.021943",
"lat": "47.247049"
},
"stop_area": {
"id": "stop_area:SNCF:87718007",
"name": "Besançon Viotte",
"label": "Besançon Viotte (Besançon)",
"coord": {
"lon": "6.021943",
"lat": "47.247049"
}
}
},
{
"id": "stop_point:SNCF:87713412:Train",
"name": "Dole-Ville",
"label": "Dole-Ville (Dole)",
"coord": {
"lon": "5.48806",
"lat": "47.09615"
},
"stop_area": {
"id": "stop_area:SNCF:87713412",
"name": "Dole-Ville",
"label": "Dole-Ville (Dole)",
"coord": {
"lon": "5.48806",
"lat": "47.09615"
}
}
},
{
"id": "stop_point:SNCF:87713040:Train",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
},
"stop_area": {
"id": "stop_area:SNCF:87713040",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
}
}
},
{
"id": "stop_point:SNCF:87718841:Train",
"name": "Arc-et-Senans",
"label": "Arc-et-Senans (Arc-et-Senans)",
"coord": {
"lon": "5.77683",
"lat": "47.030473"
},
"stop_area": {
"id": "stop_area:SNCF:87718841",
"name": "Arc-et-Senans",
"label": "Arc-et-Senans (Arc-et-Senans)",
"coord": {
"lon": "5.77683",
"lat": "47.030473"
}
}
},
{
"id": "stop_point:SNCF:87718833:Train",
"name": "Mouchard",
"label": "Mouchard (Mouchard)",
"coord": {
"lon": "5.799698",
"lat": "46.976865"
},
"stop_area": {
"id": "stop_area:SNCF:87718833",
"name": "Mouchard",
"label": "Mouchard (Mouchard)",
"coord": {
"lon": "5.799698",
"lat": "46.976865"
}
}
},
{
"id": "stop_point:SNCF:87715003:Train",
"name": "Pontarlier",
"label": "Pontarlier (Pontarlier)",
"coord": {
"lon": "6.353418",
"lat": "46.900988"
},
"stop_area": {
"id": "stop_area:SNCF:87715003",
"name": "Pontarlier",
"label": "Pontarlier (Pontarlier)",
"coord": {
"lon": "6.353418",
"lat": "46.900988"
}
}
},
{
"id": "stop_point:SNCF:87718239:Train",
"name": "Lons-le-Saunier",
"label": "Lons-le-Saunier (Lons-le-Saunier)",
"coord": {
"lon": "5.551108",
"lat": "46.66858"
},
"stop_area": {
"id": "stop_area:SNCF:87718239",
"name": "Lons-le-Saunier",
"label": "Lons-le-Saunier (Lons-le-Saunier)",
"coord": {
"lon": "5.551108",
"lat": "46.66858"
}
}
}
]
}
)-";
constexpr auto besancon_dijon_lons_train_only_journeys =
R"-(
{
"vehicle_journeys": [
{
"id": "vehicle_journey:SNCF:2026-01-05:894210:1187:Train",
"name": "894210",
"journey_pattern": {
"id": "journey_pattern:1817",
"name": "journey_pattern:1817"
},
"stop_times": [
{
"arrival_time": "105600",
"utc_arrival_time": "095600",
"departure_time": "105600",
"utc_departure_time": "095600",
"headsign": "894210",
"stop_point": {
"id": "stop_point:SNCF:87718007:Train",
"name": "Besançon Viotte",
"label": "Besançon Viotte (Besançon)",
"coord": {
"lon": "6.021943",
"lat": "47.247049"
}
}
},
{
"arrival_time": "112000",
"utc_arrival_time": "102000",
"departure_time": "112200",
"utc_departure_time": "102200",
"headsign": "894210",
"stop_point": {
"id": "stop_point:SNCF:87713412:Train",
"name": "Dole-Ville",
"label": "Dole-Ville (Dole)",
"coord": {
"lon": "5.48806",
"lat": "47.09615"
}
}
},
{
"arrival_time": "115200",
"utc_arrival_time": "105200",
"departure_time": "115200",
"utc_departure_time": "105200",
"headsign": "894210",
"stop_point": {
"id": "stop_point:SNCF:87713040:Train",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
}
}
}
]
},
{
"id": "vehicle_journey:SNCF:2025-12-25:895705:1187:Train",
"name": "895705",
"journey_pattern": {
"id": "journey_pattern:1982",
"name": "journey_pattern:1982"
},
"stop_times": [
{
"arrival_time": "111400",
"utc_arrival_time": "101400",
"departure_time": "111400",
"utc_departure_time": "101400",
"headsign": "895705",
"stop_point": {
"id": "stop_point:SNCF:87713412:Train",
"name": "Dole-Ville",
"label": "Dole-Ville (Dole)",
"coord": {
"lon": "5.48806",
"lat": "47.09615"
}
}
},
{
"arrival_time": "113200",
"utc_arrival_time": "103200",
"departure_time": "113300",
"utc_departure_time": "103300",
"headsign": "895705",
"stop_point": {
"id": "stop_point:SNCF:87718841:Train",
"name": "Arc-et-Senans",
"label": "Arc-et-Senans (Arc-et-Senans)",
"coord": {
"lon": "5.77683",
"lat": "47.030473"
}
}
},
{
"arrival_time": "113900",
"utc_arrival_time": "103900",
"departure_time": "114200",
"utc_departure_time": "104200",
"headsign": "895705",
"stop_point": {
"id": "stop_point:SNCF:87718833:Train",
"name": "Mouchard",
"label": "Mouchard (Mouchard)",
"coord": {
"lon": "5.799698",
"lat": "46.976865"
}
}
},
{
"arrival_time": "123700",
"utc_arrival_time": "113700",
"departure_time": "123700",
"utc_departure_time": "113700",
"headsign": "895705",
"stop_point": {
"id": "stop_point:SNCF:87715003:Train",
"name": "Pontarlier",
"label": "Pontarlier (Pontarlier)",
"coord": {
"lon": "6.353418",
"lat": "46.900988"
}
}
}
]
},
{
"id": "vehicle_journey:SNCF:2025-12-30:895857:1187:Train",
"name": "895857",
"journey_pattern": {
"id": "journey_pattern:1899",
"name": "journey_pattern:1899"
},
"stop_times": [
{
"arrival_time": "164700",
"utc_arrival_time": "154700",
"departure_time": "165200",
"utc_departure_time": "155200",
"headsign": "895857",
"stop_point": {
"id": "stop_point:SNCF:87718007:Train",
"name": "Besançon Viotte",
"label": "Besançon Viotte (Besançon)",
"coord": {
"lon": "6.021943",
"lat": "47.247049"
}
}
},
{
"arrival_time": "171500",
"utc_arrival_time": "161500",
"departure_time": "171600",
"utc_departure_time": "161600",
"headsign": "895857",
"stop_point": {
"id": "stop_point:SNCF:87718841:Train",
"name": "Arc-et-Senans",
"label": "Arc-et-Senans (Arc-et-Senans)",
"coord": {
"lon": "5.77683",
"lat": "47.030473"
}
}
},
{
"arrival_time": "172100",
"utc_arrival_time": "162100",
"departure_time": "172200",
"utc_departure_time": "162200",
"headsign": "895857",
"stop_point": {
"id": "stop_point:SNCF:87718833:Train",
"name": "Mouchard",
"label": "Mouchard (Mouchard)",
"coord": {
"lon": "5.799698",
"lat": "46.976865"
}
}
},
{
"arrival_time": "175900",
"utc_arrival_time": "165900",
"departure_time": "180100",
"utc_departure_time": "170100",
"headsign": "895857",
"stop_point": {
"id": "stop_point:SNCF:87718239:Train",
"name": "Lons-le-Saunier",
"label": "Lons-le-Saunier (Lons-le-Saunier)",
"coord": {
"lon": "5.551108",
"lat": "46.66858"
}
}
}
]
}
]
}
)-";
constexpr auto besancon_dijon_lons_stop_points =
R"-(
{
"stop_points": [
{
"id": "stop_point:SNCF:87718007:Train",
"name": "Besançon Viotte",
"label": "Besançon Viotte (Besançon)",
"coord": {
"lon": "6.021943",
"lat": "47.247049"
},
"stop_area": {
"id": "stop_area:SNCF:87718007",
"name": "Besançon Viotte",
"label": "Besançon Viotte (Besançon)",
"coord": {
"lon": "6.021943",
"lat": "47.247049"
}
}
},
{
"id": "stop_point:SNCF:87713412:Train",
"name": "Dole-Ville",
"label": "Dole-Ville (Dole)",
"coord": {
"lon": "5.48806",
"lat": "47.09615"
},
"stop_area": {
"id": "stop_area:SNCF:87713412",
"name": "Dole-Ville",
"label": "Dole-Ville (Dole)",
"coord": {
"lon": "5.48806",
"lat": "47.09615"
}
}
},
{
"id": "stop_point:SNCF:87713040:Train",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
},
"stop_area": {
"id": "stop_area:SNCF:87713040",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
}
}
},
{
"id": "stop_point:SNCF:87718841:Train",
"name": "Arc-et-Senans",
"label": "Arc-et-Senans (Arc-et-Senans)",
"coord": {
"lon": "5.77683",
"lat": "47.030473"
},
"stop_area": {
"id": "stop_area:SNCF:87718841",
"name": "Arc-et-Senans",
"label": "Arc-et-Senans (Arc-et-Senans)",
"coord": {
"lon": "5.77683",
"lat": "47.030473"
}
}
},
{
"id": "stop_point:SNCF:87718833:Train",
"name": "Mouchard",
"label": "Mouchard (Mouchard)",
"coord": {
"lon": "5.799698",
"lat": "46.976865"
},
"stop_area": {
"id": "stop_area:SNCF:87718833",
"name": "Mouchard",
"label": "Mouchard (Mouchard)",
"coord": {
"lon": "5.799698",
"lat": "46.976865"
}
}
},
{
"id": "stop_point:SNCF:87715003:Train",
"name": "Pontarlier",
"label": "Pontarlier (Pontarlier)",
"coord": {
"lon": "6.353418",
"lat": "46.900988"
},
"stop_area": {
"id": "stop_area:SNCF:87715003",
"name": "Pontarlier",
"label": "Pontarlier (Pontarlier)",
"coord": {
"lon": "6.353418",
"lat": "46.900988"
}
}
},
{
"id": "stop_point:SNCF:87718007:LongDistanceTrain",
"name": "Besançon Viotte",
"label": "Besançon Viotte (Besançon)",
"coord": {
"lon": "6.021943",
"lat": "47.247049"
},
"stop_area": {
"id": "stop_area:SNCF:87718007",
"name": "Besançon Viotte",
"label": "Besançon Viotte (Besançon)",
"coord": {
"lon": "6.021943",
"lat": "47.247049"
}
}
},
{
"id": "stop_point:SNCF:87718841:LongDistanceTrain",
"name": "Arc-et-Senans",
"label": "Arc-et-Senans (Arc-et-Senans)",
"coord": {
"lon": "5.77683",
"lat": "47.030473"
},
"stop_area": {
"id": "stop_area:SNCF:87718841",
"name": "Arc-et-Senans",
"label": "Arc-et-Senans (Arc-et-Senans)",
"coord": {
"lon": "5.77683",
"lat": "47.030473"
}
}
},
{
"id": "stop_point:SNCF:87718833:LongDistanceTrain",
"name": "Mouchard",
"label": "Mouchard (Mouchard)",
"coord": {
"lon": "5.799698",
"lat": "46.976865"
},
"stop_area": {
"id": "stop_area:SNCF:87718833",
"name": "Mouchard",
"label": "Mouchard (Mouchard)",
"coord": {
"lon": "5.799698",
"lat": "46.976865"
}
}
},
{
"id": "stop_point:SNCF:87718239:LongDistanceTrain",
"name": "Lons-le-Saunier",
"label": "Lons-le-Saunier (Lons-le-Saunier)",
"coord": {
"lon": "5.551108",
"lat": "46.66858"
},
"stop_area": {
"id": "stop_area:SNCF:87718239",
"name": "Lons-le-Saunier",
"label": "Lons-le-Saunier (Lons-le-Saunier)",
"coord": {
"lon": "5.551108",
"lat": "46.66858"
}
}
}
]
}
)-";
constexpr auto besancon_dijon_lons_journeys =
R"-(
{
"vehicle_journeys": [
{
"id": "vehicle_journey:SNCF:2026-01-05:894210:1187:Train",
"name": "894210",
"journey_pattern": {
"id": "journey_pattern:1817",
"name": "journey_pattern:1817"
},
"stop_times": [
{
"arrival_time": "105600",
"utc_arrival_time": "095600",
"departure_time": "105600",
"utc_departure_time": "095600",
"headsign": "894210",
"stop_point": {
"id": "stop_point:SNCF:87718007:Train",
"name": "Besançon Viotte",
"label": "Besançon Viotte (Besançon)",
"coord": {
"lon": "6.021943",
"lat": "47.247049"
},
"links": [],
"equipments": []
},
"pickup_allowed": true,
"drop_off_allowed": false,
"skipped_stop": false
},
{
"arrival_time": "112000",
"utc_arrival_time": "102000",
"departure_time": "112200",
"utc_departure_time": "102200",
"headsign": "894210",
"stop_point": {
"id": "stop_point:SNCF:87713412:Train",
"name": "Dole-Ville",
"label": "Dole-Ville (Dole)",
"coord": {
"lon": "5.48806",
"lat": "47.09615"
},
"links": [],
"equipments": []
},
"pickup_allowed": true,
"drop_off_allowed": true,
"skipped_stop": false
},
{
"arrival_time": "115200",
"utc_arrival_time": "105200",
"departure_time": "115200",
"utc_departure_time": "105200",
"headsign": "894210",
"stop_point": {
"id": "stop_point:SNCF:87713040:Train",
"name": "Dijon",
"label": "Dijon (Dijon)",
"coord": {
"lon": "5.027256",
"lat": "47.323411"
},
"links": [],
"equipments": []
},
"pickup_allowed": false,
"drop_off_allowed": true,
"skipped_stop": false
}
]
},
{
"id": "vehicle_journey:SNCF:2025-12-25:895705:1187:Train",
"name": "895705",
"journey_pattern": {
"id": "journey_pattern:1982",
"name": "journey_pattern:1982"
},
"stop_times": [
{
"arrival_time": "111400",
"utc_arrival_time": "101400",
"departure_time": "111400",
"utc_departure_time": "101400",
"headsign": "895705",
"stop_point": {
"id": "stop_point:SNCF:87713412:Train",
"name": "Dole-Ville",
"label": "Dole-Ville (Dole)",
"coord": {
"lon": "5.48806",
"lat": "47.09615"
},
"links": [],
"equipments": []
},
"pickup_allowed": true,
"drop_off_allowed": false,
"skipped_stop": false
},
{
"arrival_time": "113200",
"utc_arrival_time": "103200",
"departure_time": "113300",
"utc_departure_time": "103300",
"headsign": "895705",
"stop_point": {
"id": "stop_point:SNCF:87718841:Train",
"name": "Arc-et-Senans",
"label": "Arc-et-Senans (Arc-et-Senans)",
"coord": {
"lon": "5.77683",
"lat": "47.030473"
},
"links": [],
"equipments": []
},
"pickup_allowed": true,
"drop_off_allowed": true,
"skipped_stop": false
},
{
"arrival_time": "113900",
"utc_arrival_time": "103900",
"departure_time": "114200",
"utc_departure_time": "104200",
"headsign": "895705",
"stop_point": {
"id": "stop_point:SNCF:87718833:Train",
"name": "Mouchard",
"label": "Mouchard (Mouchard)",
"coord": {
"lon": "5.799698",
"lat": "46.976865"
},
"links": [],
"equipments": []
},
"pickup_allowed": true,
"drop_off_allowed": true,
"skipped_stop": false
},
{
"arrival_time": "123700",
"utc_arrival_time": "113700",
"departure_time": "123700",
"utc_departure_time": "113700",
"headsign": "895705",
"stop_point": {
"id": "stop_point:SNCF:87715003:Train",
"name": "Pontarlier",
"label": "Pontarlier (Pontarlier)",
"coord": {
"lon": "6.353418",
"lat": "46.900988"
},
"links": [],
"equipments": []
},
"pickup_allowed": false,
"drop_off_allowed": true,
"skipped_stop": false
}
]
},
{
"id": "vehicle_journey:SNCF:2025-12-30:895857:1187:LongDistanceTrain",
"name": "895857",
"journey_pattern": {
"id": "journey_pattern:1899",
"name": "journey_pattern:1899"
},
"stop_times": [
{
"arrival_time": "164700",
"utc_arrival_time": "154700",
"departure_time": "165200",
"utc_departure_time": "155200",
"headsign": "895857",
"stop_point": {
"id": "stop_point:SNCF:87718007:LongDistanceTrain",
"name": "Besançon Viotte",
"label": "Besançon Viotte (Besançon)",
"coord": {
"lon": "6.021943",
"lat": "47.247049"
},
"links": [],
"equipments": []
},
"pickup_allowed": true,
"drop_off_allowed": true,
"skipped_stop": false
},
{
"arrival_time": "171500",
"utc_arrival_time": "161500",
"departure_time": "171600",
"utc_departure_time": "161600",
"headsign": "895857",
"stop_point": {
"id": "stop_point:SNCF:87718841:LongDistanceTrain",
"name": "Arc-et-Senans",
"label": "Arc-et-Senans (Arc-et-Senans)",
"coord": {
"lon": "5.77683",
"lat": "47.030473"
},
"links": [],
"equipments": []
},
"pickup_allowed": true,
"drop_off_allowed": true,
"skipped_stop": false
},
{
"arrival_time": "172100",
"utc_arrival_time": "162100",
"departure_time": "172200",
"utc_departure_time": "162200",
"headsign": "895857",
"stop_point": {
"id": "stop_point:SNCF:87718833:LongDistanceTrain",
"name": "Mouchard",
"label": "Mouchard (Mouchard)",
"coord": {
"lon": "5.799698",
"lat": "46.976865"
},
"links": [],
"equipments": []
},
"pickup_allowed": true,
"drop_off_allowed": true,
"skipped_stop": false
},
{
"arrival_time": "175900",
"utc_arrival_time": "165900",
"departure_time": "180100",
"utc_departure_time": "170100",
"headsign": "895857",
"stop_point": {
"id": "stop_point:SNCF:87718239:LongDistanceTrain",
"name": "Lons-le-Saunier",
"label": "Lons-le-Saunier (Lons-le-Saunier)",
"coord": {
"lon": "5.551108",
"lat": "46.66858"
},
"links": [],
"equipments": []
},
"pickup_allowed": true,
"drop_off_allowed": true,
"skipped_stop": false
}
]
}
]
}
)-";