From a7930211e2903d6026a0f71b46c7659b3900e69c Mon Sep 17 00:00:00 2001 From: Minos Hemrich Date: Tue, 27 Feb 2024 14:09:49 +0100 Subject: [PATCH 1/8] add maritime-schema --- .../traffic_situation_01.json | 55 +- .../traffic_situation_02.json | 55 +- .../traffic_situation_03.json | 55 +- .../traffic_situation_04.json | 55 +- .../traffic_situation_05.json | 55 +- .../traffic_situation_06.json | 76 +- .../traffic_situation_07.json | 76 +- .../traffic_situation_08.json | 76 +- .../traffic_situation_09.json | 76 +- .../traffic_situation_10.json | 76 +- .../traffic_situation_11.json | 76 +- .../traffic_situation_12.json | 76 +- .../traffic_situation_13.json | 76 +- .../traffic_situation_14.json | 76 +- .../traffic_situation_15.json | 76 +- .../traffic_situation_16.json | 76 +- .../traffic_situation_17.json | 76 +- .../traffic_situation_18.json | 76 +- .../traffic_situation_19.json | 76 +- .../traffic_situation_20.json | 76 +- .../traffic_situation_21.json | 97 +- .../traffic_situation_22.json | 97 +- .../traffic_situation_23.json | 97 +- .../traffic_situation_24.json | 97 +- .../traffic_situation_25.json | 97 +- .../traffic_situation_26.json | 97 +- .../traffic_situation_27.json | 97 +- .../traffic_situation_28.json | 97 +- .../traffic_situation_29.json | 97 +- .../traffic_situation_30.json | 97 +- .../traffic_situation_31.json | 97 +- .../traffic_situation_32.json | 97 +- .../traffic_situation_33.json | 97 +- .../traffic_situation_34.json | 97 +- .../traffic_situation_35.json | 97 +- .../traffic_situation_36.json | 97 +- .../traffic_situation_37.json | 97 +- .../traffic_situation_38.json | 97 +- .../traffic_situation_39.json | 97 +- .../traffic_situation_40.json | 97 +- .../traffic_situation_41.json | 97 +- .../traffic_situation_42.json | 97 +- .../traffic_situation_43.json | 97 +- .../traffic_situation_44.json | 97 +- .../traffic_situation_45.json | 97 +- .../traffic_situation_46.json | 97 +- .../traffic_situation_47.json | 97 +- .../traffic_situation_48.json | 97 +- .../traffic_situation_49.json | 97 +- .../traffic_situation_50.json | 97 +- .../traffic_situation_51.json | 97 +- .../traffic_situation_52.json | 97 +- .../traffic_situation_53.json | 97 +- .../traffic_situation_54.json | 97 +- .../traffic_situation_55.json | 97 +- .../baseline_situation_01_1_ts.json | 3 +- .../baseline_situation_02_1_ts.json | 3 +- .../baseline_situation_03_1_ts.json | 3 +- .../baseline_situation_04_1_ts.json | 3 +- .../baseline_situation_05_1_ts.json | 3 +- .../baseline_situation_06_2_ts.json | 3 +- .../baseline_situation_07_2_ts.json | 3 +- .../baseline_situation_08_2_ts.json | 3 +- .../baseline_situation_09_2_ts.json | 3 +- .../baseline_situation_10_2_ts.json | 3 +- .../baseline_situation_11_2_ts.json | 3 +- .../baseline_situation_12_2_ts.json | 3 +- .../baseline_situation_13_2_ts.json | 3 +- .../baseline_situation_14_2_ts.json | 3 +- .../baseline_situation_15_2_ts.json | 3 +- .../baseline_situation_16_2_ts.json | 3 +- .../baseline_situation_17_2_ts.json | 3 +- .../baseline_situation_18_2_ts.json | 3 +- .../baseline_situation_19_2_ts.json | 3 +- .../baseline_situation_20_2_ts.json | 3 +- .../baseline_situation_21_3_ts.json | 3 +- .../baseline_situation_22_3_ts.json | 3 +- .../baseline_situation_23_3_ts.json | 3 +- .../baseline_situation_24_3_ts.json | 3 +- .../baseline_situation_25_3_ts.json | 3 +- .../baseline_situation_26_3_ts.json | 3 +- .../baseline_situation_27_3_ts.json | 3 +- .../baseline_situation_28_3_ts.json | 3 +- .../baseline_situation_29_3_ts.json | 3 +- .../baseline_situation_30_3_ts.json | 3 +- .../baseline_situation_31_3_ts.json | 3 +- .../baseline_situation_32_3_ts.json | 3 +- .../baseline_situation_33_3_ts.json | 3 +- .../baseline_situation_34_3_ts.json | 3 +- .../baseline_situation_35_3_ts.json | 3 +- .../baseline_situation_36_3_ts.json | 3 +- .../baseline_situation_37_3_ts.json | 3 +- .../baseline_situation_38_3_ts.json | 3 +- .../baseline_situation_39_3_ts.json | 3 +- .../baseline_situation_40_3_ts.json | 3 +- .../baseline_situation_41_3_ts.json | 3 +- .../baseline_situation_42_3_ts.json | 3 +- .../baseline_situation_43_3_ts.json | 3 +- .../baseline_situation_44_3_ts.json | 3 +- .../baseline_situation_45_3_ts.json | 3 +- .../baseline_situation_46_3_ts.json | 3 +- .../baseline_situation_47_3_ts.json | 3 +- .../baseline_situation_48_3_ts.json | 3 +- .../baseline_situation_49_3_ts.json | 3 +- .../baseline_situation_50_3_ts.json | 3 +- .../baseline_situation_51_3_ts.json | 3 +- .../baseline_situation_52_3_ts.json | 3 +- .../baseline_situation_53_3_ts.json | 3 +- .../baseline_situation_54_3_ts.json | 3 +- .../baseline_situation_55_3_ts.json | 3 +- src/trafficgen/check_land_crossing.py | 98 +- src/trafficgen/encounter.py | 1470 ++++++++--------- src/trafficgen/plot_traffic_situation.py | 762 ++++----- src/trafficgen/read_files.py | 500 +++--- src/trafficgen/ship_traffic_generator.py | 184 ++- src/trafficgen/types.py | 472 +++--- src/trafficgen/utils.py | 330 ++-- 117 files changed, 2954 insertions(+), 5837 deletions(-) diff --git a/data/baseline_situations_generated/traffic_situation_01.json b/data/baseline_situations_generated/traffic_situation_01.json index 12ff565..9921ffa 100644 --- a/data/baseline_situations_generated/traffic_situation_01.json +++ b/data/baseline_situations_generated/traffic_situation_01.json @@ -1,68 +1,47 @@ { "title": "HO", - "inputFileName": "baseline_situation_01_1_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "da107b8a-0009-42c2-a4e3-0d139123d45c", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 10195.0, - "east": 356.0, - "latitude": 1.02721306, - "longitude": 0.18320382 - }, - "sog": 6.2, - "cog": 3.205 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_01_1_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_02.json b/data/baseline_situations_generated/traffic_situation_02.json index 65a88e1..0bcfabd 100644 --- a/data/baseline_situations_generated/traffic_situation_02.json +++ b/data/baseline_situations_generated/traffic_situation_02.json @@ -1,68 +1,47 @@ { "title": "CR-GW", - "inputFileName": "baseline_situation_02_1_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "5b1dbefb-9c43-4edb-ade7-e3f90620bb41", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 5774.0, - "east": 2102.0, - "latitude": 1.02652036, - "longitude": 0.18373041 - }, - "sog": 4.1, - "cog": 3.934 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_02_1_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_03.json b/data/baseline_situations_generated/traffic_situation_03.json index 5d987cc..a521161 100644 --- a/data/baseline_situations_generated/traffic_situation_03.json +++ b/data/baseline_situations_generated/traffic_situation_03.json @@ -1,68 +1,47 @@ { "title": "CR-SO", - "inputFileName": "baseline_situation_03_1_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "12fc70ac-d00e-4889-9205-55186b0208b4", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 5463.0, - "east": -3154.0, - "latitude": 1.02647163, - "longitude": 0.1821452 - }, - "sog": 3.1, - "cog": 1.64 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_03_1_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_04.json b/data/baseline_situations_generated/traffic_situation_04.json index 84857d3..9326019 100644 --- a/data/baseline_situations_generated/traffic_situation_04.json +++ b/data/baseline_situations_generated/traffic_situation_04.json @@ -1,68 +1,47 @@ { "title": "OT-GW", - "inputFileName": "baseline_situation_04_1_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "52e81631-135c-43a3-b121-cc3b106801ab", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 2216.0, - "east": 594.0, - "latitude": 1.02596287, - "longitude": 0.1832756 - }, - "sog": 2.6, - "cog": 6.008 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_04_1_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_05.json b/data/baseline_situations_generated/traffic_situation_05.json index 8b06c29..d776166 100644 --- a/data/baseline_situations_generated/traffic_situation_05.json +++ b/data/baseline_situations_generated/traffic_situation_05.json @@ -1,68 +1,47 @@ { "title": "OT-SO", - "inputFileName": "baseline_situation_05_1_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "56f1f6cf-17df-4040-b71e-42b447b8a768", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -3443.0, - "east": -923.0, - "latitude": 1.02507619, - "longitude": 0.18281807 - }, - "sog": 8.2, - "cog": 0.099 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_05_1_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_06.json b/data/baseline_situations_generated/traffic_situation_06.json index 35f21d3..7c353fb 100644 --- a/data/baseline_situations_generated/traffic_situation_06.json +++ b/data/baseline_situations_generated/traffic_situation_06.json @@ -1,89 +1,47 @@ { "title": "HO, HO", - "inputFileName": "baseline_situation_06_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "7df0dc06-4b7c-4e86-8d0a-33346b1b324a", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 6426.0, - "east": -112.0, - "latitude": 1.02662252, - "longitude": 0.18306267 - }, - "sog": 4.6, - "cog": 3.105 - } - }, - { - "static": { - "id": "ad1b543a-1697-4a59-91a5-db009cbbf004", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 9063.0, - "east": 634.0, - "latitude": 1.0270357, - "longitude": 0.18328766 - }, - "sog": 5.7, - "cog": 3.274 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_06_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_07.json b/data/baseline_situations_generated/traffic_situation_07.json index c9db37d..cf8c5be 100644 --- a/data/baseline_situations_generated/traffic_situation_07.json +++ b/data/baseline_situations_generated/traffic_situation_07.json @@ -1,89 +1,47 @@ { "title": "HO, CR-GW", - "inputFileName": "baseline_situation_07_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "eea701f1-8d79-4e1b-afc2-7f0e94eff78c", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 14746.0, - "east": -1031.0, - "latitude": 1.02792614, - "longitude": 0.1827855 - }, - "sog": 7.2, - "cog": 3.022 - } - }, - { - "static": { - "id": "560b032a-35fa-495e-8be2-8b771fdbbeca", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 3364.0, - "east": 2444.0, - "latitude": 1.02614275, - "longitude": 0.18383356 - }, - "sog": 4.1, - "cog": 4.598 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_07_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_08.json b/data/baseline_situations_generated/traffic_situation_08.json index 35a160b..a462eee 100644 --- a/data/baseline_situations_generated/traffic_situation_08.json +++ b/data/baseline_situations_generated/traffic_situation_08.json @@ -1,89 +1,47 @@ { "title": "HO, CR-SO", - "inputFileName": "baseline_situation_08_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "b71e5bdc-abcd-4a02-8968-a9ad28fd34a0", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 12408.0, - "east": 867.0, - "latitude": 1.02755981, - "longitude": 0.18335794 - }, - "sog": 8.7, - "cog": 3.253 - } - }, - { - "static": { - "id": "3f74386a-3a9f-4f49-a673-af3a58f1a631", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 4373.0, - "east": -3177.0, - "latitude": 1.02630084, - "longitude": 0.18213827 - }, - "sog": 4.1, - "cog": 1.685 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_08_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_09.json b/data/baseline_situations_generated/traffic_situation_09.json index 1d70b63..a50cb61 100644 --- a/data/baseline_situations_generated/traffic_situation_09.json +++ b/data/baseline_situations_generated/traffic_situation_09.json @@ -1,89 +1,47 @@ { "title": "HO, OT-GW", - "inputFileName": "baseline_situation_09_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "e9d0ab85-9800-43d0-af5e-3ed5b2608625", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 8445.0, - "east": -295.0, - "latitude": 1.02693886, - "longitude": 0.18300748 - }, - "sog": 5.7, - "cog": 3.075 - } - }, - { - "static": { - "id": "4d9593ad-67f8-4970-ba4a-e6a756861461", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 2477.0, - "east": 437.0, - "latitude": 1.02600377, - "longitude": 0.18322825 - }, - "sog": 2.6, - "cog": 6.107 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_09_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_10.json b/data/baseline_situations_generated/traffic_situation_10.json index 94a22c4..e418127 100644 --- a/data/baseline_situations_generated/traffic_situation_10.json +++ b/data/baseline_situations_generated/traffic_situation_10.json @@ -1,89 +1,47 @@ { "title": "HO, OT-SO", - "inputFileName": "baseline_situation_10_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "faeba67e-136f-4d88-aa77-f0aaca4323fb", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 10445.0, - "east": 0.0, - "latitude": 1.02725223, - "longitude": 0.18309645 - }, - "sog": 5.1, - "cog": 3.142 - } - }, - { - "static": { - "id": "79569905-6fc7-427b-861b-053610bccdfe", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -4189.0, - "east": 293.0, - "latitude": 1.02495931, - "longitude": 0.18318482 - }, - "sog": 9.8, - "cog": 6.25 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_10_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_11.json b/data/baseline_situations_generated/traffic_situation_11.json index 89b00df..f37be17 100644 --- a/data/baseline_situations_generated/traffic_situation_11.json +++ b/data/baseline_situations_generated/traffic_situation_11.json @@ -1,89 +1,47 @@ { "title": "CR-GW, CR-GW", - "inputFileName": "baseline_situation_11_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "b87887d5-6550-48ab-bf95-1d939b433d95", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 12357.0, - "east": 4016.0, - "latitude": 1.02755182, - "longitude": 0.18430768 - }, - "sog": 6.7, - "cog": 3.695 - } - }, - { - "static": { - "id": "9368ce30-4960-40fa-be23-bd22822d4d75", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -764.0, - "east": 3596.0, - "latitude": 1.02549595, - "longitude": 0.184181 - }, - "sog": 7.2, - "cog": 5.695 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_11_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_12.json b/data/baseline_situations_generated/traffic_situation_12.json index 697131a..bfbdb32 100644 --- a/data/baseline_situations_generated/traffic_situation_12.json +++ b/data/baseline_situations_generated/traffic_situation_12.json @@ -1,89 +1,47 @@ { "title": "CR-GW, CR-SO", - "inputFileName": "baseline_situation_12_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "b18c4572-1476-490d-a849-e06b9ff2bc96", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 6979.0, - "east": 6979.0, - "latitude": 1.02670916, - "longitude": 0.18520132 - }, - "sog": 6.2, - "cog": 4.553 - } - }, - { - "static": { - "id": "ddb77e71-bc48-4f54-87ac-c1f963ccecf1", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -536.0, - "east": -3383.0, - "latitude": 1.02553168, - "longitude": 0.18207614 - }, - "sog": 6.7, - "cog": 0.554 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_12_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_13.json b/data/baseline_situations_generated/traffic_situation_13.json index 6e4cb3c..badb8cc 100644 --- a/data/baseline_situations_generated/traffic_situation_13.json +++ b/data/baseline_situations_generated/traffic_situation_13.json @@ -1,89 +1,47 @@ { "title": "CR-GW, OT-GW", - "inputFileName": "baseline_situation_13_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "7a6fd45e-44b9-4849-ade0-78cf78c3f7e2", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 4781.0, - "east": 8280.0, - "latitude": 1.02636477, - "longitude": 0.1855937 - }, - "sog": 7.7, - "cog": 4.805 - } - }, - { - "static": { - "id": "a78ea112-e155-4089-ad28-4db6f03d1926", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 1581.0, - "east": 1107.0, - "latitude": 1.02586338, - "longitude": 0.18343032 - }, - "sog": 3.6, - "cog": 5.934 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_13_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_14.json b/data/baseline_situations_generated/traffic_situation_14.json index 192b8e4..b623b00 100644 --- a/data/baseline_situations_generated/traffic_situation_14.json +++ b/data/baseline_situations_generated/traffic_situation_14.json @@ -1,89 +1,47 @@ { "title": "CR-GW, OT-SO", - "inputFileName": "baseline_situation_14_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "896c0683-996a-439a-83a1-c266d7f33770", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 559.0, - "east": 3171.0, - "latitude": 1.02570325, - "longitude": 0.18405282 - }, - "sog": 6.2, - "cog": 5.493 - } - }, - { - "static": { - "id": "636aaf66-3ba5-4e27-8df4-150184921adc", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -3009.0, - "east": -1737.0, - "latitude": 1.0251442, - "longitude": 0.18257257 - }, - "sog": 8.7, - "cog": 0.224 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_14_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_15.json b/data/baseline_situations_generated/traffic_situation_15.json index 145246e..71ebd12 100644 --- a/data/baseline_situations_generated/traffic_situation_15.json +++ b/data/baseline_situations_generated/traffic_situation_15.json @@ -1,89 +1,47 @@ { "title": "CR-SO, CR-SO", - "inputFileName": "baseline_situation_15_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "7c13536b-5c1b-4c4a-b8df-08db0fe3b916", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 551.0, - "east": -6299.0, - "latitude": 1.02570199, - "longitude": 0.18119667 - }, - "sog": 7.7, - "cog": 0.931 - } - }, - { - "static": { - "id": "12a02424-bc4c-4486-abff-ba040ecb0b0d", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -869.0, - "east": -4927.0, - "latitude": 1.0254795, - "longitude": 0.18161047 - }, - "sog": 8.2, - "cog": 0.731 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_15_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_16.json b/data/baseline_situations_generated/traffic_situation_16.json index 3580da0..c1a5fd5 100644 --- a/data/baseline_situations_generated/traffic_situation_16.json +++ b/data/baseline_situations_generated/traffic_situation_16.json @@ -1,89 +1,47 @@ { "title": "CR-SO, OT-SO", - "inputFileName": "baseline_situation_16_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "03a5a306-b0a8-4804-ba13-0c9c330de2b3", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -787.0, - "east": -2938.0, - "latitude": 1.02549235, - "longitude": 0.18221035 - }, - "sog": 6.7, - "cog": 0.474 - } - }, - { - "static": { - "id": "a653d9ed-3ba1-407f-a8d7-a764f3024a4f", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -2718.0, - "east": -728.0, - "latitude": 1.02518979, - "longitude": 0.18287689 - }, - "sog": 8.2, - "cog": 0.099 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_16_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_17.json b/data/baseline_situations_generated/traffic_situation_17.json index 58da421..607f26c 100644 --- a/data/baseline_situations_generated/traffic_situation_17.json +++ b/data/baseline_situations_generated/traffic_situation_17.json @@ -1,89 +1,47 @@ { "title": "CR-SO, OT-GW", - "inputFileName": "baseline_situation_17_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "29fe32ec-277b-4325-8435-3d40d9624d33", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -481.0, - "east": -1796.0, - "latitude": 1.02554029, - "longitude": 0.18255478 - }, - "sog": 6.2, - "cog": 0.38 - } - }, - { - "static": { - "id": "af59451a-5889-40b2-8ff2-2cc2b73fa077", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 653.0, - "east": 377.0, - "latitude": 1.02571798, - "longitude": 0.18321015 - }, - "sog": 4.1, - "cog": 6.129 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_17_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_18.json b/data/baseline_situations_generated/traffic_situation_18.json index 38c1543..625b18f 100644 --- a/data/baseline_situations_generated/traffic_situation_18.json +++ b/data/baseline_situations_generated/traffic_situation_18.json @@ -1,89 +1,47 @@ { "title": "OT-GW, OT-GW", - "inputFileName": "baseline_situation_18_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "b53fffa0-6c7e-4f4c-a4d1-8b4f5efaba3a", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 1408.0, - "east": 377.0, - "latitude": 1.02583627, - "longitude": 0.18321015 - }, - "sog": 3.6, - "cog": 6.167 - } - }, - { - "static": { - "id": "417caa10-839b-4090-9295-551b0eef57f6", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 2528.0, - "east": 1179.0, - "latitude": 1.02601176, - "longitude": 0.18345204 - }, - "sog": 3.1, - "cog": 5.943 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_18_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_19.json b/data/baseline_situations_generated/traffic_situation_19.json index d806935..5fc1c60 100644 --- a/data/baseline_situations_generated/traffic_situation_19.json +++ b/data/baseline_situations_generated/traffic_situation_19.json @@ -1,89 +1,47 @@ { "title": "OT-GW, OT-SO", - "inputFileName": "baseline_situation_19_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "996f81bb-21aa-4af4-aaa5-a827de46163f", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 2567.0, - "east": 935.0, - "latitude": 1.02601787, - "longitude": 0.18337845 - }, - "sog": 3.1, - "cog": 6.029 - } - }, - { - "static": { - "id": "94f51729-59cf-485a-b8a3-8aaea101be5b", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -2567.0, - "east": 225.0, - "latitude": 1.02521345, - "longitude": 0.18316431 - }, - "sog": 8.2, - "cog": 6.251 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_19_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_20.json b/data/baseline_situations_generated/traffic_situation_20.json index d1c90ab..e0735ba 100644 --- a/data/baseline_situations_generated/traffic_situation_20.json +++ b/data/baseline_situations_generated/traffic_situation_20.json @@ -1,89 +1,47 @@ { "title": "OT-SO, OT-SO", - "inputFileName": "baseline_situation_20_2_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "00d03740-50e3-4a2e-902d-3022a21df2f0", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -3639.0, - "east": 1324.0, - "latitude": 1.02504548, - "longitude": 0.18349577 - }, - "sog": 9.3, - "cog": 6.124 - } - }, - { - "static": { - "id": "866b6c87-892b-4579-a9d3-e17ad54e0b35", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -1987.0, - "east": 350.0, - "latitude": 1.02530433, - "longitude": 0.18320201 - }, - "sog": 7.7, - "cog": 6.225 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_20_2_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_21.json b/data/baseline_situations_generated/traffic_situation_21.json index 7c745f8..68e3292 100644 --- a/data/baseline_situations_generated/traffic_situation_21.json +++ b/data/baseline_situations_generated/traffic_situation_21.json @@ -1,110 +1,47 @@ { "title": "HO, HO, HO", - "inputFileName": "baseline_situation_21_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "ca1db661-9820-4105-bdc2-61e6e34107b5", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 12913.0, - "east": -451.0, - "latitude": 1.02763893, - "longitude": 0.18296043 - }, - "sog": 6.2, - "cog": 3.078 - } - }, - { - "static": { - "id": "290d72cd-1d72-4c94-bfdf-839d0f17d41f", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 9830.0, - "east": 0.0, - "latitude": 1.02715587, - "longitude": 0.18309645 - }, - "sog": 5.1, - "cog": 3.142 - } - }, - { - "static": { - "id": "3a4f57bd-f867-40ae-9522-ce47360d0d17", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 10742.0, - "east": 751.0, - "latitude": 1.02729877, - "longitude": 0.18332295 - }, - "sog": 7.7, - "cog": 3.258 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_21_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_22.json b/data/baseline_situations_generated/traffic_situation_22.json index 5b7542a..3a0e685 100644 --- a/data/baseline_situations_generated/traffic_situation_22.json +++ b/data/baseline_situations_generated/traffic_situation_22.json @@ -1,110 +1,47 @@ { "title": "HO, HO, CR-GW", - "inputFileName": "baseline_situation_22_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "cb1b9006-6960-4c1f-934c-cbe4aac9710d", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 14035.0, - "east": -736.0, - "latitude": 1.02781473, - "longitude": 0.18287447 - }, - "sog": 7.2, - "cog": 3.052 - } - }, - { - "static": { - "id": "03a0d049-1aa7-467f-a942-217488694dcf", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 12273.0, - "east": 429.0, - "latitude": 1.02753865, - "longitude": 0.18322584 - }, - "sog": 5.1, - "cog": 3.212 - } - }, - { - "static": { - "id": "f71e8a79-a016-4cf9-88ba-56fbfdd3a0ed", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 5666.0, - "east": 4427.0, - "latitude": 1.02650344, - "longitude": 0.18443163 - }, - "sog": 4.1, - "cog": 4.686 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_22_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_23.json b/data/baseline_situations_generated/traffic_situation_23.json index 2098344..e1b5f78 100644 --- a/data/baseline_situations_generated/traffic_situation_23.json +++ b/data/baseline_situations_generated/traffic_situation_23.json @@ -1,110 +1,47 @@ { "title": "HO, HO, CR-SO", - "inputFileName": "baseline_situation_23_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "4a358870-d1ae-463d-9957-740a6ae65592", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 12248.0, - "east": 1072.0, - "latitude": 1.02753474, - "longitude": 0.18341977 - }, - "sog": 7.7, - "cog": 3.287 - } - }, - { - "static": { - "id": "733fa61c-8ee2-47f6-a2a1-9fc1471e20f8", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 12118.0, - "east": 423.0, - "latitude": 1.02751437, - "longitude": 0.18322403 - }, - "sog": 9.3, - "cog": 3.196 - } - }, - { - "static": { - "id": "861eb10d-518b-4463-98f7-599f2b151703", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 4844.0, - "east": -3650.0, - "latitude": 1.02637464, - "longitude": 0.18199561 - }, - "sog": 3.6, - "cog": 1.462 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_23_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_24.json b/data/baseline_situations_generated/traffic_situation_24.json index 68025b1..f8faf8e 100644 --- a/data/baseline_situations_generated/traffic_situation_24.json +++ b/data/baseline_situations_generated/traffic_situation_24.json @@ -1,110 +1,47 @@ { "title": "HO, HO, OT-GW", - "inputFileName": "baseline_situation_24_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "4a62ffa1-3c1c-4f45-8cc3-e2478ed549e9", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 10859.0, - "east": -570.0, - "latitude": 1.0273171, - "longitude": 0.18292454 - }, - "sog": 6.2, - "cog": 3.046 - } - }, - { - "static": { - "id": "fae0ec67-b2d1-4205-ac3f-af7c6b3819f6", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 12118.0, - "east": 423.0, - "latitude": 1.02751437, - "longitude": 0.18322403 - }, - "sog": 9.3, - "cog": 3.196 - } - }, - { - "static": { - "id": "75f51293-f3f2-4f6a-8841-dc4f2d2f5d84", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 3078.0, - "east": 433.0, - "latitude": 1.02609794, - "longitude": 0.18322704 - }, - "sog": 2.6, - "cog": 6.144 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_24_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_25.json b/data/baseline_situations_generated/traffic_situation_25.json index 2580d12..19e535a 100644 --- a/data/baseline_situations_generated/traffic_situation_25.json +++ b/data/baseline_situations_generated/traffic_situation_25.json @@ -1,110 +1,47 @@ { "title": "HO, HO, OT-SO", - "inputFileName": "baseline_situation_25_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "43dec6e0-768e-45a4-bb34-d91c04e1e926", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 14062.0, - "east": -983.0, - "latitude": 1.02781896, - "longitude": 0.18279998 - }, - "sog": 8.7, - "cog": 3.031 - } - }, - { - "static": { - "id": "57d56baa-93c9-49dd-832b-3c9bb50414cb", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 10656.0, - "east": 0.0, - "latitude": 1.02728529, - "longitude": 0.18309645 - }, - "sog": 6.7, - "cog": 3.142 - } - }, - { - "static": { - "id": "219b84c0-3bb2-4c32-aecd-8756f3dd1cb8", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -3275.0, - "east": 1064.0, - "latitude": 1.02510252, - "longitude": 0.18341735 - }, - "sog": 9.8, - "cog": 6.132 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_25_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_26.json b/data/baseline_situations_generated/traffic_situation_26.json index f6eb73b..9859f87 100644 --- a/data/baseline_situations_generated/traffic_situation_26.json +++ b/data/baseline_situations_generated/traffic_situation_26.json @@ -1,110 +1,47 @@ { "title": "HO, CR-GW, CR-GW", - "inputFileName": "baseline_situation_26_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "8c28b7bc-23f8-40e2-b1a8-7b440357e74b", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 15373.0, - "east": 806.0, - "latitude": 1.02802438, - "longitude": 0.18333954 - }, - "sog": 7.7, - "cog": 3.229 - } - }, - { - "static": { - "id": "02135a29-ddb3-418a-9490-6b59d10cbe0a", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 11322.0, - "east": 4121.0, - "latitude": 1.02738965, - "longitude": 0.18433934 - }, - "sog": 7.2, - "cog": 3.737 - } - }, - { - "static": { - "id": "aeb33e2a-b93a-4b34-8d62-b8bfbb7d2836", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -415.0, - "east": 1953.0, - "latitude": 1.02555064, - "longitude": 0.18368547 - }, - "sog": 6.2, - "cog": 5.867 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_26_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_27.json b/data/baseline_situations_generated/traffic_situation_27.json index c131c97..34d4289 100644 --- a/data/baseline_situations_generated/traffic_situation_27.json +++ b/data/baseline_situations_generated/traffic_situation_27.json @@ -1,110 +1,47 @@ { "title": "HO, CR-GW, CR-SO", - "inputFileName": "baseline_situation_27_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "16c1ff59-5ae8-4be9-babb-9c8df6b0a538", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 14793.0, - "east": -516.0, - "latitude": 1.0279335, - "longitude": 0.18294082 - }, - "sog": 7.2, - "cog": 3.082 - } - }, - { - "static": { - "id": "9a55321a-d8dd-43ef-ba0b-cd893c9654e5", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 6244.0, - "east": 6244.0, - "latitude": 1.026594, - "longitude": 0.18497964 - }, - "sog": 6.2, - "cog": 4.553 - } - }, - { - "static": { - "id": "92f6b1df-be33-4a9b-a28d-03f4980bbff2", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -606.0, - "east": -3824.0, - "latitude": 1.02552071, - "longitude": 0.18194313 - }, - "sog": 7.2, - "cog": 0.631 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_27_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_28.json b/data/baseline_situations_generated/traffic_situation_28.json index e7b48d3..3cdfbe5 100644 --- a/data/baseline_situations_generated/traffic_situation_28.json +++ b/data/baseline_situations_generated/traffic_situation_28.json @@ -1,110 +1,47 @@ { "title": "HO, CR-GW, OT-GW", - "inputFileName": "baseline_situation_28_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "6eef5e92-4027-4c59-b7f3-8d07bd2caec1", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 13574.0, - "east": -712.0, - "latitude": 1.0277425, - "longitude": 0.18288171 - }, - "sog": 6.2, - "cog": 3.046 - } - }, - { - "static": { - "id": "7afdc4d3-f99a-4e0b-807d-f5e2b2e8afc2", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 5142.0, - "east": 7343.0, - "latitude": 1.02642133, - "longitude": 0.1853111 - }, - "sog": 7.2, - "cog": 4.726 - } - }, - { - "static": { - "id": "eb292a68-5770-4023-9568-a2ae31ce6f5b", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 2118.0, - "east": 1223.0, - "latitude": 1.02594752, - "longitude": 0.18346531 - }, - "sog": 3.1, - "cog": 5.829 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_28_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_29.json b/data/baseline_situations_generated/traffic_situation_29.json index 8923c8b..af9978d 100644 --- a/data/baseline_situations_generated/traffic_situation_29.json +++ b/data/baseline_situations_generated/traffic_situation_29.json @@ -1,110 +1,47 @@ { "title": "HO, CR-GW, OT-SO", - "inputFileName": "baseline_situation_29_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "28973ee9-2a35-4376-9f03-c0336df41b0b", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 10516.0, - "east": -184.0, - "latitude": 1.02726336, - "longitude": 0.18304096 - }, - "sog": 4.6, - "cog": 3.105 - } - }, - { - "static": { - "id": "bdf1f806-ca03-4e73-a2f5-59cbcdcb4056", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 932.0, - "east": 5285.0, - "latitude": 1.02576169, - "longitude": 0.18469041 - }, - "sog": 6.2, - "cog": 5.493 - } - }, - { - "static": { - "id": "616a8d57-5301-4760-95ce-1578d1fe676c", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -3009.0, - "east": -1737.0, - "latitude": 1.0251442, - "longitude": 0.18257257 - }, - "sog": 8.7, - "cog": 0.224 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_29_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_30.json b/data/baseline_situations_generated/traffic_situation_30.json index 9a928e1..46ee380 100644 --- a/data/baseline_situations_generated/traffic_situation_30.json +++ b/data/baseline_situations_generated/traffic_situation_30.json @@ -1,110 +1,47 @@ { "title": "HO, CR-SO, CR-SO", - "inputFileName": "baseline_situation_30_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "eb222269-0034-4705-b36c-190e3b7ae4ce", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 9422.0, - "east": 165.0, - "latitude": 1.02709195, - "longitude": 0.18314621 - }, - "sog": 4.1, - "cog": 3.181 - } - }, - { - "static": { - "id": "b8237fdd-bd00-4aa3-b7ca-61fad1a3d3a9", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 486.0, - "east": -5558.0, - "latitude": 1.02569181, - "longitude": 0.18142016 - }, - "sog": 7.7, - "cog": 0.931 - } - }, - { - "static": { - "id": "39c265f7-5375-41fe-8109-b21a3b269e68", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -1158.0, - "east": -6569.0, - "latitude": 1.02543422, - "longitude": 0.18111524 - }, - "sog": 8.2, - "cog": 0.731 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_30_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_31.json b/data/baseline_situations_generated/traffic_situation_31.json index efb0227..c68b453 100644 --- a/data/baseline_situations_generated/traffic_situation_31.json +++ b/data/baseline_situations_generated/traffic_situation_31.json @@ -1,110 +1,47 @@ { "title": "HO, CR-SO, OT-SO", - "inputFileName": "baseline_situation_31_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "45e52a09-5198-4eae-8b43-1906eb9b013e", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 9888.0, - "east": 0.0, - "latitude": 1.02716496, - "longitude": 0.18309645 - }, - "sog": 3.1, - "cog": 3.142 - } - }, - { - "static": { - "id": "2d1f91c4-327d-4e8e-8a46-21f4745e0735", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -476.0, - "east": -2700.0, - "latitude": 1.02554108, - "longitude": 0.18228213 - }, - "sog": 6.2, - "cog": 0.441 - } - }, - { - "static": { - "id": "55e0a930-347c-434d-86e9-ba6a907a5c90", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -3072.0, - "east": -1432.0, - "latitude": 1.02513432, - "longitude": 0.18266456 - }, - "sog": 8.7, - "cog": 0.184 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_31_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_32.json b/data/baseline_situations_generated/traffic_situation_32.json index d24c91a..62fa00a 100644 --- a/data/baseline_situations_generated/traffic_situation_32.json +++ b/data/baseline_situations_generated/traffic_situation_32.json @@ -1,110 +1,47 @@ { "title": "HO, CR-SO, OT-GW", - "inputFileName": "baseline_situation_32_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "29621980-4bf0-4fd2-909d-0a483089b87c", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 9284.0, - "east": -162.0, - "latitude": 1.02707032, - "longitude": 0.18304759 - }, - "sog": 2.6, - "cog": 3.09 - } - }, - { - "static": { - "id": "1b0fcd80-1ed2-4cb9-a1ae-8b96604815ed", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -888.0, - "east": -2440.0, - "latitude": 1.02547652, - "longitude": 0.18236055 - }, - "sog": 6.7, - "cog": 0.417 - } - }, - { - "static": { - "id": "022e161e-290f-46ee-ad95-815052cb74ef", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 1137.0, - "east": 796.0, - "latitude": 1.02579381, - "longitude": 0.18333652 - }, - "sog": 4.1, - "cog": 6.092 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_32_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_33.json b/data/baseline_situations_generated/traffic_situation_33.json index 863a2b9..c8def84 100644 --- a/data/baseline_situations_generated/traffic_situation_33.json +++ b/data/baseline_situations_generated/traffic_situation_33.json @@ -1,110 +1,47 @@ { "title": "HO, OT-GW, OT-GW", - "inputFileName": "baseline_situation_33_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "bbf3fbf3-6b65-4723-93d9-3ca57aec0ee3", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 11028.0, - "east": 578.0, - "latitude": 1.02734358, - "longitude": 0.18327077 - }, - "sog": 5.7, - "cog": 3.241 - } - }, - { - "static": { - "id": "ee325abd-8a0a-4473-ba67-d06a77129434", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 3286.0, - "east": 1196.0, - "latitude": 1.02613053, - "longitude": 0.18345716 - }, - "sog": 2.6, - "cog": 5.89 - } - }, - { - "static": { - "id": "c012d60c-2979-459c-97c6-d0ca33290b0b", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 1750.0, - "east": 816.0, - "latitude": 1.02588986, - "longitude": 0.18334256 - }, - "sog": 3.6, - "cog": 6.072 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_33_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_34.json b/data/baseline_situations_generated/traffic_situation_34.json index 6d56605..74ad4ea 100644 --- a/data/baseline_situations_generated/traffic_situation_34.json +++ b/data/baseline_situations_generated/traffic_situation_34.json @@ -1,110 +1,47 @@ { "title": "HO, OT-GW, OT-SO", - "inputFileName": "baseline_situation_34_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "25016563-d738-4cb1-98bd-63eafd5de2e5", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 12048.0, - "east": -632.0, - "latitude": 1.0275034, - "longitude": 0.18290584 - }, - "sog": 6.7, - "cog": 3.049 - } - }, - { - "static": { - "id": "3c2ea5f7-8a07-4a5b-838b-d587db8f09ce", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 2054.0, - "east": 748.0, - "latitude": 1.02593749, - "longitude": 0.18332205 - }, - "sog": 3.1, - "cog": 6.029 - } - }, - { - "static": { - "id": "8f030133-af6f-44a0-8745-b217e2f6a2db", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -2567.0, - "east": 225.0, - "latitude": 1.02521345, - "longitude": 0.18316431 - }, - "sog": 8.2, - "cog": 6.251 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_34_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_35.json b/data/baseline_situations_generated/traffic_situation_35.json index afc6c20..b894c68 100644 --- a/data/baseline_situations_generated/traffic_situation_35.json +++ b/data/baseline_situations_generated/traffic_situation_35.json @@ -1,110 +1,47 @@ { "title": "HO, OT-SO, OT-SO", - "inputFileName": "baseline_situation_35_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "20fbe09d-0f1b-49b7-89b7-ee1c1ae51292", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 9935.0, - "east": 347.0, - "latitude": 1.02717232, - "longitude": 0.18320111 - }, - "sog": 6.7, - "cog": 3.203 - } - }, - { - "static": { - "id": "764718a0-a55f-4638-ba7e-b3c8f365ff8f", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -4261.0, - "east": 1987.0, - "latitude": 1.02494803, - "longitude": 0.18369573 - }, - "sog": 9.8, - "cog": 6.07 - } - }, - { - "static": { - "id": "957206b2-d195-49d3-b3db-2e6ee8dedde6", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -2751.0, - "east": 485.0, - "latitude": 1.02518462, - "longitude": 0.18324273 - }, - "sog": 7.7, - "cog": 6.225 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_35_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_36.json b/data/baseline_situations_generated/traffic_situation_36.json index 306a278..959d492 100644 --- a/data/baseline_situations_generated/traffic_situation_36.json +++ b/data/baseline_situations_generated/traffic_situation_36.json @@ -1,110 +1,47 @@ { "title": "CR-GW, CR-GW, CR-GW", - "inputFileName": "baseline_situation_36_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "51475b3c-b5c7-4620-a4e1-624118fd7e30", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 10182.0, - "east": 2728.0, - "latitude": 1.02721103, - "longitude": 0.18391921 - }, - "sog": 7.7, - "cog": 3.577 - } - }, - { - "static": { - "id": "9d02359b-41c0-44d9-8141-695da3d1f0aa", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 9006.0, - "east": 6307.0, - "latitude": 1.02702676, - "longitude": 0.18499864 - }, - "sog": 7.2, - "cog": 4.174 - } - }, - { - "static": { - "id": "cbe6af72-fd73-4c26-bcc2-0d9a55b67402", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -383.0, - "east": 1803.0, - "latitude": 1.02555565, - "longitude": 0.18364023 - }, - "sog": 6.2, - "cog": 5.867 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_36_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_37.json b/data/baseline_situations_generated/traffic_situation_37.json index 7056f7b..21148af 100644 --- a/data/baseline_situations_generated/traffic_situation_37.json +++ b/data/baseline_situations_generated/traffic_situation_37.json @@ -1,110 +1,47 @@ { "title": "CR-GW, CR-GW, CR-SO", - "inputFileName": "baseline_situation_37_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "894ab513-4734-43c6-b7bf-90c3d865a553", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 574.0, - "east": 6554.0, - "latitude": 1.0257056, - "longitude": 0.18507314 - }, - "sog": 8.2, - "cog": 5.299 - } - }, - { - "static": { - "id": "493a62e3-870e-4247-a615-a788e2af8cc7", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 6611.0, - "east": 6612.0, - "latitude": 1.0266515, - "longitude": 0.18509063 - }, - "sog": 6.2, - "cog": 4.553 - } - }, - { - "static": { - "id": "b563cc17-336e-462a-b838-66f946630f4b", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -905.0, - "east": -3377.0, - "latitude": 1.02547386, - "longitude": 0.18207795 - }, - "sog": 7.2, - "cog": 0.548 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_37_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_38.json b/data/baseline_situations_generated/traffic_situation_38.json index 74f051c..3e76e6d 100644 --- a/data/baseline_situations_generated/traffic_situation_38.json +++ b/data/baseline_situations_generated/traffic_situation_38.json @@ -1,110 +1,47 @@ { "title": "CR-GW, CR-GW, OT-GW", - "inputFileName": "baseline_situation_38_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "919dbf27-f434-49a3-8821-e80a9e3126a1", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 13303.0, - "east": 2107.0, - "latitude": 1.02770004, - "longitude": 0.18373192 - }, - "sog": 6.2, - "cog": 3.429 - } - }, - { - "static": { - "id": "c6fd2743-f7ac-4ef6-bea8-e20418da2663", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 7104.0, - "east": 7104.0, - "latitude": 1.02672875, - "longitude": 0.18523902 - }, - "sog": 7.2, - "cog": 4.456 - } - }, - { - "static": { - "id": "77134423-c065-4968-808b-900bd014c327", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 3736.0, - "east": 1360.0, - "latitude": 1.02620103, - "longitude": 0.18350663 - }, - "sog": 2.1, - "cog": 5.64 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_38_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_39.json b/data/baseline_situations_generated/traffic_situation_39.json index 656b468..6a77d72 100644 --- a/data/baseline_situations_generated/traffic_situation_39.json +++ b/data/baseline_situations_generated/traffic_situation_39.json @@ -1,110 +1,47 @@ { "title": "CR-GW, CR-GW, OT-SO", - "inputFileName": "baseline_situation_39_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "092b632f-7f80-405f-adaa-5cfe3311be52", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 15230.0, - "east": 2685.0, - "latitude": 1.02800197, - "longitude": 0.18390625 - }, - "sog": 9.3, - "cog": 3.412 - } - }, - { - "static": { - "id": "959b0f7b-bd6d-4cb4-8143-5ef83d3c35ae", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 932.0, - "east": 5285.0, - "latitude": 1.02576169, - "longitude": 0.18469041 - }, - "sog": 6.2, - "cog": 5.493 - } - }, - { - "static": { - "id": "63d8f219-23de-44bf-9567-ac67518ecb53", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -3396.0, - "east": -599.0, - "latitude": 1.02508356, - "longitude": 0.18291579 - }, - "sog": 8.7, - "cog": 0.072 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_39_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_40.json b/data/baseline_situations_generated/traffic_situation_40.json index 4c7db09..878b499 100644 --- a/data/baseline_situations_generated/traffic_situation_40.json +++ b/data/baseline_situations_generated/traffic_situation_40.json @@ -1,110 +1,47 @@ { "title": "CR-GW, CR-SO, CR-SO", - "inputFileName": "baseline_situation_40_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "0aaf25c5-c39b-46c3-a30e-99e2f92d0fcc", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 9491.0, - "east": 1673.0, - "latitude": 1.02710276, - "longitude": 0.18360103 - }, - "sog": 3.1, - "cog": 3.608 - } - }, - { - "static": { - "id": "57baf5c0-ad05-497a-9903-cac530d85967", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 1681.0, - "east": -6273.0, - "latitude": 1.02587905, - "longitude": 0.18120451 - }, - "sog": 7.7, - "cog": 1.132 - } - }, - { - "static": { - "id": "c27ef7e1-47ec-445b-aacc-c69f19971762", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -1868.0, - "east": -10596.0, - "latitude": 1.02532297, - "longitude": 0.1799007 - }, - "sog": 8.7, - "cog": 0.775 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_40_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_41.json b/data/baseline_situations_generated/traffic_situation_41.json index a46b11e..96a5f5e 100644 --- a/data/baseline_situations_generated/traffic_situation_41.json +++ b/data/baseline_situations_generated/traffic_situation_41.json @@ -1,110 +1,47 @@ { "title": "CR-GW, CR-SO, OT-SO", - "inputFileName": "baseline_situation_41_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "37c0f8e6-fe6a-477f-b84b-57b04379a1ad", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 2998.0, - "east": 11190.0, - "latitude": 1.0260854, - "longitude": 0.18647135 - }, - "sog": 9.3, - "cog": 5.014 - } - }, - { - "static": { - "id": "7c1e5a08-c89f-4c3f-b538-e9bb77b0a7fc", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 9006.0, - "east": -6307.0, - "latitude": 1.02702676, - "longitude": 0.18119426 - }, - "sog": 7.2, - "cog": 2.109 - } - }, - { - "static": { - "id": "1c086302-7d5a-47dc-8c10-876f5a030334", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -3072.0, - "east": -1432.0, - "latitude": 1.02513432, - "longitude": 0.18266456 - }, - "sog": 8.7, - "cog": 0.184 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_41_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_42.json b/data/baseline_situations_generated/traffic_situation_42.json index a860857..3d36be2 100644 --- a/data/baseline_situations_generated/traffic_situation_42.json +++ b/data/baseline_situations_generated/traffic_situation_42.json @@ -1,110 +1,47 @@ { "title": "CR-GW, CR-SO, OT-GW", - "inputFileName": "baseline_situation_42_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "83b70254-63d2-4bac-8415-a33bf0b1c46d", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 4929.0, - "east": 4929.0, - "latitude": 1.02638796, - "longitude": 0.18458304 - }, - "sog": 4.6, - "cog": 4.838 - } - }, - { - "static": { - "id": "1782ec09-a95c-4513-92e2-f11ec8ee16eb", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 6477.0, - "east": -7719.0, - "latitude": 1.02663051, - "longitude": 0.1807684 - }, - "sog": 8.2, - "cog": 1.768 - } - }, - { - "static": { - "id": "8467703e-dba0-4b25-a18f-30dd2fe97124", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 1054.0, - "east": 738.0, - "latitude": 1.02578081, - "longitude": 0.18331903 - }, - "sog": 3.6, - "cog": 5.934 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_42_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_43.json b/data/baseline_situations_generated/traffic_situation_43.json index 79f9dd8..541730b 100644 --- a/data/baseline_situations_generated/traffic_situation_43.json +++ b/data/baseline_situations_generated/traffic_situation_43.json @@ -1,110 +1,47 @@ { "title": "CR-GW, OT-GW, OT-GW", - "inputFileName": "baseline_situation_43_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "247e8d22-fedd-4077-a1e7-296348e49977", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 10244.0, - "east": 4776.0, - "latitude": 1.02722074, - "longitude": 0.18453689 - }, - "sog": 6.2, - "cog": 3.936 - } - }, - { - "static": { - "id": "0a9dfafc-f743-4bfd-aa36-80b40e686782", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 3166.0, - "east": 848.0, - "latitude": 1.02611172, - "longitude": 0.18335221 - }, - "sog": 2.6, - "cog": 6.008 - } - }, - { - "static": { - "id": "506813e2-884f-472a-8da0-21b92b01cbbd", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 2430.0, - "east": -1133.0, - "latitude": 1.0259964, - "longitude": 0.18275474 - }, - "sog": 3.6, - "cog": 0.211 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_43_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_44.json b/data/baseline_situations_generated/traffic_situation_44.json index 4b23c61..46d6019 100644 --- a/data/baseline_situations_generated/traffic_situation_44.json +++ b/data/baseline_situations_generated/traffic_situation_44.json @@ -1,110 +1,47 @@ { "title": "CR-GW, OT-GW, OT-SO", - "inputFileName": "baseline_situation_44_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "89646715-1b54-4461-845a-a27a383fdbb1", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 5634.0, - "east": 12083.0, - "latitude": 1.02649842, - "longitude": 0.18674068 - }, - "sog": 7.2, - "cog": 4.98 - } - }, - { - "static": { - "id": "4ced74c7-a8fb-41c8-bf27-36acadfca534", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 3286.0, - "east": 1196.0, - "latitude": 1.02613053, - "longitude": 0.18345716 - }, - "sog": 2.6, - "cog": 5.89 - } - }, - { - "static": { - "id": "702c7641-e30a-4ec9-88b4-baa98b59563f", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -2567.0, - "east": 225.0, - "latitude": 1.02521345, - "longitude": 0.18316431 - }, - "sog": 8.2, - "cog": 6.251 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_44_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_45.json b/data/baseline_situations_generated/traffic_situation_45.json index 3f88320..6058e5a 100644 --- a/data/baseline_situations_generated/traffic_situation_45.json +++ b/data/baseline_situations_generated/traffic_situation_45.json @@ -1,110 +1,47 @@ { "title": "CR-GW, OT-SO, OT-SO", - "inputFileName": "baseline_situation_45_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "7a3e6ab3-4406-427e-abde-2851b43e207b", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 9675.0, - "east": 4511.0, - "latitude": 1.02713159, - "longitude": 0.18445697 - }, - "sog": 6.2, - "cog": 3.936 - } - }, - { - "static": { - "id": "08d58108-f238-40fc-b1a2-3edc179572f1", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -3576.0, - "east": 1667.0, - "latitude": 1.02505535, - "longitude": 0.18359922 - }, - "sog": 9.3, - "cog": 6.083 - } - }, - { - "static": { - "id": "e1ad1297-db36-4ec9-ba82-c88618af9167", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -3056.0, - "east": -539.0, - "latitude": 1.02513683, - "longitude": 0.18293389 - }, - "sog": 7.7, - "cog": 0.058 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_45_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_46.json b/data/baseline_situations_generated/traffic_situation_46.json index 8d8d021..fb527c3 100644 --- a/data/baseline_situations_generated/traffic_situation_46.json +++ b/data/baseline_situations_generated/traffic_situation_46.json @@ -1,110 +1,47 @@ { "title": "CR-SO, CR-SO, CR-SO", - "inputFileName": "baseline_situation_46_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "f54bd324-cad1-4360-aacf-17859dc53c18", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 9491.0, - "east": -1673.0, - "latitude": 1.02710276, - "longitude": 0.18259187 - }, - "sog": 3.1, - "cog": 2.675 - } - }, - { - "static": { - "id": "d8ca1e80-0627-4616-bf31-a92725d6a66d", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 1681.0, - "east": -6273.0, - "latitude": 1.02587905, - "longitude": 0.18120451 - }, - "sog": 7.7, - "cog": 1.132 - } - }, - { - "static": { - "id": "268ef1dc-2d41-419d-9388-f4f1293119eb", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 12601.0, - "east": -7275.0, - "latitude": 1.02759005, - "longitude": 0.18090231 - }, - "sog": 8.7, - "cog": 2.318 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_46_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_47.json b/data/baseline_situations_generated/traffic_situation_47.json index 1cee1b9..cf0cc4e 100644 --- a/data/baseline_situations_generated/traffic_situation_47.json +++ b/data/baseline_situations_generated/traffic_situation_47.json @@ -1,110 +1,47 @@ { "title": "CR-SO, CR-SO, OT-SO", - "inputFileName": "baseline_situation_47_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "a10974d0-a534-46d7-8b05-a782103b6fd0", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 14170.0, - "east": -5158.0, - "latitude": 1.02783589, - "longitude": 0.1815408 - }, - "sog": 9.3, - "cog": 2.602 - } - }, - { - "static": { - "id": "ef34bb51-4469-4448-a65d-ff48a8581477", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 5758.0, - "east": -6863.0, - "latitude": 1.02651785, - "longitude": 0.18102657 - }, - "sog": 7.2, - "cog": 1.69 - } - }, - { - "static": { - "id": "dc299f26-de15-4b21-a16e-f9e4f0ff6a06", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -6049.0, - "east": -1621.0, - "latitude": 1.02466787, - "longitude": 0.18260756 - }, - "sog": 9.8, - "cog": 0.126 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_47_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_48.json b/data/baseline_situations_generated/traffic_situation_48.json index 8fe543a..cb2d710 100644 --- a/data/baseline_situations_generated/traffic_situation_48.json +++ b/data/baseline_situations_generated/traffic_situation_48.json @@ -1,110 +1,47 @@ { "title": "CR-SO, CR-SO, OT-GW", - "inputFileName": "baseline_situation_48_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "a9fcb344-ef6d-4ff5-98dd-ff1e3ecbd04d", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 5476.0, - "east": -5477.0, - "latitude": 1.02647367, - "longitude": 0.18144459 - }, - "sog": 4.6, - "cog": 1.445 - } - }, - { - "static": { - "id": "3d394822-a268-4e26-82f7-4dffa16e0e7e", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 4539.0, - "east": -7862.0, - "latitude": 1.02632685, - "longitude": 0.18072527 - }, - "sog": 8.2, - "cog": 1.521 - } - }, - { - "static": { - "id": "52e69d6a-6c0a-473b-b0bf-b232ca26672c", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 1897.0, - "east": 1329.0, - "latitude": 1.02591289, - "longitude": 0.18349728 - }, - "sog": 3.6, - "cog": 5.934 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_48_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_49.json b/data/baseline_situations_generated/traffic_situation_49.json index cd6742b..a1d8cf0 100644 --- a/data/baseline_situations_generated/traffic_situation_49.json +++ b/data/baseline_situations_generated/traffic_situation_49.json @@ -1,110 +1,47 @@ { "title": "CR-SO, OT-GW, OT-GW", - "inputFileName": "baseline_situation_49_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "99d5fc2e-172e-4c74-b159-d7919643dff7", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 11279.0, - "east": -5259.0, - "latitude": 1.02738291, - "longitude": 0.18151034 - }, - "sog": 7.2, - "cog": 2.399 - } - }, - { - "static": { - "id": "72158514-c068-4d7d-892a-7679c0c252b1", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 2509.0, - "east": 672.0, - "latitude": 1.02600878, - "longitude": 0.18329913 - }, - "sog": 3.1, - "cog": 6.102 - } - }, - { - "static": { - "id": "18b07d6e-1a61-4e63-afc7-011d1368a735", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 2430.0, - "east": -1133.0, - "latitude": 1.0259964, - "longitude": 0.18275474 - }, - "sog": 3.6, - "cog": 0.211 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_49_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_50.json b/data/baseline_situations_generated/traffic_situation_50.json index 7804934..66485da 100644 --- a/data/baseline_situations_generated/traffic_situation_50.json +++ b/data/baseline_situations_generated/traffic_situation_50.json @@ -1,110 +1,47 @@ { "title": "CR-SO, OT-GW, OT-SO", - "inputFileName": "baseline_situation_50_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "70d3a681-06d3-4648-b53b-cf5884d2224b", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 3303.0, - "east": -7083.0, - "latitude": 1.02613319, - "longitude": 0.18096022 - }, - "sog": 7.2, - "cog": 1.303 - } - }, - { - "static": { - "id": "8c574e97-d69f-410d-8a13-d0d6663c5047", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 4839.0, - "east": 1297.0, - "latitude": 1.02637386, - "longitude": 0.18348763 - }, - "sog": 2.1, - "cog": 5.859 - } - }, - { - "static": { - "id": "edcf69a9-6b91-491e-a2c0-adbd9bdca74e", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -3667.0, - "east": 321.0, - "latitude": 1.0250411, - "longitude": 0.18319326 - }, - "sog": 8.2, - "cog": 6.251 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_50_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_51.json b/data/baseline_situations_generated/traffic_situation_51.json index be71d0a..2d0da42 100644 --- a/data/baseline_situations_generated/traffic_situation_51.json +++ b/data/baseline_situations_generated/traffic_situation_51.json @@ -1,110 +1,47 @@ { "title": "CR-SO, OT-SO, OT-SO", - "inputFileName": "baseline_situation_51_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "c30a8c0a-042b-4015-b9d8-f80ad276b387", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 9568.0, - "east": -4461.0, - "latitude": 1.02711482, - "longitude": 0.18175101 - }, - "sog": 6.7, - "cog": 2.375 - } - }, - { - "static": { - "id": "cbfcdf29-2fae-49e4-97e9-4c62fad5ddd9", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -2623.0, - "east": 1223.0, - "latitude": 1.02520468, - "longitude": 0.18346531 - }, - "sog": 9.3, - "cog": 6.083 - } - }, - { - "static": { - "id": "441b8b9d-efc6-45a6-819d-d48a891ff0e2", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -3585.0, - "east": -1305.0, - "latitude": 1.02505394, - "longitude": 0.18270286 - }, - "sog": 8.2, - "cog": 0.133 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_51_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_52.json b/data/baseline_situations_generated/traffic_situation_52.json index 11263e3..4d04ff4 100644 --- a/data/baseline_situations_generated/traffic_situation_52.json +++ b/data/baseline_situations_generated/traffic_situation_52.json @@ -1,110 +1,47 @@ { "title": "OT-GW, OT-GW, OT-GW", - "inputFileName": "baseline_situation_52_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "93a1ef85-c5a8-4dfd-bb43-2817167f50f3", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 1690.0, - "east": -453.0, - "latitude": 1.02588046, - "longitude": 0.18295983 - }, - "sog": 3.6, - "cog": 0.117 - } - }, - { - "static": { - "id": "d648e5ee-e282-4fe7-85d7-f4503be39157", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 2509.0, - "east": 672.0, - "latitude": 1.02600878, - "longitude": 0.18329913 - }, - "sog": 3.1, - "cog": 6.102 - } - }, - { - "static": { - "id": "87b12c3a-e398-4682-8b59-5a5d33e23f95", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 4039.0, - "east": -1883.0, - "latitude": 1.02624851, - "longitude": 0.18252854 - }, - "sog": 2.6, - "cog": 0.552 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_52_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_53.json b/data/baseline_situations_generated/traffic_situation_53.json index d2a7043..2419e3b 100644 --- a/data/baseline_situations_generated/traffic_situation_53.json +++ b/data/baseline_situations_generated/traffic_situation_53.json @@ -1,110 +1,47 @@ { "title": "OT-GW, OT-GW, OT-SO", - "inputFileName": "baseline_situation_53_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "98d1bed2-8ee2-4a0d-bd23-e06937aa071b", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 1571.0, - "east": 0.0, - "latitude": 1.02586181, - "longitude": 0.18309645 - }, - "sog": 3.6, - "cog": 0.0 - } - }, - { - "static": { - "id": "2c299fb7-7c88-4a86-8ded-1d218f02a5a6", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": 5603.0, - "east": 988.0, - "latitude": 1.02649357, - "longitude": 0.18339443 - }, - "sog": 2.1, - "cog": 6.019 - } - }, - { - "static": { - "id": "1483d2e8-02dc-44b5-866f-2a684af66a31", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -4265.0, - "east": -373.0, - "latitude": 1.0249474, - "longitude": 0.18298395 - }, - "sog": 8.7, - "cog": 0.036 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_53_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_54.json b/data/baseline_situations_generated/traffic_situation_54.json index a9fcfc0..c86c307 100644 --- a/data/baseline_situations_generated/traffic_situation_54.json +++ b/data/baseline_situations_generated/traffic_situation_54.json @@ -1,110 +1,47 @@ { "title": "OT-GW, OT-SO, OT-SO", - "inputFileName": "baseline_situation_54_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "0dc76e2e-44b7-4b5c-8edd-ef2d8653e2b3", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": 2006.0, - "east": -1158.0, - "latitude": 1.02592997, - "longitude": 0.1827472 - }, - "sog": 3.6, - "cog": 0.271 - } - }, - { - "static": { - "id": "111b382b-e12a-4f00-8699-c35e18e15b61", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -3815.0, - "east": 1779.0, - "latitude": 1.02501791, - "longitude": 0.183633 - }, - "sog": 9.3, - "cog": 6.083 - } - }, - { - "static": { - "id": "604a2f37-cb1f-48ce-93bb-121ba0a318ac", - "length": 122.0, - "width": 20.0, - "height": 8.0, - "speedMax": 17.0, - "name": "BASTO", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -4366.0, - "east": -1589.0, - "latitude": 1.02493157, - "longitude": 0.18261721 - }, - "sog": 9.3, - "cog": 0.159 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_54_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_55.json b/data/baseline_situations_generated/traffic_situation_55.json index f4f9cb8..33a2863 100644 --- a/data/baseline_situations_generated/traffic_situation_55.json +++ b/data/baseline_situations_generated/traffic_situation_55.json @@ -1,110 +1,47 @@ { "title": "OT-SO, OT-SO, OT-SO", - "inputFileName": "baseline_situation_55_3_ts.json", - "commonVector": 600.0, "ownShip": { "static": { - "id": "0216291f-1ce2-4e76-b752-7cf93e48f6ab", + "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", "length": 122.0, "width": 20.0, "height": 8.0, - "speedMax": 17.0, "mmsi": 257847600, "name": "BASTO VI", - "shipType": "Passenger" + "shipType": "Passenger", + "speed_max": 17 }, "initial": { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 }, "sog": 5.14, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" }, "waypoints": [ { "position": { - "north": 0.0, - "east": 0.0, "latitude": 1.02561566, - "longitude": 0.18309645 + "longitude": 0.18309645, + "east": 0, + "north": 0 } }, { "position": { - "north": 18504.0, - "east": 0.0, "latitude": 1.02851496, - "longitude": 0.18309645 + "longitude": 0.18309645, + "north": 18504.0, + "east": 0.0 } } ] }, - "targetShips": [ - { - "static": { - "id": "279dcd4a-3679-49e3-9446-987a7b9c0192", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -4441.0, - "east": 783.0, - "latitude": 1.02491982, - "longitude": 0.1833326 - }, - "sog": 9.8, - "cog": 6.2 - } - }, - { - "static": { - "id": "d3570ba7-5697-4a4c-9556-f18f89735147", - "length": 178.0, - "width": 30.0, - "height": 30.0, - "speedMax": 21.0, - "name": "BASTO VI", - "shipType": "Passenger" - }, - "initial": { - "position": { - "north": -4053.0, - "east": 1890.0, - "latitude": 1.02498062, - "longitude": 0.18366647 - }, - "sog": 9.3, - "cog": 6.083 - } - }, - { - "static": { - "id": "cd2d7d01-9be9-43ab-9135-609fed487d8a", - "length": 50.0, - "width": 10.0, - "height": 8.0, - "speedMax": 15.0, - "name": "CANOLE", - "shipType": "Cargo" - }, - "initial": { - "position": { - "north": -4162.0, - "east": -1515.0, - "latitude": 1.02496354, - "longitude": 0.18263953 - }, - "sog": 8.7, - "cog": 0.146 - } - } - ] + "targetShips": [], + "input_file_name": "baseline_situation_55_3_ts.json", + "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_input/baseline_situation_01_1_ts.json b/data/baseline_situations_input/baseline_situation_01_1_ts.json index e7f8b25..da4cc11 100644 --- a/data/baseline_situations_input/baseline_situation_01_1_ts.json +++ b/data/baseline_situations_input/baseline_situation_01_1_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_02_1_ts.json b/data/baseline_situations_input/baseline_situation_02_1_ts.json index 746769b..e8422d6 100644 --- a/data/baseline_situations_input/baseline_situation_02_1_ts.json +++ b/data/baseline_situations_input/baseline_situation_02_1_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_03_1_ts.json b/data/baseline_situations_input/baseline_situation_03_1_ts.json index 0691630..006dc8e 100644 --- a/data/baseline_situations_input/baseline_situation_03_1_ts.json +++ b/data/baseline_situations_input/baseline_situation_03_1_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_04_1_ts.json b/data/baseline_situations_input/baseline_situation_04_1_ts.json index f00c5d0..f542cd1 100644 --- a/data/baseline_situations_input/baseline_situation_04_1_ts.json +++ b/data/baseline_situations_input/baseline_situation_04_1_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_05_1_ts.json b/data/baseline_situations_input/baseline_situation_05_1_ts.json index 7e2db6d..0e83902 100644 --- a/data/baseline_situations_input/baseline_situation_05_1_ts.json +++ b/data/baseline_situations_input/baseline_situation_05_1_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_06_2_ts.json b/data/baseline_situations_input/baseline_situation_06_2_ts.json index 54aa2fd..bb0346d 100644 --- a/data/baseline_situations_input/baseline_situation_06_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_06_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_07_2_ts.json b/data/baseline_situations_input/baseline_situation_07_2_ts.json index 8830412..1d7e192 100644 --- a/data/baseline_situations_input/baseline_situation_07_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_07_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_08_2_ts.json b/data/baseline_situations_input/baseline_situation_08_2_ts.json index 662ca2b..1167dbe 100644 --- a/data/baseline_situations_input/baseline_situation_08_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_08_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_09_2_ts.json b/data/baseline_situations_input/baseline_situation_09_2_ts.json index a47fbae..014ce32 100644 --- a/data/baseline_situations_input/baseline_situation_09_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_09_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_10_2_ts.json b/data/baseline_situations_input/baseline_situation_10_2_ts.json index 23c63fe..98992b3 100644 --- a/data/baseline_situations_input/baseline_situation_10_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_10_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_11_2_ts.json b/data/baseline_situations_input/baseline_situation_11_2_ts.json index 6724480..d4dc483 100644 --- a/data/baseline_situations_input/baseline_situation_11_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_11_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_12_2_ts.json b/data/baseline_situations_input/baseline_situation_12_2_ts.json index 5ddff4d..e78aec9 100644 --- a/data/baseline_situations_input/baseline_situation_12_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_12_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_13_2_ts.json b/data/baseline_situations_input/baseline_situation_13_2_ts.json index 7740bf0..329309b 100644 --- a/data/baseline_situations_input/baseline_situation_13_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_13_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_14_2_ts.json b/data/baseline_situations_input/baseline_situation_14_2_ts.json index 06ef3c6..1150a70 100644 --- a/data/baseline_situations_input/baseline_situation_14_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_14_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_15_2_ts.json b/data/baseline_situations_input/baseline_situation_15_2_ts.json index 2071beb..8df848a 100644 --- a/data/baseline_situations_input/baseline_situation_15_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_15_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_16_2_ts.json b/data/baseline_situations_input/baseline_situation_16_2_ts.json index 442b0e3..9b82b3f 100644 --- a/data/baseline_situations_input/baseline_situation_16_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_16_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_17_2_ts.json b/data/baseline_situations_input/baseline_situation_17_2_ts.json index cdddf7c..8d572f8 100644 --- a/data/baseline_situations_input/baseline_situation_17_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_17_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_18_2_ts.json b/data/baseline_situations_input/baseline_situation_18_2_ts.json index 740f5fe..b0f8788 100644 --- a/data/baseline_situations_input/baseline_situation_18_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_18_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_19_2_ts.json b/data/baseline_situations_input/baseline_situation_19_2_ts.json index 1170a17..c1ee68d 100644 --- a/data/baseline_situations_input/baseline_situation_19_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_19_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_20_2_ts.json b/data/baseline_situations_input/baseline_situation_20_2_ts.json index 8a14b31..d726dcc 100644 --- a/data/baseline_situations_input/baseline_situation_20_2_ts.json +++ b/data/baseline_situations_input/baseline_situation_20_2_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_21_3_ts.json b/data/baseline_situations_input/baseline_situation_21_3_ts.json index 95b5394..57dd712 100644 --- a/data/baseline_situations_input/baseline_situation_21_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_21_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_22_3_ts.json b/data/baseline_situations_input/baseline_situation_22_3_ts.json index c9c9704..a6c4c88 100644 --- a/data/baseline_situations_input/baseline_situation_22_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_22_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_23_3_ts.json b/data/baseline_situations_input/baseline_situation_23_3_ts.json index 8c34fd7..1b8ded9 100644 --- a/data/baseline_situations_input/baseline_situation_23_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_23_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_24_3_ts.json b/data/baseline_situations_input/baseline_situation_24_3_ts.json index 1480d1e..d5878d2 100644 --- a/data/baseline_situations_input/baseline_situation_24_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_24_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_25_3_ts.json b/data/baseline_situations_input/baseline_situation_25_3_ts.json index 1bc5336..e1b7c38 100644 --- a/data/baseline_situations_input/baseline_situation_25_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_25_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_26_3_ts.json b/data/baseline_situations_input/baseline_situation_26_3_ts.json index cf9ef49..12d9440 100644 --- a/data/baseline_situations_input/baseline_situation_26_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_26_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_27_3_ts.json b/data/baseline_situations_input/baseline_situation_27_3_ts.json index 9d1e2b6..ff28b80 100644 --- a/data/baseline_situations_input/baseline_situation_27_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_27_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_28_3_ts.json b/data/baseline_situations_input/baseline_situation_28_3_ts.json index 8bc486f..23c97ec 100644 --- a/data/baseline_situations_input/baseline_situation_28_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_28_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_29_3_ts.json b/data/baseline_situations_input/baseline_situation_29_3_ts.json index 6332f46..8c5799e 100644 --- a/data/baseline_situations_input/baseline_situation_29_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_29_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_30_3_ts.json b/data/baseline_situations_input/baseline_situation_30_3_ts.json index a260856..72bb7a6 100644 --- a/data/baseline_situations_input/baseline_situation_30_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_30_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_31_3_ts.json b/data/baseline_situations_input/baseline_situation_31_3_ts.json index 99d6b1e..b1c3645 100644 --- a/data/baseline_situations_input/baseline_situation_31_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_31_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_32_3_ts.json b/data/baseline_situations_input/baseline_situation_32_3_ts.json index 9dcffec..88501d8 100644 --- a/data/baseline_situations_input/baseline_situation_32_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_32_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_33_3_ts.json b/data/baseline_situations_input/baseline_situation_33_3_ts.json index 00fdf42..bba2e91 100644 --- a/data/baseline_situations_input/baseline_situation_33_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_33_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_34_3_ts.json b/data/baseline_situations_input/baseline_situation_34_3_ts.json index df4d134..73b0ad2 100644 --- a/data/baseline_situations_input/baseline_situation_34_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_34_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_35_3_ts.json b/data/baseline_situations_input/baseline_situation_35_3_ts.json index 073b6cf..3fd5540 100644 --- a/data/baseline_situations_input/baseline_situation_35_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_35_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_36_3_ts.json b/data/baseline_situations_input/baseline_situation_36_3_ts.json index 0086773..a0fdef6 100644 --- a/data/baseline_situations_input/baseline_situation_36_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_36_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_37_3_ts.json b/data/baseline_situations_input/baseline_situation_37_3_ts.json index 7e9c98f..afab06b 100644 --- a/data/baseline_situations_input/baseline_situation_37_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_37_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_38_3_ts.json b/data/baseline_situations_input/baseline_situation_38_3_ts.json index 5aa7875..d676b75 100644 --- a/data/baseline_situations_input/baseline_situation_38_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_38_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_39_3_ts.json b/data/baseline_situations_input/baseline_situation_39_3_ts.json index 3f08295..0c2e0f2 100644 --- a/data/baseline_situations_input/baseline_situation_39_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_39_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_40_3_ts.json b/data/baseline_situations_input/baseline_situation_40_3_ts.json index 94a0b8b..0cb33fe 100644 --- a/data/baseline_situations_input/baseline_situation_40_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_40_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_41_3_ts.json b/data/baseline_situations_input/baseline_situation_41_3_ts.json index df4f61b..e112817 100644 --- a/data/baseline_situations_input/baseline_situation_41_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_41_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_42_3_ts.json b/data/baseline_situations_input/baseline_situation_42_3_ts.json index 7809d56..52dcd56 100644 --- a/data/baseline_situations_input/baseline_situation_42_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_42_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_43_3_ts.json b/data/baseline_situations_input/baseline_situation_43_3_ts.json index d405658..b4ff2a7 100644 --- a/data/baseline_situations_input/baseline_situation_43_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_43_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_44_3_ts.json b/data/baseline_situations_input/baseline_situation_44_3_ts.json index 2e14f94..2342995 100644 --- a/data/baseline_situations_input/baseline_situation_44_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_44_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_45_3_ts.json b/data/baseline_situations_input/baseline_situation_45_3_ts.json index f6495cb..195864c 100644 --- a/data/baseline_situations_input/baseline_situation_45_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_45_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_46_3_ts.json b/data/baseline_situations_input/baseline_situation_46_3_ts.json index 458a89e..6ab7f87 100644 --- a/data/baseline_situations_input/baseline_situation_46_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_46_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_47_3_ts.json b/data/baseline_situations_input/baseline_situation_47_3_ts.json index 20b1007..1edc45d 100644 --- a/data/baseline_situations_input/baseline_situation_47_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_47_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_48_3_ts.json b/data/baseline_situations_input/baseline_situation_48_3_ts.json index 3edfbf4..e73b837 100644 --- a/data/baseline_situations_input/baseline_situation_48_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_48_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_49_3_ts.json b/data/baseline_situations_input/baseline_situation_49_3_ts.json index 0af5fa4..775a254 100644 --- a/data/baseline_situations_input/baseline_situation_49_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_49_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_50_3_ts.json b/data/baseline_situations_input/baseline_situation_50_3_ts.json index a6e9d2f..f9af633 100644 --- a/data/baseline_situations_input/baseline_situation_50_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_50_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_51_3_ts.json b/data/baseline_situations_input/baseline_situation_51_3_ts.json index f6281de..b73c379 100644 --- a/data/baseline_situations_input/baseline_situation_51_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_51_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_52_3_ts.json b/data/baseline_situations_input/baseline_situation_52_3_ts.json index d08c522..8600314 100644 --- a/data/baseline_situations_input/baseline_situation_52_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_52_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_53_3_ts.json b/data/baseline_situations_input/baseline_situation_53_3_ts.json index 4899a72..593112a 100644 --- a/data/baseline_situations_input/baseline_situation_53_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_53_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_54_3_ts.json b/data/baseline_situations_input/baseline_situation_54_3_ts.json index aaad6f6..68c521f 100644 --- a/data/baseline_situations_input/baseline_situation_54_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_54_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/data/baseline_situations_input/baseline_situation_55_3_ts.json b/data/baseline_situations_input/baseline_situation_55_3_ts.json index 468032d..8f6c114 100644 --- a/data/baseline_situations_input/baseline_situation_55_3_ts.json +++ b/data/baseline_situations_input/baseline_situation_55_3_ts.json @@ -8,7 +8,8 @@ "longitude": 10.490654 }, "sog": 10.0, - "cog": 0.0 + "cog": 0.0, + "navStatus": "Under way using engine" } }, "encounter": [ diff --git a/src/trafficgen/check_land_crossing.py b/src/trafficgen/check_land_crossing.py index 3dd0ec9..18c2b83 100644 --- a/src/trafficgen/check_land_crossing.py +++ b/src/trafficgen/check_land_crossing.py @@ -1,49 +1,49 @@ -"""Module with helper functions to determine if a generated path is crossing land.""" - -from typing import List - -from global_land_mask import globe - -from trafficgen.marine_system_simulator import flat2llh -from trafficgen.types import Position -from trafficgen.utils import calculate_position_at_certain_time, rad_2_deg - - -def path_crosses_land( - position_1: Position, - speed: float, - course: float, - lat_lon0: List[float], - time_interval: float = 300.0, -) -> bool: - """ - Find if path is crossing land. - - Params: - position_1: Ship position in (north, east) [m]. - speed: Ship speed [m/s]. - course: Ship course [rad]. - lat_lon0: Reference point, latitudinal [rad] and longitudinal [rad]. - time_interval: The time interval the vessel should travel without crossing land [sec] - - Returns - ------- - is_on_land: True if parts of the path crosses land. - """ - - north_1 = position_1.north - east_1 = position_1.east - lat_0 = lat_lon0[0] - lon_0 = lat_lon0[1] - - num_checks = 10 - for i in range(int(time_interval / num_checks)): - position_2 = calculate_position_at_certain_time( - Position(north=north_1, east=east_1), speed, course, i * time_interval / num_checks - ) - lat, lon, _ = flat2llh(position_2.north, position_2.east, lat_0, lon_0) - lat = rad_2_deg(lat) - lon = rad_2_deg(lon) - if globe.is_land(lat, lon): # type: ignore (The global_land_mask package is unfortunately not typed.) - return True - return False +"""Module with helper functions to determine if a generated path is crossing land.""" + +from typing import List + +from global_land_mask import globe + +from trafficgen.marine_system_simulator import flat2llh +from maritime_schema.types.caga import Position +from trafficgen.utils import calculate_position_at_certain_time, rad_2_deg + + +def path_crosses_land( + position_1: Position, + speed: float, + course: float, + lat_lon0: List[float], + time_interval: float = 300.0, +) -> bool: + """ + Find if path is crossing land. + + Params: + position_1: Ship position in (north, east) [m]. + speed: Ship speed [m/s]. + course: Ship course [rad]. + lat_lon0: Reference point, latitudinal [rad] and longitudinal [rad]. + time_interval: The time interval the vessel should travel without crossing land [sec] + + Returns + ------- + is_on_land: True if parts of the path crosses land. + """ + + north_1 = position_1.north + east_1 = position_1.east + lat_0 = lat_lon0[0] + lon_0 = lat_lon0[1] + + num_checks = 10 + for i in range(int(time_interval / num_checks)): + position_2 = calculate_position_at_certain_time( + Position(north=north_1, east=east_1), speed, course, i * time_interval / num_checks + ) + lat, lon, _ = flat2llh(position_2.north, position_2.east, lat_0, lon_0) + lat = rad_2_deg(lat) + lon = rad_2_deg(lon) + if globe.is_land(lat, lon): # type: ignore (The global_land_mask package is unfortunately not typed.) + return True + return False diff --git a/src/trafficgen/encounter.py b/src/trafficgen/encounter.py index 1bdcb69..3707455 100644 --- a/src/trafficgen/encounter.py +++ b/src/trafficgen/encounter.py @@ -1,736 +1,734 @@ -""" -Functions to generate encounters consisting of one own ship and one to many target ships. -The generated encounters may be of type head-on, overtaking give-way and stand-on and -crossing give-way and stand-on. -""" - -import random -from typing import List, Optional, Tuple, Union -from uuid import uuid4 - -import numpy as np - -from trafficgen.check_land_crossing import path_crosses_land -from trafficgen.marine_system_simulator import flat2llh -from trafficgen.types import ( - EncounterRelativeSpeed, - EncounterSettings, - EncounterType, - Initial, - OwnShip, - Position, - TargetShip, - Waypoint, -) -from trafficgen.utils import ( - calculate_position_at_certain_time, - convert_angle_0_to_2_pi_to_minus_pi_to_pi, - convert_angle_minus_pi_to_pi_to_0_to_2_pi, -) - - -def generate_encounter( - desired_encounter_type: EncounterType, - own_ship: OwnShip, - target_ships: List[TargetShip], - beta_default: Optional[float], - relative_sog_default: Optional[float], - vector_time_default: Optional[float], - settings: EncounterSettings, -) -> Tuple[TargetShip, bool]: - """ - Generate an encounter. - - Params: - * desired_encounter_type: Desired encounter to be generated - * own_ship: Dict, information about own ship that will encounter a target ship - * target_ships: List of target ships that may be used in an encounter - * beta_default: User defined beta. If not set, this is None. - * relative_sog_default: User defined relative sog between own ship and - target ship. If not set, this is None. - * vector_time_default: User defined vector time. If not set, this is None. - * settings: Encounter settings - - Returns - ------- - target_ship: target ship information, such as initial position, sog and cog - encounter_found: True=encounter found, False=encounter not found - """ - encounter_found: bool = False - outer_counter: int = 0 - # Initial posision of own ship used as reference point for lat_lon0 - assert own_ship.initial is not None - lat_lon0 = [own_ship.initial.position.latitude, own_ship.initial.position.longitude] - - target_ship = decide_target_ship(target_ships) - assert target_ship.static is not None - - # Searching for encounter. Two loops used. Only vector time is locked in the - # first loop. In the second loop, beta and sog are assigned. - while not encounter_found and outer_counter < 5: - outer_counter += 1 - inner_counter: int = 0 - - # resetting vector_time, beta and relative_sog to default values before - # new search for situation is done - vector_time: Union[float, None] = vector_time_default - beta: Union[float, None] = beta_default - - if vector_time is None: - vector_time = random.uniform(settings.vector_range[0], settings.vector_range[1]) - if beta is None: - beta = assign_beta(desired_encounter_type, settings) - - # Own ship - assert own_ship.initial is not None - own_ship_position_future = calculate_position_at_certain_time( - own_ship.initial.position, - own_ship.initial.sog, - own_ship.initial.cog, - vector_time, - ) - - # Target ship - target_ship.initial = Initial() # reset initial of target_ship (if one existed) - - target_ship_position_future = assign_future_position_to_target_ship( - own_ship_position_future, settings.max_meeting_distance - ) - - while not encounter_found and inner_counter < 5: - inner_counter += 1 - relative_sog = relative_sog_default - if relative_sog is None: - min_target_ship_sog = ( - calculate_min_vector_length_target_ship( - own_ship.initial.position, - own_ship.initial.cog, - target_ship_position_future, - beta, - ) - / vector_time - ) - - target_ship.initial.sog = assign_sog_to_target_ship( - desired_encounter_type, - own_ship.initial.sog, - min_target_ship_sog, - settings.relative_speed, - ) - else: - target_ship.initial.sog = relative_sog * own_ship.initial.sog - - target_ship.initial.sog = round( - np.minimum(target_ship.initial.sog, target_ship.static.speed_max), 1 - ) - - target_ship_vector_length = target_ship.initial.sog * vector_time - start_position_target_ship, position_found = find_start_position_target_ship( - own_ship.initial.position, - own_ship.initial.cog, - target_ship_position_future, - target_ship_vector_length, - beta, - desired_encounter_type, - settings, - ) - - if position_found: - target_ship.initial.position = start_position_target_ship - target_ship.initial.cog = calculate_ship_cog( - target_ship.initial.position, target_ship_position_future - ) - encounter_ok: bool = check_encounter_evolvement( - own_ship, - own_ship_position_future, - target_ship, - target_ship_position_future, - desired_encounter_type, - settings, - ) - - # Check if trajectory passes land - trajectory_on_land = path_crosses_land( - target_ship.initial.position, - target_ship.initial.sog, - target_ship.initial.cog, - lat_lon0, - ) - - encounter_found = encounter_ok and not trajectory_on_land - - if encounter_found: - target_ship.static.id = uuid4() - target_ship = update_position_data_target_ship(target_ship, lat_lon0) - return target_ship, encounter_found - - -def check_encounter_evolvement( - own_ship: OwnShip, - own_ship_position_future: Position, - target_ship: TargetShip, - target_ship_position_future: Position, - desired_encounter_type: EncounterType, - settings: EncounterSettings, -) -> bool: - """ - Check encounter evolvement. The generated encounter should be the same type of - encounter (head-on, crossing, give-way) also some time before the encounter is started. - - Params: - * own_ship: Own ship information such as initial position, sog and cog - * target_ship: Target ship information such as initial position, sog and cog - * desired_encounter_type: Desired type of encounter to be generated - * settings: Encounter settings - - Returns - ------- - * returns True if encounter ok, False if encounter not ok - """ - theta13_criteria: float = settings.classification.theta13_criteria - theta14_criteria: float = settings.classification.theta14_criteria - theta15_criteria: float = settings.classification.theta15_criteria - theta15: List[float] = settings.classification.theta15 - - assert own_ship.initial is not None - assert target_ship.initial is not None - - own_ship_sog: float = own_ship.initial.sog - own_ship_cog: float = own_ship.initial.cog - target_ship_sog: float = target_ship.initial.sog - target_ship_cog: float = target_ship.initial.cog - evolve_time: float = settings.evolve_time - - # Calculating position back in time to ensure that the encounter do not change from one type - # to another before the encounter is started - encounter_preposition_target_ship = calculate_position_at_certain_time( - target_ship_position_future, - target_ship_sog, - target_ship_cog, - -evolve_time, - ) - encounter_preposition_own_ship = calculate_position_at_certain_time( - own_ship_position_future, - own_ship_sog, - own_ship_cog, - -evolve_time, - ) - pre_beta, pre_alpha = calculate_relative_bearing( - encounter_preposition_own_ship, - own_ship_cog, - encounter_preposition_target_ship, - target_ship_cog, - ) - pre_colreg_state = determine_colreg( - pre_alpha, pre_beta, theta13_criteria, theta14_criteria, theta15_criteria, theta15 - ) - - encounter_ok: bool = pre_colreg_state == desired_encounter_type - - return encounter_ok - - -def calculate_min_vector_length_target_ship( - own_ship_position: Position, - own_ship_cog: float, - target_ship_position_future: Position, - desired_beta: float, -) -> float: - """ - Calculate minimum vector length (target ship sog x vector). This will - ensure that ship sog is high enough to find proper situation. - - Params: - * own_ship_position: Own ship initial position, sog and cog - * own_ship_cog: Own ship initial cog - * target_ship_position_future: Target ship future position - * desired_beta: Desired relative bearing between - - Returns: min_vector_length: Minimum vector length (target ship sog x vector) - """ - psi: float = np.deg2rad(own_ship_cog + desired_beta) - - p_1 = np.array([own_ship_position.north, own_ship_position.east]) - p_2 = np.array([own_ship_position.north + np.cos(psi), own_ship_position.east + np.sin(psi)]) - p_3 = np.array([target_ship_position_future.north, target_ship_position_future.east]) - - min_vector_length: float = float(np.abs(np.cross(p_2 - p_1, p_3 - p_1) / np.linalg.norm(p_2 - p_1))) - - return min_vector_length - - -def find_start_position_target_ship( - own_ship_position: Position, - own_ship_cog: float, - target_ship_position_future: Position, - target_ship_vector_length: float, - desired_beta: float, - desired_encounter_type: EncounterType, - settings: EncounterSettings, -): - """ - Find start position of target ship using desired beta and vector length. - - Params: - * own_ship_position: Own ship initial position, sog and cog - * own_ship_cog: Own ship initial cog - * target_ship_position_future: Target ship future position - * target_ship_vector_length: vector length (target ship sog x vector) - * desired_beta: Desired bearing between own ship and target ship seen from own ship - * desired_encounter_type: Desired type of encounter to be generated - * settings: Encounter settings - - Returns - ------- - * start_position_target_ship: Dict, initial position of target ship {north, east} [m] - * start_position_found: 0=position not found, 1=position found - """ - theta13_criteria: float = settings.classification.theta13_criteria - theta14_criteria: float = settings.classification.theta14_criteria - theta15_criteria: float = settings.classification.theta15_criteria - theta15: List[float] = settings.classification.theta15 - - n_1: float = own_ship_position.north - e_1: float = own_ship_position.east - n_2: float = target_ship_position_future.north - e_2: float = target_ship_position_future.east - v_r: float = target_ship_vector_length - psi: float = own_ship_cog + desired_beta - - n_4: float = n_1 + np.cos(psi) - e_4: float = e_1 + np.sin(psi) - - b: float = ( - -2 * e_2 * e_4 - - 2 * n_2 * n_4 - + 2 * e_1 * e_2 - + 2 * n_1 * n_2 - + 2 * e_1 * (e_4 - e_1) - + 2 * n_1 * (n_4 - n_1) - ) - a: float = (e_4 - e_1) ** 2 + (n_4 - n_1) ** 2 - c: float = e_2**2 + n_2**2 - 2 * e_1 * e_2 - 2 * n_1 * n_2 - v_r**2 + e_1**2 + n_1**2 - - # Assign conservative fallback values to return variables - start_position_found: bool = False - start_position_target_ship = target_ship_position_future.model_copy() - - if b**2 - 4 * a * c <= 0.0: - # Do not run calculation of target ship start position. Return fallback values. - return start_position_target_ship, start_position_found - - # Calculation of target ship start position - s_1 = (-b + np.sqrt(b**2 - 4 * a * c)) / (2 * a) - s_2 = (-b - np.sqrt(b**2 - 4 * a * c)) / (2 * a) - - e_31 = round(e_1 + s_1 * (e_4 - e_1), 0) - n_31 = round(n_1 + s_1 * (n_4 - n_1), 0) - e_32 = round(e_1 + s_2 * (e_4 - e_1), 0) - n_32 = round(n_1 + s_2 * (n_4 - n_1), 0) - - target_ship_cog_1 = calculate_ship_cog( - pos_0=Position(north=n_31, east=e_31), - pos_1=target_ship_position_future, - ) - beta1, alpha1 = calculate_relative_bearing( - position_own_ship=own_ship_position, - heading_own_ship=own_ship_cog, - position_target_ship=Position(north=n_31, east=e_31), - heading_target_ship=target_ship_cog_1, - ) - colreg_state1: EncounterType = determine_colreg( - alpha1, beta1, theta13_criteria, theta14_criteria, theta15_criteria, theta15 - ) - target_ship_cog_2 = calculate_ship_cog( - pos_0=Position(north=n_32, east=e_32), - pos_1=target_ship_position_future, - ) - beta2, alpha2 = calculate_relative_bearing( - position_own_ship=own_ship_position, - heading_own_ship=own_ship_cog, - position_target_ship=Position(north=n_32, east=e_32), - heading_target_ship=target_ship_cog_2, - ) - colreg_state2: EncounterType = determine_colreg( - alpha2, beta2, theta13_criteria, theta14_criteria, theta15_criteria, theta15 - ) - - if ( - desired_encounter_type is colreg_state1 - and np.abs(convert_angle_0_to_2_pi_to_minus_pi_to_pi(np.abs(beta1 - desired_beta))) < 0.001 - ): - start_position_target_ship = Position(north=n_31, east=e_31) - start_position_found = True - elif ( - desired_encounter_type is colreg_state2 - and np.abs(convert_angle_0_to_2_pi_to_minus_pi_to_pi(np.abs(beta1 - desired_beta))) < 0.001 - ): - start_position_target_ship = Position(north=n_32, east=e_32) - start_position_found = True - - return start_position_target_ship, start_position_found - - -def assign_future_position_to_target_ship( - own_ship_position_future: Position, - max_meeting_distance: float, -) -> Position: - """ - Randomly assign future position of target ship. If drawing a circle with radius - max_meeting_distance around future position of own ship, future position of - target ship shall be somewhere inside this circle. - - Params: - * own_ship_position_future: Dict, own ship position at a given time in the - future, {north, east} - * max_meeting_distance: Maximum distance between own ship and target ship at - a given time in the future [m] - - Returns - ------- - future_position_target_ship: Future position of target ship {north, east} [m] - """ - random_angle = random.uniform(0, 1) * 2 * np.pi - random_distance = random.uniform(0, 1) * max_meeting_distance - - north: float = own_ship_position_future.north + random_distance * np.cos(random_angle) - east: float = own_ship_position_future.east + random_distance * np.sin(random_angle) - return Position(north=north, east=east) - - -def determine_colreg( - alpha: float, - beta: float, - theta13_criteria: float, - theta14_criteria: float, - theta15_criteria: float, - theta15: List[float], -) -> EncounterType: - """ - Determine the colreg type based on alpha, relative bearing between target ship and own - ship seen from target ship, and beta, relative bearing between own ship and target ship - seen from own ship. - - Params: - * alpha: relative bearing between target ship and own ship seen from target ship - * beta: relative bearing between own ship and target ship seen from own ship - * theta13_criteria: Tolerance for "coming up with" relative bearing - * theta14_criteria: Tolerance for "reciprocal or nearly reciprocal cogs", - "when in any doubt... assume... [head-on]" - * theta15_criteria: Crossing aspect limit, used for classifying a crossing encounter - * theta15: 22.5 deg aft of the beam, used for classifying a crossing and an overtaking - encounter - - Returns - ------- - * encounter classification - """ - # Mapping - alpha_2_pi: float = alpha if alpha >= 0.0 else alpha + 2 * np.pi - beta_pi: float = beta if (beta >= 0.0) & (beta <= np.pi) else beta - 2 * np.pi - - # Find appropriate rule set - if (beta > theta15[0]) & (beta < theta15[1]) & (abs(alpha) - theta13_criteria <= 0.001): - return EncounterType.OVERTAKING_STAND_ON - if ( - (alpha_2_pi > theta15[0]) - & (alpha_2_pi < theta15[1]) - & (abs(beta_pi) - theta13_criteria <= 0.001) - ): - return EncounterType.OVERTAKING_GIVE_WAY - if (abs(beta_pi) - theta14_criteria <= 0.001) & (abs(alpha) - theta14_criteria <= 0.001): - return EncounterType.HEAD_ON - if (beta > 0) & (beta < theta15[0]) & (alpha > -theta15[0]) & (alpha - theta15_criteria <= 0.001): - return EncounterType.CROSSING_GIVE_WAY - if ( - (alpha_2_pi > 0) - & (alpha_2_pi < theta15[0]) - & (beta_pi > -theta15[0]) - & (beta_pi - theta15_criteria <= 0.001) - ): - return EncounterType.CROSSING_STAND_ON - return EncounterType.NO_RISK_COLLISION - - -def calculate_relative_bearing( - position_own_ship: Position, - heading_own_ship: float, - position_target_ship: Position, - heading_target_ship: float, -) -> Tuple[float, float]: - """ - Calculate relative bearing between own ship and target ship, both seen from - own ship and seen from target ship. - - Params: - * position_own_ship: Dict, own ship position {north, east} [m] - * heading_own_ship: Own ship cog [rad] - * position_target_ship: Dict, own ship position {north, east} [m] - * heading_target_ship: Target ship cog [rad] - - Returns - ------- - * beta: relative bearing between own ship and target ship seen from own ship [rad] - * alpha: relative bearing between target ship and own ship seen from target ship [rad] - """ - # POSE combination of relative bearing and contact angle - n_own_ship: float = position_own_ship.north - e_own_ship: float = position_own_ship.east - n_target_ship: float = position_target_ship.north - e_target_ship: float = position_target_ship.east - - # Absolute bearing of target ship relative to own ship - bng_own_ship_target_ship: float = 0.0 - if e_own_ship == e_target_ship: - if n_own_ship <= n_target_ship: - bng_own_ship_target_ship = 0.0 - else: - bng_own_ship_target_ship = np.pi - else: - if e_own_ship < e_target_ship: - if n_own_ship <= n_target_ship: - bng_own_ship_target_ship = 1 / 2 * np.pi - np.arctan( - abs(n_target_ship - n_own_ship) / abs(e_target_ship - e_own_ship) - ) - else: - bng_own_ship_target_ship = 1 / 2 * np.pi + np.arctan( - abs(n_target_ship - n_own_ship) / abs(e_target_ship - e_own_ship) - ) - else: - if n_own_ship <= n_target_ship: - bng_own_ship_target_ship = 3 / 2 * np.pi + np.arctan( - abs(n_target_ship - n_own_ship) / abs(e_target_ship - e_own_ship) - ) - else: - bng_own_ship_target_ship = 3 / 2 * np.pi - np.arctan( - abs(n_target_ship - n_own_ship) / abs(e_target_ship - e_own_ship) - ) - - # Bearing of own ship from the perspective of the contact - bng_target_ship_own_ship: float = bng_own_ship_target_ship + np.pi - - # Relative bearing of contact ship relative to own ship - beta: float = bng_own_ship_target_ship - heading_own_ship - while beta < 0: - beta += 2 * np.pi - while beta >= 2 * np.pi: - beta -= 2 * np.pi - - # Relative bearing of own ship relative to target ship - alpha: float = bng_target_ship_own_ship - heading_target_ship - while alpha < -np.pi: - alpha += 2 * np.pi - while alpha >= np.pi: - alpha -= 2 * np.pi - - return beta, alpha - - -def calculate_ship_cog(pos_0: Position, pos_1: Position) -> float: - """ - Calculate ship cog between two waypoints. - - Params: - * waypoint_0: Dict, waypoint {north, east} [m] - * waypoint_1: Dict, waypoint {north, east} [m] - - Returns - ------- - cog: Ship cog [rad] - """ - cog: float = np.arctan2(pos_1.east - pos_0.east, pos_1.north - pos_0.north) - if cog < 0.0: - cog += 2 * np.pi - return round(cog, 3) - - -def assign_vector_time(vector_time_range: List[float]): - """ - Assign random (uniform) vector time. - - Params: - * vector_range: Minimum and maximum value for vector time - - Returns - ------- - vector_time: Vector time [min] - """ - vector_time: float = vector_time_range[0] + random.uniform(0, 1) * ( - vector_time_range[1] - vector_time_range[0] - ) - return vector_time - - -def assign_sog_to_target_ship( - encounter_type: EncounterType, - own_ship_sog: float, - min_target_ship_sog: float, - relative_sog_setting: EncounterRelativeSpeed, -): - """ - Assign random (uniform) sog to target ship depending on type of encounter. - - Params: - * encounter_type: Type of encounter - * own_ship_sog: Own ship sog [m/s] - * min_target_ship_sog: Minimum target ship sog [m/s] - * relative_sog_setting: Relative sog setting dependent on encounter [-] - - Returns - ------- - target_ship_sog: Target ship sog [m/s] - """ - if encounter_type is EncounterType.OVERTAKING_STAND_ON: - relative_sog = relative_sog_setting.overtaking_stand_on - elif encounter_type is EncounterType.OVERTAKING_GIVE_WAY: - relative_sog = relative_sog_setting.overtaking_give_way - elif encounter_type is EncounterType.HEAD_ON: - relative_sog = relative_sog_setting.head_on - elif encounter_type is EncounterType.CROSSING_GIVE_WAY: - relative_sog = relative_sog_setting.crossing_give_way - elif encounter_type is EncounterType.CROSSING_STAND_ON: - relative_sog = relative_sog_setting.crossing_stand_on - else: - relative_sog = [0.0, 0.0] - - # Check that minimum target ship sog is in the relative sog range - if ( - min_target_ship_sog / own_ship_sog > relative_sog[0] - and min_target_ship_sog / own_ship_sog < relative_sog[1] - ): - relative_sog[0] = min_target_ship_sog / own_ship_sog - - target_ship_sog: float = ( - relative_sog[0] + random.uniform(0, 1) * (relative_sog[1] - relative_sog[0]) - ) * own_ship_sog - - return target_ship_sog - - -def assign_beta(encounter_type: EncounterType, settings: EncounterSettings) -> float: - """ - Assign random (uniform) relative bearing beta between own ship - and target ship depending on type of encounter. - - Params: - * encounter_type: Type of encounter - * settings: Encounter settings - - Returns - ------- - Relative bearing between own ship and target ship seen from own ship [rad] - """ - theta13_crit: float = settings.classification.theta13_criteria - theta14_crit: float = settings.classification.theta14_criteria - theta15_crit: float = settings.classification.theta15_criteria - theta15: List[float] = settings.classification.theta15 - - if encounter_type is EncounterType.OVERTAKING_STAND_ON: - return theta15[0] + random.uniform(0, 1) * (theta15[1] - theta15[0]) - if encounter_type is EncounterType.OVERTAKING_GIVE_WAY: - return -theta13_crit + random.uniform(0, 1) * (theta13_crit - (-theta13_crit)) - if encounter_type is EncounterType.HEAD_ON: - return -theta14_crit + random.uniform(0, 1) * (theta14_crit - (-theta14_crit)) - if encounter_type is EncounterType.CROSSING_GIVE_WAY: - return 0 + random.uniform(0, 1) * (theta15[0] - 0) - if encounter_type is EncounterType.CROSSING_STAND_ON: - return convert_angle_minus_pi_to_pi_to_0_to_2_pi( - -theta15[1] + random.uniform(0, 1) * (theta15[1] + theta15_crit) - ) - return 0.0 - - -def update_position_data_target_ship( - target_ship: TargetShip, - lat_lon0: List[float], -) -> TargetShip: - """ - Update position data of the target ship to also include latitude and longitude - position of the target ship. - - Params: - * target_ship: Target ship data - * lat_lon0: Reference point, latitudinal [rad] and longitudinal [rad] - - Returns - ------- - ship: Updated target ship data - """ - assert target_ship.initial is not None - - lat_0 = lat_lon0[0] - lon_0 = lat_lon0[1] - - lat, lon, _ = flat2llh( - target_ship.initial.position.north, - target_ship.initial.position.east, - lat_0, - lon_0, - ) - target_ship.initial.position.latitude = round(lat, 8) - target_ship.initial.position.longitude = round(lon, 8) - return target_ship - - -def update_position_data_own_ship( - ship: OwnShip, - delta_time: float, -) -> OwnShip: - """ - Update ship data of the own ship to also include waypoints. - - Params: - * ship: Own ship data - * delta_time: Delta time from now to the time new position is being calculated [sec] - - Returns - ------- - ship: Updated own ship data - """ - assert ship.initial is not None - - lat_0 = ship.initial.position.latitude - lon_0 = ship.initial.position.longitude - - ship.initial.position.east = 0 - ship.initial.position.north = 0 - - ship_position_future = calculate_position_at_certain_time( - ship.initial.position, - ship.initial.sog, - ship.initial.cog, - delta_time, - ) - - lat_future, lon_future, _ = flat2llh( - ship_position_future.north, - ship_position_future.east, - lat_0, - lon_0, - ) - ship_position_future.latitude = round(lat_future, 8) - ship_position_future.longitude = round(lon_future, 8) - - ship.waypoints = [ - Waypoint(position=ship.initial.position.model_copy()), - Waypoint(position=ship_position_future), - ] - - return ship - - -def decide_target_ship(target_ships: List[TargetShip]) -> TargetShip: - """ - Randomly pick a target ship from a list of target ships. - - Params: - * target_ships: list of target ships - - Returns - ------- - The target ship, info of type, size etc. - """ - num_target_ships: int = len(target_ships) - target_ship_to_use: int = random.randint(1, num_target_ships) - target_ship: TargetShip = target_ships[target_ship_to_use - 1] - return target_ship.model_copy(deep=True) +""" +Functions to generate encounters consisting of one own ship and one to many target ships. +The generated encounters may be of type head-on, overtaking give-way and stand-on and +crossing give-way and stand-on. +""" + +import random +from typing import List, Optional, Tuple, Union +from uuid import uuid4 + +import numpy as np + +from trafficgen.check_land_crossing import path_crosses_land +from trafficgen.marine_system_simulator import flat2llh +from trafficgen.types import ( + EncounterRelativeSpeed, + EncounterSettings, + EncounterType, +) + +from maritime_schema.types.caga import Initial, OwnShip, Position, TargetShip, Waypoint + +from trafficgen.utils import ( + calculate_position_at_certain_time, + convert_angle_0_to_2_pi_to_minus_pi_to_pi, + convert_angle_minus_pi_to_pi_to_0_to_2_pi, +) + + +def generate_encounter( + desired_encounter_type: EncounterType, + own_ship: OwnShip, + target_ships: List[TargetShip], + beta_default: Optional[float], + relative_sog_default: Optional[float], + vector_time_default: Optional[float], + settings: EncounterSettings, +) -> Tuple[TargetShip, bool]: + """ + Generate an encounter. + + Params: + * desired_encounter_type: Desired encounter to be generated + * own_ship: Dict, information about own ship that will encounter a target ship + * target_ships: List of target ships that may be used in an encounter + * beta_default: User defined beta. If not set, this is None. + * relative_sog_default: User defined relative sog between own ship and + target ship. If not set, this is None. + * vector_time_default: User defined vector time. If not set, this is None. + * settings: Encounter settings + + Returns + ------- + target_ship: target ship information, such as initial position, sog and cog + encounter_found: True=encounter found, False=encounter not found + """ + encounter_found: bool = False + outer_counter: int = 0 + # Initial posision of own ship used as reference point for lat_lon0 + assert own_ship.initial is not None + lat_lon0 = [own_ship.initial.position.latitude, own_ship.initial.position.longitude] + + target_ship = decide_target_ship(target_ships) + assert target_ship.static is not None + + # Searching for encounter. Two loops used. Only vector time is locked in the + # first loop. In the second loop, beta and sog are assigned. + while not encounter_found and outer_counter < 5: + outer_counter += 1 + inner_counter: int = 0 + + # resetting vector_time, beta and relative_sog to default values before + # new search for situation is done + vector_time: Union[float, None] = vector_time_default + beta: Union[float, None] = beta_default + + if vector_time is None: + vector_time = random.uniform(settings.vector_range[0], settings.vector_range[1]) + if beta is None: + beta = assign_beta(desired_encounter_type, settings) + + # Own ship + assert own_ship.initial is not None + own_ship_position_future = calculate_position_at_certain_time( + own_ship.initial.position, + own_ship.initial.sog, + own_ship.initial.cog, + vector_time, + ) + + # Target ship + target_ship.initial = Initial.default() # reset initial of target_ship (if one existed) + + target_ship_position_future = assign_future_position_to_target_ship( + own_ship_position_future, settings.max_meeting_distance + ) + + while not encounter_found and inner_counter < 5: + inner_counter += 1 + relative_sog = relative_sog_default + if relative_sog is None: + min_target_ship_sog = ( + calculate_min_vector_length_target_ship( + own_ship.initial.position, + own_ship.initial.cog, + target_ship_position_future, + beta, + ) + / vector_time + ) + + target_ship.initial.sog = assign_sog_to_target_ship( + desired_encounter_type, + own_ship.initial.sog, + min_target_ship_sog, + settings.relative_speed, + ) + else: + target_ship.initial.sog = relative_sog * own_ship.initial.sog + + target_ship.initial.sog = round( + np.minimum(target_ship.initial.sog, target_ship.static.speed_max), 1 + ) + + target_ship_vector_length = target_ship.initial.sog * vector_time + start_position_target_ship, position_found = find_start_position_target_ship( + own_ship.initial.position, + own_ship.initial.cog, + target_ship_position_future, + target_ship_vector_length, + beta, + desired_encounter_type, + settings, + ) + + if position_found: + target_ship.initial.position = start_position_target_ship + target_ship.initial.cog = calculate_ship_cog( + target_ship.initial.position, target_ship_position_future + ) + encounter_ok: bool = check_encounter_evolvement( + own_ship, + own_ship_position_future, + target_ship, + target_ship_position_future, + desired_encounter_type, + settings, + ) + + # Check if trajectory passes land + trajectory_on_land = path_crosses_land( + target_ship.initial.position, + target_ship.initial.sog, + target_ship.initial.cog, + lat_lon0, + ) + + encounter_found = encounter_ok and not trajectory_on_land + + if encounter_found: + target_ship.static.id = uuid4() + target_ship = update_position_data_target_ship(target_ship, lat_lon0) + return target_ship, encounter_found + + +def check_encounter_evolvement( + own_ship: OwnShip, + own_ship_position_future: Position, + target_ship: TargetShip, + target_ship_position_future: Position, + desired_encounter_type: EncounterType, + settings: EncounterSettings, +) -> bool: + """ + Check encounter evolvement. The generated encounter should be the same type of + encounter (head-on, crossing, give-way) also some time before the encounter is started. + + Params: + * own_ship: Own ship information such as initial position, sog and cog + * target_ship: Target ship information such as initial position, sog and cog + * desired_encounter_type: Desired type of encounter to be generated + * settings: Encounter settings + + Returns + ------- + * returns True if encounter ok, False if encounter not ok + """ + theta13_criteria: float = settings.classification.theta13_criteria + theta14_criteria: float = settings.classification.theta14_criteria + theta15_criteria: float = settings.classification.theta15_criteria + theta15: List[float] = settings.classification.theta15 + + assert own_ship.initial is not None + assert target_ship.initial is not None + + own_ship_sog: float = own_ship.initial.sog + own_ship_cog: float = own_ship.initial.cog + target_ship_sog: float = target_ship.initial.sog + target_ship_cog: float = target_ship.initial.cog + evolve_time: float = settings.evolve_time + + # Calculating position back in time to ensure that the encounter do not change from one type + # to another before the encounter is started + encounter_preposition_target_ship = calculate_position_at_certain_time( + target_ship_position_future, + target_ship_sog, + target_ship_cog, + -evolve_time, + ) + encounter_preposition_own_ship = calculate_position_at_certain_time( + own_ship_position_future, + own_ship_sog, + own_ship_cog, + -evolve_time, + ) + pre_beta, pre_alpha = calculate_relative_bearing( + encounter_preposition_own_ship, + own_ship_cog, + encounter_preposition_target_ship, + target_ship_cog, + ) + pre_colreg_state = determine_colreg( + pre_alpha, pre_beta, theta13_criteria, theta14_criteria, theta15_criteria, theta15 + ) + + encounter_ok: bool = pre_colreg_state == desired_encounter_type + + return encounter_ok + + +def calculate_min_vector_length_target_ship( + own_ship_position: Position, + own_ship_cog: float, + target_ship_position_future: Position, + desired_beta: float, +) -> float: + """ + Calculate minimum vector length (target ship sog x vector). This will + ensure that ship sog is high enough to find proper situation. + + Params: + * own_ship_position: Own ship initial position, sog and cog + * own_ship_cog: Own ship initial cog + * target_ship_position_future: Target ship future position + * desired_beta: Desired relative bearing between + + Returns: min_vector_length: Minimum vector length (target ship sog x vector) + """ + psi: float = np.deg2rad(own_ship_cog + desired_beta) + + p_1 = np.array([own_ship_position.north, own_ship_position.east]) + p_2 = np.array([own_ship_position.north + np.cos(psi), own_ship_position.east + np.sin(psi)]) + p_3 = np.array([target_ship_position_future.north, target_ship_position_future.east]) + + min_vector_length: float = float(np.abs(np.cross(p_2 - p_1, p_3 - p_1) / np.linalg.norm(p_2 - p_1))) + + return min_vector_length + + +def find_start_position_target_ship( + own_ship_position: Position, + own_ship_cog: float, + target_ship_position_future: Position, + target_ship_vector_length: float, + desired_beta: float, + desired_encounter_type: EncounterType, + settings: EncounterSettings, +): + """ + Find start position of target ship using desired beta and vector length. + + Params: + * own_ship_position: Own ship initial position, sog and cog + * own_ship_cog: Own ship initial cog + * target_ship_position_future: Target ship future position + * target_ship_vector_length: vector length (target ship sog x vector) + * desired_beta: Desired bearing between own ship and target ship seen from own ship + * desired_encounter_type: Desired type of encounter to be generated + * settings: Encounter settings + + Returns + ------- + * start_position_target_ship: Dict, initial position of target ship {north, east} [m] + * start_position_found: 0=position not found, 1=position found + """ + theta13_criteria: float = settings.classification.theta13_criteria + theta14_criteria: float = settings.classification.theta14_criteria + theta15_criteria: float = settings.classification.theta15_criteria + theta15: List[float] = settings.classification.theta15 + + n_1: float = own_ship_position.north + e_1: float = own_ship_position.east + n_2: float = target_ship_position_future.north + e_2: float = target_ship_position_future.east + v_r: float = target_ship_vector_length + psi: float = own_ship_cog + desired_beta + + n_4: float = n_1 + np.cos(psi) + e_4: float = e_1 + np.sin(psi) + + b: float = ( + -2 * e_2 * e_4 + - 2 * n_2 * n_4 + + 2 * e_1 * e_2 + + 2 * n_1 * n_2 + + 2 * e_1 * (e_4 - e_1) + + 2 * n_1 * (n_4 - n_1) + ) + a: float = (e_4 - e_1) ** 2 + (n_4 - n_1) ** 2 + c: float = e_2**2 + n_2**2 - 2 * e_1 * e_2 - 2 * n_1 * n_2 - v_r**2 + e_1**2 + n_1**2 + + # Assign conservative fallback values to return variables + start_position_found: bool = False + start_position_target_ship = target_ship_position_future.model_copy() + + if b**2 - 4 * a * c <= 0.0: + # Do not run calculation of target ship start position. Return fallback values. + return start_position_target_ship, start_position_found + + # Calculation of target ship start position + s_1 = (-b + np.sqrt(b**2 - 4 * a * c)) / (2 * a) + s_2 = (-b - np.sqrt(b**2 - 4 * a * c)) / (2 * a) + + e_31 = round(e_1 + s_1 * (e_4 - e_1), 0) + n_31 = round(n_1 + s_1 * (n_4 - n_1), 0) + e_32 = round(e_1 + s_2 * (e_4 - e_1), 0) + n_32 = round(n_1 + s_2 * (n_4 - n_1), 0) + + target_ship_cog_1 = calculate_ship_cog( + pos_0=Position(north=n_31, east=e_31), + pos_1=target_ship_position_future, + ) + beta1, alpha1 = calculate_relative_bearing( + position_own_ship=own_ship_position, + heading_own_ship=own_ship_cog, + position_target_ship=Position(north=n_31, east=e_31), + heading_target_ship=target_ship_cog_1, + ) + colreg_state1: EncounterType = determine_colreg( + alpha1, beta1, theta13_criteria, theta14_criteria, theta15_criteria, theta15 + ) + target_ship_cog_2 = calculate_ship_cog( + pos_0=Position(north=n_32, east=e_32), + pos_1=target_ship_position_future, + ) + beta2, alpha2 = calculate_relative_bearing( + position_own_ship=own_ship_position, + heading_own_ship=own_ship_cog, + position_target_ship=Position(north=n_32, east=e_32), + heading_target_ship=target_ship_cog_2, + ) + colreg_state2: EncounterType = determine_colreg( + alpha2, beta2, theta13_criteria, theta14_criteria, theta15_criteria, theta15 + ) + + if ( + desired_encounter_type is colreg_state1 + and np.abs(convert_angle_0_to_2_pi_to_minus_pi_to_pi(np.abs(beta1 - desired_beta))) < 0.001 + ): + start_position_target_ship = Position(north=n_31, east=e_31) + start_position_found = True + elif ( + desired_encounter_type is colreg_state2 + and np.abs(convert_angle_0_to_2_pi_to_minus_pi_to_pi(np.abs(beta1 - desired_beta))) < 0.001 + ): + start_position_target_ship = Position(north=n_32, east=e_32) + start_position_found = True + + return start_position_target_ship, start_position_found + + +def assign_future_position_to_target_ship( + own_ship_position_future: Position, + max_meeting_distance: float, +) -> Position: + """ + Randomly assign future position of target ship. If drawing a circle with radius + max_meeting_distance around future position of own ship, future position of + target ship shall be somewhere inside this circle. + + Params: + * own_ship_position_future: Dict, own ship position at a given time in the + future, {north, east} + * max_meeting_distance: Maximum distance between own ship and target ship at + a given time in the future [m] + + Returns + ------- + future_position_target_ship: Future position of target ship {north, east} [m] + """ + random_angle = random.uniform(0, 1) * 2 * np.pi + random_distance = random.uniform(0, 1) * max_meeting_distance + + north: float = own_ship_position_future.north + random_distance * np.cos(random_angle) + east: float = own_ship_position_future.east + random_distance * np.sin(random_angle) + return Position(north=north, east=east) + + +def determine_colreg( + alpha: float, + beta: float, + theta13_criteria: float, + theta14_criteria: float, + theta15_criteria: float, + theta15: List[float], +) -> EncounterType: + """ + Determine the colreg type based on alpha, relative bearing between target ship and own + ship seen from target ship, and beta, relative bearing between own ship and target ship + seen from own ship. + + Params: + * alpha: relative bearing between target ship and own ship seen from target ship + * beta: relative bearing between own ship and target ship seen from own ship + * theta13_criteria: Tolerance for "coming up with" relative bearing + * theta14_criteria: Tolerance for "reciprocal or nearly reciprocal cogs", + "when in any doubt... assume... [head-on]" + * theta15_criteria: Crossing aspect limit, used for classifying a crossing encounter + * theta15: 22.5 deg aft of the beam, used for classifying a crossing and an overtaking + encounter + + Returns + ------- + * encounter classification + """ + # Mapping + alpha_2_pi: float = alpha if alpha >= 0.0 else alpha + 2 * np.pi + beta_pi: float = beta if (beta >= 0.0) & (beta <= np.pi) else beta - 2 * np.pi + + # Find appropriate rule set + if (beta > theta15[0]) & (beta < theta15[1]) & (abs(alpha) - theta13_criteria <= 0.001): + return EncounterType.OVERTAKING_STAND_ON + if ( + (alpha_2_pi > theta15[0]) + & (alpha_2_pi < theta15[1]) + & (abs(beta_pi) - theta13_criteria <= 0.001) + ): + return EncounterType.OVERTAKING_GIVE_WAY + if (abs(beta_pi) - theta14_criteria <= 0.001) & (abs(alpha) - theta14_criteria <= 0.001): + return EncounterType.HEAD_ON + if (beta > 0) & (beta < theta15[0]) & (alpha > -theta15[0]) & (alpha - theta15_criteria <= 0.001): + return EncounterType.CROSSING_GIVE_WAY + if ( + (alpha_2_pi > 0) + & (alpha_2_pi < theta15[0]) + & (beta_pi > -theta15[0]) + & (beta_pi - theta15_criteria <= 0.001) + ): + return EncounterType.CROSSING_STAND_ON + return EncounterType.NO_RISK_COLLISION + + +def calculate_relative_bearing( + position_own_ship: Position, + heading_own_ship: float, + position_target_ship: Position, + heading_target_ship: float, +) -> Tuple[float, float]: + """ + Calculate relative bearing between own ship and target ship, both seen from + own ship and seen from target ship. + + Params: + * position_own_ship: Dict, own ship position {north, east} [m] + * heading_own_ship: Own ship cog [rad] + * position_target_ship: Dict, own ship position {north, east} [m] + * heading_target_ship: Target ship cog [rad] + + Returns + ------- + * beta: relative bearing between own ship and target ship seen from own ship [rad] + * alpha: relative bearing between target ship and own ship seen from target ship [rad] + """ + # POSE combination of relative bearing and contact angle + n_own_ship: float = position_own_ship.north + e_own_ship: float = position_own_ship.east + n_target_ship: float = position_target_ship.north + e_target_ship: float = position_target_ship.east + + # Absolute bearing of target ship relative to own ship + bng_own_ship_target_ship: float = 0.0 + if e_own_ship == e_target_ship: + if n_own_ship <= n_target_ship: + bng_own_ship_target_ship = 0.0 + else: + bng_own_ship_target_ship = np.pi + else: + if e_own_ship < e_target_ship: + if n_own_ship <= n_target_ship: + bng_own_ship_target_ship = 1 / 2 * np.pi - np.arctan( + abs(n_target_ship - n_own_ship) / abs(e_target_ship - e_own_ship) + ) + else: + bng_own_ship_target_ship = 1 / 2 * np.pi + np.arctan( + abs(n_target_ship - n_own_ship) / abs(e_target_ship - e_own_ship) + ) + else: + if n_own_ship <= n_target_ship: + bng_own_ship_target_ship = 3 / 2 * np.pi + np.arctan( + abs(n_target_ship - n_own_ship) / abs(e_target_ship - e_own_ship) + ) + else: + bng_own_ship_target_ship = 3 / 2 * np.pi - np.arctan( + abs(n_target_ship - n_own_ship) / abs(e_target_ship - e_own_ship) + ) + + # Bearing of own ship from the perspective of the contact + bng_target_ship_own_ship: float = bng_own_ship_target_ship + np.pi + + # Relative bearing of contact ship relative to own ship + beta: float = bng_own_ship_target_ship - heading_own_ship + while beta < 0: + beta += 2 * np.pi + while beta >= 2 * np.pi: + beta -= 2 * np.pi + + # Relative bearing of own ship relative to target ship + alpha: float = bng_target_ship_own_ship - heading_target_ship + while alpha < -np.pi: + alpha += 2 * np.pi + while alpha >= np.pi: + alpha -= 2 * np.pi + + return beta, alpha + + +def calculate_ship_cog(pos_0: Position, pos_1: Position) -> float: + """ + Calculate ship cog between two waypoints. + + Params: + * waypoint_0: Dict, waypoint {north, east} [m] + * waypoint_1: Dict, waypoint {north, east} [m] + + Returns + ------- + cog: Ship cog [rad] + """ + cog: float = np.arctan2(pos_1.east - pos_0.east, pos_1.north - pos_0.north) + if cog < 0.0: + cog += 2 * np.pi + return round(cog, 3) + + +def assign_vector_time(vector_time_range: List[float]): + """ + Assign random (uniform) vector time. + + Params: + * vector_range: Minimum and maximum value for vector time + + Returns + ------- + vector_time: Vector time [min] + """ + vector_time: float = vector_time_range[0] + random.uniform(0, 1) * ( + vector_time_range[1] - vector_time_range[0] + ) + return vector_time + + +def assign_sog_to_target_ship( + encounter_type: EncounterType, + own_ship_sog: float, + min_target_ship_sog: float, + relative_sog_setting: EncounterRelativeSpeed, +): + """ + Assign random (uniform) sog to target ship depending on type of encounter. + + Params: + * encounter_type: Type of encounter + * own_ship_sog: Own ship sog [m/s] + * min_target_ship_sog: Minimum target ship sog [m/s] + * relative_sog_setting: Relative sog setting dependent on encounter [-] + + Returns + ------- + target_ship_sog: Target ship sog [m/s] + """ + if encounter_type is EncounterType.OVERTAKING_STAND_ON: + relative_sog = relative_sog_setting.overtaking_stand_on + elif encounter_type is EncounterType.OVERTAKING_GIVE_WAY: + relative_sog = relative_sog_setting.overtaking_give_way + elif encounter_type is EncounterType.HEAD_ON: + relative_sog = relative_sog_setting.head_on + elif encounter_type is EncounterType.CROSSING_GIVE_WAY: + relative_sog = relative_sog_setting.crossing_give_way + elif encounter_type is EncounterType.CROSSING_STAND_ON: + relative_sog = relative_sog_setting.crossing_stand_on + else: + relative_sog = [0.0, 0.0] + + # Check that minimum target ship sog is in the relative sog range + if ( + min_target_ship_sog / own_ship_sog > relative_sog[0] + and min_target_ship_sog / own_ship_sog < relative_sog[1] + ): + relative_sog[0] = min_target_ship_sog / own_ship_sog + + target_ship_sog: float = ( + relative_sog[0] + random.uniform(0, 1) * (relative_sog[1] - relative_sog[0]) + ) * own_ship_sog + + return target_ship_sog + + +def assign_beta(encounter_type: EncounterType, settings: EncounterSettings) -> float: + """ + Assign random (uniform) relative bearing beta between own ship + and target ship depending on type of encounter. + + Params: + * encounter_type: Type of encounter + * settings: Encounter settings + + Returns + ------- + Relative bearing between own ship and target ship seen from own ship [rad] + """ + theta13_crit: float = settings.classification.theta13_criteria + theta14_crit: float = settings.classification.theta14_criteria + theta15_crit: float = settings.classification.theta15_criteria + theta15: List[float] = settings.classification.theta15 + + if encounter_type is EncounterType.OVERTAKING_STAND_ON: + return theta15[0] + random.uniform(0, 1) * (theta15[1] - theta15[0]) + if encounter_type is EncounterType.OVERTAKING_GIVE_WAY: + return -theta13_crit + random.uniform(0, 1) * (theta13_crit - (-theta13_crit)) + if encounter_type is EncounterType.HEAD_ON: + return -theta14_crit + random.uniform(0, 1) * (theta14_crit - (-theta14_crit)) + if encounter_type is EncounterType.CROSSING_GIVE_WAY: + return 0 + random.uniform(0, 1) * (theta15[0] - 0) + if encounter_type is EncounterType.CROSSING_STAND_ON: + return convert_angle_minus_pi_to_pi_to_0_to_2_pi( + -theta15[1] + random.uniform(0, 1) * (theta15[1] + theta15_crit) + ) + return 0.0 + + +def update_position_data_target_ship( + target_ship: TargetShip, + lat_lon0: List[float], +) -> TargetShip: + """ + Update position data of the target ship to also include latitude and longitude + position of the target ship. + + Params: + * target_ship: Target ship data + * lat_lon0: Reference point, latitudinal [rad] and longitudinal [rad] + + Returns + ------- + ship: Updated target ship data + """ + assert target_ship.initial is not None + + lat_0 = lat_lon0[0] + lon_0 = lat_lon0[1] + + lat, lon, _ = flat2llh( + target_ship.initial.position.north, + target_ship.initial.position.east, + lat_0, + lon_0, + ) + target_ship.initial.position.latitude = round(lat, 8) + target_ship.initial.position.longitude = round(lon, 8) + return target_ship + + +def update_position_data_own_ship( + ship: OwnShip, + delta_time: float, +) -> OwnShip: + """ + Update ship data of the own ship to also include waypoints. + + Params: + * ship: Own ship data + * delta_time: Delta time from now to the time new position is being calculated [sec] + + Returns + ------- + ship: Updated own ship data + """ + assert ship.initial is not None + + lat_0 = ship.initial.position.latitude + lon_0 = ship.initial.position.longitude + + ship.initial.position.east = 0 + ship.initial.position.north = 0 + + ship_position_future = calculate_position_at_certain_time( + ship.initial.position, + ship.initial.sog, + ship.initial.cog, + delta_time, + ) + + lat_future, lon_future, _ = flat2llh( + ship_position_future.north, + ship_position_future.east, + lat_0, + lon_0, + ) + ship_position_future.latitude = round(lat_future, 8) + ship_position_future.longitude = round(lon_future, 8) + + ship.waypoints = [ + Waypoint(position=ship.initial.position.model_copy()), + Waypoint(position=ship_position_future), + ] + + return ship + + +def decide_target_ship(target_ships: List[TargetShip]) -> TargetShip: + """ + Randomly pick a target ship from a list of target ships. + + Params: + * target_ships: list of target ships + + Returns + ------- + The target ship, info of type, size etc. + """ + num_target_ships: int = len(target_ships) + target_ship_to_use: int = random.randint(1, num_target_ships) + target_ship: TargetShip = target_ships[target_ship_to_use - 1] + return target_ship.model_copy(deep=True) diff --git a/src/trafficgen/plot_traffic_situation.py b/src/trafficgen/plot_traffic_situation.py index eeaf9b1..1f53465 100644 --- a/src/trafficgen/plot_traffic_situation.py +++ b/src/trafficgen/plot_traffic_situation.py @@ -1,381 +1,381 @@ -# The matplotlib package is unfortunately not fully typed. Hence the following pyright exemption. -# pyright: reportUnknownMemberType=false -"""Functions to prepare and plot traffic situations.""" -import math -from typing import List, Optional, Tuple, Union - -import matplotlib.pyplot as plt -import numpy as np -from folium import Map, Polygon -from matplotlib.patches import Circle - -from trafficgen.marine_system_simulator import flat2llh -from trafficgen.types import Position, Ship, TargetShip, TrafficSituation -from trafficgen.utils import m_2_nm, rad_2_deg - - -def calculate_vector_arrow( - position: Position, - direction: float, - vector_length: float, - lat_lon0: List[float], -) -> List[Tuple[float, float]]: - """ - Calculate the arrow with length vector pointing in the direction of ship course. - - Params: - position: {north}, {east} position of the ship [m] - direction: direction the arrow is pointing [rad] - vector_length: length of vector [m] - lat_lon0: Reference point, latitudinal [rad] and longitudinal [rad] - - Returns - ------- - arrow_points: Polygon points to draw the arrow [deg] - """ - north_start = position.north - east_start = position.east - - side_length = vector_length / 10 - sides_angle = 25 - - north_end = north_start + vector_length * np.cos(direction) - east_end = east_start + vector_length * np.sin(direction) - - north_arrow_side_1 = north_end + side_length * np.cos(direction + np.pi - sides_angle) - east_arrow_side_1 = east_end + side_length * np.sin(direction + np.pi - sides_angle) - north_arrow_side_2 = north_end + side_length * np.cos(direction + np.pi + sides_angle) - east_arrow_side_2 = east_end + side_length * np.sin(direction + np.pi + sides_angle) - - lat_start, lon_start, _ = flat2llh(north_start, east_start, lat_lon0[0], lat_lon0[1]) - lat_end, lon_end, _ = flat2llh(north_end, east_end, lat_lon0[0], lat_lon0[1]) - lat_arrow_side_1, lon_arrow_side_1, _ = flat2llh( - north_arrow_side_1, east_arrow_side_1, lat_lon0[0], lat_lon0[1] - ) - lat_arrow_side_2, lon_arrow_side_2, _ = flat2llh( - north_arrow_side_2, east_arrow_side_2, lat_lon0[0], lat_lon0[1] - ) - - point_1 = (rad_2_deg(lat_start), rad_2_deg(lon_start)) - point_2 = (rad_2_deg(lat_end), rad_2_deg(lon_end)) - point_3 = (rad_2_deg(lat_arrow_side_1), rad_2_deg(lon_arrow_side_1)) - point_4 = (rad_2_deg(lat_arrow_side_2), rad_2_deg(lon_arrow_side_2)) - - return [point_1, point_2, point_3, point_4, point_2] - - -def calculate_ship_outline( - position: Position, - course: float, - lat_lon0: List[float], - ship_length: float = 100.0, - ship_width: float = 15.0, -) -> List[Tuple[float, float]]: - """ - Calculate the outline of the ship pointing in the direction of ship course. - - Params: - position: {north}, {east} position of the ship [m] - course: course of the ship [rad] - lat_lon0: Reference point, latitudinal [rad] and longitudinal [rad] - ship_length: Ship length. If not given, ship length is set to 100 - ship_width: Ship width. If not given, ship width is set to 15 - - Returns - ------- - ship_outline_points: Polygon points to draw the ship [deg] - """ - north_start = position.north - east_start = position.east - - # increase size for visualizing - ship_length *= 10 - ship_width *= 10 - - north_pos1 = north_start + np.cos(course) * (-ship_length / 2) - np.sin(course) * ship_width / 2 - east_pos1 = east_start + np.sin(course) * (-ship_length / 2) + np.cos(course) * ship_width / 2 - lat_pos1, lon_pos1, _ = flat2llh(north_pos1, east_pos1, lat_lon0[0], lat_lon0[1]) - - north_pos2 = ( - north_start - + np.cos(course) * (ship_length / 2 - ship_length * 0.1) - - np.sin(course) * ship_width / 2 - ) - east_pos2 = ( - east_start - + np.sin(course) * (ship_length / 2 - ship_length * 0.1) - + np.cos(course) * ship_width / 2 - ) - lat_pos2, lon_pos2, _ = flat2llh(north_pos2, east_pos2, lat_lon0[0], lat_lon0[1]) - - north_pos3 = north_start + np.cos(course) * (ship_length / 2) - east_pos3 = east_start + np.sin(course) * (ship_length / 2) - lat_pos3, lon_pos3, _ = flat2llh(north_pos3, east_pos3, lat_lon0[0], lat_lon0[1]) - - north_pos4 = ( - north_start - + np.cos(course) * (ship_length / 2 - ship_length * 0.1) - - np.sin(course) * (-ship_width / 2) - ) - east_pos4 = ( - east_start - + np.sin(course) * (ship_length / 2 - ship_length * 0.1) - + np.cos(course) * (-ship_width / 2) - ) - lat_pos4, lon_pos4, _ = flat2llh(north_pos4, east_pos4, lat_lon0[0], lat_lon0[1]) - - north_pos5 = north_start + np.cos(course) * (-ship_length / 2) - np.sin(course) * (-ship_width / 2) - east_pos5 = east_start + np.sin(course) * (-ship_length / 2) + np.cos(course) * (-ship_width / 2) - lat_pos5, lon_pos5, _ = flat2llh(north_pos5, east_pos5, lat_lon0[0], lat_lon0[1]) - - point_1 = (rad_2_deg(lat_pos1), rad_2_deg(lon_pos1)) - point_2 = (rad_2_deg(lat_pos2), rad_2_deg(lon_pos2)) - point_3 = (rad_2_deg(lat_pos3), rad_2_deg(lon_pos3)) - point_4 = (rad_2_deg(lat_pos4), rad_2_deg(lon_pos4)) - point_5 = (rad_2_deg(lat_pos5), rad_2_deg(lon_pos5)) - - return [point_1, point_2, point_3, point_4, point_5, point_1] - - -def plot_specific_traffic_situation( - traffic_situations: List[TrafficSituation], - situation_number: int, -): - """ - Plot a specific situation in map. - - Params: - traffic_situations: Generated traffic situations - situation_number: The specific situation to be plotted - """ - - num_situations = len(traffic_situations) - if situation_number > num_situations: - print( - f"Situation_number specified higher than number of situations available, plotting last situation: {num_situations}" - ) - situation_number = num_situations - - situation: TrafficSituation = traffic_situations[situation_number - 1] - assert situation.own_ship is not None - assert situation.own_ship.initial is not None - assert situation.common_vector is not None - - lat_0 = situation.own_ship.initial.position.latitude - lon_0 = situation.own_ship.initial.position.longitude - - map_plot = Map(location=(rad_2_deg(lat_0), rad_2_deg(lon_0)), zoom_start=10) - map_plot = add_ship_to_map( - situation.own_ship, - situation.common_vector, - [lat_0, lon_0], - map_plot, - "black", - ) - - target_ships: Union[List[TargetShip], None] = situation.target_ships - assert target_ships is not None - for target_ship in target_ships: - map_plot = add_ship_to_map( - target_ship, - situation.common_vector, - [lat_0, lon_0], - map_plot, - "red", - ) - map_plot.show_in_browser() - - -def add_ship_to_map( - ship: Ship, - vector_time: float, - lat_lon0: List[float], - map_plot: Optional[Map], - color: str = "black", -) -> Map: - """ - Add the ship to the map. - - Params: - ship: Ship information - vector_time: Vector time [sec] - lat_lon0=Reference point, latitudinal [rad] and longitudinal [rad] - map_plot: Instance of Map. If not set, instance is set to None - color: Color of the ship. If not set, color is 'black' - - Returns - ------- - m: Updated instance of Map. - """ - if map_plot is None: - map_plot = Map(location=(rad_2_deg(lat_lon0[0]), rad_2_deg(lat_lon0[1])), zoom_start=10) - - assert ship.initial is not None - vector_length = vector_time * ship.initial.sog - _ = map_plot.add_child( - Polygon( - calculate_vector_arrow(ship.initial.position, ship.initial.cog, vector_length, lat_lon0), - fill=True, - fill_opacity=1, - color=color, - ) - ) - _ = map_plot.add_child( - Polygon( - calculate_ship_outline(ship.initial.position, ship.initial.cog, lat_lon0), - fill=True, - fill_opacity=1, - color=color, - ) - ) - return map_plot - - -def plot_traffic_situations( - traffic_situations: List[TrafficSituation], - col: int, - row: int, -): - """ - Plot the traffic situations in one more figures. - - Params: - traffic_situations: Traffic situations to be plotted - col: Number of columns in each figure - row: Number of rows in each figure - """ - max_columns = col - max_rows = row - num_subplots_pr_plot = max_columns * max_rows - small_size = 6 - bigger_size = 10 - - plt.rc("axes", titlesize=small_size) # fontsize of the axes title - plt.rc("axes", labelsize=small_size) # fontsize of the x and y labels - plt.rc("xtick", labelsize=small_size) # fontsize of the tick labels - plt.rc("ytick", labelsize=small_size) # fontsize of the tick labels - plt.rc("figure", titlesize=bigger_size) # fontsize of the figure title - - # The axes should have the same x/y limits, thus find max value for - # north/east position to be used for plotting - max_value: float = 0.0 - for situation in traffic_situations: - assert situation.own_ship is not None - max_value = find_max_value_for_plot(situation.own_ship, max_value) - assert situation.target_ships is not None - for target_ship in situation.target_ships: - max_value = find_max_value_for_plot(target_ship, max_value) - - plot_number: int = 1 - _ = plt.figure(plot_number) - for i, situation in enumerate(traffic_situations): - if math.floor(i / num_subplots_pr_plot) + 1 > plot_number: - plot_number += 1 - _ = plt.figure(plot_number) - - axes: plt.Axes = plt.subplot( - max_rows, - max_columns, - int(1 + i - (plot_number - 1) * num_subplots_pr_plot), - xlabel="[nm]", - ylabel="[nm]", - ) - _ = axes.set_title(situation.title) - assert situation.own_ship is not None - assert situation.common_vector is not None - axes = add_ship_to_plot( - situation.own_ship, - situation.common_vector, - axes, - "black", - ) - assert situation.target_ships is not None - for target_ship in situation.target_ships: - axes = add_ship_to_plot( - target_ship, - situation.common_vector, - axes, - "red", - ) - axes.set_aspect("equal") - - _ = plt.xlim(-max_value, max_value) - _ = plt.ylim(-max_value, max_value) - _ = plt.subplots_adjust(wspace=0.4, hspace=0.4) - - plt.show() - - -def find_max_value_for_plot( - ship: Ship, - max_value: float, -) -> float: - """ - Find the maximum deviation from the Reference point in north and east direction. - - Params: - ship: Ship information - max_value: maximum deviation in north, east direction - - Returns - ------- - max_value: updated maximum deviation in north, east direction - """ - assert ship.initial is not None - max_value = np.max( - [ - max_value, - np.abs(m_2_nm(ship.initial.position.north)), - np.abs(m_2_nm(ship.initial.position.east)), - ] - ) - return max_value - - -def add_ship_to_plot( - ship: Ship, - vector_time: float, - axes: Optional[plt.Axes], - color: str = "black", -): - """ - Add the ship to the plot. - - Params: - ship: Ship information - vector_time: Vector time [sec] - axes: Instance of figure axis. If not set, instance is set to None - color: Color of the ship. If not set, color is 'black' - """ - if axes is None: - axes = plt.gca() - assert isinstance(axes, plt.Axes) - - assert ship.initial is not None - pos_0_north = m_2_nm(ship.initial.position.north) - pos_0_east = m_2_nm(ship.initial.position.east) - course = ship.initial.cog - speed = ship.initial.sog - - vector_length = m_2_nm(vector_time * speed) - - _ = axes.arrow( - pos_0_east, - pos_0_north, - vector_length * np.sin(course), - vector_length * np.cos(course), - edgecolor=color, - facecolor=color, - width=0.0001, - head_length=0.2, - head_width=0.2, - length_includes_head=True, - ) - circle = Circle( - xy=(pos_0_east, pos_0_north), - radius=vector_time / 3000.0, # type: ignore - color=color, - ) - _ = axes.add_patch(circle) - - return axes +# The matplotlib package is unfortunately not fully typed. Hence the following pyright exemption. +# pyright: reportUnknownMemberType=false +"""Functions to prepare and plot traffic situations.""" +import math +from typing import List, Optional, Tuple, Union + +import matplotlib.pyplot as plt +import numpy as np +from folium import Map, Polygon +from matplotlib.patches import Circle + +from trafficgen.marine_system_simulator import flat2llh +from maritime_schema.types.caga import Position, Ship, TargetShip, TrafficSituation +from trafficgen.utils import m_2_nm, rad_2_deg + + +def calculate_vector_arrow( + position: Position, + direction: float, + vector_length: float, + lat_lon0: List[float], +) -> List[Tuple[float, float]]: + """ + Calculate the arrow with length vector pointing in the direction of ship course. + + Params: + position: {north}, {east} position of the ship [m] + direction: direction the arrow is pointing [rad] + vector_length: length of vector [m] + lat_lon0: Reference point, latitudinal [rad] and longitudinal [rad] + + Returns + ------- + arrow_points: Polygon points to draw the arrow [deg] + """ + north_start = position.north + east_start = position.east + + side_length = vector_length / 10 + sides_angle = 25 + + north_end = north_start + vector_length * np.cos(direction) + east_end = east_start + vector_length * np.sin(direction) + + north_arrow_side_1 = north_end + side_length * np.cos(direction + np.pi - sides_angle) + east_arrow_side_1 = east_end + side_length * np.sin(direction + np.pi - sides_angle) + north_arrow_side_2 = north_end + side_length * np.cos(direction + np.pi + sides_angle) + east_arrow_side_2 = east_end + side_length * np.sin(direction + np.pi + sides_angle) + + lat_start, lon_start, _ = flat2llh(north_start, east_start, lat_lon0[0], lat_lon0[1]) + lat_end, lon_end, _ = flat2llh(north_end, east_end, lat_lon0[0], lat_lon0[1]) + lat_arrow_side_1, lon_arrow_side_1, _ = flat2llh( + north_arrow_side_1, east_arrow_side_1, lat_lon0[0], lat_lon0[1] + ) + lat_arrow_side_2, lon_arrow_side_2, _ = flat2llh( + north_arrow_side_2, east_arrow_side_2, lat_lon0[0], lat_lon0[1] + ) + + point_1 = (rad_2_deg(lat_start), rad_2_deg(lon_start)) + point_2 = (rad_2_deg(lat_end), rad_2_deg(lon_end)) + point_3 = (rad_2_deg(lat_arrow_side_1), rad_2_deg(lon_arrow_side_1)) + point_4 = (rad_2_deg(lat_arrow_side_2), rad_2_deg(lon_arrow_side_2)) + + return [point_1, point_2, point_3, point_4, point_2] + + +def calculate_ship_outline( + position: Position, + course: float, + lat_lon0: List[float], + ship_length: float = 100.0, + ship_width: float = 15.0, +) -> List[Tuple[float, float]]: + """ + Calculate the outline of the ship pointing in the direction of ship course. + + Params: + position: {north}, {east} position of the ship [m] + course: course of the ship [rad] + lat_lon0: Reference point, latitudinal [rad] and longitudinal [rad] + ship_length: Ship length. If not given, ship length is set to 100 + ship_width: Ship width. If not given, ship width is set to 15 + + Returns + ------- + ship_outline_points: Polygon points to draw the ship [deg] + """ + north_start = position.north + east_start = position.east + + # increase size for visualizing + ship_length *= 10 + ship_width *= 10 + + north_pos1 = north_start + np.cos(course) * (-ship_length / 2) - np.sin(course) * ship_width / 2 + east_pos1 = east_start + np.sin(course) * (-ship_length / 2) + np.cos(course) * ship_width / 2 + lat_pos1, lon_pos1, _ = flat2llh(north_pos1, east_pos1, lat_lon0[0], lat_lon0[1]) + + north_pos2 = ( + north_start + + np.cos(course) * (ship_length / 2 - ship_length * 0.1) + - np.sin(course) * ship_width / 2 + ) + east_pos2 = ( + east_start + + np.sin(course) * (ship_length / 2 - ship_length * 0.1) + + np.cos(course) * ship_width / 2 + ) + lat_pos2, lon_pos2, _ = flat2llh(north_pos2, east_pos2, lat_lon0[0], lat_lon0[1]) + + north_pos3 = north_start + np.cos(course) * (ship_length / 2) + east_pos3 = east_start + np.sin(course) * (ship_length / 2) + lat_pos3, lon_pos3, _ = flat2llh(north_pos3, east_pos3, lat_lon0[0], lat_lon0[1]) + + north_pos4 = ( + north_start + + np.cos(course) * (ship_length / 2 - ship_length * 0.1) + - np.sin(course) * (-ship_width / 2) + ) + east_pos4 = ( + east_start + + np.sin(course) * (ship_length / 2 - ship_length * 0.1) + + np.cos(course) * (-ship_width / 2) + ) + lat_pos4, lon_pos4, _ = flat2llh(north_pos4, east_pos4, lat_lon0[0], lat_lon0[1]) + + north_pos5 = north_start + np.cos(course) * (-ship_length / 2) - np.sin(course) * (-ship_width / 2) + east_pos5 = east_start + np.sin(course) * (-ship_length / 2) + np.cos(course) * (-ship_width / 2) + lat_pos5, lon_pos5, _ = flat2llh(north_pos5, east_pos5, lat_lon0[0], lat_lon0[1]) + + point_1 = (rad_2_deg(lat_pos1), rad_2_deg(lon_pos1)) + point_2 = (rad_2_deg(lat_pos2), rad_2_deg(lon_pos2)) + point_3 = (rad_2_deg(lat_pos3), rad_2_deg(lon_pos3)) + point_4 = (rad_2_deg(lat_pos4), rad_2_deg(lon_pos4)) + point_5 = (rad_2_deg(lat_pos5), rad_2_deg(lon_pos5)) + + return [point_1, point_2, point_3, point_4, point_5, point_1] + + +def plot_specific_traffic_situation( + traffic_situations: List[TrafficSituation], + situation_number: int, +): + """ + Plot a specific situation in map. + + Params: + traffic_situations: Generated traffic situations + situation_number: The specific situation to be plotted + """ + + num_situations = len(traffic_situations) + if situation_number > num_situations: + print( + f"Situation_number specified higher than number of situations available, plotting last situation: {num_situations}" + ) + situation_number = num_situations + + situation: TrafficSituation = traffic_situations[situation_number - 1] + assert situation.own_ship is not None + assert situation.own_ship.initial is not None + assert situation.common_vector is not None + + lat_0 = situation.own_ship.initial.position.latitude + lon_0 = situation.own_ship.initial.position.longitude + + map_plot = Map(location=(rad_2_deg(lat_0), rad_2_deg(lon_0)), zoom_start=10) + map_plot = add_ship_to_map( + situation.own_ship, + situation.common_vector, + [lat_0, lon_0], + map_plot, + "black", + ) + + target_ships: Union[List[TargetShip], None] = situation.target_ships + assert target_ships is not None + for target_ship in target_ships: + map_plot = add_ship_to_map( + target_ship, + situation.common_vector, + [lat_0, lon_0], + map_plot, + "red", + ) + map_plot.show_in_browser() + + +def add_ship_to_map( + ship: Ship, + vector_time: float, + lat_lon0: List[float], + map_plot: Optional[Map], + color: str = "black", +) -> Map: + """ + Add the ship to the map. + + Params: + ship: Ship information + vector_time: Vector time [sec] + lat_lon0=Reference point, latitudinal [rad] and longitudinal [rad] + map_plot: Instance of Map. If not set, instance is set to None + color: Color of the ship. If not set, color is 'black' + + Returns + ------- + m: Updated instance of Map. + """ + if map_plot is None: + map_plot = Map(location=(rad_2_deg(lat_lon0[0]), rad_2_deg(lat_lon0[1])), zoom_start=10) + + assert ship.initial is not None + vector_length = vector_time * ship.initial.sog + _ = map_plot.add_child( + Polygon( + calculate_vector_arrow(ship.initial.position, ship.initial.cog, vector_length, lat_lon0), + fill=True, + fill_opacity=1, + color=color, + ) + ) + _ = map_plot.add_child( + Polygon( + calculate_ship_outline(ship.initial.position, ship.initial.cog, lat_lon0), + fill=True, + fill_opacity=1, + color=color, + ) + ) + return map_plot + + +def plot_traffic_situations( + traffic_situations: List[TrafficSituation], + col: int, + row: int, +): + """ + Plot the traffic situations in one more figures. + + Params: + traffic_situations: Traffic situations to be plotted + col: Number of columns in each figure + row: Number of rows in each figure + """ + max_columns = col + max_rows = row + num_subplots_pr_plot = max_columns * max_rows + small_size = 6 + bigger_size = 10 + + plt.rc("axes", titlesize=small_size) # fontsize of the axes title + plt.rc("axes", labelsize=small_size) # fontsize of the x and y labels + plt.rc("xtick", labelsize=small_size) # fontsize of the tick labels + plt.rc("ytick", labelsize=small_size) # fontsize of the tick labels + plt.rc("figure", titlesize=bigger_size) # fontsize of the figure title + + # The axes should have the same x/y limits, thus find max value for + # north/east position to be used for plotting + max_value: float = 0.0 + for situation in traffic_situations: + assert situation.own_ship is not None + max_value = find_max_value_for_plot(situation.own_ship, max_value) + assert situation.target_ships is not None + for target_ship in situation.target_ships: + max_value = find_max_value_for_plot(target_ship, max_value) + + plot_number: int = 1 + _ = plt.figure(plot_number) + for i, situation in enumerate(traffic_situations): + if math.floor(i / num_subplots_pr_plot) + 1 > plot_number: + plot_number += 1 + _ = plt.figure(plot_number) + + axes: plt.Axes = plt.subplot( + max_rows, + max_columns, + int(1 + i - (plot_number - 1) * num_subplots_pr_plot), + xlabel="[nm]", + ylabel="[nm]", + ) + _ = axes.set_title(situation.title) + assert situation.own_ship is not None + assert situation.common_vector is not None + axes = add_ship_to_plot( + situation.own_ship, + situation.common_vector, + axes, + "black", + ) + assert situation.target_ships is not None + for target_ship in situation.target_ships: + axes = add_ship_to_plot( + target_ship, + situation.common_vector, + axes, + "red", + ) + axes.set_aspect("equal") + + _ = plt.xlim(-max_value, max_value) + _ = plt.ylim(-max_value, max_value) + _ = plt.subplots_adjust(wspace=0.4, hspace=0.4) + + plt.show() + + +def find_max_value_for_plot( + ship: Ship, + max_value: float, +) -> float: + """ + Find the maximum deviation from the Reference point in north and east direction. + + Params: + ship: Ship information + max_value: maximum deviation in north, east direction + + Returns + ------- + max_value: updated maximum deviation in north, east direction + """ + assert ship.initial is not None + max_value = np.max( + [ + max_value, + np.abs(m_2_nm(ship.initial.position.north)), + np.abs(m_2_nm(ship.initial.position.east)), + ] + ) + return max_value + + +def add_ship_to_plot( + ship: Ship, + vector_time: float, + axes: Optional[plt.Axes], + color: str = "black", +): + """ + Add the ship to the plot. + + Params: + ship: Ship information + vector_time: Vector time [sec] + axes: Instance of figure axis. If not set, instance is set to None + color: Color of the ship. If not set, color is 'black' + """ + if axes is None: + axes = plt.gca() + assert isinstance(axes, plt.Axes) + + assert ship.initial is not None + pos_0_north = m_2_nm(ship.initial.position.north) + pos_0_east = m_2_nm(ship.initial.position.east) + course = ship.initial.cog + speed = ship.initial.sog + + vector_length = m_2_nm(vector_time * speed) + + _ = axes.arrow( + pos_0_east, + pos_0_north, + vector_length * np.sin(course), + vector_length * np.cos(course), + edgecolor=color, + facecolor=color, + width=0.0001, + head_length=0.2, + head_width=0.2, + length_includes_head=True, + ) + circle = Circle( + xy=(pos_0_east, pos_0_north), + radius=vector_time / 3000.0, # type: ignore + color=color, + ) + _ = axes.add_patch(circle) + + return axes diff --git a/src/trafficgen/read_files.py b/src/trafficgen/read_files.py index 88dfb80..f793e9d 100644 --- a/src/trafficgen/read_files.py +++ b/src/trafficgen/read_files.py @@ -1,251 +1,249 @@ -"""Functions to read the files needed to build one or more traffic situations.""" - -import json -import os -from pathlib import Path -from typing import Any, Dict, List, Union -from uuid import UUID, uuid4 - -from trafficgen.types import ( - AISNavStatus, - EncounterSettings, - OwnShip, - TargetShip, - TrafficSituation, - UnitType, -) -from trafficgen.utils import deg_2_rad, knot_2_m_pr_s, min_2_s, nm_2_m - - -def read_situation_files(situation_folder: Path, input_units: UnitType) -> List[TrafficSituation]: - """ - Read traffic situation files. - - Params: - situation_folder: Path to the folder where situation files are found - input_units: Specify if the inputs are given in si or maritime units - - Returns - ------- - situations: List of desired traffic situations - """ - situations: List[TrafficSituation] = [] - for file_name in sorted([file for file in os.listdir(situation_folder) if file.endswith(".json")]): - file_path = os.path.join(situation_folder, file_name) - with open(file_path, encoding="utf-8") as f: - data = json.load(f) - - data = convert_keys_to_snake_case(data) - situation: TrafficSituation = TrafficSituation(**data) - if input_units.value == "maritime": - situation = convert_situation_data_from_maritime_to_si_units(situation) - - situation.input_file_name = file_name - situations.append(situation) - return situations - - -def read_generated_situation_files(situation_folder: Path) -> List[TrafficSituation]: - """ - Read the generated traffic situation files. Used for testing the trafficgen algorithm. - - Params: - situation_folder: Path to the folder where situation files are found - - Returns - ------- - situations: List of desired traffic situations - """ - situations: List[TrafficSituation] = [] - for file_name in sorted([file for file in os.listdir(situation_folder) if file.endswith(".json")]): - file_path = os.path.join(situation_folder, file_name) - with open(file_path, encoding="utf-8") as f: - data = json.load(f) - - data = convert_keys_to_snake_case(data) - situation: TrafficSituation = TrafficSituation(**data) - - situation.input_file_name = file_name - situations.append(situation) - return situations - - -def convert_situation_data_from_maritime_to_si_units(situation: TrafficSituation) -> TrafficSituation: - """ - Convert situation data which is given in maritime units to SI units. - - Params: - own_ship_file: Path to the own_ship_file file - - Returns - ------- - own_ship information - """ - assert situation.own_ship is not None - assert situation.own_ship.initial is not None - situation.own_ship.initial.position.longitude = round( - deg_2_rad(situation.own_ship.initial.position.longitude), 8 - ) - situation.own_ship.initial.position.latitude = round( - deg_2_rad(situation.own_ship.initial.position.latitude), 8 - ) - situation.own_ship.initial.cog = round(deg_2_rad(situation.own_ship.initial.cog), 4) - situation.own_ship.initial.sog = round(knot_2_m_pr_s(situation.own_ship.initial.sog), 2) - - situation.common_vector = min_2_s(situation.common_vector) - - assert situation.encounter is not None - for i in range(len(situation.encounter)): - beta: Union[float, None] = situation.encounter[i].beta - vector_time: Union[float, None] = situation.encounter[i].vector_time - if beta is not None: - situation.encounter[i].beta = round(deg_2_rad(beta), 4) - if vector_time is not None: - situation.encounter[i].vector_time = min_2_s(vector_time) - return situation - - -def read_own_ship_file(own_ship_file: Path) -> OwnShip: - """ - Read own ship file. - - Params: - own_ship_file: Path to the own_ship_file file - - Returns - ------- - own_ship information - """ - with open(own_ship_file, encoding="utf-8") as f: - data = json.load(f) - data = convert_keys_to_snake_case(data) - - if "static" in data and "id" not in data["static"]: - ship_id: UUID = uuid4() - data["static"].update({"id": ship_id}) - if "initial" in data and "nav_status" not in data["initial"]: - data["initial"].update({"nav_status": AISNavStatus.UNDER_WAY_USING_ENGINE}) - - ship: OwnShip = OwnShip(**data) - return ship - - -def read_target_ship_files(target_ship_folder: Path) -> List[TargetShip]: - """ - Read target ship files. - - Params: - target_ship_folder: Path to the folder where target ships are found - - Returns - ------- - target_ships: List of different target ships - """ - target_ships: List[TargetShip] = [] - for file_name in sorted([file for file in os.listdir(target_ship_folder) if file.endswith(".json")]): - file_path = os.path.join(target_ship_folder, file_name) - with open(file_path, encoding="utf-8") as f: - data = json.load(f) - data = convert_keys_to_snake_case(data) - - if "static" in data and "id" not in data["static"]: - temp_id: UUID = uuid4() - data["static"].update({"id": temp_id}) - if "initial" in data and "nav_status" not in data["initial"]: - data["initial"].update({"nav_status": AISNavStatus.UNDER_WAY_USING_ENGINE}) - target_ship: TargetShip = TargetShip(**data) - target_ships.append(target_ship) - return target_ships - - -def read_encounter_settings_file(settings_file: Path) -> EncounterSettings: - """ - Read encounter settings file. - - Params: - settings_file: Path to the encounter setting file - - Returns - ------- - Encounter settings - """ - with open(settings_file, encoding="utf-8") as f: - data = json.load(f) - data = check_input_units(data) - encounter_settings: EncounterSettings = EncounterSettings(**data) - - # assert encounter_settings.input_units is not None - if encounter_settings.input_units.value == "maritime": - encounter_settings = convert_settings_data_from_maritime_to_si_units(encounter_settings) - - return encounter_settings - - -def convert_settings_data_from_maritime_to_si_units(settings: EncounterSettings) -> EncounterSettings: - """ - Convert situation data which is given in maritime units to SI units. - - Params: - own_ship_file: Path to the own_ship_file file - - Returns - ------- - own_ship information - """ - assert settings.classification is not None - - settings.classification.theta13_criteria = deg_2_rad(settings.classification.theta13_criteria) - settings.classification.theta14_criteria = deg_2_rad(settings.classification.theta14_criteria) - settings.classification.theta15_criteria = deg_2_rad(settings.classification.theta15_criteria) - settings.classification.theta15[0] = deg_2_rad(settings.classification.theta15[0]) - settings.classification.theta15[1] = deg_2_rad(settings.classification.theta15[1]) - - settings.vector_range[0] = min_2_s(settings.vector_range[0]) - settings.vector_range[1] = min_2_s(settings.vector_range[1]) - - settings.situation_length = min_2_s(settings.situation_length) - settings.max_meeting_distance = nm_2_m(settings.max_meeting_distance) - settings.evolve_time = min_2_s(settings.evolve_time) - - return settings - - -def check_input_units(data: Dict[str, Any]) -> Dict[str, Any]: - """Check if input unit is specified, if not specified it is set to SI.""" - - if "input_units" not in data: - data["input_units"] = "si" - - return data - - -def camel_to_snake(string: str) -> str: - """Convert a camel case string to snake case.""" - return "".join([f"_{c.lower()}" if c.isupper() else c for c in string]).lstrip("_") - - -def convert_keys_to_snake_case(data: Dict[str, Any]) -> Dict[str, Any]: - """Convert keys in a nested dictionary from camel case to snake case.""" - converted_dict = {} - for key, value in data.items(): - converted_key = camel_to_snake(key) - if isinstance(value, dict): - converted_value = convert_keys_to_snake_case(value) - elif isinstance(value, list): - converted_value = convert_list_of_dict_to_snake_case(value) - else: - converted_value = value - converted_dict[converted_key] = converted_value - return converted_dict - - -def convert_list_of_dict_to_snake_case(data: List[Dict[str, Any]]) -> List[Dict[str, Any]]: - """Loops through a list of dics to convert keys from camel case to snake case.""" - - converted_list: List[Dict[str, Any]] = [] - for item in data: - if not isinstance(item, dict): - return data - converted_item = convert_keys_to_snake_case(item) - converted_list.append(converted_item) - return converted_list +"""Functions to read the files needed to build one or more traffic situations.""" + +import json +import os +from pathlib import Path +from typing import Any, Dict, List, Union +from uuid import UUID, uuid4 + +from trafficgen.types import ( + EncounterSettings, + UnitType, +) +from trafficgen.utils import deg_2_rad, knot_2_m_pr_s, min_2_s, nm_2_m + +from maritime_schema.types.caga import AISNavStatus, OwnShip, TargetShip, TrafficSituation + + +def read_situation_files(situation_folder: Path, input_units: UnitType) -> List[TrafficSituation]: + """ + Read traffic situation files. + + Params: + situation_folder: Path to the folder where situation files are found + input_units: Specify if the inputs are given in si or maritime units + + Returns + ------- + situations: List of desired traffic situations + """ + situations: List[TrafficSituation] = [] + for file_name in sorted([file for file in os.listdir(situation_folder) if file.endswith(".json")]): + file_path = os.path.join(situation_folder, file_name) + with open(file_path, encoding="utf-8") as f: + data = json.load(f) + + data = convert_keys_to_snake_case(data) + situation: TrafficSituation = TrafficSituation(**data) + if input_units.value == "maritime": + situation = convert_situation_data_from_maritime_to_si_units(situation) + + situation.input_file_name = file_name + situations.append(situation) + return situations + + +def read_generated_situation_files(situation_folder: Path) -> List[TrafficSituation]: + """ + Read the generated traffic situation files. Used for testing the trafficgen algorithm. + + Params: + situation_folder: Path to the folder where situation files are found + + Returns + ------- + situations: List of desired traffic situations + """ + situations: List[TrafficSituation] = [] + for file_name in sorted([file for file in os.listdir(situation_folder) if file.endswith(".json")]): + file_path = os.path.join(situation_folder, file_name) + with open(file_path, encoding="utf-8") as f: + data = json.load(f) + + data = convert_keys_to_snake_case(data) + situation: TrafficSituation = TrafficSituation(**data) + + situation.input_file_name = file_name + situations.append(situation) + return situations + + +def convert_situation_data_from_maritime_to_si_units(situation: TrafficSituation) -> TrafficSituation: + """ + Convert situation data which is given in maritime units to SI units. + + Params: + own_ship_file: Path to the own_ship_file file + + Returns + ------- + own_ship information + """ + assert situation.own_ship is not None + assert situation.own_ship.initial is not None + situation.own_ship.initial.position.longitude = round( + deg_2_rad(situation.own_ship.initial.position.longitude), 8 + ) + situation.own_ship.initial.position.latitude = round( + deg_2_rad(situation.own_ship.initial.position.latitude), 8 + ) + situation.own_ship.initial.cog = round(deg_2_rad(situation.own_ship.initial.cog), 4) + situation.own_ship.initial.sog = round(knot_2_m_pr_s(situation.own_ship.initial.sog), 2) + + situation.common_vector = min_2_s(situation.common_vector) + + assert situation.encounter is not None + for i in range(len(situation.encounter)): + beta: Union[float, None] = situation.encounter[i]["beta"] + vector_time: Union[float, None] = situation.encounter[i]["vector_time"] + if beta is not None: + situation.encounter[i]["beta"] = round(deg_2_rad(beta), 4) + if vector_time is not None: + situation.encounter[i]["vector_time"] = min_2_s(vector_time) + return situation + + +def read_own_ship_file(own_ship_file: Path) -> OwnShip: + """ + Read own ship file. + + Params: + own_ship_file: Path to the own_ship_file file + + Returns + ------- + own_ship information + """ + with open(own_ship_file, encoding="utf-8") as f: + data = json.load(f) + data = convert_keys_to_snake_case(data) + + if "static" in data and "id" not in data["static"]: + ship_id: UUID = uuid4() + data["static"].update({"id": ship_id}) + if "initial" in data and "nav_status" not in data["initial"]: + data["initial"].update({"nav_status": AISNavStatus.UNDER_WAY_USING_ENGINE}) + + ship: OwnShip = OwnShip(**data) + return ship + + +def read_target_ship_files(target_ship_folder: Path) -> List[TargetShip]: + """ + Read target ship files. + + Params: + target_ship_folder: Path to the folder where target ships are found + + Returns + ------- + target_ships: List of different target ships + """ + target_ships: List[TargetShip] = [] + for file_name in sorted([file for file in os.listdir(target_ship_folder) if file.endswith(".json")]): + file_path = os.path.join(target_ship_folder, file_name) + with open(file_path, encoding="utf-8") as f: + data = json.load(f) + data = convert_keys_to_snake_case(data) + + if "static" in data and "id" not in data["static"]: + temp_id: UUID = uuid4() + data["static"].update({"id": temp_id}) + if "initial" in data and "nav_status" not in data["initial"]: + data["initial"].update({"nav_status": AISNavStatus.UNDER_WAY_USING_ENGINE}) + target_ship: TargetShip = TargetShip(**data) + target_ships.append(target_ship) + return target_ships + + +def read_encounter_settings_file(settings_file: Path) -> EncounterSettings: + """ + Read encounter settings file. + + Params: + settings_file: Path to the encounter setting file + + Returns + ------- + Encounter settings + """ + with open(settings_file, encoding="utf-8") as f: + data = json.load(f) + data = check_input_units(data) + encounter_settings: EncounterSettings = EncounterSettings(**data) + + # assert encounter_settings.input_units is not None + if encounter_settings.input_units.value == "maritime": + encounter_settings = convert_settings_data_from_maritime_to_si_units(encounter_settings) + + return encounter_settings + + +def convert_settings_data_from_maritime_to_si_units(settings: EncounterSettings) -> EncounterSettings: + """ + Convert situation data which is given in maritime units to SI units. + + Params: + own_ship_file: Path to the own_ship_file file + + Returns + ------- + own_ship information + """ + assert settings.classification is not None + + settings.classification.theta13_criteria = deg_2_rad(settings.classification.theta13_criteria) + settings.classification.theta14_criteria = deg_2_rad(settings.classification.theta14_criteria) + settings.classification.theta15_criteria = deg_2_rad(settings.classification.theta15_criteria) + settings.classification.theta15[0] = deg_2_rad(settings.classification.theta15[0]) + settings.classification.theta15[1] = deg_2_rad(settings.classification.theta15[1]) + + settings.vector_range[0] = min_2_s(settings.vector_range[0]) + settings.vector_range[1] = min_2_s(settings.vector_range[1]) + + settings.situation_length = min_2_s(settings.situation_length) + settings.max_meeting_distance = nm_2_m(settings.max_meeting_distance) + settings.evolve_time = min_2_s(settings.evolve_time) + + return settings + + +def check_input_units(data: Dict[str, Any]) -> Dict[str, Any]: + """Check if input unit is specified, if not specified it is set to SI.""" + + if "input_units" not in data: + data["input_units"] = "si" + + return data + + +def camel_to_snake(string: str) -> str: + """Convert a camel case string to snake case.""" + return "".join([f"_{c.lower()}" if c.isupper() else c for c in string]).lstrip("_") + + +def convert_keys_to_snake_case(data: Dict[str, Any]) -> Dict[str, Any]: + """Convert keys in a nested dictionary from camel case to snake case.""" + converted_dict = {} + for key, value in data.items(): + converted_key = camel_to_snake(key) + if isinstance(value, dict): + converted_value = convert_keys_to_snake_case(value) + elif isinstance(value, list): + converted_value = convert_list_of_dict_to_snake_case(value) + else: + converted_value = value + converted_dict[converted_key] = converted_value + return converted_dict + + +def convert_list_of_dict_to_snake_case(data: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + """Loops through a list of dics to convert keys from camel case to snake case.""" + + converted_list: List[Dict[str, Any]] = [] + for item in data: + if not isinstance(item, dict): + return data + converted_item = convert_keys_to_snake_case(item) + converted_list.append(converted_item) + return converted_list diff --git a/src/trafficgen/ship_traffic_generator.py b/src/trafficgen/ship_traffic_generator.py index 6021db9..96b3105 100644 --- a/src/trafficgen/ship_traffic_generator.py +++ b/src/trafficgen/ship_traffic_generator.py @@ -1,89 +1,95 @@ -"""Functions to generate traffic situations.""" - -from pathlib import Path -from typing import List, Union - -from trafficgen.encounter import ( - generate_encounter, - update_position_data_own_ship, -) -from trafficgen.read_files import ( - read_encounter_settings_file, - read_own_ship_file, - read_situation_files, - read_target_ship_files, -) -from trafficgen.types import EncounterSettings, OwnShip, TargetShip, TrafficSituation - - -def generate_traffic_situations( - situation_folder: Path, - own_ship_file: Path, - target_ship_folder: Path, - settings_file: Path, -) -> List[TrafficSituation]: - """ - Generate a set of traffic situations using input files. - This is the main function for generating a set of traffic situations using input files - specifying number and type of encounter, type of target ships etc. - - Params: - * situation_folder: Path to situation folder, files describing the desired situations - * own_ship_file: Path to where own ships is found - * target_ship_folder: Path to where different type of target ships is found - * settings_file: Path to settings file - - Returns - ------- - traffic_situations: List of generated traffic situations. - One situation may consist of one or more encounters. - """ - - own_ship: OwnShip = read_own_ship_file(own_ship_file) - target_ships: List[TargetShip] = read_target_ship_files(target_ship_folder) - encounter_settings: EncounterSettings = read_encounter_settings_file(settings_file) - desired_traffic_situations: List[TrafficSituation] = read_situation_files( - situation_folder, encounter_settings.input_units - ) - traffic_situations: List[TrafficSituation] = [] - - for desired_traffic_situation in desired_traffic_situations: - num_situations: int = desired_traffic_situation.num_situations or 1 - assert desired_traffic_situation.common_vector is not None - assert desired_traffic_situation.own_ship is not None - assert desired_traffic_situation.encounter is not None - - for _ in range(num_situations): - traffic_situation: TrafficSituation = TrafficSituation( - title=desired_traffic_situation.title, - input_file_name=desired_traffic_situation.input_file_name, - common_vector=desired_traffic_situation.common_vector, - ) - assert traffic_situation.common_vector is not None - own_ship.initial = desired_traffic_situation.own_ship.initial - own_ship = update_position_data_own_ship( - own_ship, - encounter_settings.situation_length, - ) - traffic_situation.own_ship = own_ship - traffic_situation.target_ships = [] - for encounter in desired_traffic_situation.encounter: - desired_encounter_type = encounter.desired_encounter_type - settings = encounter_settings - beta: Union[float, None] = encounter.beta - relative_speed: Union[float, None] = encounter.relative_speed - vector_time: Union[float, None] = encounter.vector_time - target_ship, encounter_found = generate_encounter( - desired_encounter_type, - own_ship.model_copy(deep=True), - target_ships, - beta, - relative_speed, - vector_time, - settings, - ) - if encounter_found: - traffic_situation.target_ships.append(target_ship) - - traffic_situations.append(traffic_situation) - return traffic_situations +"""Functions to generate traffic situations.""" + +from pathlib import Path +from typing import List, Union + +from trafficgen.encounter import ( + generate_encounter, + update_position_data_own_ship, +) +from trafficgen.read_files import ( + read_encounter_settings_file, + read_own_ship_file, + read_situation_files, + read_target_ship_files, +) +from trafficgen.types import EncounterSettings +from maritime_schema.types.caga import OwnShip, TargetShip, TrafficSituation + + +def generate_traffic_situations( + situation_folder: Path, + own_ship_file: Path, + target_ship_folder: Path, + settings_file: Path, +) -> List[TrafficSituation]: + """ + Generate a set of traffic situations using input files. + This is the main function for generating a set of traffic situations using input files + specifying number and type of encounter, type of target ships etc. + + Params: + * situation_folder: Path to situation folder, files describing the desired situations + * own_ship_file: Path to where own ships is found + * target_ship_folder: Path to where different type of target ships is found + * settings_file: Path to settings file + + Returns + ------- + traffic_situations: List of generated traffic situations. + One situation may consist of one or more encounters. + """ + + own_ship: OwnShip = read_own_ship_file(own_ship_file) + target_ships: List[TargetShip] = read_target_ship_files(target_ship_folder) + encounter_settings: EncounterSettings = read_encounter_settings_file(settings_file) + desired_traffic_situations: List[TrafficSituation] = read_situation_files( + situation_folder, encounter_settings.input_units + ) + traffic_situations: List[TrafficSituation] = [] + + for desired_traffic_situation in desired_traffic_situations: + if "num_situations" in desired_traffic_situation: + num_situations: int = desired_traffic_situation["num_situations"] + else: + num_situations: int = 1 + assert desired_traffic_situation.common_vector is not None + assert desired_traffic_situation.own_ship is not None + assert desired_traffic_situation.encounter is not None + + for _ in range(num_situations): + + own_ship.initial = desired_traffic_situation.own_ship.initial + own_ship = update_position_data_own_ship( + own_ship, + encounter_settings.situation_length, + ) + traffic_situation: TrafficSituation = TrafficSituation( + title=desired_traffic_situation.title, + input_file_name=desired_traffic_situation.input_file_name, + common_vector=desired_traffic_situation.common_vector, + own_ship=own_ship, + ) + assert traffic_situation.common_vector is not None + + traffic_situation.target_ships = [] + for encounter in desired_traffic_situation.encounter: + desired_encounter_type = encounter["desired_encounter_type"] + settings = encounter_settings + beta: Union[float, None] = encounter["beta"] + relative_speed: Union[float, None] = encounter["relative_speed"] + vector_time: Union[float, None] = encounter["vector_time"] + target_ship, encounter_found = generate_encounter( + desired_encounter_type, + own_ship.model_copy(deep=True), + target_ships, + beta, + relative_speed, + vector_time, + settings, + ) + if encounter_found: + traffic_situation.target_ships.append(target_ship) + + traffic_situations.append(traffic_situation) + return traffic_situations diff --git a/src/trafficgen/types.py b/src/trafficgen/types.py index 405a639..d7a12e1 100644 --- a/src/trafficgen/types.py +++ b/src/trafficgen/types.py @@ -1,236 +1,236 @@ -"""Domain specific data types used in trafficgen.""" - -from enum import Enum -from typing import List, Optional, Union -from uuid import UUID - -from pydantic import BaseModel, Field - - -def to_camel(string: str) -> str: - """Return a camel case formated string from snake case string.""" - - words = string.split("_") - return words[0] + "".join(word.capitalize() for word in words[1:]) - - -class Position(BaseModel): - """Data type for a ship's position with attributes north, east in [m].""" - - north: float = 0.0 - east: float = 0.0 - latitude: float = 0.0 - longitude: float = 0.0 - - -class Initial(BaseModel): - """Data type for a (ship) initial data.""" - - position: Position = Position() - sog: float = 0.0 - cog: float = 0.0 - heading: float = 0.0 - - -class Waypoint(BaseModel): - """Data type for a (ship) waypoint.""" - - position: Position = Position() - sog: float = 0.0 - heading: float = 0.0 - - -class GeneralShipType(str, Enum): - """Enumeration of ship types.""" - - WING_IN_GROUND = "Wing in ground" - FISHING = "Fishing" - TOWING = "Towing" - DREDGING_OR_UNDERWATER_OPS = "Dredging or underwater ops" - DIVING_OPS = "Diving ops" - MILITARY_OPS = "Military ops" - SAILING = "Sailing" - PLEASURE_CRAFT = "Pleasure Craft" - HIGH_SPEED_CRAFT = "High speed craft" - PILOT_VESSEL = "Pilot Vessel" - SEARCH_AND_RESCUE_VESSEL = "Search and Rescue vessel" - TUG = "Tug" - PORT_TENDER = "Port Tender" - ANTI_POLLUTION = "Anti-pollution" - LAW_ENFORCEMENT = "Law Enforcement" - MEDICAL_TRANSPORT = "Medical Transport" - NONCOMBATANT_SHIP = "Noncombatant ship" - PASSENGER = "Passenger" - CARGO = "Cargo" - TANKER = "Tanker" - OTHER_TYPE = "Other Type" - - -class AISNavStatus(str, Enum): - """Enumeration of AIS navigation status types.""" - - UNDER_WAY_USING_ENGINE = "Under way using engine" - AT_ANCHOR = "At anchor" - NOT_UNDER_COMMAND = "Not under command" - RESTRICTED_MANOEUVERABILITY = "Restricted manoeuverability" - CONSTRAINED_BY_HER_DRAUGHT = "Constrained by her draught" - MOORED = "Moored" - AGROUND = "Aground" - ENGAGED_IN_FISHING = "Engaged in fishing" - UNDER_WAY_SAILING = "Under way sailing" - RESERVED_FOR_FUTURE_AMENDMENT_OF_NAVIGATIONAL_STATUS_FOR_HSC = ( - "Reserved for future amendment of navigational status for HSC" - ) - RESERVED_FOR_FUTURE_AMENDMENT_OF_NAVIGATIONAL_STATUS_FOR_WIG = ( - "Reserved for future amendment of navigational status for WIG" - ) - RESERVED_FOR_FUTURE_USE_1 = "Reserved for future use 1" - RESERVED_FOR_FUTURE_USE_2 = "Reserved for future use 2" - RESERVED_FOR_FUTURE_USE_3 = "Reserved for future use 3" - AIS_SART_IS_ACTIVE = "AIS SART is active" - NOT_DEFINED_DEFAULT = "Not defined (default)" - - -class ShipStatic(BaseModel): - """Static ship data that will not change during the scenario.""" - - id: UUID - length: float - width: float - height: float - speed_max: float - mmsi: Optional[int] = Field( - None, - ge=100000000, - le=999999999, - description="Maritime Mobile Service Identity (MMSI)", - examples=[123456789], - ) - name: str - ship_type: GeneralShipType - - class Config: - """For converting parameters written to file from snake to camel case.""" - - alias_generator = to_camel - populate_by_name = True - - -class Ship(BaseModel): - """Data type for a ship.""" - - static: Union[ShipStatic, None] = None - initial: Union[Initial, None] = None - waypoints: Union[List[Waypoint], None] = None - - -class OwnShip(Ship): - """Data type for own ship.""" - - pass - - -class TargetShip(Ship): - """Data type for a target ship.""" - - pass - - -class EncounterType(Enum): - """Enumeration of encounter types.""" - - OVERTAKING_STAND_ON = "overtaking-stand-on" - OVERTAKING_GIVE_WAY = "overtaking-give-way" - HEAD_ON = "head-on" - CROSSING_GIVE_WAY = "crossing-give-way" - CROSSING_STAND_ON = "crossing-stand-on" - NO_RISK_COLLISION = "noRiskCollision" - - -class Encounter(BaseModel): - """Data type for an encounter.""" - - desired_encounter_type: EncounterType - beta: Union[float, None] = None - relative_speed: Union[float, None] = None - vector_time: Union[float, None] = None - - class Config: - """For converting parameters written to file from snake to camel case.""" - - alias_generator = to_camel - populate_by_name = True - - -class TrafficSituation(BaseModel): - """Data type for a traffic situation.""" - - title: str - input_file_name: Union[str, None] = None - common_vector: float - own_ship: Union[Ship, None] = None - num_situations: Union[int, None] = None - encounter: Union[List[Encounter], None] = None - target_ships: Union[List[TargetShip], None] = None - - class Config: - """For converting parameters written to file from snake to camel case.""" - - alias_generator = to_camel - populate_by_name = True - - -class EncounterClassification(BaseModel): - """Data type for the encounter classification.""" - - theta13_criteria: float - theta14_criteria: float - theta15_criteria: float - theta15: List[float] - - class Config: - """For converting parameters written to file from snake to camel case.""" - - alias_generator = to_camel - populate_by_name = True - - -class EncounterRelativeSpeed(BaseModel): - """Data type for relative speed between two ships in an encounter.""" - - overtaking_stand_on: List[float] - overtaking_give_way: List[float] - head_on: List[float] - crossing_give_way: List[float] - crossing_stand_on: List[float] - - class Config: - """For converting parameters written to file from snake to camel case.""" - - alias_generator = to_camel - populate_by_name = True - - -class UnitType(Enum): - """Enumeration of encounter types.""" - - SI_UNITS = "si" - MARITIME_UNITS = "maritime" - - -class EncounterSettings(BaseModel): - """Data type for encounter settings.""" - - classification: EncounterClassification - relative_speed: EncounterRelativeSpeed - vector_range: List[float] - situation_length: float - max_meeting_distance: float - evolve_time: float - input_units: UnitType - - class Config: - """For converting parameters written to file from snake to camel case.""" - - alias_generator = to_camel - populate_by_name = True +"""Domain specific data types used in trafficgen.""" + +from enum import Enum +from typing import List, Optional, Union +from uuid import UUID + +from pydantic import BaseModel, Field + + +def to_camel(string: str) -> str: + """Return a camel case formated string from snake case string.""" + + words = string.split("_") + return words[0] + "".join(word.capitalize() for word in words[1:]) + + +# class Position(BaseModel): +# """Data type for a ship's position with attributes north, east in [m].""" + +# north: float = 0.0 +# east: float = 0.0 +# latitude: float = 0.0 +# longitude: float = 0.0 + + +# class Initial(BaseModel): +# """Data type for a (ship) initial data.""" + +# position: Position = Position() +# sog: float = 0.0 +# cog: float = 0.0 +# heading: float = 0.0 + + +# class Waypoint(BaseModel): +# """Data type for a (ship) waypoint.""" + +# position: Position = Position() +# sog: float = 0.0 +# heading: float = 0.0 + + +# class GeneralShipType(str, Enum): +# """Enumeration of ship types.""" + +# WING_IN_GROUND = "Wing in ground" +# FISHING = "Fishing" +# TOWING = "Towing" +# DREDGING_OR_UNDERWATER_OPS = "Dredging or underwater ops" +# DIVING_OPS = "Diving ops" +# MILITARY_OPS = "Military ops" +# SAILING = "Sailing" +# PLEASURE_CRAFT = "Pleasure Craft" +# HIGH_SPEED_CRAFT = "High speed craft" +# PILOT_VESSEL = "Pilot Vessel" +# SEARCH_AND_RESCUE_VESSEL = "Search and Rescue vessel" +# TUG = "Tug" +# PORT_TENDER = "Port Tender" +# ANTI_POLLUTION = "Anti-pollution" +# LAW_ENFORCEMENT = "Law Enforcement" +# MEDICAL_TRANSPORT = "Medical Transport" +# NONCOMBATANT_SHIP = "Noncombatant ship" +# PASSENGER = "Passenger" +# CARGO = "Cargo" +# TANKER = "Tanker" +# OTHER_TYPE = "Other Type" + + +# class AISNavStatus(str, Enum): +# """Enumeration of AIS navigation status types.""" + +# UNDER_WAY_USING_ENGINE = "Under way using engine" +# AT_ANCHOR = "At anchor" +# NOT_UNDER_COMMAND = "Not under command" +# RESTRICTED_MANOEUVERABILITY = "Restricted manoeuverability" +# CONSTRAINED_BY_HER_DRAUGHT = "Constrained by her draught" +# MOORED = "Moored" +# AGROUND = "Aground" +# ENGAGED_IN_FISHING = "Engaged in fishing" +# UNDER_WAY_SAILING = "Under way sailing" +# RESERVED_FOR_FUTURE_AMENDMENT_OF_NAVIGATIONAL_STATUS_FOR_HSC = ( +# "Reserved for future amendment of navigational status for HSC" +# ) +# RESERVED_FOR_FUTURE_AMENDMENT_OF_NAVIGATIONAL_STATUS_FOR_WIG = ( +# "Reserved for future amendment of navigational status for WIG" +# ) +# RESERVED_FOR_FUTURE_USE_1 = "Reserved for future use 1" +# RESERVED_FOR_FUTURE_USE_2 = "Reserved for future use 2" +# RESERVED_FOR_FUTURE_USE_3 = "Reserved for future use 3" +# AIS_SART_IS_ACTIVE = "AIS SART is active" +# NOT_DEFINED_DEFAULT = "Not defined (default)" + + +# class ShipStatic(BaseModel): +# """Static ship data that will not change during the scenario.""" + +# id: UUID +# length: float +# width: float +# height: float +# speed_max: float +# mmsi: Optional[int] = Field( +# None, +# ge=100000000, +# le=999999999, +# description="Maritime Mobile Service Identity (MMSI)", +# examples=[123456789], +# ) +# name: str +# ship_type: GeneralShipType + +# class Config: +# """For converting parameters written to file from snake to camel case.""" + +# alias_generator = to_camel +# populate_by_name = True + + +# class Ship(BaseModel): +# """Data type for a ship.""" + +# static: Union[ShipStatic, None] = None +# initial: Union[Initial, None] = None +# waypoints: Union[List[Waypoint], None] = None + + +# class OwnShip(Ship): +# """Data type for own ship.""" + +# pass + + +# class TargetShip(Ship): +# """Data type for a target ship.""" + +# pass + + +class EncounterType(Enum): + """Enumeration of encounter types.""" + + OVERTAKING_STAND_ON = "overtaking-stand-on" + OVERTAKING_GIVE_WAY = "overtaking-give-way" + HEAD_ON = "head-on" + CROSSING_GIVE_WAY = "crossing-give-way" + CROSSING_STAND_ON = "crossing-stand-on" + NO_RISK_COLLISION = "noRiskCollision" + + +class Encounter(BaseModel): + """Data type for an encounter.""" + + desired_encounter_type: EncounterType + beta: Union[float, None] = None + relative_speed: Union[float, None] = None + vector_time: Union[float, None] = None + + class Config: + """For converting parameters written to file from snake to camel case.""" + + alias_generator = to_camel + populate_by_name = True + + +# class TrafficSituation(BaseModel): +# """Data type for a traffic situation.""" + +# title: str +# input_file_name: Union[str, None] = None +# common_vector: float +# own_ship: Union[Ship, None] = None +# num_situations: Union[int, None] = None +# encounter: Union[List[Encounter], None] = None +# target_ships: Union[List[TargetShip], None] = None + +# class Config: +# """For converting parameters written to file from snake to camel case.""" + +# alias_generator = to_camel +# populate_by_name = True + + +class EncounterClassification(BaseModel): + """Data type for the encounter classification.""" + + theta13_criteria: float + theta14_criteria: float + theta15_criteria: float + theta15: List[float] + + class Config: + """For converting parameters written to file from snake to camel case.""" + + alias_generator = to_camel + populate_by_name = True + + +class EncounterRelativeSpeed(BaseModel): + """Data type for relative speed between two ships in an encounter.""" + + overtaking_stand_on: List[float] + overtaking_give_way: List[float] + head_on: List[float] + crossing_give_way: List[float] + crossing_stand_on: List[float] + + class Config: + """For converting parameters written to file from snake to camel case.""" + + alias_generator = to_camel + populate_by_name = True + + +class UnitType(Enum): + """Enumeration of encounter types.""" + + SI_UNITS = "si" + MARITIME_UNITS = "maritime" + + +class EncounterSettings(BaseModel): + """Data type for encounter settings.""" + + classification: EncounterClassification + relative_speed: EncounterRelativeSpeed + vector_range: List[float] + situation_length: float + max_meeting_distance: float + evolve_time: float + input_units: UnitType + + class Config: + """For converting parameters written to file from snake to camel case.""" + + alias_generator = to_camel + populate_by_name = True diff --git a/src/trafficgen/utils.py b/src/trafficgen/utils.py index 421d70c..92cd1cf 100644 --- a/src/trafficgen/utils.py +++ b/src/trafficgen/utils.py @@ -1,165 +1,165 @@ -"""Utility functions that are used by several other functions.""" - -import numpy as np - -from trafficgen.types import Position - - -def knot_2_m_pr_s(speed_in_knot: float) -> float: - """ - Convert ship speed in knots to meters pr second. - - Params: - speed_in_knot: Ship speed given in knots - - Returns - ------- - speed_in_m_pr_s: Ship speed in meters pr second - """ - - knot_2_m_pr_sec: float = 0.5144 - return speed_in_knot * knot_2_m_pr_sec - - -def min_2_s(time_in_min: float) -> float: - """ - Convert time given in minutes to time given in seconds. - - Params: - time_in_min: Time given in minutes - - Returns - ------- - time_in_s: Time in seconds - """ - - min_2_s_coeff: float = 60.0 - return time_in_min * min_2_s_coeff - - -def m_2_nm(length_in_m: float) -> float: - """ - Convert length given in meters to length given in nautical miles. - - Params: - length_in_m: Length given in meters - - Returns - ------- - length_in_nm: Length given in nautical miles - """ - - m_2_nm_coeff: float = 1.0 / 1852.0 - return m_2_nm_coeff * length_in_m - - -def nm_2_m(length_in_nm: float) -> float: - """ - Convert length given in nautical miles to length given in meters. - - Params: - length_in_nm: Length given in nautical miles - - Returns - ------- - length_in_m: Length given in meters - """ - - nm_2_m_factor: float = 1852.0 - return length_in_nm * nm_2_m_factor - - -def deg_2_rad(angle_in_degrees: float) -> float: - """ - Convert angle given in degrees to angle give in radians. - - Params: - angle_in_degrees: Angle given in degrees - - Returns - ------- - angle given in radians: Angle given in radians - """ - - return angle_in_degrees * np.pi / 180.0 - - -def rad_2_deg(angle_in_radians: float) -> float: - """ - Convert angle given in radians to angle give in degrees. - - Params: - angle_in_degrees: Angle given in degrees - - Returns - ------- - angle given in radians: Angle given in radians - - """ - - return angle_in_radians * 180.0 / np.pi - - -def convert_angle_minus_pi_to_pi_to_0_to_2_pi(angle_pi: float) -> float: - """ - Convert an angle given in the region -pi to pi degrees to an - angle given in the region 0 to 2pi radians. - - Params: - angle_pi: Angle given in the region -pi to pi radians - - Returns - ------- - angle_2_pi: Angle given in the region 0 to 2pi radians - - """ - - return angle_pi if angle_pi >= 0.0 else angle_pi + 2 * np.pi - - -def convert_angle_0_to_2_pi_to_minus_pi_to_pi(angle_2_pi: float) -> float: - """ - Convert an angle given in the region 0 to 2*pi degrees to an - angle given in the region -pi to pi degrees. - - Params: - angle_2_pi: Angle given in the region 0 to 2pi radians - - Returns - ------- - angle_pi: Angle given in the region -pi to pi radians - - """ - - return angle_2_pi if (angle_2_pi >= 0.0) & (angle_2_pi <= np.pi) else angle_2_pi - 2 * np.pi - - -def calculate_position_at_certain_time( - position: Position, - speed: float, - course: float, - delta_time: float, -) -> Position: - """ - Calculate the position of the ship at a given time based on initial position - and delta time, and constant speed and course. - - Params: - position: Initial ship position [m] - speed: Ship speed [m/s] - course: Ship course [rad] - delta_time: Delta time from now to the time new position is being calculated [minutes] - - Returns - ------- - position{north, east}: Dict, north and east position given in meters - - """ - - north = position.north + speed * delta_time * np.cos(course) - east = position.east + speed * delta_time * np.sin(course) - position_future: Position = Position( - north=north, - east=east, - ) - return position_future +"""Utility functions that are used by several other functions.""" + +import numpy as np + +from maritime_schema.types.caga import Position + + +def knot_2_m_pr_s(speed_in_knot: float) -> float: + """ + Convert ship speed in knots to meters pr second. + + Params: + speed_in_knot: Ship speed given in knots + + Returns + ------- + speed_in_m_pr_s: Ship speed in meters pr second + """ + + knot_2_m_pr_sec: float = 0.5144 + return speed_in_knot * knot_2_m_pr_sec + + +def min_2_s(time_in_min: float) -> float: + """ + Convert time given in minutes to time given in seconds. + + Params: + time_in_min: Time given in minutes + + Returns + ------- + time_in_s: Time in seconds + """ + + min_2_s_coeff: float = 60.0 + return time_in_min * min_2_s_coeff + + +def m_2_nm(length_in_m: float) -> float: + """ + Convert length given in meters to length given in nautical miles. + + Params: + length_in_m: Length given in meters + + Returns + ------- + length_in_nm: Length given in nautical miles + """ + + m_2_nm_coeff: float = 1.0 / 1852.0 + return m_2_nm_coeff * length_in_m + + +def nm_2_m(length_in_nm: float) -> float: + """ + Convert length given in nautical miles to length given in meters. + + Params: + length_in_nm: Length given in nautical miles + + Returns + ------- + length_in_m: Length given in meters + """ + + nm_2_m_factor: float = 1852.0 + return length_in_nm * nm_2_m_factor + + +def deg_2_rad(angle_in_degrees: float) -> float: + """ + Convert angle given in degrees to angle give in radians. + + Params: + angle_in_degrees: Angle given in degrees + + Returns + ------- + angle given in radians: Angle given in radians + """ + + return angle_in_degrees * np.pi / 180.0 + + +def rad_2_deg(angle_in_radians: float) -> float: + """ + Convert angle given in radians to angle give in degrees. + + Params: + angle_in_degrees: Angle given in degrees + + Returns + ------- + angle given in radians: Angle given in radians + + """ + + return angle_in_radians * 180.0 / np.pi + + +def convert_angle_minus_pi_to_pi_to_0_to_2_pi(angle_pi: float) -> float: + """ + Convert an angle given in the region -pi to pi degrees to an + angle given in the region 0 to 2pi radians. + + Params: + angle_pi: Angle given in the region -pi to pi radians + + Returns + ------- + angle_2_pi: Angle given in the region 0 to 2pi radians + + """ + + return angle_pi if angle_pi >= 0.0 else angle_pi + 2 * np.pi + + +def convert_angle_0_to_2_pi_to_minus_pi_to_pi(angle_2_pi: float) -> float: + """ + Convert an angle given in the region 0 to 2*pi degrees to an + angle given in the region -pi to pi degrees. + + Params: + angle_2_pi: Angle given in the region 0 to 2pi radians + + Returns + ------- + angle_pi: Angle given in the region -pi to pi radians + + """ + + return angle_2_pi if (angle_2_pi >= 0.0) & (angle_2_pi <= np.pi) else angle_2_pi - 2 * np.pi + + +def calculate_position_at_certain_time( + position: Position, + speed: float, + course: float, + delta_time: float, +) -> Position: + """ + Calculate the position of the ship at a given time based on initial position + and delta time, and constant speed and course. + + Params: + position: Initial ship position [m] + speed: Ship speed [m/s] + course: Ship course [rad] + delta_time: Delta time from now to the time new position is being calculated [minutes] + + Returns + ------- + position{north, east}: Dict, north and east position given in meters + + """ + + north = position.north + speed * delta_time * np.cos(course) + east = position.east + speed * delta_time * np.sin(course) + position_future: Position = Position( + north=north, + east=east, + ) + return position_future From 3a2754e2d6abbbb3a41e8b5ae97d975b3a907417 Mon Sep 17 00:00:00 2001 From: Minos Hemrich Date: Tue, 27 Feb 2024 14:12:47 +0100 Subject: [PATCH 2/8] more changes for maritime-schema --- .../traffic_situation_01.json | 2 +- .../traffic_situation_02.json | 2 +- .../traffic_situation_03.json | 2 +- .../traffic_situation_04.json | 2 +- .../traffic_situation_05.json | 2 +- .../traffic_situation_06.json | 2 +- .../traffic_situation_07.json | 2 +- .../traffic_situation_08.json | 2 +- .../traffic_situation_09.json | 2 +- .../traffic_situation_10.json | 2 +- .../traffic_situation_11.json | 2 +- .../traffic_situation_12.json | 2 +- .../traffic_situation_13.json | 2 +- .../traffic_situation_14.json | 2 +- .../traffic_situation_15.json | 2 +- .../traffic_situation_16.json | 2 +- .../traffic_situation_17.json | 2 +- .../traffic_situation_18.json | 2 +- .../traffic_situation_19.json | 2 +- .../traffic_situation_20.json | 2 +- .../traffic_situation_21.json | 2 +- .../traffic_situation_22.json | 2 +- .../traffic_situation_23.json | 2 +- .../traffic_situation_24.json | 2 +- .../traffic_situation_25.json | 2 +- .../traffic_situation_26.json | 2 +- .../traffic_situation_27.json | 2 +- .../traffic_situation_28.json | 2 +- .../traffic_situation_29.json | 2 +- .../traffic_situation_30.json | 2 +- .../traffic_situation_31.json | 2 +- .../traffic_situation_32.json | 2 +- .../traffic_situation_33.json | 2 +- .../traffic_situation_34.json | 2 +- .../traffic_situation_35.json | 2 +- .../traffic_situation_36.json | 2 +- .../traffic_situation_37.json | 2 +- .../traffic_situation_38.json | 2 +- .../traffic_situation_39.json | 2 +- .../traffic_situation_40.json | 2 +- .../traffic_situation_41.json | 2 +- .../traffic_situation_42.json | 2 +- .../traffic_situation_43.json | 2 +- .../traffic_situation_44.json | 2 +- .../traffic_situation_45.json | 2 +- .../traffic_situation_46.json | 2 +- .../traffic_situation_47.json | 2 +- .../traffic_situation_48.json | 2 +- .../traffic_situation_49.json | 2 +- .../traffic_situation_50.json | 2 +- .../traffic_situation_51.json | 2 +- .../traffic_situation_52.json | 2 +- .../traffic_situation_53.json | 2 +- .../traffic_situation_54.json | 2 +- .../traffic_situation_55.json | 2 +- pyproject.toml | 321 +++++++++--------- .../write_traffic_situation_to_file.py | 52 +-- 57 files changed, 242 insertions(+), 241 deletions(-) diff --git a/data/baseline_situations_generated/traffic_situation_01.json b/data/baseline_situations_generated/traffic_situation_01.json index 9921ffa..ac21aa1 100644 --- a/data/baseline_situations_generated/traffic_situation_01.json +++ b/data/baseline_situations_generated/traffic_situation_01.json @@ -2,7 +2,7 @@ "title": "HO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_02.json b/data/baseline_situations_generated/traffic_situation_02.json index 0bcfabd..2dfdafc 100644 --- a/data/baseline_situations_generated/traffic_situation_02.json +++ b/data/baseline_situations_generated/traffic_situation_02.json @@ -2,7 +2,7 @@ "title": "CR-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_03.json b/data/baseline_situations_generated/traffic_situation_03.json index a521161..e870c93 100644 --- a/data/baseline_situations_generated/traffic_situation_03.json +++ b/data/baseline_situations_generated/traffic_situation_03.json @@ -2,7 +2,7 @@ "title": "CR-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_04.json b/data/baseline_situations_generated/traffic_situation_04.json index 9326019..f25fce8 100644 --- a/data/baseline_situations_generated/traffic_situation_04.json +++ b/data/baseline_situations_generated/traffic_situation_04.json @@ -2,7 +2,7 @@ "title": "OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_05.json b/data/baseline_situations_generated/traffic_situation_05.json index d776166..094bc0f 100644 --- a/data/baseline_situations_generated/traffic_situation_05.json +++ b/data/baseline_situations_generated/traffic_situation_05.json @@ -2,7 +2,7 @@ "title": "OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_06.json b/data/baseline_situations_generated/traffic_situation_06.json index 7c353fb..01bce5b 100644 --- a/data/baseline_situations_generated/traffic_situation_06.json +++ b/data/baseline_situations_generated/traffic_situation_06.json @@ -2,7 +2,7 @@ "title": "HO, HO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_07.json b/data/baseline_situations_generated/traffic_situation_07.json index cf8c5be..1c67a48 100644 --- a/data/baseline_situations_generated/traffic_situation_07.json +++ b/data/baseline_situations_generated/traffic_situation_07.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_08.json b/data/baseline_situations_generated/traffic_situation_08.json index a462eee..5b13780 100644 --- a/data/baseline_situations_generated/traffic_situation_08.json +++ b/data/baseline_situations_generated/traffic_situation_08.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_09.json b/data/baseline_situations_generated/traffic_situation_09.json index a50cb61..c8aa7d3 100644 --- a/data/baseline_situations_generated/traffic_situation_09.json +++ b/data/baseline_situations_generated/traffic_situation_09.json @@ -2,7 +2,7 @@ "title": "HO, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_10.json b/data/baseline_situations_generated/traffic_situation_10.json index e418127..c476fc5 100644 --- a/data/baseline_situations_generated/traffic_situation_10.json +++ b/data/baseline_situations_generated/traffic_situation_10.json @@ -2,7 +2,7 @@ "title": "HO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_11.json b/data/baseline_situations_generated/traffic_situation_11.json index f37be17..56151f9 100644 --- a/data/baseline_situations_generated/traffic_situation_11.json +++ b/data/baseline_situations_generated/traffic_situation_11.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_12.json b/data/baseline_situations_generated/traffic_situation_12.json index bfbdb32..dce4d13 100644 --- a/data/baseline_situations_generated/traffic_situation_12.json +++ b/data/baseline_situations_generated/traffic_situation_12.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_13.json b/data/baseline_situations_generated/traffic_situation_13.json index badb8cc..2f91cf1 100644 --- a/data/baseline_situations_generated/traffic_situation_13.json +++ b/data/baseline_situations_generated/traffic_situation_13.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_14.json b/data/baseline_situations_generated/traffic_situation_14.json index b623b00..5fa7181 100644 --- a/data/baseline_situations_generated/traffic_situation_14.json +++ b/data/baseline_situations_generated/traffic_situation_14.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_15.json b/data/baseline_situations_generated/traffic_situation_15.json index 71ebd12..5681986 100644 --- a/data/baseline_situations_generated/traffic_situation_15.json +++ b/data/baseline_situations_generated/traffic_situation_15.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_16.json b/data/baseline_situations_generated/traffic_situation_16.json index c1a5fd5..a42a67b 100644 --- a/data/baseline_situations_generated/traffic_situation_16.json +++ b/data/baseline_situations_generated/traffic_situation_16.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_17.json b/data/baseline_situations_generated/traffic_situation_17.json index 607f26c..81a2934 100644 --- a/data/baseline_situations_generated/traffic_situation_17.json +++ b/data/baseline_situations_generated/traffic_situation_17.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_18.json b/data/baseline_situations_generated/traffic_situation_18.json index 625b18f..827c1ba 100644 --- a/data/baseline_situations_generated/traffic_situation_18.json +++ b/data/baseline_situations_generated/traffic_situation_18.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_19.json b/data/baseline_situations_generated/traffic_situation_19.json index 5fc1c60..768c752 100644 --- a/data/baseline_situations_generated/traffic_situation_19.json +++ b/data/baseline_situations_generated/traffic_situation_19.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_20.json b/data/baseline_situations_generated/traffic_situation_20.json index e0735ba..21c0afc 100644 --- a/data/baseline_situations_generated/traffic_situation_20.json +++ b/data/baseline_situations_generated/traffic_situation_20.json @@ -2,7 +2,7 @@ "title": "OT-SO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_21.json b/data/baseline_situations_generated/traffic_situation_21.json index 68e3292..fe80e81 100644 --- a/data/baseline_situations_generated/traffic_situation_21.json +++ b/data/baseline_situations_generated/traffic_situation_21.json @@ -2,7 +2,7 @@ "title": "HO, HO, HO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_22.json b/data/baseline_situations_generated/traffic_situation_22.json index 3a0e685..1751c65 100644 --- a/data/baseline_situations_generated/traffic_situation_22.json +++ b/data/baseline_situations_generated/traffic_situation_22.json @@ -2,7 +2,7 @@ "title": "HO, HO, CR-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_23.json b/data/baseline_situations_generated/traffic_situation_23.json index e1b5f78..d4cc8ca 100644 --- a/data/baseline_situations_generated/traffic_situation_23.json +++ b/data/baseline_situations_generated/traffic_situation_23.json @@ -2,7 +2,7 @@ "title": "HO, HO, CR-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_24.json b/data/baseline_situations_generated/traffic_situation_24.json index f8faf8e..8ba58c0 100644 --- a/data/baseline_situations_generated/traffic_situation_24.json +++ b/data/baseline_situations_generated/traffic_situation_24.json @@ -2,7 +2,7 @@ "title": "HO, HO, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_25.json b/data/baseline_situations_generated/traffic_situation_25.json index 19e535a..c994495 100644 --- a/data/baseline_situations_generated/traffic_situation_25.json +++ b/data/baseline_situations_generated/traffic_situation_25.json @@ -2,7 +2,7 @@ "title": "HO, HO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_26.json b/data/baseline_situations_generated/traffic_situation_26.json index 9859f87..5bc5b0f 100644 --- a/data/baseline_situations_generated/traffic_situation_26.json +++ b/data/baseline_situations_generated/traffic_situation_26.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, CR-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_27.json b/data/baseline_situations_generated/traffic_situation_27.json index 34d4289..91aaf4d 100644 --- a/data/baseline_situations_generated/traffic_situation_27.json +++ b/data/baseline_situations_generated/traffic_situation_27.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, CR-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_28.json b/data/baseline_situations_generated/traffic_situation_28.json index 3cdfbe5..66908f6 100644 --- a/data/baseline_situations_generated/traffic_situation_28.json +++ b/data/baseline_situations_generated/traffic_situation_28.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_29.json b/data/baseline_situations_generated/traffic_situation_29.json index af9978d..197e440 100644 --- a/data/baseline_situations_generated/traffic_situation_29.json +++ b/data/baseline_situations_generated/traffic_situation_29.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_30.json b/data/baseline_situations_generated/traffic_situation_30.json index 46ee380..946283c 100644 --- a/data/baseline_situations_generated/traffic_situation_30.json +++ b/data/baseline_situations_generated/traffic_situation_30.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO, CR-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_31.json b/data/baseline_situations_generated/traffic_situation_31.json index c68b453..f517135 100644 --- a/data/baseline_situations_generated/traffic_situation_31.json +++ b/data/baseline_situations_generated/traffic_situation_31.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_32.json b/data/baseline_situations_generated/traffic_situation_32.json index 62fa00a..876ceb6 100644 --- a/data/baseline_situations_generated/traffic_situation_32.json +++ b/data/baseline_situations_generated/traffic_situation_32.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_33.json b/data/baseline_situations_generated/traffic_situation_33.json index c8def84..3c00124 100644 --- a/data/baseline_situations_generated/traffic_situation_33.json +++ b/data/baseline_situations_generated/traffic_situation_33.json @@ -2,7 +2,7 @@ "title": "HO, OT-GW, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_34.json b/data/baseline_situations_generated/traffic_situation_34.json index 74ad4ea..566159c 100644 --- a/data/baseline_situations_generated/traffic_situation_34.json +++ b/data/baseline_situations_generated/traffic_situation_34.json @@ -2,7 +2,7 @@ "title": "HO, OT-GW, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_35.json b/data/baseline_situations_generated/traffic_situation_35.json index b894c68..260cbf7 100644 --- a/data/baseline_situations_generated/traffic_situation_35.json +++ b/data/baseline_situations_generated/traffic_situation_35.json @@ -2,7 +2,7 @@ "title": "HO, OT-SO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_36.json b/data/baseline_situations_generated/traffic_situation_36.json index 959d492..bff9170 100644 --- a/data/baseline_situations_generated/traffic_situation_36.json +++ b/data/baseline_situations_generated/traffic_situation_36.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, CR-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_37.json b/data/baseline_situations_generated/traffic_situation_37.json index 21148af..a2e11c8 100644 --- a/data/baseline_situations_generated/traffic_situation_37.json +++ b/data/baseline_situations_generated/traffic_situation_37.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, CR-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_38.json b/data/baseline_situations_generated/traffic_situation_38.json index 3e76e6d..1db787f 100644 --- a/data/baseline_situations_generated/traffic_situation_38.json +++ b/data/baseline_situations_generated/traffic_situation_38.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_39.json b/data/baseline_situations_generated/traffic_situation_39.json index 6a77d72..f98a486 100644 --- a/data/baseline_situations_generated/traffic_situation_39.json +++ b/data/baseline_situations_generated/traffic_situation_39.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_40.json b/data/baseline_situations_generated/traffic_situation_40.json index 878b499..8b0925c 100644 --- a/data/baseline_situations_generated/traffic_situation_40.json +++ b/data/baseline_situations_generated/traffic_situation_40.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO, CR-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_41.json b/data/baseline_situations_generated/traffic_situation_41.json index 96a5f5e..6a8ae39 100644 --- a/data/baseline_situations_generated/traffic_situation_41.json +++ b/data/baseline_situations_generated/traffic_situation_41.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_42.json b/data/baseline_situations_generated/traffic_situation_42.json index 3d36be2..78bb43f 100644 --- a/data/baseline_situations_generated/traffic_situation_42.json +++ b/data/baseline_situations_generated/traffic_situation_42.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_43.json b/data/baseline_situations_generated/traffic_situation_43.json index 541730b..70ffa2d 100644 --- a/data/baseline_situations_generated/traffic_situation_43.json +++ b/data/baseline_situations_generated/traffic_situation_43.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-GW, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_44.json b/data/baseline_situations_generated/traffic_situation_44.json index 46d6019..4c71405 100644 --- a/data/baseline_situations_generated/traffic_situation_44.json +++ b/data/baseline_situations_generated/traffic_situation_44.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-GW, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_45.json b/data/baseline_situations_generated/traffic_situation_45.json index 6058e5a..90d6d34 100644 --- a/data/baseline_situations_generated/traffic_situation_45.json +++ b/data/baseline_situations_generated/traffic_situation_45.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-SO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_46.json b/data/baseline_situations_generated/traffic_situation_46.json index fb527c3..a0feecf 100644 --- a/data/baseline_situations_generated/traffic_situation_46.json +++ b/data/baseline_situations_generated/traffic_situation_46.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO, CR-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_47.json b/data/baseline_situations_generated/traffic_situation_47.json index cf0cc4e..a2b48da 100644 --- a/data/baseline_situations_generated/traffic_situation_47.json +++ b/data/baseline_situations_generated/traffic_situation_47.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_48.json b/data/baseline_situations_generated/traffic_situation_48.json index cb2d710..a0bfca6 100644 --- a/data/baseline_situations_generated/traffic_situation_48.json +++ b/data/baseline_situations_generated/traffic_situation_48.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_49.json b/data/baseline_situations_generated/traffic_situation_49.json index a1d8cf0..b30306d 100644 --- a/data/baseline_situations_generated/traffic_situation_49.json +++ b/data/baseline_situations_generated/traffic_situation_49.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-GW, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_50.json b/data/baseline_situations_generated/traffic_situation_50.json index 66485da..141bf10 100644 --- a/data/baseline_situations_generated/traffic_situation_50.json +++ b/data/baseline_situations_generated/traffic_situation_50.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-GW, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_51.json b/data/baseline_situations_generated/traffic_situation_51.json index 2d0da42..e76f58b 100644 --- a/data/baseline_situations_generated/traffic_situation_51.json +++ b/data/baseline_situations_generated/traffic_situation_51.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-SO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_52.json b/data/baseline_situations_generated/traffic_situation_52.json index 4d04ff4..0e1c5e1 100644 --- a/data/baseline_situations_generated/traffic_situation_52.json +++ b/data/baseline_situations_generated/traffic_situation_52.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-GW, OT-GW", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_53.json b/data/baseline_situations_generated/traffic_situation_53.json index 2419e3b..2d5c0ce 100644 --- a/data/baseline_situations_generated/traffic_situation_53.json +++ b/data/baseline_situations_generated/traffic_situation_53.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-GW, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_54.json b/data/baseline_situations_generated/traffic_situation_54.json index c86c307..68dee1e 100644 --- a/data/baseline_situations_generated/traffic_situation_54.json +++ b/data/baseline_situations_generated/traffic_situation_54.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-SO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_55.json b/data/baseline_situations_generated/traffic_situation_55.json index 33a2863..5a2fe59 100644 --- a/data/baseline_situations_generated/traffic_situation_55.json +++ b/data/baseline_situations_generated/traffic_situation_55.json @@ -2,7 +2,7 @@ "title": "OT-SO, OT-SO, OT-SO", "ownShip": { "static": { - "id": "dfa08451-74af-498c-b1b0-3f672f0991b8", + "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/pyproject.toml b/pyproject.toml index d7d1658..6e8c697 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,160 +1,161 @@ -[tool.poetry] -name = "trafficgen" -version = "0.2.0" -description = "Automatic generation of ship traffic situations from a set of predefined situations" -authors = ["Tom Arne Pedersen "] -license = "License stuff here" # FIXME -readme = "README.md" - -[tool.poetry.dependencies] -python = "^3.9" -click = "^8.1" -click-log = "^0.4.0" -numpy = "^1.25.2" -matplotlib = "^3.7.2" -basemap = "^1.3.8" -basemap-data-hires = "^1.3.2" -global-land-mask = "^1.0.0" -folium = "^0.14.0" -pydantic = "^2.5" - -[tool.poetry.group.dev] -optional = true - -[tool.poetry.group.dev.dependencies] -black = { version = "^23.12", extras = ["jupyter"] } -ruff = "^0.1.8" # linter -pyright = "^1.1.338" -tox = "^4.11.1" -pytest = "^7.4.1" -pytest-cov = "^4.1" -sourcery = "^1.14" - -[tool.poetry.group.docs] -optional = true - -[tool.poetry.group.docs.dependencies] -sphinx = "^7.2.5" -sphinx-rtd-theme = "^1.3.0" - -# Add command line interface here like: -[tool.poetry.scripts] -trafficgen = "trafficgen.cli:main" - -[build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" - -[tool.pytest.ini_options] -testpaths = "tests" -addopts = "--strict-markers" -xfail_strict = true - -[tool.black] -line-length = 105 -target-version = ["py39", "py310", "py311", "py312"] - -[tool.ruff] -exclude = [ - ".git", - ".venv", - ".tox", - "build", - "dist", - "__pycache__", - "./docs/conf.py", -] -src = ["src"] -ignore = [ - "E501", # Line length too long - # "D100", # Missing docstring in public module - # "D101", # Missing docstring in public class - # "D102", # Missing docstring in public method - # "D103", # Missing docstring in public function - # "D104", # Missing docstring in public package - "D105", # Missing docstring in magic method - "D107", # Missing docstring in __init__ - "D202", # No blank lines allowed after function docstring - "D203", # 1 blank line required before class docstring - "D205", # 1 blank line required between summary line and description - "D212", # Multi-line docstring summary should start at the first line - "D213", # Multi-line docstring summary should start at the second line - # "N802", # Function name should be lowercase (uncomment if you want to allow Uppercase function names) - # "N803", # Argument name should be lowercase (uncomment if you want to allow Uppercase argument names) - "N806", # Variable in function should be lowercase (uncomment if you want to allow Uppercase variable names in functions) - # "N815", # Variable in class scope should not be mixedCase (uncomment if you want to allow mixedCase variable names in class scope) - # "N816", # Variable in global scope should not be mixedCase (uncomment if you want to allow mixedCase variable names in global scope) - ] -line-length = 105 -select = [ - "E", - "D", - "F", - "N", - "W", - "I", - "B", -] -target-version = "py39" - -[tool.ruff.pep8-naming] -ignore-names = [ - "test_*", - "setUp", - "tearDown", -] - -[tool.ruff.pydocstyle] -convention = "numpy" - -[tool.ruff.per-file-ignores] -"__init__.py" = ["I001"] -"./tests/*" = ["D"] - -[tool.pyright] -exclude = [ - ".git", - ".venv", - ".tox", - "build", - "dist", - "**/__pycache__", - "./docs/conf.py", - "./venv", -] -extraPaths = ["./src"] -typeCheckingMode = "basic" -useLibraryCodeForTypes = true -# Activate the following rules step by step to (step by step..) improve code quality -reportMissingParameterType = "error" -reportUnknownParameterType = "warning" -reportUnknownMemberType = "warning" -reportMissingTypeArgument = "error" -reportPropertyTypeMismatch = "error" -reportFunctionMemberAccess = "warning" -reportPrivateUsage = "warning" -reportTypeCommentUsage = "warning" -reportIncompatibleMethodOverride = "warning" -reportIncompatibleVariableOverride = "error" -reportInconsistentConstructor = "error" -reportOverlappingOverload = "warning" -reportUninitializedInstanceVariable = "warning" -reportCallInDefaultInitializer = "warning" -reportUnnecessaryIsInstance = "information" -reportUnnecessaryCast = "warning" -reportUnnecessaryComparison = "warning" -reportUnnecessaryContains = "warning" -reportUnusedCallResult = "warning" -reportUnusedExpression = "warning" -reportMatchNotExhaustive = "warning" -reportShadowedImports = "warning" -reportUntypedFunctionDecorator = "warning" -reportUntypedBaseClass = "error" -reportUntypedNamedTuple = "warning" - -# Activate the following rules only locally and temporary, i.e. for a QA session. -# (For server side CI they are considered too strict.) -# reportConstantRedefinition = "warning" -# reportUnnecessaryTypeIgnoreComment = "information" -# reportImportCycles = "warning" -# reportImplicitStringConcatenation = "warning" +[tool.poetry] +name = "trafficgen" +version = "0.2.0" +description = "Automatic generation of ship traffic situations from a set of predefined situations" +authors = ["Tom Arne Pedersen "] +license = "License stuff here" # FIXME +readme = "README.md" + +[tool.poetry.dependencies] +python = "^3.9" +click = "^8.1" +click-log = "^0.4.0" +numpy = "^1.25.2" +matplotlib = "^3.7.2" +basemap = "^1.3.8" +basemap-data-hires = "^1.3.2" +global-land-mask = "^1.0.0" +folium = "^0.14.0" +pydantic = "^2.5" +maritime-schema = { git = "https://github.com/dnv-opensource/maritime-schema.git" } + +[tool.poetry.group.dev] +optional = true + +[tool.poetry.group.dev.dependencies] +black = { version = "^23.12", extras = ["jupyter"] } +ruff = "^0.1.8" # linter +pyright = "^1.1.338" +tox = "^4.11.1" +pytest = "^7.4.1" +pytest-cov = "^4.1" +sourcery = "^1.14" + +[tool.poetry.group.docs] +optional = true + +[tool.poetry.group.docs.dependencies] +sphinx = "^7.2.5" +sphinx-rtd-theme = "^1.3.0" + +# Add command line interface here like: +[tool.poetry.scripts] +trafficgen = "trafficgen.cli:main" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.pytest.ini_options] +testpaths = "tests" +addopts = "--strict-markers" +xfail_strict = true + +[tool.black] +line-length = 105 +target-version = ["py39", "py310", "py311", "py312"] + +[tool.ruff] +exclude = [ + ".git", + ".venv", + ".tox", + "build", + "dist", + "__pycache__", + "./docs/conf.py", +] +src = ["src"] +ignore = [ + "E501", # Line length too long + # "D100", # Missing docstring in public module + # "D101", # Missing docstring in public class + # "D102", # Missing docstring in public method + # "D103", # Missing docstring in public function + # "D104", # Missing docstring in public package + "D105", # Missing docstring in magic method + "D107", # Missing docstring in __init__ + "D202", # No blank lines allowed after function docstring + "D203", # 1 blank line required before class docstring + "D205", # 1 blank line required between summary line and description + "D212", # Multi-line docstring summary should start at the first line + "D213", # Multi-line docstring summary should start at the second line + # "N802", # Function name should be lowercase (uncomment if you want to allow Uppercase function names) + # "N803", # Argument name should be lowercase (uncomment if you want to allow Uppercase argument names) + "N806", # Variable in function should be lowercase (uncomment if you want to allow Uppercase variable names in functions) + # "N815", # Variable in class scope should not be mixedCase (uncomment if you want to allow mixedCase variable names in class scope) + # "N816", # Variable in global scope should not be mixedCase (uncomment if you want to allow mixedCase variable names in global scope) + ] +line-length = 105 +select = [ + "E", + "D", + "F", + "N", + "W", + "I", + "B", +] +target-version = "py39" + +[tool.ruff.pep8-naming] +ignore-names = [ + "test_*", + "setUp", + "tearDown", +] + +[tool.ruff.pydocstyle] +convention = "numpy" + +[tool.ruff.per-file-ignores] +"__init__.py" = ["I001"] +"./tests/*" = ["D"] + +[tool.pyright] +exclude = [ + ".git", + ".venv", + ".tox", + "build", + "dist", + "**/__pycache__", + "./docs/conf.py", + "./venv", +] +extraPaths = ["./src"] +typeCheckingMode = "basic" +useLibraryCodeForTypes = true +# Activate the following rules step by step to (step by step..) improve code quality +reportMissingParameterType = "error" +reportUnknownParameterType = "warning" +reportUnknownMemberType = "warning" +reportMissingTypeArgument = "error" +reportPropertyTypeMismatch = "error" +reportFunctionMemberAccess = "warning" +reportPrivateUsage = "warning" +reportTypeCommentUsage = "warning" +reportIncompatibleMethodOverride = "warning" +reportIncompatibleVariableOverride = "error" +reportInconsistentConstructor = "error" +reportOverlappingOverload = "warning" +reportUninitializedInstanceVariable = "warning" +reportCallInDefaultInitializer = "warning" +reportUnnecessaryIsInstance = "information" +reportUnnecessaryCast = "warning" +reportUnnecessaryComparison = "warning" +reportUnnecessaryContains = "warning" +reportUnusedCallResult = "warning" +reportUnusedExpression = "warning" +reportMatchNotExhaustive = "warning" +reportShadowedImports = "warning" +reportUntypedFunctionDecorator = "warning" +reportUntypedBaseClass = "error" +reportUntypedNamedTuple = "warning" + +# Activate the following rules only locally and temporary, i.e. for a QA session. +# (For server side CI they are considered too strict.) +# reportConstantRedefinition = "warning" +# reportUnnecessaryTypeIgnoreComment = "information" +# reportImportCycles = "warning" +# reportImplicitStringConcatenation = "warning" diff --git a/src/trafficgen/write_traffic_situation_to_file.py b/src/trafficgen/write_traffic_situation_to_file.py index 955a43a..07996d3 100644 --- a/src/trafficgen/write_traffic_situation_to_file.py +++ b/src/trafficgen/write_traffic_situation_to_file.py @@ -1,26 +1,26 @@ -"""Functions to clean traffic situations data before writing it to a json file.""" - -from pathlib import Path -from typing import List - -from trafficgen.types import TrafficSituation - - -def write_traffic_situations_to_json_file(situations: List[TrafficSituation], write_folder: Path): - """ - Write traffic situations to json file. - - Params: - traffic_situations: Traffic situations to be written to file - write_folder: Folder where the json files is to be written - """ - - Path(write_folder).mkdir(parents=True, exist_ok=True) - for i, situation in enumerate(situations): - file_number: int = i + 1 - output_file_path: Path = write_folder / f"traffic_situation_{file_number:02d}.json" - data: str = situation.model_dump_json( - by_alias=True, indent=4, exclude_unset=True, exclude_defaults=False, exclude_none=True - ) - with open(output_file_path, "w", encoding="utf-8") as outfile: - _ = outfile.write(data) +"""Functions to clean traffic situations data before writing it to a json file.""" + +from pathlib import Path +from typing import List + +from maritime_schema.types.caga import TrafficSituation + + +def write_traffic_situations_to_json_file(situations: List[TrafficSituation], write_folder: Path): + """ + Write traffic situations to json file. + + Params: + traffic_situations: Traffic situations to be written to file + write_folder: Folder where the json files is to be written + """ + + Path(write_folder).mkdir(parents=True, exist_ok=True) + for i, situation in enumerate(situations): + file_number: int = i + 1 + output_file_path: Path = write_folder / f"traffic_situation_{file_number:02d}.json" + data: str = situation.model_dump_json( + by_alias=True, indent=4, exclude_unset=True, exclude_defaults=False, exclude_none=True + ) + with open(output_file_path, "w", encoding="utf-8") as outfile: + _ = outfile.write(data) From 2f6b05d54c27cb5fd312ea16796f299c15f0ab44 Mon Sep 17 00:00:00 2001 From: Minos Hemrich Date: Tue, 27 Feb 2024 14:14:29 +0100 Subject: [PATCH 3/8] re-run commands to generate situations --- data/baseline_situations_generated/traffic_situation_01.json | 2 +- data/baseline_situations_generated/traffic_situation_02.json | 2 +- data/baseline_situations_generated/traffic_situation_03.json | 2 +- data/baseline_situations_generated/traffic_situation_04.json | 2 +- data/baseline_situations_generated/traffic_situation_05.json | 2 +- data/baseline_situations_generated/traffic_situation_06.json | 2 +- data/baseline_situations_generated/traffic_situation_07.json | 2 +- data/baseline_situations_generated/traffic_situation_08.json | 2 +- data/baseline_situations_generated/traffic_situation_09.json | 2 +- data/baseline_situations_generated/traffic_situation_10.json | 2 +- data/baseline_situations_generated/traffic_situation_11.json | 2 +- data/baseline_situations_generated/traffic_situation_12.json | 2 +- data/baseline_situations_generated/traffic_situation_13.json | 2 +- data/baseline_situations_generated/traffic_situation_14.json | 2 +- data/baseline_situations_generated/traffic_situation_15.json | 2 +- data/baseline_situations_generated/traffic_situation_16.json | 2 +- data/baseline_situations_generated/traffic_situation_17.json | 2 +- data/baseline_situations_generated/traffic_situation_18.json | 2 +- data/baseline_situations_generated/traffic_situation_19.json | 2 +- data/baseline_situations_generated/traffic_situation_20.json | 2 +- data/baseline_situations_generated/traffic_situation_21.json | 2 +- data/baseline_situations_generated/traffic_situation_22.json | 2 +- data/baseline_situations_generated/traffic_situation_23.json | 2 +- data/baseline_situations_generated/traffic_situation_24.json | 2 +- data/baseline_situations_generated/traffic_situation_25.json | 2 +- data/baseline_situations_generated/traffic_situation_26.json | 2 +- data/baseline_situations_generated/traffic_situation_27.json | 2 +- data/baseline_situations_generated/traffic_situation_28.json | 2 +- data/baseline_situations_generated/traffic_situation_29.json | 2 +- data/baseline_situations_generated/traffic_situation_30.json | 2 +- data/baseline_situations_generated/traffic_situation_31.json | 2 +- data/baseline_situations_generated/traffic_situation_32.json | 2 +- data/baseline_situations_generated/traffic_situation_33.json | 2 +- data/baseline_situations_generated/traffic_situation_34.json | 2 +- data/baseline_situations_generated/traffic_situation_35.json | 2 +- data/baseline_situations_generated/traffic_situation_36.json | 2 +- data/baseline_situations_generated/traffic_situation_37.json | 2 +- data/baseline_situations_generated/traffic_situation_38.json | 2 +- data/baseline_situations_generated/traffic_situation_39.json | 2 +- data/baseline_situations_generated/traffic_situation_40.json | 2 +- data/baseline_situations_generated/traffic_situation_41.json | 2 +- data/baseline_situations_generated/traffic_situation_42.json | 2 +- data/baseline_situations_generated/traffic_situation_43.json | 2 +- data/baseline_situations_generated/traffic_situation_44.json | 2 +- data/baseline_situations_generated/traffic_situation_45.json | 2 +- data/baseline_situations_generated/traffic_situation_46.json | 2 +- data/baseline_situations_generated/traffic_situation_47.json | 2 +- data/baseline_situations_generated/traffic_situation_48.json | 2 +- data/baseline_situations_generated/traffic_situation_49.json | 2 +- data/baseline_situations_generated/traffic_situation_50.json | 2 +- data/baseline_situations_generated/traffic_situation_51.json | 2 +- data/baseline_situations_generated/traffic_situation_52.json | 2 +- data/baseline_situations_generated/traffic_situation_53.json | 2 +- data/baseline_situations_generated/traffic_situation_54.json | 2 +- data/baseline_situations_generated/traffic_situation_55.json | 2 +- 55 files changed, 55 insertions(+), 55 deletions(-) diff --git a/data/baseline_situations_generated/traffic_situation_01.json b/data/baseline_situations_generated/traffic_situation_01.json index ac21aa1..f1fe67e 100644 --- a/data/baseline_situations_generated/traffic_situation_01.json +++ b/data/baseline_situations_generated/traffic_situation_01.json @@ -2,7 +2,7 @@ "title": "HO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_02.json b/data/baseline_situations_generated/traffic_situation_02.json index 2dfdafc..2c6d947 100644 --- a/data/baseline_situations_generated/traffic_situation_02.json +++ b/data/baseline_situations_generated/traffic_situation_02.json @@ -2,7 +2,7 @@ "title": "CR-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_03.json b/data/baseline_situations_generated/traffic_situation_03.json index e870c93..8398b1d 100644 --- a/data/baseline_situations_generated/traffic_situation_03.json +++ b/data/baseline_situations_generated/traffic_situation_03.json @@ -2,7 +2,7 @@ "title": "CR-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_04.json b/data/baseline_situations_generated/traffic_situation_04.json index f25fce8..075f562 100644 --- a/data/baseline_situations_generated/traffic_situation_04.json +++ b/data/baseline_situations_generated/traffic_situation_04.json @@ -2,7 +2,7 @@ "title": "OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_05.json b/data/baseline_situations_generated/traffic_situation_05.json index 094bc0f..09da7a1 100644 --- a/data/baseline_situations_generated/traffic_situation_05.json +++ b/data/baseline_situations_generated/traffic_situation_05.json @@ -2,7 +2,7 @@ "title": "OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_06.json b/data/baseline_situations_generated/traffic_situation_06.json index 01bce5b..1f1414c 100644 --- a/data/baseline_situations_generated/traffic_situation_06.json +++ b/data/baseline_situations_generated/traffic_situation_06.json @@ -2,7 +2,7 @@ "title": "HO, HO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_07.json b/data/baseline_situations_generated/traffic_situation_07.json index 1c67a48..3c474e2 100644 --- a/data/baseline_situations_generated/traffic_situation_07.json +++ b/data/baseline_situations_generated/traffic_situation_07.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_08.json b/data/baseline_situations_generated/traffic_situation_08.json index 5b13780..c783ff4 100644 --- a/data/baseline_situations_generated/traffic_situation_08.json +++ b/data/baseline_situations_generated/traffic_situation_08.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_09.json b/data/baseline_situations_generated/traffic_situation_09.json index c8aa7d3..944b739 100644 --- a/data/baseline_situations_generated/traffic_situation_09.json +++ b/data/baseline_situations_generated/traffic_situation_09.json @@ -2,7 +2,7 @@ "title": "HO, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_10.json b/data/baseline_situations_generated/traffic_situation_10.json index c476fc5..7df78e5 100644 --- a/data/baseline_situations_generated/traffic_situation_10.json +++ b/data/baseline_situations_generated/traffic_situation_10.json @@ -2,7 +2,7 @@ "title": "HO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_11.json b/data/baseline_situations_generated/traffic_situation_11.json index 56151f9..d86967e 100644 --- a/data/baseline_situations_generated/traffic_situation_11.json +++ b/data/baseline_situations_generated/traffic_situation_11.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_12.json b/data/baseline_situations_generated/traffic_situation_12.json index dce4d13..ccf2904 100644 --- a/data/baseline_situations_generated/traffic_situation_12.json +++ b/data/baseline_situations_generated/traffic_situation_12.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_13.json b/data/baseline_situations_generated/traffic_situation_13.json index 2f91cf1..a3ed6cc 100644 --- a/data/baseline_situations_generated/traffic_situation_13.json +++ b/data/baseline_situations_generated/traffic_situation_13.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_14.json b/data/baseline_situations_generated/traffic_situation_14.json index 5fa7181..65cbafe 100644 --- a/data/baseline_situations_generated/traffic_situation_14.json +++ b/data/baseline_situations_generated/traffic_situation_14.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_15.json b/data/baseline_situations_generated/traffic_situation_15.json index 5681986..dd1243a 100644 --- a/data/baseline_situations_generated/traffic_situation_15.json +++ b/data/baseline_situations_generated/traffic_situation_15.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_16.json b/data/baseline_situations_generated/traffic_situation_16.json index a42a67b..596c655 100644 --- a/data/baseline_situations_generated/traffic_situation_16.json +++ b/data/baseline_situations_generated/traffic_situation_16.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_17.json b/data/baseline_situations_generated/traffic_situation_17.json index 81a2934..04aca42 100644 --- a/data/baseline_situations_generated/traffic_situation_17.json +++ b/data/baseline_situations_generated/traffic_situation_17.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_18.json b/data/baseline_situations_generated/traffic_situation_18.json index 827c1ba..81a68c6 100644 --- a/data/baseline_situations_generated/traffic_situation_18.json +++ b/data/baseline_situations_generated/traffic_situation_18.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_19.json b/data/baseline_situations_generated/traffic_situation_19.json index 768c752..dd30d23 100644 --- a/data/baseline_situations_generated/traffic_situation_19.json +++ b/data/baseline_situations_generated/traffic_situation_19.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_20.json b/data/baseline_situations_generated/traffic_situation_20.json index 21c0afc..e19a053 100644 --- a/data/baseline_situations_generated/traffic_situation_20.json +++ b/data/baseline_situations_generated/traffic_situation_20.json @@ -2,7 +2,7 @@ "title": "OT-SO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_21.json b/data/baseline_situations_generated/traffic_situation_21.json index fe80e81..d46593d 100644 --- a/data/baseline_situations_generated/traffic_situation_21.json +++ b/data/baseline_situations_generated/traffic_situation_21.json @@ -2,7 +2,7 @@ "title": "HO, HO, HO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_22.json b/data/baseline_situations_generated/traffic_situation_22.json index 1751c65..55cf1b1 100644 --- a/data/baseline_situations_generated/traffic_situation_22.json +++ b/data/baseline_situations_generated/traffic_situation_22.json @@ -2,7 +2,7 @@ "title": "HO, HO, CR-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_23.json b/data/baseline_situations_generated/traffic_situation_23.json index d4cc8ca..3ad6489 100644 --- a/data/baseline_situations_generated/traffic_situation_23.json +++ b/data/baseline_situations_generated/traffic_situation_23.json @@ -2,7 +2,7 @@ "title": "HO, HO, CR-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_24.json b/data/baseline_situations_generated/traffic_situation_24.json index 8ba58c0..cb88ab0 100644 --- a/data/baseline_situations_generated/traffic_situation_24.json +++ b/data/baseline_situations_generated/traffic_situation_24.json @@ -2,7 +2,7 @@ "title": "HO, HO, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_25.json b/data/baseline_situations_generated/traffic_situation_25.json index c994495..407ac77 100644 --- a/data/baseline_situations_generated/traffic_situation_25.json +++ b/data/baseline_situations_generated/traffic_situation_25.json @@ -2,7 +2,7 @@ "title": "HO, HO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_26.json b/data/baseline_situations_generated/traffic_situation_26.json index 5bc5b0f..89c6245 100644 --- a/data/baseline_situations_generated/traffic_situation_26.json +++ b/data/baseline_situations_generated/traffic_situation_26.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, CR-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_27.json b/data/baseline_situations_generated/traffic_situation_27.json index 91aaf4d..838dd10 100644 --- a/data/baseline_situations_generated/traffic_situation_27.json +++ b/data/baseline_situations_generated/traffic_situation_27.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, CR-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_28.json b/data/baseline_situations_generated/traffic_situation_28.json index 66908f6..080e8dc 100644 --- a/data/baseline_situations_generated/traffic_situation_28.json +++ b/data/baseline_situations_generated/traffic_situation_28.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_29.json b/data/baseline_situations_generated/traffic_situation_29.json index 197e440..2d85d80 100644 --- a/data/baseline_situations_generated/traffic_situation_29.json +++ b/data/baseline_situations_generated/traffic_situation_29.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_30.json b/data/baseline_situations_generated/traffic_situation_30.json index 946283c..81dba0d 100644 --- a/data/baseline_situations_generated/traffic_situation_30.json +++ b/data/baseline_situations_generated/traffic_situation_30.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO, CR-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_31.json b/data/baseline_situations_generated/traffic_situation_31.json index f517135..a69aeeb 100644 --- a/data/baseline_situations_generated/traffic_situation_31.json +++ b/data/baseline_situations_generated/traffic_situation_31.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_32.json b/data/baseline_situations_generated/traffic_situation_32.json index 876ceb6..7e0e398 100644 --- a/data/baseline_situations_generated/traffic_situation_32.json +++ b/data/baseline_situations_generated/traffic_situation_32.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_33.json b/data/baseline_situations_generated/traffic_situation_33.json index 3c00124..38ab15e 100644 --- a/data/baseline_situations_generated/traffic_situation_33.json +++ b/data/baseline_situations_generated/traffic_situation_33.json @@ -2,7 +2,7 @@ "title": "HO, OT-GW, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_34.json b/data/baseline_situations_generated/traffic_situation_34.json index 566159c..0af1c32 100644 --- a/data/baseline_situations_generated/traffic_situation_34.json +++ b/data/baseline_situations_generated/traffic_situation_34.json @@ -2,7 +2,7 @@ "title": "HO, OT-GW, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_35.json b/data/baseline_situations_generated/traffic_situation_35.json index 260cbf7..9d7ddbc 100644 --- a/data/baseline_situations_generated/traffic_situation_35.json +++ b/data/baseline_situations_generated/traffic_situation_35.json @@ -2,7 +2,7 @@ "title": "HO, OT-SO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_36.json b/data/baseline_situations_generated/traffic_situation_36.json index bff9170..81bfddb 100644 --- a/data/baseline_situations_generated/traffic_situation_36.json +++ b/data/baseline_situations_generated/traffic_situation_36.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, CR-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_37.json b/data/baseline_situations_generated/traffic_situation_37.json index a2e11c8..883d660 100644 --- a/data/baseline_situations_generated/traffic_situation_37.json +++ b/data/baseline_situations_generated/traffic_situation_37.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, CR-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_38.json b/data/baseline_situations_generated/traffic_situation_38.json index 1db787f..a163ac7 100644 --- a/data/baseline_situations_generated/traffic_situation_38.json +++ b/data/baseline_situations_generated/traffic_situation_38.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_39.json b/data/baseline_situations_generated/traffic_situation_39.json index f98a486..daa3e4b 100644 --- a/data/baseline_situations_generated/traffic_situation_39.json +++ b/data/baseline_situations_generated/traffic_situation_39.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_40.json b/data/baseline_situations_generated/traffic_situation_40.json index 8b0925c..8459a12 100644 --- a/data/baseline_situations_generated/traffic_situation_40.json +++ b/data/baseline_situations_generated/traffic_situation_40.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO, CR-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_41.json b/data/baseline_situations_generated/traffic_situation_41.json index 6a8ae39..f3fa201 100644 --- a/data/baseline_situations_generated/traffic_situation_41.json +++ b/data/baseline_situations_generated/traffic_situation_41.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_42.json b/data/baseline_situations_generated/traffic_situation_42.json index 78bb43f..37bdd42 100644 --- a/data/baseline_situations_generated/traffic_situation_42.json +++ b/data/baseline_situations_generated/traffic_situation_42.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_43.json b/data/baseline_situations_generated/traffic_situation_43.json index 70ffa2d..8274ee3 100644 --- a/data/baseline_situations_generated/traffic_situation_43.json +++ b/data/baseline_situations_generated/traffic_situation_43.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-GW, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_44.json b/data/baseline_situations_generated/traffic_situation_44.json index 4c71405..df4a457 100644 --- a/data/baseline_situations_generated/traffic_situation_44.json +++ b/data/baseline_situations_generated/traffic_situation_44.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-GW, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_45.json b/data/baseline_situations_generated/traffic_situation_45.json index 90d6d34..5c5e09e 100644 --- a/data/baseline_situations_generated/traffic_situation_45.json +++ b/data/baseline_situations_generated/traffic_situation_45.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-SO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_46.json b/data/baseline_situations_generated/traffic_situation_46.json index a0feecf..e4b6f60 100644 --- a/data/baseline_situations_generated/traffic_situation_46.json +++ b/data/baseline_situations_generated/traffic_situation_46.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO, CR-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_47.json b/data/baseline_situations_generated/traffic_situation_47.json index a2b48da..1a8f66a 100644 --- a/data/baseline_situations_generated/traffic_situation_47.json +++ b/data/baseline_situations_generated/traffic_situation_47.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_48.json b/data/baseline_situations_generated/traffic_situation_48.json index a0bfca6..5fcbcc0 100644 --- a/data/baseline_situations_generated/traffic_situation_48.json +++ b/data/baseline_situations_generated/traffic_situation_48.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_49.json b/data/baseline_situations_generated/traffic_situation_49.json index b30306d..1cc9a06 100644 --- a/data/baseline_situations_generated/traffic_situation_49.json +++ b/data/baseline_situations_generated/traffic_situation_49.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-GW, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_50.json b/data/baseline_situations_generated/traffic_situation_50.json index 141bf10..ed25874 100644 --- a/data/baseline_situations_generated/traffic_situation_50.json +++ b/data/baseline_situations_generated/traffic_situation_50.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-GW, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_51.json b/data/baseline_situations_generated/traffic_situation_51.json index e76f58b..c38ec40 100644 --- a/data/baseline_situations_generated/traffic_situation_51.json +++ b/data/baseline_situations_generated/traffic_situation_51.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-SO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_52.json b/data/baseline_situations_generated/traffic_situation_52.json index 0e1c5e1..838bfa7 100644 --- a/data/baseline_situations_generated/traffic_situation_52.json +++ b/data/baseline_situations_generated/traffic_situation_52.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-GW, OT-GW", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_53.json b/data/baseline_situations_generated/traffic_situation_53.json index 2d5c0ce..f4e02ac 100644 --- a/data/baseline_situations_generated/traffic_situation_53.json +++ b/data/baseline_situations_generated/traffic_situation_53.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-GW, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_54.json b/data/baseline_situations_generated/traffic_situation_54.json index 68dee1e..9797bf3 100644 --- a/data/baseline_situations_generated/traffic_situation_54.json +++ b/data/baseline_situations_generated/traffic_situation_54.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-SO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, diff --git a/data/baseline_situations_generated/traffic_situation_55.json b/data/baseline_situations_generated/traffic_situation_55.json index 5a2fe59..2c745d1 100644 --- a/data/baseline_situations_generated/traffic_situation_55.json +++ b/data/baseline_situations_generated/traffic_situation_55.json @@ -2,7 +2,7 @@ "title": "OT-SO, OT-SO, OT-SO", "ownShip": { "static": { - "id": "8b349a04-fb2e-49d2-9c37-5b0152416c58", + "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", "length": 122.0, "width": 20.0, "height": 8.0, From 4cd0428efe8edd71bc8d3696866f7d857551e1cb Mon Sep 17 00:00:00 2001 From: Minos Hemrich Date: Tue, 27 Feb 2024 14:17:23 +0100 Subject: [PATCH 4/8] remove types not used --- src/trafficgen/types.py | 140 ---------------------------------------- 1 file changed, 140 deletions(-) diff --git a/src/trafficgen/types.py b/src/trafficgen/types.py index d7a12e1..268480b 100644 --- a/src/trafficgen/types.py +++ b/src/trafficgen/types.py @@ -14,128 +14,6 @@ def to_camel(string: str) -> str: return words[0] + "".join(word.capitalize() for word in words[1:]) -# class Position(BaseModel): -# """Data type for a ship's position with attributes north, east in [m].""" - -# north: float = 0.0 -# east: float = 0.0 -# latitude: float = 0.0 -# longitude: float = 0.0 - - -# class Initial(BaseModel): -# """Data type for a (ship) initial data.""" - -# position: Position = Position() -# sog: float = 0.0 -# cog: float = 0.0 -# heading: float = 0.0 - - -# class Waypoint(BaseModel): -# """Data type for a (ship) waypoint.""" - -# position: Position = Position() -# sog: float = 0.0 -# heading: float = 0.0 - - -# class GeneralShipType(str, Enum): -# """Enumeration of ship types.""" - -# WING_IN_GROUND = "Wing in ground" -# FISHING = "Fishing" -# TOWING = "Towing" -# DREDGING_OR_UNDERWATER_OPS = "Dredging or underwater ops" -# DIVING_OPS = "Diving ops" -# MILITARY_OPS = "Military ops" -# SAILING = "Sailing" -# PLEASURE_CRAFT = "Pleasure Craft" -# HIGH_SPEED_CRAFT = "High speed craft" -# PILOT_VESSEL = "Pilot Vessel" -# SEARCH_AND_RESCUE_VESSEL = "Search and Rescue vessel" -# TUG = "Tug" -# PORT_TENDER = "Port Tender" -# ANTI_POLLUTION = "Anti-pollution" -# LAW_ENFORCEMENT = "Law Enforcement" -# MEDICAL_TRANSPORT = "Medical Transport" -# NONCOMBATANT_SHIP = "Noncombatant ship" -# PASSENGER = "Passenger" -# CARGO = "Cargo" -# TANKER = "Tanker" -# OTHER_TYPE = "Other Type" - - -# class AISNavStatus(str, Enum): -# """Enumeration of AIS navigation status types.""" - -# UNDER_WAY_USING_ENGINE = "Under way using engine" -# AT_ANCHOR = "At anchor" -# NOT_UNDER_COMMAND = "Not under command" -# RESTRICTED_MANOEUVERABILITY = "Restricted manoeuverability" -# CONSTRAINED_BY_HER_DRAUGHT = "Constrained by her draught" -# MOORED = "Moored" -# AGROUND = "Aground" -# ENGAGED_IN_FISHING = "Engaged in fishing" -# UNDER_WAY_SAILING = "Under way sailing" -# RESERVED_FOR_FUTURE_AMENDMENT_OF_NAVIGATIONAL_STATUS_FOR_HSC = ( -# "Reserved for future amendment of navigational status for HSC" -# ) -# RESERVED_FOR_FUTURE_AMENDMENT_OF_NAVIGATIONAL_STATUS_FOR_WIG = ( -# "Reserved for future amendment of navigational status for WIG" -# ) -# RESERVED_FOR_FUTURE_USE_1 = "Reserved for future use 1" -# RESERVED_FOR_FUTURE_USE_2 = "Reserved for future use 2" -# RESERVED_FOR_FUTURE_USE_3 = "Reserved for future use 3" -# AIS_SART_IS_ACTIVE = "AIS SART is active" -# NOT_DEFINED_DEFAULT = "Not defined (default)" - - -# class ShipStatic(BaseModel): -# """Static ship data that will not change during the scenario.""" - -# id: UUID -# length: float -# width: float -# height: float -# speed_max: float -# mmsi: Optional[int] = Field( -# None, -# ge=100000000, -# le=999999999, -# description="Maritime Mobile Service Identity (MMSI)", -# examples=[123456789], -# ) -# name: str -# ship_type: GeneralShipType - -# class Config: -# """For converting parameters written to file from snake to camel case.""" - -# alias_generator = to_camel -# populate_by_name = True - - -# class Ship(BaseModel): -# """Data type for a ship.""" - -# static: Union[ShipStatic, None] = None -# initial: Union[Initial, None] = None -# waypoints: Union[List[Waypoint], None] = None - - -# class OwnShip(Ship): -# """Data type for own ship.""" - -# pass - - -# class TargetShip(Ship): -# """Data type for a target ship.""" - -# pass - - class EncounterType(Enum): """Enumeration of encounter types.""" @@ -162,24 +40,6 @@ class Config: populate_by_name = True -# class TrafficSituation(BaseModel): -# """Data type for a traffic situation.""" - -# title: str -# input_file_name: Union[str, None] = None -# common_vector: float -# own_ship: Union[Ship, None] = None -# num_situations: Union[int, None] = None -# encounter: Union[List[Encounter], None] = None -# target_ships: Union[List[TargetShip], None] = None - -# class Config: -# """For converting parameters written to file from snake to camel case.""" - -# alias_generator = to_camel -# populate_by_name = True - - class EncounterClassification(BaseModel): """Data type for the encounter classification.""" From 2fa6e030a207d3ce42689948a9d019b6a60ac731 Mon Sep 17 00:00:00 2001 From: Minos Hemrich Date: Wed, 28 Feb 2024 13:49:50 +0100 Subject: [PATCH 5/8] fix target vessels not showing --- .../traffic_situation_01.json | 26 ++++++- .../traffic_situation_02.json | 26 ++++++- .../traffic_situation_03.json | 26 ++++++- .../traffic_situation_04.json | 26 ++++++- .../traffic_situation_05.json | 26 ++++++- .../traffic_situation_06.json | 47 ++++++++++++- .../traffic_situation_07.json | 47 ++++++++++++- .../traffic_situation_08.json | 47 ++++++++++++- .../traffic_situation_09.json | 47 ++++++++++++- .../traffic_situation_10.json | 47 ++++++++++++- .../traffic_situation_11.json | 47 ++++++++++++- .../traffic_situation_12.json | 47 ++++++++++++- .../traffic_situation_13.json | 47 ++++++++++++- .../traffic_situation_14.json | 47 ++++++++++++- .../traffic_situation_15.json | 47 ++++++++++++- .../traffic_situation_16.json | 47 ++++++++++++- .../traffic_situation_17.json | 47 ++++++++++++- .../traffic_situation_18.json | 47 ++++++++++++- .../traffic_situation_19.json | 47 ++++++++++++- .../traffic_situation_20.json | 47 ++++++++++++- .../traffic_situation_21.json | 68 ++++++++++++++++++- .../traffic_situation_22.json | 68 ++++++++++++++++++- .../traffic_situation_23.json | 68 ++++++++++++++++++- .../traffic_situation_24.json | 68 ++++++++++++++++++- .../traffic_situation_25.json | 68 ++++++++++++++++++- .../traffic_situation_26.json | 68 ++++++++++++++++++- .../traffic_situation_27.json | 68 ++++++++++++++++++- .../traffic_situation_28.json | 68 ++++++++++++++++++- .../traffic_situation_29.json | 68 ++++++++++++++++++- .../traffic_situation_30.json | 68 ++++++++++++++++++- .../traffic_situation_31.json | 68 ++++++++++++++++++- .../traffic_situation_32.json | 68 ++++++++++++++++++- .../traffic_situation_33.json | 68 ++++++++++++++++++- .../traffic_situation_34.json | 68 ++++++++++++++++++- .../traffic_situation_35.json | 68 ++++++++++++++++++- .../traffic_situation_36.json | 68 ++++++++++++++++++- .../traffic_situation_37.json | 68 ++++++++++++++++++- .../traffic_situation_38.json | 68 ++++++++++++++++++- .../traffic_situation_39.json | 68 ++++++++++++++++++- .../traffic_situation_40.json | 68 ++++++++++++++++++- .../traffic_situation_41.json | 68 ++++++++++++++++++- .../traffic_situation_42.json | 68 ++++++++++++++++++- .../traffic_situation_43.json | 68 ++++++++++++++++++- .../traffic_situation_44.json | 68 ++++++++++++++++++- .../traffic_situation_45.json | 68 ++++++++++++++++++- .../traffic_situation_46.json | 68 ++++++++++++++++++- .../traffic_situation_47.json | 68 ++++++++++++++++++- .../traffic_situation_48.json | 68 ++++++++++++++++++- .../traffic_situation_49.json | 68 ++++++++++++++++++- .../traffic_situation_50.json | 68 ++++++++++++++++++- .../traffic_situation_51.json | 68 ++++++++++++++++++- .../traffic_situation_52.json | 68 ++++++++++++++++++- .../traffic_situation_53.json | 68 ++++++++++++++++++- .../traffic_situation_54.json | 68 ++++++++++++++++++- .../traffic_situation_55.json | 68 ++++++++++++++++++- src/trafficgen/encounter.py | 2 +- src/trafficgen/ship_traffic_generator.py | 4 +- 57 files changed, 3108 insertions(+), 113 deletions(-) diff --git a/data/baseline_situations_generated/traffic_situation_01.json b/data/baseline_situations_generated/traffic_situation_01.json index f1fe67e..ad90917 100644 --- a/data/baseline_situations_generated/traffic_situation_01.json +++ b/data/baseline_situations_generated/traffic_situation_01.json @@ -2,7 +2,7 @@ "title": "HO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,29 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "ba02a5fa-f39d-4fe4-8d0a-af87ab417e7b", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02721306, + "longitude": 0.18320382, + "north": 10195.0, + "east": 356.0 + }, + "sog": 6.2, + "cog": 3.205 + } + } + ], "input_file_name": "baseline_situation_01_1_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_02.json b/data/baseline_situations_generated/traffic_situation_02.json index 2c6d947..6aa7149 100644 --- a/data/baseline_situations_generated/traffic_situation_02.json +++ b/data/baseline_situations_generated/traffic_situation_02.json @@ -2,7 +2,7 @@ "title": "CR-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,29 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "f4088510-a8b5-4070-8269-31878443d6bd", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02652036, + "longitude": 0.18373041, + "north": 5774.0, + "east": 2102.0 + }, + "sog": 4.1, + "cog": 3.934 + } + } + ], "input_file_name": "baseline_situation_02_1_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_03.json b/data/baseline_situations_generated/traffic_situation_03.json index 8398b1d..2af465f 100644 --- a/data/baseline_situations_generated/traffic_situation_03.json +++ b/data/baseline_situations_generated/traffic_situation_03.json @@ -2,7 +2,7 @@ "title": "CR-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,29 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "cfb5c414-7aeb-442f-b581-16c428d898fe", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02647163, + "longitude": 0.1821452, + "north": 5463.0, + "east": -3154.0 + }, + "sog": 3.1, + "cog": 1.64 + } + } + ], "input_file_name": "baseline_situation_03_1_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_04.json b/data/baseline_situations_generated/traffic_situation_04.json index 075f562..aa46984 100644 --- a/data/baseline_situations_generated/traffic_situation_04.json +++ b/data/baseline_situations_generated/traffic_situation_04.json @@ -2,7 +2,7 @@ "title": "OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,29 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "d9bb9671-9833-4e36-9674-f00cb4dfdec8", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02596287, + "longitude": 0.1832756, + "north": 2216.0, + "east": 594.0 + }, + "sog": 2.6, + "cog": 6.008 + } + } + ], "input_file_name": "baseline_situation_04_1_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_05.json b/data/baseline_situations_generated/traffic_situation_05.json index 09da7a1..f0b63d8 100644 --- a/data/baseline_situations_generated/traffic_situation_05.json +++ b/data/baseline_situations_generated/traffic_situation_05.json @@ -2,7 +2,7 @@ "title": "OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,29 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "5b67964d-45e9-416b-bade-49615b27065d", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02507619, + "longitude": 0.18281807, + "north": -3443.0, + "east": -923.0 + }, + "sog": 8.2, + "cog": 0.099 + } + } + ], "input_file_name": "baseline_situation_05_1_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_06.json b/data/baseline_situations_generated/traffic_situation_06.json index 1f1414c..928e93c 100644 --- a/data/baseline_situations_generated/traffic_situation_06.json +++ b/data/baseline_situations_generated/traffic_situation_06.json @@ -2,7 +2,7 @@ "title": "HO, HO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "e89ba25c-e93d-45c1-a6ae-9ebe2a723a40", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02662252, + "longitude": 0.18306267, + "north": 6426.0, + "east": -112.0 + }, + "sog": 4.6, + "cog": 3.105 + } + }, + { + "static": { + "id": "d27bf0f0-6676-40d1-a183-7d5e2f67cc04", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.0270357, + "longitude": 0.18328766, + "north": 9063.0, + "east": 634.0 + }, + "sog": 5.7, + "cog": 3.274 + } + } + ], "input_file_name": "baseline_situation_06_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_07.json b/data/baseline_situations_generated/traffic_situation_07.json index 3c474e2..2876875 100644 --- a/data/baseline_situations_generated/traffic_situation_07.json +++ b/data/baseline_situations_generated/traffic_situation_07.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "fe663062-2b70-4070-b5d4-1ef8d80621a9", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02792614, + "longitude": 0.1827855, + "north": 14746.0, + "east": -1031.0 + }, + "sog": 7.2, + "cog": 3.022 + } + }, + { + "static": { + "id": "f7c9d51d-8a31-4f76-b2b5-976a2237af3f", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02614275, + "longitude": 0.18383356, + "north": 3364.0, + "east": 2444.0 + }, + "sog": 4.1, + "cog": 4.598 + } + } + ], "input_file_name": "baseline_situation_07_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_08.json b/data/baseline_situations_generated/traffic_situation_08.json index c783ff4..c2b5fd2 100644 --- a/data/baseline_situations_generated/traffic_situation_08.json +++ b/data/baseline_situations_generated/traffic_situation_08.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "258bb5ab-e211-492e-88a6-716a3298b228", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02755981, + "longitude": 0.18335794, + "north": 12408.0, + "east": 867.0 + }, + "sog": 8.7, + "cog": 3.253 + } + }, + { + "static": { + "id": "82761c8b-f2e9-4be8-9ae0-382505431915", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02630084, + "longitude": 0.18213827, + "north": 4373.0, + "east": -3177.0 + }, + "sog": 4.1, + "cog": 1.685 + } + } + ], "input_file_name": "baseline_situation_08_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_09.json b/data/baseline_situations_generated/traffic_situation_09.json index 944b739..5ef3f89 100644 --- a/data/baseline_situations_generated/traffic_situation_09.json +++ b/data/baseline_situations_generated/traffic_situation_09.json @@ -2,7 +2,7 @@ "title": "HO, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "8ff1a086-25cd-4c14-9570-fb59677a5052", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02693886, + "longitude": 0.18300748, + "north": 8445.0, + "east": -295.0 + }, + "sog": 5.7, + "cog": 3.075 + } + }, + { + "static": { + "id": "ae3942b3-9085-4541-8dd0-9354de7f374f", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02600377, + "longitude": 0.18322825, + "north": 2477.0, + "east": 437.0 + }, + "sog": 2.6, + "cog": 6.107 + } + } + ], "input_file_name": "baseline_situation_09_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_10.json b/data/baseline_situations_generated/traffic_situation_10.json index 7df78e5..fd7e662 100644 --- a/data/baseline_situations_generated/traffic_situation_10.json +++ b/data/baseline_situations_generated/traffic_situation_10.json @@ -2,7 +2,7 @@ "title": "HO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "f5ac7446-10f3-400d-8850-520b15314a39", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02725223, + "longitude": 0.18309645, + "north": 10445.0, + "east": 0.0 + }, + "sog": 5.1, + "cog": 3.142 + } + }, + { + "static": { + "id": "403686b9-8324-475f-a2bf-88edb393ea29", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02495931, + "longitude": 0.18318482, + "north": -4189.0, + "east": 293.0 + }, + "sog": 9.8, + "cog": 6.25 + } + } + ], "input_file_name": "baseline_situation_10_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_11.json b/data/baseline_situations_generated/traffic_situation_11.json index d86967e..14db6e2 100644 --- a/data/baseline_situations_generated/traffic_situation_11.json +++ b/data/baseline_situations_generated/traffic_situation_11.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "5315621e-7536-45f9-9e57-b953a53dfa15", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02755182, + "longitude": 0.18430768, + "north": 12357.0, + "east": 4016.0 + }, + "sog": 6.7, + "cog": 3.695 + } + }, + { + "static": { + "id": "a1527d13-526b-4748-b4bd-896ab65a9c29", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02549595, + "longitude": 0.184181, + "north": -764.0, + "east": 3596.0 + }, + "sog": 7.2, + "cog": 5.695 + } + } + ], "input_file_name": "baseline_situation_11_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_12.json b/data/baseline_situations_generated/traffic_situation_12.json index ccf2904..4d5924b 100644 --- a/data/baseline_situations_generated/traffic_situation_12.json +++ b/data/baseline_situations_generated/traffic_situation_12.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "b1985bdc-c30d-4af6-ad82-affcf9c6ad61", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02670916, + "longitude": 0.18520132, + "north": 6979.0, + "east": 6979.0 + }, + "sog": 6.2, + "cog": 4.553 + } + }, + { + "static": { + "id": "5eef6a50-f273-4713-9884-6a80d584ab90", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02553168, + "longitude": 0.18207614, + "north": -536.0, + "east": -3383.0 + }, + "sog": 6.7, + "cog": 0.554 + } + } + ], "input_file_name": "baseline_situation_12_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_13.json b/data/baseline_situations_generated/traffic_situation_13.json index a3ed6cc..d23c30b 100644 --- a/data/baseline_situations_generated/traffic_situation_13.json +++ b/data/baseline_situations_generated/traffic_situation_13.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "47914e9e-bd1d-4a32-bd1b-e849ee595106", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02636477, + "longitude": 0.1855937, + "north": 4781.0, + "east": 8280.0 + }, + "sog": 7.7, + "cog": 4.805 + } + }, + { + "static": { + "id": "5ff65514-29a1-410d-8ae5-eac5a7d45c69", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02586338, + "longitude": 0.18343032, + "north": 1581.0, + "east": 1107.0 + }, + "sog": 3.6, + "cog": 5.934 + } + } + ], "input_file_name": "baseline_situation_13_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_14.json b/data/baseline_situations_generated/traffic_situation_14.json index 65cbafe..410d3a7 100644 --- a/data/baseline_situations_generated/traffic_situation_14.json +++ b/data/baseline_situations_generated/traffic_situation_14.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "31c31b79-3293-4f69-bef0-ac5e365416ad", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02570325, + "longitude": 0.18405282, + "north": 559.0, + "east": 3171.0 + }, + "sog": 6.2, + "cog": 5.493 + } + }, + { + "static": { + "id": "a1a3126f-6d2a-4c80-bce7-e86e80eafcad", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.0251442, + "longitude": 0.18257257, + "north": -3009.0, + "east": -1737.0 + }, + "sog": 8.7, + "cog": 0.224 + } + } + ], "input_file_name": "baseline_situation_14_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_15.json b/data/baseline_situations_generated/traffic_situation_15.json index dd1243a..d8b5c70 100644 --- a/data/baseline_situations_generated/traffic_situation_15.json +++ b/data/baseline_situations_generated/traffic_situation_15.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "524b66bb-e108-4f07-8989-66ed2e7eeee3", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02570199, + "longitude": 0.18119667, + "north": 551.0, + "east": -6299.0 + }, + "sog": 7.7, + "cog": 0.931 + } + }, + { + "static": { + "id": "2dbbfbe8-ec42-4ffe-b056-babb997ccf6d", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.0254795, + "longitude": 0.18161047, + "north": -869.0, + "east": -4927.0 + }, + "sog": 8.2, + "cog": 0.731 + } + } + ], "input_file_name": "baseline_situation_15_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_16.json b/data/baseline_situations_generated/traffic_situation_16.json index 596c655..a7b9f19 100644 --- a/data/baseline_situations_generated/traffic_situation_16.json +++ b/data/baseline_situations_generated/traffic_situation_16.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "24938777-0bb3-4a13-9157-3e5aa80fad98", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02549235, + "longitude": 0.18221035, + "north": -787.0, + "east": -2938.0 + }, + "sog": 6.7, + "cog": 0.474 + } + }, + { + "static": { + "id": "ad70d1dc-650f-4b97-8a9f-f72a2038fa34", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02518979, + "longitude": 0.18287689, + "north": -2718.0, + "east": -728.0 + }, + "sog": 8.2, + "cog": 0.099 + } + } + ], "input_file_name": "baseline_situation_16_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_17.json b/data/baseline_situations_generated/traffic_situation_17.json index 04aca42..1253064 100644 --- a/data/baseline_situations_generated/traffic_situation_17.json +++ b/data/baseline_situations_generated/traffic_situation_17.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "06ac6cca-7afd-4cd6-baff-d38944454298", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02554029, + "longitude": 0.18255478, + "north": -481.0, + "east": -1796.0 + }, + "sog": 6.2, + "cog": 0.38 + } + }, + { + "static": { + "id": "38278ede-a0a3-48e0-8574-335af5d6cd83", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02571798, + "longitude": 0.18321015, + "north": 653.0, + "east": 377.0 + }, + "sog": 4.1, + "cog": 6.129 + } + } + ], "input_file_name": "baseline_situation_17_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_18.json b/data/baseline_situations_generated/traffic_situation_18.json index 81a68c6..be0f184 100644 --- a/data/baseline_situations_generated/traffic_situation_18.json +++ b/data/baseline_situations_generated/traffic_situation_18.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "824c1698-f425-40dc-90b7-b80861f6e616", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02583627, + "longitude": 0.18321015, + "north": 1408.0, + "east": 377.0 + }, + "sog": 3.6, + "cog": 6.167 + } + }, + { + "static": { + "id": "41cd9f7e-7960-4117-97a2-960abced0120", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02601176, + "longitude": 0.18345204, + "north": 2528.0, + "east": 1179.0 + }, + "sog": 3.1, + "cog": 5.943 + } + } + ], "input_file_name": "baseline_situation_18_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_19.json b/data/baseline_situations_generated/traffic_situation_19.json index dd30d23..eda45af 100644 --- a/data/baseline_situations_generated/traffic_situation_19.json +++ b/data/baseline_situations_generated/traffic_situation_19.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "1d84d628-1315-4f47-a4fe-34d66cd722ec", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02601787, + "longitude": 0.18337845, + "north": 2567.0, + "east": 935.0 + }, + "sog": 3.1, + "cog": 6.029 + } + }, + { + "static": { + "id": "49531b90-e22d-4ef7-8bf5-1b71a521f2d6", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02521345, + "longitude": 0.18316431, + "north": -2567.0, + "east": 225.0 + }, + "sog": 8.2, + "cog": 6.251 + } + } + ], "input_file_name": "baseline_situation_19_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_20.json b/data/baseline_situations_generated/traffic_situation_20.json index e19a053..0b20d63 100644 --- a/data/baseline_situations_generated/traffic_situation_20.json +++ b/data/baseline_situations_generated/traffic_situation_20.json @@ -2,7 +2,7 @@ "title": "OT-SO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,50 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "a9c6930b-a854-49fc-bd25-5138175000b9", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02504548, + "longitude": 0.18349577, + "north": -3639.0, + "east": 1324.0 + }, + "sog": 9.3, + "cog": 6.124 + } + }, + { + "static": { + "id": "72882b55-5546-467b-af89-643f54846691", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02530433, + "longitude": 0.18320201, + "north": -1987.0, + "east": 350.0 + }, + "sog": 7.7, + "cog": 6.225 + } + } + ], "input_file_name": "baseline_situation_20_2_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_21.json b/data/baseline_situations_generated/traffic_situation_21.json index d46593d..bb434df 100644 --- a/data/baseline_situations_generated/traffic_situation_21.json +++ b/data/baseline_situations_generated/traffic_situation_21.json @@ -2,7 +2,7 @@ "title": "HO, HO, HO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "c2b7211f-e1ae-4ab7-90cb-2bd8ffdb28e7", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02763893, + "longitude": 0.18296043, + "north": 12913.0, + "east": -451.0 + }, + "sog": 6.2, + "cog": 3.078 + } + }, + { + "static": { + "id": "cc8ec473-3c2d-4f57-a896-4cd612044b02", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02715587, + "longitude": 0.18309645, + "north": 9830.0, + "east": 0.0 + }, + "sog": 5.1, + "cog": 3.142 + } + }, + { + "static": { + "id": "16c6647a-b82c-48e4-99d6-703ca164e2e8", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02729877, + "longitude": 0.18332295, + "north": 10742.0, + "east": 751.0 + }, + "sog": 7.7, + "cog": 3.258 + } + } + ], "input_file_name": "baseline_situation_21_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_22.json b/data/baseline_situations_generated/traffic_situation_22.json index 55cf1b1..fa78a15 100644 --- a/data/baseline_situations_generated/traffic_situation_22.json +++ b/data/baseline_situations_generated/traffic_situation_22.json @@ -2,7 +2,7 @@ "title": "HO, HO, CR-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "dac3be99-f8a5-45cc-bac8-7cf162e08de8", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02781473, + "longitude": 0.18287447, + "north": 14035.0, + "east": -736.0 + }, + "sog": 7.2, + "cog": 3.052 + } + }, + { + "static": { + "id": "8a57f412-fe7a-49e6-80f3-93184349a97b", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02753865, + "longitude": 0.18322584, + "north": 12273.0, + "east": 429.0 + }, + "sog": 5.1, + "cog": 3.212 + } + }, + { + "static": { + "id": "009827ba-b1bb-4be0-8d88-f4c9ceb7f91e", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02650344, + "longitude": 0.18443163, + "north": 5666.0, + "east": 4427.0 + }, + "sog": 4.1, + "cog": 4.686 + } + } + ], "input_file_name": "baseline_situation_22_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_23.json b/data/baseline_situations_generated/traffic_situation_23.json index 3ad6489..3650e49 100644 --- a/data/baseline_situations_generated/traffic_situation_23.json +++ b/data/baseline_situations_generated/traffic_situation_23.json @@ -2,7 +2,7 @@ "title": "HO, HO, CR-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "66900f12-0a0b-48b4-9460-f48911fb0e8d", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02753474, + "longitude": 0.18341977, + "north": 12248.0, + "east": 1072.0 + }, + "sog": 7.7, + "cog": 3.287 + } + }, + { + "static": { + "id": "879b6c74-5415-4755-84b5-37f030f9b8f3", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02751437, + "longitude": 0.18322403, + "north": 12118.0, + "east": 423.0 + }, + "sog": 9.3, + "cog": 3.196 + } + }, + { + "static": { + "id": "7218b8e4-7adc-4f11-b014-d2bfe2a8cb65", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02637464, + "longitude": 0.18199561, + "north": 4844.0, + "east": -3650.0 + }, + "sog": 3.6, + "cog": 1.462 + } + } + ], "input_file_name": "baseline_situation_23_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_24.json b/data/baseline_situations_generated/traffic_situation_24.json index cb88ab0..d091379 100644 --- a/data/baseline_situations_generated/traffic_situation_24.json +++ b/data/baseline_situations_generated/traffic_situation_24.json @@ -2,7 +2,7 @@ "title": "HO, HO, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "efd7eb84-6998-4a56-a1f5-2153b7df446f", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.0273171, + "longitude": 0.18292454, + "north": 10859.0, + "east": -570.0 + }, + "sog": 6.2, + "cog": 3.046 + } + }, + { + "static": { + "id": "18367da3-c192-4162-a8c6-fc54adf44def", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02751437, + "longitude": 0.18322403, + "north": 12118.0, + "east": 423.0 + }, + "sog": 9.3, + "cog": 3.196 + } + }, + { + "static": { + "id": "61986750-b4c3-4d16-a4ce-65cd50e9bc4f", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02609794, + "longitude": 0.18322704, + "north": 3078.0, + "east": 433.0 + }, + "sog": 2.6, + "cog": 6.144 + } + } + ], "input_file_name": "baseline_situation_24_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_25.json b/data/baseline_situations_generated/traffic_situation_25.json index 407ac77..ed35abb 100644 --- a/data/baseline_situations_generated/traffic_situation_25.json +++ b/data/baseline_situations_generated/traffic_situation_25.json @@ -2,7 +2,7 @@ "title": "HO, HO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "5cfd50cf-b010-4f67-8776-72d56c26c9af", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02781896, + "longitude": 0.18279998, + "north": 14062.0, + "east": -983.0 + }, + "sog": 8.7, + "cog": 3.031 + } + }, + { + "static": { + "id": "a2e5c6f9-4807-48a5-8030-f96da519abd3", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02728529, + "longitude": 0.18309645, + "north": 10656.0, + "east": 0.0 + }, + "sog": 6.7, + "cog": 3.142 + } + }, + { + "static": { + "id": "e84ddff1-cf6e-46b9-84e5-9ef0f4f48e64", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02510252, + "longitude": 0.18341735, + "north": -3275.0, + "east": 1064.0 + }, + "sog": 9.8, + "cog": 6.132 + } + } + ], "input_file_name": "baseline_situation_25_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_26.json b/data/baseline_situations_generated/traffic_situation_26.json index 89c6245..1993ef2 100644 --- a/data/baseline_situations_generated/traffic_situation_26.json +++ b/data/baseline_situations_generated/traffic_situation_26.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, CR-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "64f87b99-e0ac-4f05-a6d7-cace779c5215", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02802438, + "longitude": 0.18333954, + "north": 15373.0, + "east": 806.0 + }, + "sog": 7.7, + "cog": 3.229 + } + }, + { + "static": { + "id": "9da284c8-62f8-427c-99d1-66316314a84d", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02738965, + "longitude": 0.18433934, + "north": 11322.0, + "east": 4121.0 + }, + "sog": 7.2, + "cog": 3.737 + } + }, + { + "static": { + "id": "afc4d793-b52c-4649-9e62-454c89123c81", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02555064, + "longitude": 0.18368547, + "north": -415.0, + "east": 1953.0 + }, + "sog": 6.2, + "cog": 5.867 + } + } + ], "input_file_name": "baseline_situation_26_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_27.json b/data/baseline_situations_generated/traffic_situation_27.json index 838dd10..012503d 100644 --- a/data/baseline_situations_generated/traffic_situation_27.json +++ b/data/baseline_situations_generated/traffic_situation_27.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, CR-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "11699ed5-9295-4142-b78e-786c16dcfe94", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.0279335, + "longitude": 0.18294082, + "north": 14793.0, + "east": -516.0 + }, + "sog": 7.2, + "cog": 3.082 + } + }, + { + "static": { + "id": "8195560f-b14d-4f3b-8d52-2bcccf67e2b6", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.026594, + "longitude": 0.18497964, + "north": 6244.0, + "east": 6244.0 + }, + "sog": 6.2, + "cog": 4.553 + } + }, + { + "static": { + "id": "aa0272d1-5833-47e1-8263-2f961e69f127", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02552071, + "longitude": 0.18194313, + "north": -606.0, + "east": -3824.0 + }, + "sog": 7.2, + "cog": 0.631 + } + } + ], "input_file_name": "baseline_situation_27_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_28.json b/data/baseline_situations_generated/traffic_situation_28.json index 080e8dc..1808068 100644 --- a/data/baseline_situations_generated/traffic_situation_28.json +++ b/data/baseline_situations_generated/traffic_situation_28.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "9d03356e-62c3-4dbd-83c8-949e41ce8ee5", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.0277425, + "longitude": 0.18288171, + "north": 13574.0, + "east": -712.0 + }, + "sog": 6.2, + "cog": 3.046 + } + }, + { + "static": { + "id": "92839e24-81eb-4d8c-bd19-4bdda3a28aac", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02642133, + "longitude": 0.1853111, + "north": 5142.0, + "east": 7343.0 + }, + "sog": 7.2, + "cog": 4.726 + } + }, + { + "static": { + "id": "a5412698-6b0a-4173-bed6-ff95da2ebb87", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02594752, + "longitude": 0.18346531, + "north": 2118.0, + "east": 1223.0 + }, + "sog": 3.1, + "cog": 5.829 + } + } + ], "input_file_name": "baseline_situation_28_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_29.json b/data/baseline_situations_generated/traffic_situation_29.json index 2d85d80..dcd60b7 100644 --- a/data/baseline_situations_generated/traffic_situation_29.json +++ b/data/baseline_situations_generated/traffic_situation_29.json @@ -2,7 +2,7 @@ "title": "HO, CR-GW, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "d62997b5-0802-459f-a34f-1700bb2ce243", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02726336, + "longitude": 0.18304096, + "north": 10516.0, + "east": -184.0 + }, + "sog": 4.6, + "cog": 3.105 + } + }, + { + "static": { + "id": "c627f19e-f66f-490f-8422-8b39dcc6896d", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02576169, + "longitude": 0.18469041, + "north": 932.0, + "east": 5285.0 + }, + "sog": 6.2, + "cog": 5.493 + } + }, + { + "static": { + "id": "9bebae61-c7a0-4a9f-8d99-df81dfc97581", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.0251442, + "longitude": 0.18257257, + "north": -3009.0, + "east": -1737.0 + }, + "sog": 8.7, + "cog": 0.224 + } + } + ], "input_file_name": "baseline_situation_29_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_30.json b/data/baseline_situations_generated/traffic_situation_30.json index 81dba0d..3d46fab 100644 --- a/data/baseline_situations_generated/traffic_situation_30.json +++ b/data/baseline_situations_generated/traffic_situation_30.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO, CR-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "7215a315-e853-4754-b0fe-70988212b459", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02709195, + "longitude": 0.18314621, + "north": 9422.0, + "east": 165.0 + }, + "sog": 4.1, + "cog": 3.181 + } + }, + { + "static": { + "id": "6d2eb34c-d1ff-48ae-a719-1d2b1146bde3", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02569181, + "longitude": 0.18142016, + "north": 486.0, + "east": -5558.0 + }, + "sog": 7.7, + "cog": 0.931 + } + }, + { + "static": { + "id": "fb108786-4936-4d7c-b8bf-ee87141ce4cb", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02543422, + "longitude": 0.18111524, + "north": -1158.0, + "east": -6569.0 + }, + "sog": 8.2, + "cog": 0.731 + } + } + ], "input_file_name": "baseline_situation_30_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_31.json b/data/baseline_situations_generated/traffic_situation_31.json index a69aeeb..cc52813 100644 --- a/data/baseline_situations_generated/traffic_situation_31.json +++ b/data/baseline_situations_generated/traffic_situation_31.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "ef2149e8-771f-44f9-8b8a-ca1d37311650", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02716496, + "longitude": 0.18309645, + "north": 9888.0, + "east": 0.0 + }, + "sog": 3.1, + "cog": 3.142 + } + }, + { + "static": { + "id": "2e45f6fe-2216-4647-bf87-927b1f6c6460", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02554108, + "longitude": 0.18228213, + "north": -476.0, + "east": -2700.0 + }, + "sog": 6.2, + "cog": 0.441 + } + }, + { + "static": { + "id": "9da23dc2-9c0c-42a3-b85f-3b28595c404f", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02513432, + "longitude": 0.18266456, + "north": -3072.0, + "east": -1432.0 + }, + "sog": 8.7, + "cog": 0.184 + } + } + ], "input_file_name": "baseline_situation_31_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_32.json b/data/baseline_situations_generated/traffic_situation_32.json index 7e0e398..175703d 100644 --- a/data/baseline_situations_generated/traffic_situation_32.json +++ b/data/baseline_situations_generated/traffic_situation_32.json @@ -2,7 +2,7 @@ "title": "HO, CR-SO, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "51e75c70-f4dc-4c52-8ec3-fc59fd33340b", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02707032, + "longitude": 0.18304759, + "north": 9284.0, + "east": -162.0 + }, + "sog": 2.6, + "cog": 3.09 + } + }, + { + "static": { + "id": "0bdecf25-50e6-4f00-82ec-52be5f966b80", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02547652, + "longitude": 0.18236055, + "north": -888.0, + "east": -2440.0 + }, + "sog": 6.7, + "cog": 0.417 + } + }, + { + "static": { + "id": "e8331cef-e1e8-4f7d-a98b-7ab45a0b7377", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02579381, + "longitude": 0.18333652, + "north": 1137.0, + "east": 796.0 + }, + "sog": 4.1, + "cog": 6.092 + } + } + ], "input_file_name": "baseline_situation_32_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_33.json b/data/baseline_situations_generated/traffic_situation_33.json index 38ab15e..644576d 100644 --- a/data/baseline_situations_generated/traffic_situation_33.json +++ b/data/baseline_situations_generated/traffic_situation_33.json @@ -2,7 +2,7 @@ "title": "HO, OT-GW, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "e9948664-252b-4934-b295-f37a5ddbebbf", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02734358, + "longitude": 0.18327077, + "north": 11028.0, + "east": 578.0 + }, + "sog": 5.7, + "cog": 3.241 + } + }, + { + "static": { + "id": "7f35ceda-4613-48ab-8a63-11aeca39d91e", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02613053, + "longitude": 0.18345716, + "north": 3286.0, + "east": 1196.0 + }, + "sog": 2.6, + "cog": 5.89 + } + }, + { + "static": { + "id": "ceef119b-c35d-46e5-87af-402b0097a3da", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02588986, + "longitude": 0.18334256, + "north": 1750.0, + "east": 816.0 + }, + "sog": 3.6, + "cog": 6.072 + } + } + ], "input_file_name": "baseline_situation_33_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_34.json b/data/baseline_situations_generated/traffic_situation_34.json index 0af1c32..0217cfd 100644 --- a/data/baseline_situations_generated/traffic_situation_34.json +++ b/data/baseline_situations_generated/traffic_situation_34.json @@ -2,7 +2,7 @@ "title": "HO, OT-GW, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "a995e0bf-5e8a-482b-b50f-2764ecc6127d", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.0275034, + "longitude": 0.18290584, + "north": 12048.0, + "east": -632.0 + }, + "sog": 6.7, + "cog": 3.049 + } + }, + { + "static": { + "id": "8151ce0e-82a7-4d38-bd41-c868347abf63", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02593749, + "longitude": 0.18332205, + "north": 2054.0, + "east": 748.0 + }, + "sog": 3.1, + "cog": 6.029 + } + }, + { + "static": { + "id": "c46047bc-d76c-4bcf-9aa5-577d0c56601b", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02521345, + "longitude": 0.18316431, + "north": -2567.0, + "east": 225.0 + }, + "sog": 8.2, + "cog": 6.251 + } + } + ], "input_file_name": "baseline_situation_34_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_35.json b/data/baseline_situations_generated/traffic_situation_35.json index 9d7ddbc..42ddda3 100644 --- a/data/baseline_situations_generated/traffic_situation_35.json +++ b/data/baseline_situations_generated/traffic_situation_35.json @@ -2,7 +2,7 @@ "title": "HO, OT-SO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "67c93246-6815-4e9c-829f-f6e34dc79e4d", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02717232, + "longitude": 0.18320111, + "north": 9935.0, + "east": 347.0 + }, + "sog": 6.7, + "cog": 3.203 + } + }, + { + "static": { + "id": "4e57c5de-f247-486b-85ee-fb83aa1b0ebc", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02494803, + "longitude": 0.18369573, + "north": -4261.0, + "east": 1987.0 + }, + "sog": 9.8, + "cog": 6.07 + } + }, + { + "static": { + "id": "2b8acc1a-2a93-434b-ae44-efae8ab46257", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02518462, + "longitude": 0.18324273, + "north": -2751.0, + "east": 485.0 + }, + "sog": 7.7, + "cog": 6.225 + } + } + ], "input_file_name": "baseline_situation_35_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_36.json b/data/baseline_situations_generated/traffic_situation_36.json index 81bfddb..99cd227 100644 --- a/data/baseline_situations_generated/traffic_situation_36.json +++ b/data/baseline_situations_generated/traffic_situation_36.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, CR-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "4de3b7b1-428b-4141-a04d-6d06b5c1ec0e", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02721103, + "longitude": 0.18391921, + "north": 10182.0, + "east": 2728.0 + }, + "sog": 7.7, + "cog": 3.577 + } + }, + { + "static": { + "id": "176e90c9-5b9c-46ef-a37f-6b80192d6edc", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02702676, + "longitude": 0.18499864, + "north": 9006.0, + "east": 6307.0 + }, + "sog": 7.2, + "cog": 4.174 + } + }, + { + "static": { + "id": "278b908a-dbd9-400b-a53a-e8f63a76ad3a", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02555565, + "longitude": 0.18364023, + "north": -383.0, + "east": 1803.0 + }, + "sog": 6.2, + "cog": 5.867 + } + } + ], "input_file_name": "baseline_situation_36_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_37.json b/data/baseline_situations_generated/traffic_situation_37.json index 883d660..31cdab5 100644 --- a/data/baseline_situations_generated/traffic_situation_37.json +++ b/data/baseline_situations_generated/traffic_situation_37.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, CR-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "a65c27bb-f4bc-468d-8d41-abe771e4cc17", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.0257056, + "longitude": 0.18507314, + "north": 574.0, + "east": 6554.0 + }, + "sog": 8.2, + "cog": 5.299 + } + }, + { + "static": { + "id": "1269255f-fcbd-4b37-92ef-49a1c76516be", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.0266515, + "longitude": 0.18509063, + "north": 6611.0, + "east": 6612.0 + }, + "sog": 6.2, + "cog": 4.553 + } + }, + { + "static": { + "id": "3818fca7-775a-49d2-af10-0d0546c3392b", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02547386, + "longitude": 0.18207795, + "north": -905.0, + "east": -3377.0 + }, + "sog": 7.2, + "cog": 0.548 + } + } + ], "input_file_name": "baseline_situation_37_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_38.json b/data/baseline_situations_generated/traffic_situation_38.json index a163ac7..18735df 100644 --- a/data/baseline_situations_generated/traffic_situation_38.json +++ b/data/baseline_situations_generated/traffic_situation_38.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "dbf37a6b-4ad3-4489-9470-7fe1ce12f1ca", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02770004, + "longitude": 0.18373192, + "north": 13303.0, + "east": 2107.0 + }, + "sog": 6.2, + "cog": 3.429 + } + }, + { + "static": { + "id": "53bc5366-36f0-4a19-baf2-46672ed14a08", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02672875, + "longitude": 0.18523902, + "north": 7104.0, + "east": 7104.0 + }, + "sog": 7.2, + "cog": 4.456 + } + }, + { + "static": { + "id": "bee285cf-9926-46a2-8926-420e3007d98e", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02620103, + "longitude": 0.18350663, + "north": 3736.0, + "east": 1360.0 + }, + "sog": 2.1, + "cog": 5.64 + } + } + ], "input_file_name": "baseline_situation_38_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_39.json b/data/baseline_situations_generated/traffic_situation_39.json index daa3e4b..e2dfc54 100644 --- a/data/baseline_situations_generated/traffic_situation_39.json +++ b/data/baseline_situations_generated/traffic_situation_39.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-GW, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "0b1fc5cc-770e-49a3-bb01-31f46a7973f0", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02800197, + "longitude": 0.18390625, + "north": 15230.0, + "east": 2685.0 + }, + "sog": 9.3, + "cog": 3.412 + } + }, + { + "static": { + "id": "d5b637e6-0e30-42f0-a1ed-fbfdb355754d", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02576169, + "longitude": 0.18469041, + "north": 932.0, + "east": 5285.0 + }, + "sog": 6.2, + "cog": 5.493 + } + }, + { + "static": { + "id": "d5fda7bb-be0a-4e7e-9a35-c7c363e879b5", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02508356, + "longitude": 0.18291579, + "north": -3396.0, + "east": -599.0 + }, + "sog": 8.7, + "cog": 0.072 + } + } + ], "input_file_name": "baseline_situation_39_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_40.json b/data/baseline_situations_generated/traffic_situation_40.json index 8459a12..3bfe4fe 100644 --- a/data/baseline_situations_generated/traffic_situation_40.json +++ b/data/baseline_situations_generated/traffic_situation_40.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO, CR-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "703b365d-5d54-47a0-a8c9-cd0e4048daa2", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02710276, + "longitude": 0.18360103, + "north": 9491.0, + "east": 1673.0 + }, + "sog": 3.1, + "cog": 3.608 + } + }, + { + "static": { + "id": "aa27f844-f5bb-4a41-b347-4df121ba20a3", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02587905, + "longitude": 0.18120451, + "north": 1681.0, + "east": -6273.0 + }, + "sog": 7.7, + "cog": 1.132 + } + }, + { + "static": { + "id": "92e1143c-ab61-4f6a-9c33-c09c595d21ee", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02532297, + "longitude": 0.1799007, + "north": -1868.0, + "east": -10596.0 + }, + "sog": 8.7, + "cog": 0.775 + } + } + ], "input_file_name": "baseline_situation_40_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_41.json b/data/baseline_situations_generated/traffic_situation_41.json index f3fa201..1d68f18 100644 --- a/data/baseline_situations_generated/traffic_situation_41.json +++ b/data/baseline_situations_generated/traffic_situation_41.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "1ec7485b-7143-4dab-bfb6-d649abe2c124", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.0260854, + "longitude": 0.18647135, + "north": 2998.0, + "east": 11190.0 + }, + "sog": 9.3, + "cog": 5.014 + } + }, + { + "static": { + "id": "923904e0-440f-4420-8dbc-550c644ab991", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02702676, + "longitude": 0.18119426, + "north": 9006.0, + "east": -6307.0 + }, + "sog": 7.2, + "cog": 2.109 + } + }, + { + "static": { + "id": "0134588c-7732-4d5b-ac48-74e13752f450", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02513432, + "longitude": 0.18266456, + "north": -3072.0, + "east": -1432.0 + }, + "sog": 8.7, + "cog": 0.184 + } + } + ], "input_file_name": "baseline_situation_41_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_42.json b/data/baseline_situations_generated/traffic_situation_42.json index 37bdd42..b21616f 100644 --- a/data/baseline_situations_generated/traffic_situation_42.json +++ b/data/baseline_situations_generated/traffic_situation_42.json @@ -2,7 +2,7 @@ "title": "CR-GW, CR-SO, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "a08087a9-fdcc-4f54-92f0-cc84bb5f1cf4", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02638796, + "longitude": 0.18458304, + "north": 4929.0, + "east": 4929.0 + }, + "sog": 4.6, + "cog": 4.838 + } + }, + { + "static": { + "id": "6bcddf4a-1ab2-412a-a312-c8ab8de1e19a", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02663051, + "longitude": 0.1807684, + "north": 6477.0, + "east": -7719.0 + }, + "sog": 8.2, + "cog": 1.768 + } + }, + { + "static": { + "id": "3b5654ba-d1b9-4b85-927e-1275d5c431c8", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02578081, + "longitude": 0.18331903, + "north": 1054.0, + "east": 738.0 + }, + "sog": 3.6, + "cog": 5.934 + } + } + ], "input_file_name": "baseline_situation_42_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_43.json b/data/baseline_situations_generated/traffic_situation_43.json index 8274ee3..82eb027 100644 --- a/data/baseline_situations_generated/traffic_situation_43.json +++ b/data/baseline_situations_generated/traffic_situation_43.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-GW, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "e4f7b4c6-2e11-4dee-a6ca-b87e2c40c7d9", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02722074, + "longitude": 0.18453689, + "north": 10244.0, + "east": 4776.0 + }, + "sog": 6.2, + "cog": 3.936 + } + }, + { + "static": { + "id": "0244ec1f-a148-4b10-aaf4-d25f9e89c0c3", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02611172, + "longitude": 0.18335221, + "north": 3166.0, + "east": 848.0 + }, + "sog": 2.6, + "cog": 6.008 + } + }, + { + "static": { + "id": "0d9753a1-b167-45db-8d90-c2fd6370c6f2", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.0259964, + "longitude": 0.18275474, + "north": 2430.0, + "east": -1133.0 + }, + "sog": 3.6, + "cog": 0.211 + } + } + ], "input_file_name": "baseline_situation_43_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_44.json b/data/baseline_situations_generated/traffic_situation_44.json index df4a457..4b9fda2 100644 --- a/data/baseline_situations_generated/traffic_situation_44.json +++ b/data/baseline_situations_generated/traffic_situation_44.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-GW, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "9589562f-761f-4e85-9982-24f0c2d2d7a1", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02649842, + "longitude": 0.18674068, + "north": 5634.0, + "east": 12083.0 + }, + "sog": 7.2, + "cog": 4.98 + } + }, + { + "static": { + "id": "2bac4f67-3f37-42f1-a40a-e9efadf14e4c", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02613053, + "longitude": 0.18345716, + "north": 3286.0, + "east": 1196.0 + }, + "sog": 2.6, + "cog": 5.89 + } + }, + { + "static": { + "id": "5224428e-c7eb-4fd4-ba3b-534d7994be53", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02521345, + "longitude": 0.18316431, + "north": -2567.0, + "east": 225.0 + }, + "sog": 8.2, + "cog": 6.251 + } + } + ], "input_file_name": "baseline_situation_44_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_45.json b/data/baseline_situations_generated/traffic_situation_45.json index 5c5e09e..aad7da2 100644 --- a/data/baseline_situations_generated/traffic_situation_45.json +++ b/data/baseline_situations_generated/traffic_situation_45.json @@ -2,7 +2,7 @@ "title": "CR-GW, OT-SO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "7fefb596-bbd8-4ff7-9511-348023019b19", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02713159, + "longitude": 0.18445697, + "north": 9675.0, + "east": 4511.0 + }, + "sog": 6.2, + "cog": 3.936 + } + }, + { + "static": { + "id": "f4523fae-08f6-4653-acee-d3ac4d4a1d2e", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02505535, + "longitude": 0.18359922, + "north": -3576.0, + "east": 1667.0 + }, + "sog": 9.3, + "cog": 6.083 + } + }, + { + "static": { + "id": "23835a9d-0442-4b0a-bef4-5f6d57f11e78", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02513683, + "longitude": 0.18293389, + "north": -3056.0, + "east": -539.0 + }, + "sog": 7.7, + "cog": 0.058 + } + } + ], "input_file_name": "baseline_situation_45_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_46.json b/data/baseline_situations_generated/traffic_situation_46.json index e4b6f60..cf5c375 100644 --- a/data/baseline_situations_generated/traffic_situation_46.json +++ b/data/baseline_situations_generated/traffic_situation_46.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO, CR-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "71b72dc8-177c-407a-8aeb-fc7757192580", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02710276, + "longitude": 0.18259187, + "north": 9491.0, + "east": -1673.0 + }, + "sog": 3.1, + "cog": 2.675 + } + }, + { + "static": { + "id": "9da8f07d-8418-4469-9b2d-a8497befe646", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02587905, + "longitude": 0.18120451, + "north": 1681.0, + "east": -6273.0 + }, + "sog": 7.7, + "cog": 1.132 + } + }, + { + "static": { + "id": "56098f72-64b3-4fc9-9295-842466fe1178", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02759005, + "longitude": 0.18090231, + "north": 12601.0, + "east": -7275.0 + }, + "sog": 8.7, + "cog": 2.318 + } + } + ], "input_file_name": "baseline_situation_46_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_47.json b/data/baseline_situations_generated/traffic_situation_47.json index 1a8f66a..44b0f97 100644 --- a/data/baseline_situations_generated/traffic_situation_47.json +++ b/data/baseline_situations_generated/traffic_situation_47.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "4829e16b-e923-48ab-8889-bd83f4d61ab6", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02783589, + "longitude": 0.1815408, + "north": 14170.0, + "east": -5158.0 + }, + "sog": 9.3, + "cog": 2.602 + } + }, + { + "static": { + "id": "c34729df-97e2-4979-9bbc-9788966800bf", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02651785, + "longitude": 0.18102657, + "north": 5758.0, + "east": -6863.0 + }, + "sog": 7.2, + "cog": 1.69 + } + }, + { + "static": { + "id": "7bcb5cf6-4be7-4d33-b1b0-40bd678a8e8b", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02466787, + "longitude": 0.18260756, + "north": -6049.0, + "east": -1621.0 + }, + "sog": 9.8, + "cog": 0.126 + } + } + ], "input_file_name": "baseline_situation_47_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_48.json b/data/baseline_situations_generated/traffic_situation_48.json index 5fcbcc0..25c36fa 100644 --- a/data/baseline_situations_generated/traffic_situation_48.json +++ b/data/baseline_situations_generated/traffic_situation_48.json @@ -2,7 +2,7 @@ "title": "CR-SO, CR-SO, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "6f4416e0-df18-48b3-8c1f-6be20ffadbb8", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02647367, + "longitude": 0.18144459, + "north": 5476.0, + "east": -5477.0 + }, + "sog": 4.6, + "cog": 1.445 + } + }, + { + "static": { + "id": "4599f8cc-b523-4920-8ff4-c1ebe7fede8d", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02632685, + "longitude": 0.18072527, + "north": 4539.0, + "east": -7862.0 + }, + "sog": 8.2, + "cog": 1.521 + } + }, + { + "static": { + "id": "fbbc6827-c06d-4d84-bc01-e28e646bbd1f", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02591289, + "longitude": 0.18349728, + "north": 1897.0, + "east": 1329.0 + }, + "sog": 3.6, + "cog": 5.934 + } + } + ], "input_file_name": "baseline_situation_48_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_49.json b/data/baseline_situations_generated/traffic_situation_49.json index 1cc9a06..7ae2cf1 100644 --- a/data/baseline_situations_generated/traffic_situation_49.json +++ b/data/baseline_situations_generated/traffic_situation_49.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-GW, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "10b7ee12-64e2-49ed-a1ed-2ad5d460148b", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02738291, + "longitude": 0.18151034, + "north": 11279.0, + "east": -5259.0 + }, + "sog": 7.2, + "cog": 2.399 + } + }, + { + "static": { + "id": "1692ce96-4b51-4926-b118-227a9c7265cd", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02600878, + "longitude": 0.18329913, + "north": 2509.0, + "east": 672.0 + }, + "sog": 3.1, + "cog": 6.102 + } + }, + { + "static": { + "id": "a6c04c5b-399b-4540-8fa5-1c26cc3fe36b", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.0259964, + "longitude": 0.18275474, + "north": 2430.0, + "east": -1133.0 + }, + "sog": 3.6, + "cog": 0.211 + } + } + ], "input_file_name": "baseline_situation_49_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_50.json b/data/baseline_situations_generated/traffic_situation_50.json index ed25874..438324d 100644 --- a/data/baseline_situations_generated/traffic_situation_50.json +++ b/data/baseline_situations_generated/traffic_situation_50.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-GW, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "489497e2-3648-4b9b-98c9-7108efdd20f5", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02613319, + "longitude": 0.18096022, + "north": 3303.0, + "east": -7083.0 + }, + "sog": 7.2, + "cog": 1.303 + } + }, + { + "static": { + "id": "3ffb6b91-b507-431d-abd4-9c4d38701506", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02637386, + "longitude": 0.18348763, + "north": 4839.0, + "east": 1297.0 + }, + "sog": 2.1, + "cog": 5.859 + } + }, + { + "static": { + "id": "f9a1d1bd-b61a-4892-b0de-04ca542f4f4d", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.0250411, + "longitude": 0.18319326, + "north": -3667.0, + "east": 321.0 + }, + "sog": 8.2, + "cog": 6.251 + } + } + ], "input_file_name": "baseline_situation_50_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_51.json b/data/baseline_situations_generated/traffic_situation_51.json index c38ec40..c4b6250 100644 --- a/data/baseline_situations_generated/traffic_situation_51.json +++ b/data/baseline_situations_generated/traffic_situation_51.json @@ -2,7 +2,7 @@ "title": "CR-SO, OT-SO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "b960a977-616b-4ac4-a134-44c2552244a1", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02711482, + "longitude": 0.18175101, + "north": 9568.0, + "east": -4461.0 + }, + "sog": 6.7, + "cog": 2.375 + } + }, + { + "static": { + "id": "c9cbd54e-a1bf-4216-9399-27915c5a1fd6", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02520468, + "longitude": 0.18346531, + "north": -2623.0, + "east": 1223.0 + }, + "sog": 9.3, + "cog": 6.083 + } + }, + { + "static": { + "id": "df4d7700-3a73-4349-ae0e-afce79aad014", + "length": 122.0, + "width": 20.0, + "height": 8.0, + "name": "BASTO", + "shipType": "Passenger", + "speed_max": 17 + }, + "initial": { + "position": { + "latitude": 1.02505394, + "longitude": 0.18270286, + "north": -3585.0, + "east": -1305.0 + }, + "sog": 8.2, + "cog": 0.133 + } + } + ], "input_file_name": "baseline_situation_51_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_52.json b/data/baseline_situations_generated/traffic_situation_52.json index 838bfa7..01296bc 100644 --- a/data/baseline_situations_generated/traffic_situation_52.json +++ b/data/baseline_situations_generated/traffic_situation_52.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-GW, OT-GW", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "e61b4036-aee4-412b-abc0-c267fd864aee", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02588046, + "longitude": 0.18295983, + "north": 1690.0, + "east": -453.0 + }, + "sog": 3.6, + "cog": 0.117 + } + }, + { + "static": { + "id": "829f8e43-0939-40aa-baeb-81456e6060d6", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02600878, + "longitude": 0.18329913, + "north": 2509.0, + "east": 672.0 + }, + "sog": 3.1, + "cog": 6.102 + } + }, + { + "static": { + "id": "e3a8eab4-d0c4-4276-8a1c-bfc1de34d4c6", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02624851, + "longitude": 0.18252854, + "north": 4039.0, + "east": -1883.0 + }, + "sog": 2.6, + "cog": 0.552 + } + } + ], "input_file_name": "baseline_situation_52_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_53.json b/data/baseline_situations_generated/traffic_situation_53.json index f4e02ac..0508976 100644 --- a/data/baseline_situations_generated/traffic_situation_53.json +++ b/data/baseline_situations_generated/traffic_situation_53.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-GW, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "a3508f06-ac06-4a67-95aa-435dc2fdd5bb", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02586181, + "longitude": 0.18309645, + "north": 1571.0, + "east": 0.0 + }, + "sog": 3.6, + "cog": 0.0 + } + }, + { + "static": { + "id": "387f9d5a-43ff-4a8a-b71b-b6a876084e16", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02649357, + "longitude": 0.18339443, + "north": 5603.0, + "east": 988.0 + }, + "sog": 2.1, + "cog": 6.019 + } + }, + { + "static": { + "id": "c2f9e2d2-41f4-4f66-9f59-f424d7c3fc34", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.0249474, + "longitude": 0.18298395, + "north": -4265.0, + "east": -373.0 + }, + "sog": 8.7, + "cog": 0.036 + } + } + ], "input_file_name": "baseline_situation_53_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_54.json b/data/baseline_situations_generated/traffic_situation_54.json index 9797bf3..ead0852 100644 --- a/data/baseline_situations_generated/traffic_situation_54.json +++ b/data/baseline_situations_generated/traffic_situation_54.json @@ -2,7 +2,7 @@ "title": "OT-GW, OT-SO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "105a6da6-c68b-498e-9ca7-f05c9a54fc41", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02592997, + "longitude": 0.1827472, + "north": 2006.0, + "east": -1158.0 + }, + "sog": 3.6, + "cog": 0.271 + } + }, + { + "static": { + "id": "aed871bd-e9cd-41fa-89fa-a80a3ec05ee0", + "length": 50.0, + "width": 10.0, + "height": 8.0, + "name": "CANOLE", + "shipType": "Cargo", + "speed_max": 15 + }, + "initial": { + "position": { + "latitude": 1.02501791, + "longitude": 0.183633, + "north": -3815.0, + "east": 1779.0 + }, + "sog": 9.3, + "cog": 6.083 + } + }, + { + "static": { + "id": "4b9185bd-4172-4bbf-a261-d5e21a4751b5", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02493157, + "longitude": 0.18261721, + "north": -4366.0, + "east": -1589.0 + }, + "sog": 9.3, + "cog": 0.159 + } + } + ], "input_file_name": "baseline_situation_54_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/data/baseline_situations_generated/traffic_situation_55.json b/data/baseline_situations_generated/traffic_situation_55.json index 2c745d1..1f7c0b3 100644 --- a/data/baseline_situations_generated/traffic_situation_55.json +++ b/data/baseline_situations_generated/traffic_situation_55.json @@ -2,7 +2,7 @@ "title": "OT-SO, OT-SO, OT-SO", "ownShip": { "static": { - "id": "6983e2ad-4f17-414d-9c07-5c12214926cc", + "id": "0e798a2d-9ac7-478e-881d-987c1d0de238", "length": 122.0, "width": 20.0, "height": 8.0, @@ -41,7 +41,71 @@ } ] }, - "targetShips": [], + "targetShips": [ + { + "static": { + "id": "4552bd3e-2156-4212-9fa7-5291c6480f45", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02491982, + "longitude": 0.1833326, + "north": -4441.0, + "east": 783.0 + }, + "sog": 9.8, + "cog": 6.2 + } + }, + { + "static": { + "id": "6feab185-e345-47cb-8721-70de3f58d8a8", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02498062, + "longitude": 0.18366647, + "north": -4053.0, + "east": 1890.0 + }, + "sog": 9.3, + "cog": 6.083 + } + }, + { + "static": { + "id": "d59ecf09-5866-4d97-af38-db4e3c2d5209", + "length": 178.0, + "width": 30.0, + "height": 30.0, + "name": "BASTO VI", + "shipType": "Passenger", + "speed_max": 21 + }, + "initial": { + "position": { + "latitude": 1.02496354, + "longitude": 0.18263953, + "north": -4162.0, + "east": -1515.0 + }, + "sog": 8.7, + "cog": 0.146 + } + } + ], "input_file_name": "baseline_situation_55_3_ts.json", "common_vector": 600.0 } \ No newline at end of file diff --git a/src/trafficgen/encounter.py b/src/trafficgen/encounter.py index 3707455..dbbd1c4 100644 --- a/src/trafficgen/encounter.py +++ b/src/trafficgen/encounter.py @@ -89,7 +89,7 @@ def generate_encounter( ) # Target ship - target_ship.initial = Initial.default() # reset initial of target_ship (if one existed) + target_ship.initial = Initial() # reset initial of target_ship (if one existed) target_ship_position_future = assign_future_position_to_target_ship( own_ship_position_future, settings.max_meeting_distance diff --git a/src/trafficgen/ship_traffic_generator.py b/src/trafficgen/ship_traffic_generator.py index 96b3105..823e912 100644 --- a/src/trafficgen/ship_traffic_generator.py +++ b/src/trafficgen/ship_traffic_generator.py @@ -13,7 +13,7 @@ read_situation_files, read_target_ship_files, ) -from trafficgen.types import EncounterSettings +from trafficgen.types import EncounterSettings, EncounterType from maritime_schema.types.caga import OwnShip, TargetShip, TrafficSituation @@ -74,7 +74,7 @@ def generate_traffic_situations( traffic_situation.target_ships = [] for encounter in desired_traffic_situation.encounter: - desired_encounter_type = encounter["desired_encounter_type"] + desired_encounter_type = EncounterType(encounter["desired_encounter_type"]) settings = encounter_settings beta: Union[float, None] = encounter["beta"] relative_speed: Union[float, None] = encounter["relative_speed"] From 46f1ab0588b427f8b6dd0c00b7cda2da2491da70 Mon Sep 17 00:00:00 2001 From: Minos Hemrich Date: Wed, 28 Feb 2024 13:52:34 +0100 Subject: [PATCH 6/8] update maritime-schema to PyPI --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6e8c697..e856140 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ basemap-data-hires = "^1.3.2" global-land-mask = "^1.0.0" folium = "^0.14.0" pydantic = "^2.5" -maritime-schema = { git = "https://github.com/dnv-opensource/maritime-schema.git" } +maritime-schema = "^0.0.3" [tool.poetry.group.dev] optional = true From 8cbb831a909db5d48b53934bf421dd1072ceb6d6 Mon Sep 17 00:00:00 2001 From: Minos Hemrich Date: Wed, 28 Feb 2024 13:54:32 +0100 Subject: [PATCH 7/8] imports on a single line --- src/trafficgen/encounter.py | 10 ++++++++-- src/trafficgen/read_files.py | 7 ++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/trafficgen/encounter.py b/src/trafficgen/encounter.py index dbbd1c4..854c86f 100644 --- a/src/trafficgen/encounter.py +++ b/src/trafficgen/encounter.py @@ -18,14 +18,20 @@ EncounterType, ) -from maritime_schema.types.caga import Initial, OwnShip, Position, TargetShip, Waypoint - from trafficgen.utils import ( calculate_position_at_certain_time, convert_angle_0_to_2_pi_to_minus_pi_to_pi, convert_angle_minus_pi_to_pi_to_0_to_2_pi, ) +from maritime_schema.types.caga import ( + Initial, + OwnShip, + Position, + TargetShip, + Waypoint, +) + def generate_encounter( desired_encounter_type: EncounterType, diff --git a/src/trafficgen/read_files.py b/src/trafficgen/read_files.py index f793e9d..3a8e8ed 100644 --- a/src/trafficgen/read_files.py +++ b/src/trafficgen/read_files.py @@ -12,7 +12,12 @@ ) from trafficgen.utils import deg_2_rad, knot_2_m_pr_s, min_2_s, nm_2_m -from maritime_schema.types.caga import AISNavStatus, OwnShip, TargetShip, TrafficSituation +from maritime_schema.types.caga import ( + AISNavStatus, + OwnShip, + TargetShip, + TrafficSituation, +) def read_situation_files(situation_folder: Path, input_units: UnitType) -> List[TrafficSituation]: From c56a5e5efad9e9467e54a5dc73ba4daeeb202794 Mon Sep 17 00:00:00 2001 From: Claas Date: Wed, 28 Feb 2024 12:42:42 +0100 Subject: [PATCH 8/8] pyproject.toml : updated poetry dependency specifications for maritime-schema and for python --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e856140..098c86b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ license = "License stuff here" # FIXME readme = "README.md" [tool.poetry.dependencies] -python = "^3.9" +python = ">=3.9, <3.13" click = "^8.1" click-log = "^0.4.0" numpy = "^1.25.2"