Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merging main into rearchitecture #239

Closed
wants to merge 163 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
163 commits
Select commit Hold shift + click to select a range
7672bfe
Initial structure for glider models
gecoombs Jun 7, 2023
e264c4e
Define accessibility criteria for gliders
gecoombs Jun 7, 2023
c6df3cf
Add simple glider battery model
gecoombs Jun 12, 2023
6876c5d
Parameter ordering change
gecoombs Jun 12, 2023
2946b6e
Fix typo in fuel model
gecoombs Jun 12, 2023
2d3549b
Use singular in prettified time values
gecoombs Jun 12, 2023
8057f3e
Change fuel to battery
gecoombs Jun 13, 2023
5f454f3
Merge remote-tracking branch 'origin/0.3.x' into glider_vp_models
gecoombs Jul 7, 2023
966ff11
Update glider models for new depth config variable
gecoombs Jul 7, 2023
4bbb33a
Vary battery usage with speed
gecoombs Jul 7, 2023
19e97ae
Reduce duplication in slocum class
gecoombs Jul 7, 2023
363bae1
Slocum model changes
gecoombs Jul 11, 2023
a2347e1
extending export_mesh CLI
SamuelHall700 Jul 14, 2023
fdde885
preventing calculation of fuel and speed in inaccessible cells
SamuelHall700 Jul 19, 2023
216d942
[#147] Reformat geojson output to remove infs
gecoombs Jul 13, 2023
cb4d516
Increment version number
gecoombs Jul 13, 2023
f337e74
Remove extraneous variables from geojson output
gecoombs Jul 14, 2023
8e856d9
removing a print statement left in the export_mesh cli
SamuelHall700 Jul 14, 2023
3162cd6
extending export_mesh CLI
SamuelHall700 Jul 14, 2023
256d71d
preventing calculation of fuel and speed in inaccessible cells
SamuelHall700 Jul 19, 2023
510efb1
Merge branch 'geojson_CLI_extension' of https://github.com/antarctica…
SamuelHall700 Jul 19, 2023
e20444c
updating version number
SamuelHall700 Jul 19, 2023
693b1a9
Merge remote-tracking branch 'origin/0.3.x' into glider_vp_models
gecoombs Jul 26, 2023
2a46c7c
Updated to ignore symlink to datastore
hjabbot Jul 26, 2023
a17e09e
Updated explanation of splitting process
hjabbot Jul 26, 2023
0cb9ca9
Fixed minor issue stopping minimal example running
hjabbot Jul 26, 2023
77db56c
Merge pull request #216 from antarctica/updating_docs
hjabbot Jul 26, 2023
56f4a61
[#217] Add optional max wave height parameter for ships
gecoombs Jul 27, 2023
265efdc
Inclusion of refactored path smoothing
Jul 27, 2023
089ecee
Applying PEP-8 complience to crossing_smoothing.py and updating the v…
Jul 27, 2023
c9d0c44
Finalising PEP-8 compliance of crossing_smoothing. Removing old code …
Jul 27, 2023
fe4d60f
Inclusion of SIC not in environmental model set as zero - ERROR corre…
Jul 27, 2023
7056e64
adding rebuild_mesh cli entry point
SamuelHall700 Jul 28, 2023
1b8c7b2
Updating to include corrections for docstrings and pep-8 compliance
Jul 31, 2023
4beac59
Updating to include further docstrings and comments
Jul 31, 2023
729d421
Updating to correct changes made
Jul 31, 2023
335fba2
Switch to .get to avoid KeyError
gecoombs Aug 1, 2023
2b0291d
Initial schema set up for mesh config
hjabbot Aug 1, 2023
27255f0
Update example meshes to match results from new vessel performance code
gecoombs Aug 1, 2023
4e9ffdb
Update test functions to handle mixed column of lists and NaNs
gecoombs Aug 1, 2023
79df0e9
Increment version number
gecoombs Aug 1, 2023
46bc842
Merge remote-tracking branch 'origin/0.2.x' into geojson_CLI_extension
gecoombs Aug 1, 2023
6df6d10
Added function to validate mesh config
hjabbot Aug 1, 2023
def26ae
Minor typos in cli
gecoombs Aug 1, 2023
61bd717
Update docs for new additions to cli
gecoombs Aug 1, 2023
993ef96
Simplify updated test functions
gecoombs Aug 1, 2023
3eb8c3c
Merge pull request #213 from antarctica/geojson_CLI_extension
gecoombs Aug 2, 2023
cbf914e
Adding errors when no data loaded
hjabbot Aug 2, 2023
e309dcf
Cleaning up dataloader factory
hjabbot Aug 2, 2023
3ee4a13
Added placeholders for each config schema
hjabbot Aug 2, 2023
d50e11e
Raise error when no data initialised
hjabbot Aug 2, 2023
1f6627f
Add schema for vessel configs
gecoombs Aug 2, 2023
de39224
Merge remote-tracking branch 'origin/0.2.x' into 0.3.x
gecoombs Aug 2, 2023
7427aff
Merge branch '0.3.x' into glider_vp_models
gecoombs Aug 2, 2023
d47a8a7
Merge branch '0.3.x' into wave_vp_models
gecoombs Aug 2, 2023
a9f4e95
[#217] Add Kreitner formula for wave resistance
gecoombs Aug 2, 2023
1174426
Adding more documentation in .forward()
Aug 3, 2023
b466f0e
Updating doc strings and applying correction to smoothed paths regres…
Aug 4, 2023
fb25f51
Added info on data coverage of initial bounds
hjabbot Aug 4, 2023
274531e
Updating to output speed as well for routes. Updating regression test…
Aug 4, 2023
cf38147
Updating speed metrics and updating regression tests
Aug 4, 2023
a346b7c
[#217] Add debug logging
gecoombs Aug 9, 2023
c026722
Added schema for route_info
hjabbot Aug 9, 2023
3f4c505
Added tests against JSON schema
hjabbot Aug 9, 2023
43833b8
Added waypoint validation
hjabbot Aug 9, 2023
fbfb8ef
Added docstring
hjabbot Aug 9, 2023
24d7f96
Update to include new optional arguments
Aug 10, 2023
2f55b39
Added docs and fixed a few docstrings throwing errors
hjabbot Aug 10, 2023
fcad82e
Reordered index
hjabbot Aug 10, 2023
595c8cc
Fixed bugs in route_schema
hjabbot Aug 10, 2023
9443268
Added config validation to __init__ functions
hjabbot Aug 10, 2023
2f49b43
Added check for numeric coordinate values in waypoints
hjabbot Aug 10, 2023
0f006df
Incrementing version number
hjabbot Aug 10, 2023
dcd251d
Update smoothing test examples
gecoombs Aug 10, 2023
5d55763
Merge remote-tracking branch 'origin/0.2.x' into pathsmoothing_july2023
gecoombs Aug 10, 2023
13fdd71
Comment/docstring typo fixes
gecoombs Aug 10, 2023
39556df
Rebuild docs with new smoothing content
gecoombs Aug 10, 2023
d68b24e
Merge pull request #218 from antarctica/pathsmoothing_july2023
Ulvetanna Aug 10, 2023
9cae9dd
Removing redundant nesting from config
hjabbot Aug 10, 2023
f661fcb
NaN values don't count towards coverage
hjabbot Aug 10, 2023
59f9549
Mergine with 0.2.x
hjabbot Aug 10, 2023
4d4a5e7
Updating method for checking all NaN data region
hjabbot Aug 10, 2023
25c8c71
Amended docstring
hjabbot Aug 10, 2023
604f99a
Updated docs to show JSON validation
hjabbot Aug 10, 2023
8333f62
Merge pull request #220 from antarctica/config_validator
hjabbot Aug 11, 2023
4d6b7ce
Merge pull request #196 from antarctica/0.2.x
hjabbot Aug 11, 2023
28b8822
Merge remote-tracking branch 'origin/main' into 0.3.x
gecoombs Aug 11, 2023
d08542c
Rebuild docs after merge from main
gecoombs Aug 11, 2023
2d824d7
Merge remote-tracking branch 'origin/0.3.x' into wave_vp_models
gecoombs Aug 11, 2023
5feefdd
Merge remote-tracking branch 'origin/0.3.x' into glider_vp_models
gecoombs Aug 11, 2023
04eabe8
Increment version number
gecoombs Aug 16, 2023
0b36e1e
[#221] Fix iter_number bug in smoothing code
gecoombs Aug 16, 2023
325c5e7
Remove unnecessary import
gecoombs Aug 16, 2023
98bc25d
Removing references to mesh builder
hjabbot Aug 16, 2023
4ff0c9c
Changing refs from polarroute to cartographi
hjabbot Aug 16, 2023
de507f7
Removing deprecated tests
hjabbot Aug 16, 2023
8a42776
Merge pull request #222 from antarctica/smoothing_error
gecoombs Aug 17, 2023
7609090
Merge remote-tracking branch 'origin/main' into 0.3.x
gecoombs Aug 17, 2023
588eecd
Merge remote-tracking branch 'origin/0.3.x' into glider_vp_models
gecoombs Aug 17, 2023
1199f76
Removing mesh from docs
hjabbot Aug 17, 2023
a52869c
Merge remote-tracking branch 'origin/0.3.x' into wave_vp_models
gecoombs Aug 17, 2023
52c1008
Version number change
gecoombs Aug 17, 2023
e39ad8f
Removing mesh building from CLI
hjabbot Aug 17, 2023
8a449f0
Removing pandas version limitation
hjabbot Aug 17, 2023
49c2956
Fixing bug in config
hjabbot Aug 17, 2023
772547f
Removing unnecessary imports
hjabbot Aug 17, 2023
ed23ef9
Updating example configs to match CartograPhi
hjabbot Aug 17, 2023
b736582
Fixing resimulate_vehicle
hjabbot Aug 17, 2023
1620bfd
[#223] Add in type for valid geojson output from route planner
gecoombs Aug 21, 2023
c60ee4c
Update version number
gecoombs Aug 21, 2023
bf3b13c
Merge pull request #224 from antarctica/geojson_route_fix
gecoombs Aug 21, 2023
ab31fcb
Merge remote-tracking branch 'origin/main' into 0.3.x
gecoombs Aug 21, 2023
6a0f9f2
Merge remote-tracking branch 'origin/0.3.x' into glider_vp_models
gecoombs Aug 21, 2023
96bbc14
Merge remote-tracking branch 'origin/0.3.x' into wave_vp_models
gecoombs Aug 21, 2023
a4a6989
PEP8-ing configs
hjabbot Aug 22, 2023
5fb8181
Merge branch '0.3.x' of github.com:antarctica/PolarRoute into removin…
hjabbot Aug 22, 2023
a3edcd5
Fixing pandas version in requirements
hjabbot Sep 5, 2023
153dce8
Change version number
gecoombs Sep 14, 2023
358eb61
Update vessel performance docs
gecoombs Sep 14, 2023
cb097a3
Merge pull request #225 from antarctica/glider_vp_models
gecoombs Sep 14, 2023
35fdee2
Merge remote-tracking branch 'origin/0.3.x' into wave_vp_models
gecoombs Sep 14, 2023
91dcc62
Increment version number
gecoombs Sep 14, 2023
857235a
Merge pull request #226 from antarctica/wave_vp_models
gecoombs Sep 15, 2023
0722df5
Pulling from 0.3.x
hjabbot Sep 19, 2023
04797a3
adding edits done during RP rearchitectire
ayat-khairy Sep 19, 2023
408f0eb
making the unit tests pass again
ayat-khairy Sep 19, 2023
4d43cc7
updated AggCellbox
ayat-khairy Sep 19, 2023
f662029
Merge pull request #227 from antarctica/mesh_minor_edits
ayat-khairy Sep 19, 2023
b059afd
Merging 0.3.x
hjabbot Sep 19, 2023
195a8e3
Incrementing version number
hjabbot Sep 19, 2023
6ced28f
Readding built docs
hjabbot Sep 19, 2023
4acb09c
Updating docs, removing unused file
hjabbot Sep 21, 2023
b67e8a4
Added directions to CartograPhi docs
hjabbot Sep 21, 2023
48a205e
Updating docs
hjabbot Sep 21, 2023
32e1746
Merge pull request #228 from antarctica/removing_mesh
hjabbot Sep 21, 2023
8931e93
[#229] Add in configurable exclusion zones
gecoombs Sep 27, 2023
d53196e
Updating CLI to output both geojson and json in one command
hjabbot Sep 28, 2023
e26db68
[#229] Update docs with new config parameters
gecoombs Oct 3, 2023
f0eb5bd
Increment version number
gecoombs Oct 3, 2023
3f1c88f
Update glider vp code to use new config format
gecoombs Oct 3, 2023
45243d6
Merge pull request #230 from antarctica/exclusion_zone_vp
gecoombs Oct 4, 2023
7397cd3
Merge branch '0.3.x' of github.com:antarctica/PolarRoute into cli_update
hjabbot Oct 4, 2023
43d74ca
Incrementing version number
hjabbot Oct 4, 2023
954d6b4
Add in total traveltime and fuel properties to route output
gecoombs Oct 5, 2023
417a33b
Amending file creation
hjabbot Oct 5, 2023
2e4e191
Merge pull request #231 from antarctica/geojson_route_properties
gecoombs Oct 6, 2023
0a6b647
Skip over pruning excluded zones if not in agg cellbox
hjabbot Oct 6, 2023
f728478
Merge branch '0.3.x' of github.com:antarctica/PolarRoute into cli_update
hjabbot Oct 10, 2023
fa24ace
Increment version number
hjabbot Oct 10, 2023
39ab9bf
Merge pull request #232 from antarctica/cli_update
hjabbot Oct 10, 2023
a06a25f
updating references to cartographi to meshiphi
SamuelHall700 Oct 17, 2023
71bb0c0
updating version number
SamuelHall700 Oct 17, 2023
7dc33b3
updating more references to CartograPhi
SamuelHall700 Oct 18, 2023
88ba024
moving pull request template to correct place
SamuelHall700 Oct 18, 2023
6acf803
Merge pull request #233 from antarctica/MeshiPhi_rename
SamuelHall700 Oct 24, 2023
b89c9ca
Remove broken link
gecoombs Oct 31, 2023
526b936
Modify out of date docs
gecoombs Oct 31, 2023
ef7a234
Rebuild html docs
gecoombs Oct 31, 2023
57ffc33
Minor change to docs
gecoombs Nov 22, 2023
ab55e6c
Merge pull request #234 from antarctica/0.3.x
gecoombs Nov 28, 2023
3bcb814
[#235] Fix smoothing error with multiple source waypoints
gecoombs Nov 30, 2023
28eab6e
Increment version number
gecoombs Nov 30, 2023
f588787
Merge pull request #236 from antarctica/source_waypoint_error
gecoombs Nov 30, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ TestingNotebook.ipynb
*.output.*json
setup.cfg
pip.sh
datastore
./datastore/*
datastore/*
configs/*
Expand Down
2 changes: 1 addition & 1 deletion docs/html/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: ce4e0f8520efa054677bcf5ff36a7f0f
config: e5ba9cc97cc24cfb59e2b851b40042ab
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file removed docs/html/.doctrees/environment.pickle
Binary file not shown.
Binary file removed docs/html/.doctrees/index.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed docs/html/.doctrees/sections/Examples.doctree
Binary file not shown.
Binary file removed docs/html/.doctrees/sections/Installation.doctree
Binary file not shown.
Binary file removed docs/html/.doctrees/sections/Outputs.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed docs/html/_images/DataloaderUML.png
Binary file not shown.
Binary file removed docs/html/_images/FlowDiagram_MeshGraph.png
Binary file not shown.
Binary file modified docs/html/_images/PolarRoute_CodeFlowDiagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/html/_images/build-env-mesh.drawio.png
Binary file not shown.
Binary file removed docs/html/_images/cellbox_json.png
Binary file not shown.
Binary file not shown.
Binary file removed docs/html/_images/mesh-construct-UML.drawio.png
Binary file not shown.
Binary file removed docs/html/_images/neighbour_graph_json.png
Binary file not shown.
12 changes: 6 additions & 6 deletions docs/html/_sources/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ Welcome to the PolarRoute Manual Pages
======================================

PolarRoute is a tool for the optimisation of routes for maritime vehicles travelling in polar waters.
This software package has been developed by the **British Antarctic Survey** (BAS), primarily
for the optimisation of polar routes for the BAS research vessel RRS Sir David Attenborough,
though it is applicable to any vessel (e.g. AUVs). The software is written in Python and is open source.
It is an extension of `MeshiPhi <https://github.com/antarctica/MeshiPhi>`_; a package designed to
discretise the world from heterogeneous data sources (follow link for more details and docs).
This software package has been developed by the **British Antarctic Survey** (BAS), primarily for the
optimisation of polar routes for the BAS research vessel RRS Sir David Attenborough, though it is applicable
to any vessel (e.g. AUVs). The software is written in Python and is open source.

For more information on the project, please visit the `PolarRoute website <https://www.bas.ac.uk/project/autonomous-marine-operations-planning/>`_
and follow our `GitHub repository <https://github.com/antarctica/PolarRoute>`_.
Expand All @@ -25,10 +27,8 @@ Contents:
./sections/Command_line_interface
./sections/Configuration/Configuration_overview
./sections/Outputs
./sections/Dataloaders/overview
./sections/Mesh_Construction/Mesh_construction_overview
./sections/Vehicle_specifics
./sections/Route_optimisation
./sections/Route_calculation
./sections/Route_optimisation
./sections/Examples

37 changes: 37 additions & 0 deletions docs/html/_sources/sections/Code_overview.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
**********
Background
**********

Code Overview
#############

The PolarRoute package provides an automated route-planning method for use by an ice-strengthened vessel operating in the polar regions. The long-distance route planning approach builds on the method developed for underwater vehicles reported in Fox et al (2021). We start with the same grid-based route construction approach to obtain routes that satisfy constraints on the performance of the ship in ice. We then apply a novel route-smoothing method to the resulting routes, shortening the grid-based routes and ensure that routes follow great circle arcs where possible. This two-stage process efficiently generates routes that follow standard navigation solutions in open water and optimise vessel performance in and around areas dominated by sea ice. While we have focussed on navigation in and around polar ice, our methods are also applicable to shipping in a broader context (e.g.: commercial shipping) where route-planning must be responsive to changing local and weather conditions.


Code Structure
##############
The aim of this manual is to provide the user with all the tools that they need to run the software for a set of examples. We also hope that the background information supplied for each section allows the user to understand the methods used throughout this software package.

The PolarRoute package can be separated into the four main sections shown in the Figure below:

.. figure:: ./Figures/FlowDiagram_Overview.png
:align: center
:width: 700

*Overview figure outlining the stages in planning a route with PolarRoute. Generation of the initial environmental mesh is performed by the MeshiPhi package.*

The separate stages can be broken down into:

1. :ref:`Vessel Performance <vessel-performance>` - Application of vehicle specific features applied to the discrete mesh. In this section we will supply the user with the knowledge of how vehicle specific features are applied to the discrete mesh or with variables applied to the computational graph of the mesh.
2. :ref:`Route Planner` - Generating grid-based dijkstra paths and data constrained path smoothing from the gridded solutions - In this section we will give the user the background to constructing paths between user defined waypoints that minimise a specific objective function (e.g. travel time, fuel). Once the gridded Dijkstra paths are formulated we outline a smoothing based procedure that uses the data information to generate non-gridded improved route paths.

.. figure:: ./Figures/PolarRoute_CodeFlowDiagram.png
:align: center
:width: 700

*Overview figure outlining the Input/Output of all sections of the Route Planning pipeline*

Each stage of this pipeline makes use of a configuration file, found in the :ref:`Configuration Overview` section of the documentation
and produces an output file, the form of which can be found in the :ref:`outputs` section of this document.

In addition to the main section of the codebase we have also developed a series of plotting classes that allows the user to generate interactive maps and static figures for the Mesh Features and Route Paths. These can be found in the `Plotting` section later in the manual.
143 changes: 143 additions & 0 deletions docs/html/_sources/sections/Command_line_interface.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
###############################
Command Line Interface
###############################

The PolarRoute package provides 4 CLI entry points, intended to be used in succession to plan a route through a digital environment.

.. figure:: ./Figures/PolarRoute_CLI.png
:align: center
:width: 700

*Overview figure of the Command Line Interface entry points of PolarRoute*

^^^^^^^^^^^
add_vehicle
^^^^^^^^^^^
The *add_vehicle* command allows vehicle specific simulations to be performed on the digital environment. This vehicle specific
information is then encoded into the digital environment file.

::

add_vehicle <vessel_config.json> <mesh.json>

positional arguments:

::

vessel_config : A configuration file detailing the vessel to be simulated in the digital environment.
mesh : A digital environment file.

The format for the required *<vessel.json>* file can be found in the :ref:`configuration - vessel performance modeller` section of the documentation.
The required *<mesh.json>* file can be created using the *create_mesh* command from the `MeshiPhi <https://github.com/antarctica/MeshiPhi>`_ package.

optional arguments are

::

-v (verbose logging)
-o <output location> (set output location for mesh)

The format of the return Vessel_Mesh.json file is explain in :ref:`the vessel_mesh.json file` section of the documentation.

^^^^^^^^^^^^^^^
optimise_routes
^^^^^^^^^^^^^^^
Optimal routes through a mesh can be calculated using the command:

::

optimise_routes <route_config.json> <vessel_mesh.json> <waypoints.csv>

positional parameters:

::

vessel_mesh : A digital environment file with added vessel specific simulations.
route_config : A configuration file detailing optimisation parameters to be used when route planning.
waypoints: A .csv file containing waypoints to be travelled between.


The format for the required *<route_config.json>* file can be found in the :ref:`configuration - route planning` section of the documentation.
The required *<vessel_mesh.json>* file can be generated using the :ref:`add_vehicle` command shown above.
The format for the required *<waypoints.csv>* file is as follows:

As table:

+------------------+---------------+---------------+---------+---------------+
| Name | Lat | Long | Source | Destination |
+==================+===============+===============+=========+===============+
| Halley | -75.26722 | -27.21694 | | X |
+------------------+---------------+---------------+---------+---------------+
| Rothera | -68.3892 | -95.2436 | | |
+------------------+---------------+---------------+---------+---------------+
| South Georgia | -54.87916667 | -37.26416667 | X | |
+------------------+---------------+---------------+---------+---------------+
| Falklands | -55.63472222 | -64.88 | | |
+------------------+---------------+---------------+---------+---------------+
| Elephant Island | -60.54722222 | -55.18138889 | | |
+------------------+---------------+---------------+---------+---------------+

As .csv:

::

Name,Lat,Long,Source,Destination
Halley,-75.26722,-27.21694,,X
Rothera,-68.3892,-95.2436,,
South Georgia,-54.87916667,-37.26416667,X,
Falklands,-55.63472222,-64.88,,
Elephant Island,-60.54722222,-55.18138889,,

Additional waypoints may be added by extending the '<waypoints.csv>' file. Which waypoints are navigated between is determined by
added a **X** in either the *Source* or *Destination* columns. When processed, the route planner will create routes from all
waypoints marked with an **X** in the source column to all waypoints marked with a **X** in the *destination* column.

optional arguments are

::

-v (verbose logging)
-o <output location> (set output location for mesh)
-p (output only the calculated path, not the entire mesh)
-d (output Dijkstra path as well as smoothed path)


The format of the returned *<route.json>* file is explained in :ref:`the route.json file` section of the documentation.

^^^^^^^^^^^^^^^
calculate_route
^^^^^^^^^^^^^^^
The cost of a user-defined route through a pre-generated mesh containing vehicle information can be calculated using the command:

::

calculate_route <vessel_mesh.json> <route>

positional parameters:

::

vessel_mesh : A digital environment file with added vessel specific simulations.
route : A route file containing waypoints on a user-defined path.

optional arguments:

::

-v : verbose logging
-o : output location

Running this command will calculate the cost of a route between a set of waypoints provided in either csv or geojson
format. The route is assumed to travel from waypoint to waypoint in the order they are given, following a rhumb line.
The format of the output *<route.json>* file is identical to that from the :ref:`optimise_routes` command.
This is explained in :ref:`the route.json file` section of the documentation. The time and fuel cost of the route will
also be logged out once the route file has been generated. If the user-defined route crosses a cell in the mesh that is
considered inaccessible to the vessel then a warning will be displayed and no route will be saved.

^^^^^^^^
Plotting
^^^^^^^^
Meshes produced at any stage in the route planning process can be visualised using the GeoPlot
library found at the relevant `GitHub page <https://github.com/antarctica/GeoPlot>`_. Meshes and routes can also be
plotted in other GIS software such as QGIS by exporting the mesh to a common format such as .geojson or .tif using
the export_mesh command described in the `MeshiPhi <https://github.com/antarctica/MeshiPhi>`_ docs.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
######################################
Configuration Overview
######################################

In this section we will outline the standard structure for a configuration file used in
all portions of the PolarRoute software package.

Each stage of the route-planning process is configured by a separate configuration file.
The configuration files are written in JSON, and are passed to each stage of the
route-planning process as command-line arguments or through a Python script.

Example configuration files are provided in the `config` directory.

Descriptions of the configuration options for the Vessel Performance Modelling can
be found in the :ref:`Configuration - Vessel Performance Modeller` section of the
documentation.

Descriptions of the configuration options for Route Planning can be found in the
:ref:`Configuration - Route Planning` section of the documentation.

.. toctree::
:maxdepth: 1

./Vessel_performance_config
./Route_planning_config
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Configuration - Route Planning
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
::

{
"Objective_Function": "traveltime",
"Path_Variables": [
"fuel",
"traveltime"
],
"WayPoints": "./WayPoints_org.csv",
"Source_Waypoints": ["LongPathStart"],
"End_Waypoints": [],
"Vector Names": ["uC","vC"],
"Zero_Currents": false,
"Variable_Speed": true,
"Time_unit": "days",
"Early_Stopping_Criterion": true,
"Save_Dijkstra_Graphs": false,
"Smooth Path":{
"Max Iteration Number":1000,
"Minimum Difference": 1e-3
}
}

above is a typical set of configuration parameters used for route planning where the variables are as follows:

* **objective_function** *(string)* : Defining the objective function to minimise for the construction of the mesh based Dijkstra routes. This variable can either be defined as 'traveltime' or 'fuel' .
* **path_variables** *(list<(string)>)* : A list of strings of the route variables to return in the output geojson.
* **waypoints_path** *(string)* : A filepath to a CSV containing the user defined waypoints with columns including: 'Name','Lat',"Long"
* **source_waypoints** *(list<(string)>)*: The source waypoints to define the routes from. The names in this list must be the same as names within the `waypoints_path` file. If left blank then routes will be determined from all waypoints.
* **end_waypoints** *(list<(string)>)* : The end waypoints to define the routes to. The names in this list must be the same as names within the `waypoints_path` file. If left blank then routes will be determined to all waypoints.
* **vector_names** *(list<(string)>)* : The definition of the horizontal and vertical components of the vector acting on the ship within each CellBox. These names must be within the 'cellboxes'.
* **zero_currents** *(bool)* : For development use only. Removes the effect of currents acting on the ship, setting all current vectors to zero.
* **Variable_Speed** *(bool)* : For development use only. Removes the effect of variable speed acting on the ship, ship speed set to max speed defined by 'Vessel':{'Speed':...}.
* **time_unit** *(string)* : The time unit to output the route path information. Currently only takes 'days', but will support 'hrs' in future releases.
* **early_stopping_criterion** *(bool)* : For development use only. Dijkstra early stopping criterion. For development use only if the full objective_function from each starting waypoint is required. Should be used in conjunction with `save_dijkstra_graphs`.
* **save_dijkstra_graphs** *(bool)* : For development use only. Saves the full dijkstra graph representing the objective_function value across all mesh cells.
* **Smooth Path**
* **max_iteration_number** *(int)* : For development use only. Maximum number of iterations in the path smoothing. For most paths convergence is met 100x earlier than this value.
* **minimum_difference** *(float)* : For development use only. Minimum difference between two path smoothing iterations before convergence is triggered

Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Configuration - Vessel Performance Modeller
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The Vessel configuration file provides all the necessary information about the vessel that will execute
the routes such that performance parameters (e.g. speed or fuel consumption) can be calculated by the
`VesselPerformanceModeller` class. A file of this structure is also used as a command line argument for
the 'add_vehicle' entry point.

::

{
"vessel_type": "SDA",
"max_speed": 26.5,
"unit": "km/hr",
"beam": 24.0,
"hull_type": "slender",
"force_limit": 96634.5,
"max_ice_conc": 80,
"min_depth": 10,
"max_wave": 3,
"excluded_zones": ["exclusion_zone"]
}

Above are a typical set of configuration parameters used for a vessel where the variables are as follows:

* **vessel_type** *(string)* : The specific vessel class to use for performance modelling.
* **max_speed** *(float)* : The maximum speed of the vessel in open water.
* **unit** *(string)* : The units of measurement for the speed of the vessel (currently only "km/hr" is supported).
* **beam** *(float)* : The beam (width) of the ship in metres.
* **hull_type** *(string)* : The hull profile of the ship (should be one of either "slender" or "blunt").
* **force_limit** *(float)* : The maximum allowed resistance force, specified in Newtons.
* **max_ice_conc** *(float)* : The maximum Sea Ice Concentration the vessel is able to travel through given as a percentage.
* **min_depth** *(float)* : The minimum depth of water the vessel is able to travel through in metres.
* **max_wave** *(float)* : The maximum significant wave height the vessel is able to travel through in metres.
* **excluded_zones** *(float)* : A list of of strings that name different boolean properties of a cell. Any cell with a value of True for any of the entered keys will be marked as unnavigable.

This file was deleted.

Loading