antarctica / PolarRoute

Long-distance maritime polar route planning, taking into account complex changing environmental conditions.
https://antarctica.github.io/PolarRoute/
MIT License
17 stars 3 forks source link

v1.0 Route Planner Refactor #294

Closed gecoombs closed 1 month ago

gecoombs commented 2 months ago

PolarRoute Pull Request

Date: 17/09/24 Version Number: 0.5.2 -> 1.0.0

Description of change

Testing

Test results: full_test_log_031024.txt

Files changed:

.github/pull_request_template.md
README.md
docs/html/.buildinfo
docs/html/.doctrees/environment.pickle
docs/html/.doctrees/sections/Command_line_interface.doctree
docs/html/.doctrees/sections/Configuration/Route_planning_config.doctree
docs/html/.doctrees/sections/Configuration/Vessel_performance_config.doctree
docs/html/.doctrees/sections/Examples.doctree
docs/html/.doctrees/sections/Installation.doctree
docs/html/.doctrees/sections/Route_calculation.doctree
docs/html/.doctrees/sections/Route_optimisation.doctree
docs/html/_sources/sections/Command_line_interface.rst.txt
docs/html/_sources/sections/Configuration/Route_planning_config.rst.txt
docs/html/_sources/sections/Configuration/Vessel_performance_config.rst.txt
docs/html/_sources/sections/Examples.rst.txt
docs/html/_sources/sections/Installation.rst.txt
docs/html/_sources/sections/Route_optimisation.rst.txt
docs/html/_static/documentation_options.js
docs/html/genindex.html
docs/html/index.html
docs/html/objects.inv
docs/html/py-modindex.html
docs/html/search.html
docs/html/searchindex.js
docs/html/sections/Code_overview.html
docs/html/sections/Command_line_interface.html
docs/html/sections/Configuration/Configuration_overview.html
docs/html/sections/Configuration/Route_planning_config.html
docs/html/sections/Configuration/Vessel_performance_config.html
docs/html/sections/Examples.html
docs/html/sections/Installation.html
docs/html/sections/Outputs.html
docs/html/sections/Route_calculation.html
docs/html/sections/Route_optimisation.html
docs/html/sections/Vehicle_specifics.html
docs/source/sections/Command_line_interface.rst
docs/source/sections/Configuration/Route_planning_config.rst
docs/source/sections/Configuration/Vessel_performance_config.rst
docs/source/sections/Examples.rst
docs/source/sections/Installation.rst
docs/source/sections/Route_optimisation.rst
examples/route_config/all_options.config.json
examples/route_config/fuel.config.json
examples/route_config/traveltime.config.json
polar_route/__init__.py
polar_route/cli.py
polar_route/config_validation/config_validator.py
polar_route/config_validation/route_schema.py
polar_route/config_validation/vessel_schema.py
polar_route/crossing.py
polar_route/route_calc.py
polar_route/route_planner.py
polar_route/route_planner/__init__.py
polar_route/route_planner/crossing.py
polar_route/route_planner/crossing_smoothing.py
polar_route/route_planner/route.py
polar_route/route_planner/route_planner.py
polar_route/route_planner/routing_info.py
polar_route/route_planner/segment.py
polar_route/route_planner/source_waypoint.py
polar_route/route_planner/waypoint.py
polar_route/utils.py
polar_route/vessel_performance/vessel_performance_modeller.py
pyproject.toml
requirements.txt
setup.py
tests/regression_tests/example_routes/dijkstra/crossing_point/diagonal/diagonal_0lat.json
tests/regression_tests/example_routes/dijkstra/crossing_point/diagonal/diagonal_0lat_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/diagonal/diagonal_0lat_scalar.json
tests/regression_tests/example_routes/dijkstra/crossing_point/diagonal/diagonal_0lat_scalar_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/diagonal/diagonal_0lat_split.json
tests/regression_tests/example_routes/dijkstra/crossing_point/diagonal/diagonal_0lat_split4.json
tests/regression_tests/example_routes/dijkstra/crossing_point/diagonal/diagonal_0lat_split_scalar.json
tests/regression_tests/example_routes/dijkstra/crossing_point/diagonal/diagonal_0lat_vector_opp_dir.json
tests/regression_tests/example_routes/dijkstra/crossing_point/diagonal/diagonal_0lat_vector_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/diagonal/diagonal_0lat_vector_same_dir.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_antimeridian.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_antimeridian_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_offset_destination.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_offset_source.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_scalar.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_scalar_offset_destination.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_scalar_offset_source.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_scalar_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_scalar_split.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_split.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_split4.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_vector_opp_dir.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_vector_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_vector_same_dir.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_wind_opp_dir.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_wind_opp_dir_offset.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_0lat_wind_same_dir.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_20lat_n.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_20lat_s.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_40lat_n.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_40lat_s.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_60lat_n.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_60lat_s.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_80lat_n.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_80lat_s.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_80latn_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/horizontal/horizontal_80lats_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_offset_destination.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_offset_source.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_scalar.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_scalar_offset_destination.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_scalar_offset_source.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_scalar_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_scalar_split.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_split.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_split4.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_vector_opp_dir.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_vector_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_vector_same_dir.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_wind_opp_dir.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_wind_opp_dir_offset.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_0lat_wind_same_dir.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_20lat_n.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_20lat_s.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_40lat_n.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_40lat_s.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_60lat_n.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_60lat_s.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_80lat_n.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_80lat_s.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_80latn_reverse.json
tests/regression_tests/example_routes/dijkstra/crossing_point/vertical/vertical_80lats_reverse.json
tests/regression_tests/example_routes/dijkstra/fuel/great_circle_forward.json
tests/regression_tests/example_routes/dijkstra/fuel/great_circle_reverse.json
tests/regression_tests/example_routes/dijkstra/time/great_circle_forward.json
tests/regression_tests/example_routes/dijkstra/time/great_circle_reverse.json
tests/regression_tests/example_routes/dijkstra/time/multi_waypoint_blocked.json
tests/regression_tests/example_routes/dijkstra/time/single_cell.json
tests/regression_tests/example_routes/smoothed/crossing_point/horizontal/horizontal_0lat_boundary_smooth.json
tests/regression_tests/example_routes/smoothed/crossing_point/horizontal/horizontal_0lat_corner_smooth.json
tests/regression_tests/example_routes/smoothed/crossing_point/horizontal/horizontal_0lat_smooth.json
tests/regression_tests/example_routes/smoothed/crossing_point/horizontal/horizontal_80latn_smooth.json
tests/regression_tests/example_routes/smoothed/crossing_point/horizontal/horizontal_80lats_smooth.json
tests/regression_tests/example_routes/smoothed/crossing_point/vertical/vertical_0lat_boundary_smooth.json
tests/regression_tests/example_routes/smoothed/crossing_point/vertical/vertical_0lat_corner_smooth.json
tests/regression_tests/example_routes/smoothed/crossing_point/vertical/vertical_0lat_smooth.json
tests/regression_tests/example_routes/smoothed/crossing_point/vertical/vertical_80latn_smooth.json
tests/regression_tests/example_routes/smoothed/crossing_point/vertical/vertical_80lats_smooth.json
tests/regression_tests/example_routes/smoothed/fuel/checkerboard.json
tests/regression_tests/example_routes/smoothed/fuel/gaussian_random_field.json
tests/regression_tests/example_routes/smoothed/fuel/great_circle_forward.json
tests/regression_tests/example_routes/smoothed/fuel/great_circle_reverse.json
tests/regression_tests/example_routes/smoothed/time/checkerboard.json
tests/regression_tests/example_routes/smoothed/time/gaussian_random_field.json
tests/regression_tests/example_routes/smoothed/time/great_circle_forward.json
tests/regression_tests/example_routes/smoothed/time/great_circle_reverse.json
tests/regression_tests/example_routes/smoothed/time/multi_waypoint_blocked.json
tests/regression_tests/example_routes/smoothed/time/single_cell.json
tests/regression_tests/route_test_functions.py
tests/regression_tests/test_routes_dijkstra.py
tests/regression_tests/test_routes_smoothed.py
tests/unit_tests/test_route_calc.py

Checklist

Ulvetanna commented 1 month ago

Trying a fresh install and environment to test how Fiona dependency would be. Fiona is fine so my comments above can be disregarded.

However, in the setup.py there is a deprecation that should be dealt with. See attached picture

Screenshot 2024-09-26 at 07 56 41

Ulvetanna commented 1 month ago

From running the examples in the repo, one of the traveltime config variables is still required. This variable should be autos in PolarRoute if it's not defined in the config.

Screenshot 2024-09-26 at 07 59 05

gecoombs commented 1 month ago

Trying a fresh install and environment to test how Fiona dependency would be. Fiona is fine so my comments above can be disregarded.

However, in the setup.py there is a deprecation that should be dealt with. See attached picture

Screenshot 2024-09-26 at 07 56 41

Which command did you run to install when you got this warning? Was it python setup.py develop or pip install -e ?

gecoombs commented 1 month ago

From running the examples in the repo, one of the traveltime config variables is still required. This variable should be autos in PolarRoute if it's not defined in the config.

Screenshot 2024-09-26 at 07 59 05

Good catch, I thought I had set this to a default value but there was a bug (copy and paste error :facepalm: ) that caused that to fail. Should be working as of 284a086

Ulvetanna commented 1 month ago

Trying a fresh install and environment to test how Fiona dependency would be. Fiona is fine so my comments above can be disregarded. However, in the setup.py there is a deprecation that should be dealt with. See attached picture Screenshot 2024-09-26 at 07 56 41

Which command did you run to install when you got this warning? Was it python setup.py develop or pip install -e ?

George having a look into gauge how long it would take to change to a newer format

gecoombs commented 1 month ago

I have now pinned the MeshiPhi version in requirements.txt to the current latest release and updated the PolarRoute version number from v0.6 to v1.0 as discussed last week. I spent some time looking at the deprecation warning highlighted above and have made some notes on #298. This needs to be resolved before early next year when a new version of pip will remove compatibility with our current approach but we should be able to address it as part of a hotfix, so that it does not hold up this PolarRoute release.

I also re-ran the regression tests with the latest changes and have posted the results above.

JimCircadian commented 1 month ago

Well done AMOP team 🚀

gecoombs commented 1 month ago

Merging without approval from @hjabbot as he's not currently available and his comments above have been addressed.