diff --git a/docs/html/_sources/sections/Examples.rst.txt b/docs/html/_sources/sections/Examples.rst.txt index da8a844c..2d9eb11e 100644 --- a/docs/html/_sources/sections/Examples.rst.txt +++ b/docs/html/_sources/sections/Examples.rst.txt @@ -71,7 +71,7 @@ in the MeshiPhi docs for more info on each source of data that PolarRoute curren Python Examples ############### -Route planning may also be done using a python terminal. In this case, the CLI is not required but the steps required for route planning +Route planning may also be done in a python interpreter. In this case, the CLI is not required but the steps required for route planning follow the same format - create a digital environment; simulated a vessel against it; optimise a route plan through the digital environment. To perform the steps detailed in this section, a mesh must first be generated using `MeshiPhi `_. @@ -84,7 +84,7 @@ Creating the digital environment. A configuration file is needed to initialise the **`Mesh`** object which forms the digital environment. This configuration file is of the same format used in the :ref:`create_mesh` CLI entry-point, and may either be loaded from a *json* file or constructed -within the python terminal. +within a python interpreter. Loading configuration from *json* file: :: @@ -95,10 +95,10 @@ Loading configuration from *json* file: config = json.load(f) -The digital environment **`Mesh`** object can then be initialised. This mesh object will be constructed using parameters in it -configuration file. This mesh object can be manipulated further, such as increasing its resolution through further -splitting, adding additional data sources or altering is configuration parameters. See `MeshiPhi `_ -docs for a more in-depth explanation. The digital environment **`Mesh`** object can then be cast to a json object and saved to a file. +The **EnvironmentMesh** object can then be initialised. This mesh object will be constructed using the parameters in its +configuration file. This mesh object can then be manipulated further, such as increasing its resolution through further +splitting, adding additional data sources or altering its configuration parameters. See `MeshiPhi `_ +docs for a more in-depth explanation. The **EnvironmentMesh** object can then be cast to a json object and saved to a file. :: from meshiphi.mesh_generation.mesh_builder import MeshBuilder @@ -121,9 +121,9 @@ docs for a more in-depth explanation. The digital environment **`Mesh`** object Simulating a Vessel in a Digital Environment ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Once a digital environment **EnvironmentMesh** object has been created with `MeshiPhi `_, a vessels performance when travelling within it may be simulated. The **VesselPerformanceModeller** +Once a digital environment **EnvironmentMesh** object has been created with `MeshiPhi `_, a vessel's performance when travelling within it may be simulated. The **VesselPerformanceModeller** object requires a digital environment in *json* format and vessel specific configuration parameters, also in *json* format. These may either -be loaded from a file, or created within the python terminal. +be loaded from a file, or created within any python interpreter. Loading mesh and vessel from *json* files: :: @@ -189,14 +189,14 @@ paths please see the Outputs section of the manual. Visualising Outputs ^^^^^^^^^^^^^^^^^^^ -The **`Mesh`** object can be visualised using the **`GeoPlot`** package, also developed by BAS. This package is not included in the distribution +The **EnvironmentMesh** object can be visualised using the **GeoPlot** package, also developed by BAS. This package is not included in the distribution of MeshiPhi, but can be installed using the following command: :: pip install bas_geoplot -**`GeoPlot`** can be used to visualise the **`Mesh`** object using the following code in an iPython notebook: +**GeoPlot** can be used to visualise the **Mesh** object using the following code in an iPython notebook or any python interpreter: :: diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js index a5d869e3..9a316a12 100644 --- a/docs/html/searchindex.js +++ b/docs/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "sections/Code_overview", "sections/Command_line_interface", "sections/Configuration/Configuration_overview", "sections/Configuration/Route_planning_config", "sections/Configuration/Vessel_performance_config", "sections/Examples", "sections/Installation", "sections/Outputs", "sections/Route_calculation", "sections/Route_optimisation", "sections/Vehicle_specifics"], "filenames": ["index.rst", "sections/Code_overview.rst", "sections/Command_line_interface.rst", "sections/Configuration/Configuration_overview.rst", "sections/Configuration/Route_planning_config.rst", "sections/Configuration/Vessel_performance_config.rst", "sections/Examples.rst", "sections/Installation.rst", "sections/Outputs.rst", "sections/Route_calculation.rst", "sections/Route_optimisation.rst", "sections/Vehicle_specifics.rst"], "titles": ["Welcome to the PolarRoute Manual Pages", "7. Background", "4. Command Line Interface", "5. Configuration Overview", "5.2. Configuration - Route Planning", "5.1. Configuration - Vessel Performance Modeller", "2. Command Line Interface Examples", "1. Installation", "6. Outputs - Data Types", "9. Methods - Route Calculation", "10. Methods - Route Planner", "8. Methods - Vessel Performance"], "terms": {"i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11], "tool": [0, 1], "optimis": [0, 1, 2], "rout": [0, 1, 2, 3, 5, 7], "maritim": 0, "vehicl": [0, 1, 2, 6, 8, 9, 10, 11], "travel": [0, 1, 2, 5, 6, 8, 9, 10], "polar": [0, 1, 7], "water": [0, 1, 5, 11], "It": [0, 2, 7, 8], "an": [1, 2, 3, 6, 7, 8, 10, 11], "extens": 8, "meshiphi": [0, 1, 2, 3, 6, 8], "packag": [0, 1, 2, 3, 6, 7, 10], "design": [0, 11], "discretis": 0, "world": [0, 6], "from": [0, 1, 2, 4, 6, 7, 8, 9, 10, 11], "heterogen": 0, "data": [0, 1, 2], "sourc": [0, 2, 4, 6, 7, 10], "follow": [0, 1, 2, 4, 5, 6, 8, 11], "link": 0, "more": [0, 6, 8, 10], "detail": [0, 2, 6, 11], "doc": [0, 2, 6, 8], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "softwar": [0, 1, 2, 3, 7], "ha": [0, 2, 6, 7, 8], "been": [0, 2, 6, 8], "develop": [0, 1, 4, 6, 7], "british": [0, 11], "antarct": [0, 11], "survei": [0, 11], "ba": [0, 6, 7], "primarili": 0, "research": [0, 11], "vessel": [0, 1, 2, 3, 4, 8, 9, 10], "rr": [0, 11], "sir": [0, 11], "david": [0, 11], "attenborough": [0, 11], "though": [], "applic": [0, 1], "ani": [0, 2, 5, 6, 8, 11], "e": [0, 1, 5, 6, 7, 10], "g": [0, 1, 5, 6, 10], "auv": 0, "The": [0, 1, 2, 3, 4, 5, 6, 7, 10, 11], "written": [0, 3], "python": [0, 3, 7, 10], "open": [0, 1, 5, 6, 8], "For": [0, 4, 6, 7, 10], "inform": [0, 1, 2, 4, 5, 6, 8, 9, 10], "project": [0, 6], "pleas": [0, 6], "visit": 0, "websit": 0, "our": [0, 1, 11], "github": [0, 7], "repositori": [0, 7], "codebas": [0, 1, 10], "ongo": 0, "yet": [0, 6], "complet": 0, "contact": 0, "content": 0, "background": 0, "code": [0, 6, 7, 9, 10], "overview": [0, 2, 8], "structur": [0, 3, 5, 6, 8], "instal": [0, 6], "gdal": 0, "ipython": 6, "notebook": 6, "simul": [0, 2], "digit": [0, 2], "environ": [0, 2, 7, 8, 11], "command": [0, 3, 5], "line": [0, 3, 5, 9], "interfac": [0, 11], "add_vehicl": [0, 5, 6], "optimise_rout": [0, 6], "calculate_rout": 0, "plot": [0, 1, 7], "configur": [0, 1, 2, 6, 8, 11], "perform": [0, 1, 2, 3, 6, 8, 9, 10], "model": [0, 2, 3, 8], "plan": [0, 1, 2, 3, 6, 8], "output": [0, 1, 2, 4, 7, 10], "type": [0, 1, 2, 9, 10, 11], "vessel_mesh": [0, 2, 6], "json": [0, 2, 3, 6, 10, 11], "file": [0, 1, 2, 3, 4, 5, 6, 9, 10, 11], "method": [0, 1, 6], "factori": 0, "abstract": 0, "ship": [0, 1, 4, 5, 6, 9], "sda": [0, 5, 8], "glider": 0, "slocum": 0, "calcul": [0, 2, 5, 6, 11], "planner": [0, 1, 2, 8], "modul": 0, "exampl": [0, 1, 2, 3, 8], "run": [1, 2, 6, 7, 8, 10], "1": [6, 8, 10], "antarctica": [6, 7], "process": [1, 2, 3, 6, 8, 10], "all": [1, 2, 3, 4, 5, 8, 9, 10, 11], "stage": [1, 2, 3, 6, 8, 10], "2": 6, "dijkstra": [1, 2, 4, 6, 10], "v": [2, 9, 10], "smooth": [1, 2, 4, 6], "path": [1, 2, 4, 6, 9, 10], "variat": [], "properti": [5, 8, 10], "we": [1, 3, 6, 7, 10], "present": [], "autom": 1, "us": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "ic": [1, 5, 8, 11], "strengthen": 1, "oper": [1, 7], "region": [1, 6, 10], "build": [1, 2], "underwat": [1, 11], "long": [1, 2, 4, 8, 10], "distanc": [1, 9, 10], "report": 1, "fox": 1, "et": 1, "al": 1, "2021": 1, "start": [1, 4, 6, 8, 9, 10], "same": [1, 4, 6, 10], "grid": 1, "base": [1, 4, 10, 11], "construct": [1, 2, 3, 4, 6, 8, 9, 10], "approach": 1, "obtain": 1, "satisfi": 1, "constraint": 1, "appli": [1, 8, 10], "novel": 1, "result": 1, "shorten": 1, "ensur": 1, "great": [1, 6], "circl": [1, 6], "arc": [1, 6], "where": [1, 4, 5, 8, 10], "possibl": 1, "two": [1, 4, 6, 8, 9, 10, 11], "effici": 1, "gener": [1, 2, 3, 6, 10], "standard": [1, 3, 8, 10], "navig": [1, 2], "solut": [1, 6], "around": [1, 6, 10], "area": [1, 6], "domin": 1, "sea": [1, 5, 11], "while": 1, "have": [1, 6, 8], "focuss": 1, "ar": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11], "also": [0, 1, 2, 5, 6, 7], "broader": 1, "context": 1, "commerci": 1, "must": [1, 4, 6], "respons": 1, "chang": 1, "local": 1, "weather": 1, "condit": 1, "outlin": [1, 3, 7, 10], "manual": [1, 6], "provid": [0, 1, 2, 3, 5, 6, 7], "user": [1, 2, 4, 6, 8, 9, 10], "thei": [1, 2], "need": [1, 6, 9], "set": [1, 2, 4, 5, 8], "hope": 1, "suppli": [1, 10, 11], "each": [1, 3, 4, 6, 8, 10, 11], "section": [1, 2, 3, 6, 7, 8, 9, 10], "allow": [1, 2, 5, 7, 10], "understand": 1, "throughout": 1, "toolkit": [], "can": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11], "separ": [1, 3, 8, 10], "four": 1, "main": 1, "shown": [1, 2], "figur": [1, 2], "below": [1, 7, 8, 10, 11], "routeplann": [6, 10], "broken": 1, "down": 1, "specif": [1, 2, 5, 6, 8, 11], "featur": [1, 6, 8, 10], "discret": [1, 8], "mesh": [0, 1, 2, 3, 4, 8, 9, 10, 11], "In": [1, 2, 3, 6, 7, 10], "knowledg": 1, "how": [1, 2, 6, 10], "variabl": [1, 4, 5, 9, 10], "comput": [1, 10], "graph": [1, 4, 10, 11], "constrain": 1, "give": [1, 2, 6, 9], "between": [1, 2, 4, 6, 8, 9, 10], "defin": [1, 2, 4, 6, 8, 9, 10, 11], "waypoint": [1, 2, 4, 6, 9, 10], "minimis": [1, 4], "object": [1, 4, 6, 8, 10, 11], "function": [0, 1, 4, 6, 7, 9, 10, 11], "time": [1, 2, 4, 8, 9, 10], "fuel": [1, 2, 4, 5, 6, 8, 9, 10, 11], "onc": [1, 2, 6, 8], "formul": 1, "procedur": 1, "non": [1, 6], "improv": 1, "input": [1, 6, 10, 11], "pipelin": 1, "make": [1, 8], "found": [1, 2, 3, 8], "document": [1, 2, 3], "produc": [1, 2, 11], "form": [1, 6, 8, 10], "which": [1, 2, 6, 8, 10, 11], "addit": [1, 2, 6, 8], "seri": [1, 10], "class": [1, 5, 8, 10, 11], "interact": [1, 6], "map": [1, 6, 11], "static": 1, "These": [1, 4, 6, 8, 10], "later": 1, "polarrout": [1, 2, 3, 6], "4": 6, "cli": [2, 6], "entri": [2, 5, 6, 8, 10], "point": [2, 5, 6, 8, 9], "intend": 2, "success": 2, "through": [2, 3, 5, 6, 9, 10], "encod": [2, 6, 8], "vessel_config": [2, 8, 11], "posit": [2, 8], "argument": [2, 3, 5], "A": [2, 4, 5, 6, 8, 10], "format": [2, 3, 6, 8, 9, 10, 11], "requir": [2, 4, 6, 7, 11], "creat": [0, 2, 8, 10], "create_mesh": [0, 6], "option": [0, 2, 3], "verbos": 2, "log": 2, "o": [2, 6], "locat": [2, 8, 10], "return": [2, 4, 9, 10, 11], "explain": 2, "optim": [2, 6, 10], "route_config": 2, "csv": [2, 4, 6, 8, 10], "paramet": [2, 4, 5, 6, 9, 10, 11], "ad": [2, 6], "when": [2, 6, 7, 8], "contain": [2, 4, 8, 9, 10, 11], "abov": [2, 4, 5, 6], "As": [2, 8], "tabl": 2, "name": [2, 4, 5, 8, 9, 10], "lat": [2, 4, 8, 10], "destin": 2, "hallei": [2, 8, 10], "75": [2, 8, 10], "26722": [2, 8, 10], "27": [2, 8, 10], "21694": [2, 8, 10], "x": [2, 9], "rothera": [2, 8, 10], "68": 2, "3892": 2, "95": 2, "2436": 2, "south": 2, "georgia": 2, "54": 2, "87916667": 2, "37": 2, "26416667": 2, "falkland": [2, 8, 10], "55": 2, "63472222": 2, "64": 2, "88": 2, "eleph": 2, "island": 2, "60": 2, "54722222": 2, "18138889": 2, "mai": [2, 6, 8], "extend": 2, "determin": [2, 4, 6, 9, 10, 11], "either": [2, 4, 5, 6, 10], "column": [2, 4, 8], "mark": [2, 5], "p": 2, "onli": [2, 4, 5, 7], "entir": 2, "d": 2, "well": 2, "cost": [2, 9, 10], "pre": [2, 7], "geojson": [2, 4, 8, 9, 10], "assum": [2, 7], "order": [2, 6, 9], "given": [2, 5, 8, 9, 10, 11], "rhumb": 2, "ident": 2, "out": [2, 6], "If": [2, 4, 6, 10], "cross": [2, 9], "cell": [2, 4, 5, 8, 9, 10, 11], "consid": [2, 8], "inaccess": [2, 6, 8, 11], "warn": 2, "displai": 2, "save": [2, 4, 6, 8], "visualis": [0, 2], "geoplot": [0, 2, 6], "librari": [2, 8], "relev": [8, 9, 11], "page": 6, "other": [2, 11], "gi": 2, "qgi": 2, "export": [2, 7], "common": [7, 11], "tif": 2, "export_mesh": 2, "portion": 3, "pass": [3, 6, 8], "script": 3, "config": [2, 3, 6, 7, 10, 11], "directori": [2, 3, 11], "descript": [3, 8], "objective_funct": [4, 10], "traveltim": [4, 6, 8, 9, 10], "path_vari": [4, 8], "waypoints_org": 4, "source_waypoint": 4, "longpathstart": 4, "end_waypoint": [4, 10], "vector": [4, 6, 9, 10], "uc": [4, 9], "vc": [4, 9], "zero_curr": 4, "fals": [4, 6, 10], "variable_spe": 4, "true": [4, 5, 11], "time_unit": 4, "dai": [4, 10, 11], "early_stopping_criterion": 4, "save_dijkstra_graph": 4, "max": [4, 11], "iter": 4, "number": 4, "1000": 4, "minimum": [4, 5, 11], "differ": [4, 5], "1e": 4, "3": [4, 5, 7, 11], "typic": [4, 5, 6], "string": [4, 5, 8, 10], "list": [4, 5, 8, 9, 10], "waypoints_path": 4, "filepath": 4, "includ": [4, 6, 7, 8, 9, 10, 11], "within": [4, 6, 9, 10, 11], "left": 4, "blank": 4, "end": [4, 8, 9, 10], "vector_nam": 4, "definit": [4, 8], "horizont": 4, "vertic": 4, "compon": [4, 9, 10], "act": [4, 8, 11], "cellbox": [4, 6, 8, 9, 10, 11], "bool": [4, 11], "remov": [4, 10, 11], "effect": 4, "current": [4, 5, 6, 9], "zero": 4, "speed": [4, 5, 6, 8, 9, 10, 11], "unit": [4, 5, 10], "take": [4, 8, 11], "support": [2, 4, 5, 6], "hr": [4, 5, 10], "futur": 4, "releas": 4, "earli": 4, "stop": 4, "criterion": 4, "full": [4, 8], "should": [4, 5, 8, 9, 10, 11], "conjunct": 4, "repres": [4, 6, 8], "valu": [4, 5, 8, 9, 10, 11], "across": [4, 10, 11], "max_iteration_numb": 4, "int": [4, 9, 10], "maximum": [4, 5, 11], "most": 4, "converg": 4, "met": 4, "100x": 4, "earlier": 4, "than": 4, "minimum_differ": 4, "float": [4, 5, 8, 9, 10, 11], "befor": 4, "trigger": 4, "necessari": [5, 7], "about": [5, 6, 8, 10], "execut": 5, "consumpt": [5, 6, 8, 11], "vesselperformancemodel": [5, 6, 8, 11], "vessel_typ": 5, "max_spe": 5, "26": [5, 8, 10], "5": [5, 8, 10], "km": [5, 10, 11], "beam": 5, "24": 5, "0": [5, 8, 9, 10], "hull_typ": 5, "slender": 5, "force_limit": 5, "96634": 5, "max_ice_conc": 5, "80": 5, "min_depth": 5, "10": [5, 7], "max_wav": 5, "excluded_zon": 5, "exclusion_zon": 5, "measur": 5, "width": 5, "metr": 5, "hull": 5, "profil": 5, "one": [5, 10, 11], "blunt": 5, "resist": [5, 8, 11], "forc": [5, 8, 10, 11], "specifi": 5, "newton": 5, "concentr": [5, 11], "abl": [5, 7], "percentag": [5, 11], "depth": [5, 6, 11], "signific": 5, "wave": 5, "height": 5, "boolean": [5, 8, 11], "enter": 5, "kei": [5, 9, 10], "unnavig": 5, "discuss": 6, "googl": 6, "colab": 6, "shortli": [], "step": [6, 7], "correspond": [], "first": 6, "version": 7, "9": 7, "you": [6, 7], "don": [], "t": 10, "work": [7, 11], "suggest": [], "anaconda": [], "distribut": 6, "http": [7, 8], "www": [], "com": 7, "product": 6, "instruct": 7, "git": 7, "clone": 7, "setup": [], "py": [], "pip": [6, 7], "tiff": 7, "imag": 7, "so": 7, "would": [6, 8], "recommend": 7, "steer": [], "clear": [], "trivial": 7, "problem": 7, "With": 7, "said": 7, "variou": 7, "system": 7, "higher": 7, "virtual": 7, "pipwin": 7, "easi": 7, "binari": 7, "fiona": 7, "ubuntu": 7, "debian": 7, "sudo": 7, "add": [2, 6, 7], "apt": 7, "ppa": 7, "ubuntugi": 7, "get": [6, 10], "updat": [7, 10, 11], "bin": 7, "libgdal": 7, "dev": 7, "cplus_include_path": 7, "usr": 7, "c_include_path": 7, "fedora": 7, "dnf": 7, "devel": 7, "homebrew": 7, "brew": 7, "head": 7, "environment": [1, 3, 6, 8, 10, 11], "transform": 8, "stream": [], "import": [6, 8], "polar_rout": [6, 8, 9, 10, 11], "vessel_perform": [6, 8, 11], "vessel_performance_model": [6, 8, 11], "r": [2, 6, 8], "f": [6, 8], "load": [6, 8, 9, 10, 11], "vpm": 8, "mesh_json": [6, 8], "model_access": [6, 8, 11], "model_perform": [6, 8, 11], "vessel_mesh_json": 8, "to_json": [6, 8, 10, 11], "To": [6, 8], "rang": 8, "attribut": [8, 10, 11], "elev": [6, 8], "avail": [2, 6, 7, 8], "via": 8, "data_load": [], "gebco": 8, "bsose_depth": 8, "sic": [6, 8, 10, 11], "amsr": 8, "bsose_s": 8, "baltic_s": 8, "icenet": 8, "modi": 8, "thick": [8, 11], "densiti": [8, 11], "u10": 8, "v10": 8, "era5_wind": 8, "see": [6, 8, 10], "dataload": [6, 8], "still": 8, "without": 8, "assign": 8, "default": [8, 10], "miss": 8, "after": [6, 8], "new": [2, 8], "its": [6, 8, 10, 11], "neighbour": [8, 10, 11], "rate": [8, 11], "whether": [7, 8], "reason": 8, "land": [6, 8, 11], "shallow": [8, 11], "enough": 8, "ext_ic": [8, 11], "total": [8, 10], "encount": 8, "due": [8, 11], "wind": [6, 8], "rel": 8, "appar": 8, "angl": 8, "dure": [6, 8], "piplin": 8, "case": [6, 8, 9, 10], "ot": [], "n": 8, "52": [8, 10], "6347222222": [8, 10], "index": [8, 9, 10], "row": 8, "etc": 8, "latitud": [8, 10], "wgs84": 8, "longitud": [8, 10], "origin": [0, 8], "wa": [0, 8], "convert": 8, "panda": 8, "datafram": [6, 8, 9, 10], "waypoints_datafram": 8, "pd": [6, 8, 10], "featurecollect": [8, 10], "geometri": [8, 10], "linestr": [8, 10], "coordin": [8, 9, 10], "07960297382266": [8, 10], "619238882768894": [8, 10], "03531938671648596": [8, 10], "050310986633880575": [8, 10], "9648858923588642": [8, 10], "3745886107069096": [8, 10], "2017": [8, 10], "01": [8, 10], "00": [8, 10], "50": [8, 10], "51": [8, 10], "595036800": [8, 10], "12": [8, 10], "869276800": [8, 10], "infor": [], "org": 8, "meta": 8, "cumul": 8, "along": [8, 9, 10], "utc": 8, "datetim": [8, 10], "start_tim": 8, "describ": [2, 6, 9, 10], "evalu": 9, "previou": [9, 10], "route_calc": 9, "case_from_angl": 9, "direct": [2, 9, 10], "associ": [9, 10], "ndarrai": 9, "select": [9, 10], "find_intersect": 9, "df": 9, "find": [6, 9, 11], "param": [9, 11], "info": [6, 8, 9, 10], "geodatafram": 9, "dictionari": [6, 9, 10, 11], "id": [9, 10], "track_point": 9, "dict": [9, 10, 11], "load_mesh": 9, "mesh_fil": 9, "str": 9, "load_rout": 9, "route_fil": [2, 9], "from_wp": 9, "to_wp": 9, "order_track": 9, "track": 9, "user_track": 9, "user_path": 9, "traveltime_dist": 9, "wp": [9, 10], "cp": [9, 10], "vector_x": 9, "vector_i": 9, "segment": [9, 10], "y": 9, "arrai": 9, "traveltime_in_cel": 9, "xdist": [9, 10], "ydist": [9, 10], "u": [9, 10], "": [9, 10], "insid": 9, "respect": 10, "route_plann": [6, 10], "cost_func": 10, "newtoniandist": 10, "compute_rout": [6, 10], "compute_smoothed_rout": [6, 10], "independ": 10, "interest": 10, "_dijkstra": 10, "wpt_name": 10, "whole": 10, "domain": 10, "_dijkstra_path": 10, "start_waypoint": 10, "hidden": 10, "intern": 10, "_neighbour_cost": 10, "minimum_objective_index": 10, "edg": 10, "_objective_valu": 10, "source_graph": 10, "neighbour_graph": 10, "append": [6, 10], "blocked_metr": 10, "debug": 10, "previous": 10, "_initialise_dijkstra_graph": 10, "dijkstra_graph": 10, "initialis": [6, 10, 11], "dijkstra_graph_dict": 10, "compris": 10, "_initialise_dijkstra_rout": 10, "dijkstra_rout": 10, "ap": 10, "find_edg": 10, "adjac": 10, "pair": 10, "_json_str": 10, "implement": 10, "unsmooth": 10, "newtoniancurv": 10, "go": 10, "crossing_smooth": 10, "pathvalu": 10, "intersect": 10, "path_requested_vari": 10, "cumsum": 10, "cell_index": 10, "none": 10, "unit_shipspe": 10, "knot": 10, "unit_tim": 10, "min": 10, "_case_from_angl": 10, "_traveltime_in_cel": 10, "_unit_spe": 10, "val": 10, "m": [10, 11], "_unit_tim": 10, "_waypoint_correct": 10, "correct": 10, "usag": [10, 11], "request": 10, "transit": 10, "tupl": 10, "segment_valu": 10, "connect": 10, "adjacent_pair": 10, "relat": [10, 11], "waypoint_correct": 10, "_dist_around_glob": 10, "start_point": 10, "crossing_point": 10, "globe": 10, "degre": 10, "cell_a": 10, "cell_b": 10, "characterist": [6, 10, 11], "_find_edg": 10, "travers": 11, "particular": 11, "what": 11, "access": [6, 10, 11], "b": 11, "c": 11, "weddel": 11, "latter": 11, "quantiti": 11, "deriv": [6, 11], "former": 11, "uml": 11, "diagram": 11, "subsystem": 11, "env_mesh_json": 11, "both": 11, "modifi": 11, "__init__": 11, "accordingli": 11, "represent": [6, 11], "j_mesh": 11, "vessel_factori": 11, "vesselfactori": 11, "classmethod": 11, "get_vessel": 11, "instanc": 11, "abstract_vessel": 11, "abstractvessel": 11, "aggregatedcellbox": 11, "being": 11, "access_valu": 11, "performance_valu": 11, "abstract_ship": 11, "abstractship": 11, "extreme_ic": 11, "criteria": 11, "invert_resist": 11, "keep": 11, "threshold": 11, "averag": 11, "kg": 11, "safe": 11, "h": 11, "new_spe": 11, "model_fuel": 11, "model_resist": 11, "model_spe": 11, "abstract_glid": 11, "abstractglid": 11, "level": 11, "too": 11, "slocumglid": 11, "g2": 11, "model_batteri": 11, "batteri": 11, "ah": 11, "done": 6, "termin": 6, "against": 6, "vesselperform": 6, "vp": 6, "cast": 6, "dump": 6, "now": 6, "depend": [0, 6, 7], "further": 6, "reduc": 6, "compute_smooth_rout": 6, "replac": 6, "rp": 6, "aim": 1, "initi": 1, "environmentmesh": 6, "consol": 6, "leverag": [], "resimulate_vehicl": 0, "extract_rout": 0, "multipl": [2, 6], "again": [2, 6], "exist": [2, 7], "easili": 2, "individu": 2, "extract": [2, 6], "larger": 2, "automat": 2, "filenam": 2, "gpx": 2, "to_charttracker_csv": 10, "route_nam": 10, "polarroutepath": 10, "chart": 10, "tracker": 10, "_adjust_waypoint": 10, "max_dist": 10, "move": 10, "closest": 10, "isn": 10, "alreadi": 10, "up": 10, "flexibl": 10, "_mesh_boundary_polygon": 10, "polygon": 10, "boundari": 10, "howev": [0, 6], "empti": 0, "synthet": 0, "real": 0, "collect": 2, "parsabl": 2, "There": 2, "environment_config": 2, "grf_exampl": [2, 6], "plot_mesh": [2, 6], "commonli": 2, "arrow": 2, "summaris": 6, "basic": 6, "At": 6, "mesh_config_fil": 6, "mesh_output_fil": 6, "vessel_config_fil": 6, "vessel_output_fil": 6, "route_config_fil": 6, "waypoints_fil": 6, "route_output_fil": 6, "any_output_fil": 6, "output_fil": 6, "fulfil": 6, "successfulli": 6, "like": 6, "try": 6, "here": 6, "some": 6, "simpli": 6, "zip": 6, "archiv": 6, "appropri": 6, "call": 6, "waypoints_exampl": 6, "sever": 6, "guid": 6, "creation": 6, "show": 6, "someon": 6, "simpl": 6, "sinc": 6, "expect": 6, "straight": 6, "seen": 6, "mercat": 6, "uniform": 6, "gaussian": 6, "random": 6, "field": 6, "somewhat": 6, "realist": 6, "bathymetri": 6, "walk": 6, "everi": 6, "involv": 6, "coast": 6, "public": 6, "avoid": 6, "violat": 6, "share": 6, "polici": 6, "instead": 6, "those": 6, "download": [6, 7], "them": 6, "read": 6, "manipul": 6, "increas": 6, "resolut": 6, "split": 6, "alter": 6, "explan": 6, "mesh_gener": 6, "mesh_build": 6, "meshbuild": 6, "cg": 6, "build_environmental_mesh": 6, "w": 6, "indent": 6, "snippet": 6, "back": 6, "just": 6, "next": 6, "route_mesh": 6, "bas_geoplot": 6, "mp": 6, "titl": 6, "grf": 6, "meshgrid": 6, "predefin": 6, "cx": 6, "8": 7, "pypi": 7, "purpos": 7, "want": 7, "edit": 7, "copi": 7, "skip": 7, "alwai": 7, "downstream": 8, "visual_": 8}, "objects": {"polar_route": [[10, 0, 0, "-", "crossing"], [10, 0, 0, "-", "crossing_smoothing"], [9, 0, 0, "-", "route_calc"], [10, 0, 0, "-", "route_planner"]], "polar_route.crossing_smoothing": [[10, 1, 1, "", "PathValues"], [10, 4, 1, "", "_dist_around_globe"], [10, 1, 1, "", "find_edge"]], "polar_route.crossing_smoothing.PathValues": [[10, 2, 1, "", "_case_from_angle"], [10, 2, 1, "", "_traveltime_in_cell"], [10, 2, 1, "", "_unit_speed"], [10, 2, 1, "", "_unit_time"], [10, 2, 1, "", "_waypoint_correction"], [10, 2, 1, "", "objective_function"], [10, 3, 1, "", "path_requested_variables"], [10, 3, 1, "", "unit_shipspeed"], [10, 3, 1, "", "unit_time"]], "polar_route.crossing_smoothing.find_edge": [[10, 2, 1, "", "_find_edge"]], "polar_route.route_calc": [[9, 4, 1, "", "case_from_angle"], [9, 4, 1, "", "find_intersections"], [9, 4, 1, "", "load_mesh"], [9, 4, 1, "", "load_route"], [9, 4, 1, "", "order_track"], [9, 4, 1, "", "route_calc"], [9, 4, 1, "", "traveltime_distance"], [9, 4, 1, "", "traveltime_in_cell"]], "polar_route.route_planner": [[10, 1, 1, "", "RoutePlanner"], [10, 4, 1, "", "_adjust_waypoints"], [10, 4, 1, "", "_initialise_dijkstra_graph"], [10, 4, 1, "", "_initialise_dijkstra_route"], [10, 4, 1, "", "_json_str"], [10, 4, 1, "", "_mesh_boundary_polygon"]], "polar_route.route_planner.RoutePlanner": [[10, 2, 1, "", "_dijkstra"], [10, 2, 1, "", "_dijkstra_paths"], [10, 2, 1, "", "_neighbour_cost"], [10, 2, 1, "", "_objective_value"], [10, 2, 1, "", "compute_routes"], [10, 2, 1, "", "compute_smoothed_routes"], [10, 3, 1, "", "paths"], [10, 2, 1, "", "to_charttracker_csv"], [10, 2, 1, "", "to_json"], [10, 3, 1, "", "waypoints"]], "polar_route.vessel_performance": [[11, 0, 0, "-", "abstract_vessel"], [11, 0, 0, "-", "vessel_factory"], [11, 0, 0, "-", "vessel_performance_modeller"]], "polar_route.vessel_performance.abstract_vessel": [[11, 1, 1, "", "AbstractVessel"]], "polar_route.vessel_performance.abstract_vessel.AbstractVessel": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "model_accessibility"], [11, 2, 1, "", "model_performance"]], "polar_route.vessel_performance.vessel_factory": [[11, 1, 1, "", "VesselFactory"]], "polar_route.vessel_performance.vessel_factory.VesselFactory": [[11, 2, 1, "", "get_vessel"]], "polar_route.vessel_performance.vessel_performance_modeller": [[11, 1, 1, "", "VesselPerformanceModeller"]], "polar_route.vessel_performance.vessel_performance_modeller.VesselPerformanceModeller": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "model_accessibility"], [11, 2, 1, "", "model_performance"], [11, 2, 1, "", "to_json"]], "polar_route.vessel_performance.vessels": [[11, 0, 0, "-", "SDA"], [11, 0, 0, "-", "abstract_glider"], [11, 0, 0, "-", "abstract_ship"], [11, 0, 0, "-", "slocum"]], "polar_route.vessel_performance.vessels.SDA": [[11, 1, 1, "", "SDA"]], "polar_route.vessel_performance.vessels.SDA.SDA": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "invert_resistance"], [11, 2, 1, "", "model_fuel"], [11, 2, 1, "", "model_resistance"], [11, 2, 1, "", "model_speed"]], "polar_route.vessel_performance.vessels.abstract_glider": [[11, 1, 1, "", "AbstractGlider"]], "polar_route.vessel_performance.vessels.abstract_glider.AbstractGlider": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "extreme_ice"], [11, 2, 1, "", "land"], [11, 2, 1, "", "model_accessibility"], [11, 2, 1, "", "model_performance"], [11, 2, 1, "", "shallow"]], "polar_route.vessel_performance.vessels.abstract_ship": [[11, 1, 1, "", "AbstractShip"]], "polar_route.vessel_performance.vessels.abstract_ship.AbstractShip": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "extreme_ice"], [11, 2, 1, "", "land"], [11, 2, 1, "", "model_accessibility"], [11, 2, 1, "", "model_performance"]], "polar_route.vessel_performance.vessels.slocum": [[11, 1, 1, "", "SlocumGlider"]], "polar_route.vessel_performance.vessels.slocum.SlocumGlider": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "model_battery"], [11, 2, 1, "", "model_speed"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"]}, "titleterms": {"welcom": 0, "polarrout": [0, 7], "manual": 0, "page": 0, "background": 1, "code": 1, "overview": [1, 3, 9, 10, 11], "structur": 1, "command": [2, 6], "line": [2, 6], "interfac": [2, 6], "add_vehicl": 2, "optimise_rout": 2, "calculate_rout": 2, "plot": 2, "configur": [3, 4, 5], "rout": [4, 6, 8, 9, 10], "plan": 4, "vessel": [5, 6, 11], "perform": [5, 11], "model": [5, 11], "exampl": 6, "run": [], "1": [], "antarctica": [], "process": [], "all": [], "stage": [], "planner": 10, "2": [], "dijkstra": [], "v": [], "smooth": 10, "path": 8, "variat": [], "vehicl": [], "properti": [], "instal": 7, "gdal": 7, "window": 7, "linux": 7, "maco": 7, "output": [6, 8], "data": [6, 8], "type": 8, "The": 8, "vessel_mesh": 8, "json": 8, "file": 8, "waypoint": 8, "method": [9, 10, 11], "calcul": 9, "optimis": [6, 10], "modul": 10, "cross": 10, "point": 10, "factori": 11, "abstract": 11, "ship": 11, "sda": 11, "glider": 11, "slocum": 11, "python": 6, "ipython": [], "notebook": [], "simul": 6, "digit": 6, "environ": 6, "resimulate_vehicl": 2, "extract_rout": 2, "create_mesh": 2, "empti": 6, "mesh": 6, "synthet": 6, "real": 6, "creat": 6, "visualis": 6, "geoplot": 7, "option": 7}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 57}, "alltitles": {"Welcome to the PolarRoute Manual Pages": [[0, "welcome-to-the-polarroute-manual-pages"]], "Background": [[1, "background"]], "Code Overview": [[1, "code-overview"]], "Code Structure": [[1, "code-structure"]], "Command Line Interface": [[2, "command-line-interface"]], "create_mesh": [[2, "create-mesh"]], "add_vehicle": [[2, "add-vehicle"]], "resimulate_vehicle": [[2, "resimulate-vehicle"]], "optimise_routes": [[2, "optimise-routes"]], "calculate_route": [[2, "calculate-route"]], "extract_routes": [[2, "extract-routes"]], "Plotting": [[2, "plotting"]], "Configuration Overview": [[3, "configuration-overview"]], "Configuration - Route Planning": [[4, "configuration-route-planning"]], "Configuration - Vessel Performance Modeller": [[5, "configuration-vessel-performance-modeller"]], "Command Line Interface Examples": [[6, "command-line-interface-examples"]], "Empty Mesh Example": [[6, "empty-mesh-example"]], "Synthetic Data Example": [[6, "synthetic-data-example"]], "Real Data Example": [[6, "real-data-example"]], "Python Examples": [[6, "python-examples"]], "Creating the digital environment.": [[6, "creating-the-digital-environment"]], "Simulating a Vessel in a Digital Environment": [[6, "simulating-a-vessel-in-a-digital-environment"]], "Route Optimisation": [[6, "route-optimisation"]], "Visualising Outputs": [[6, "visualising-outputs"]], "Installation": [[7, "installation"]], "Installing PolarRoute": [[7, "installing-polarroute"]], "Installing GeoPlot": [[7, "installing-geoplot"]], "Installing GDAL (Optional)": [[7, "installing-gdal-optional"]], "Windows": [[7, "windows"]], "Linux/MacOS": [[7, "linux-macos"]], "Outputs - Data Types": [[8, "outputs-data-types"]], "The Vessel_mesh.json file": [[8, "the-vessel-mesh-json-file"]], "The Route.json file": [[8, "the-route-json-file"]], "waypoints": [[8, "waypoints"]], "paths": [[8, "paths"]], "Methods - Route Calculation": [[9, "methods-route-calculation"]], "Route Calculation Overview": [[9, "route-calculation-overview"]], "Route Calculation": [[9, "module-polar_route.route_calc"]], "Methods - Route Planner": [[10, "methods-route-planner"]], "Route Optimisation Overview": [[10, "route-optimisation-overview"]], "Route Optimisation Modules": [[10, "route-optimisation-modules"]], "Route Planner": [[10, "module-polar_route.route_planner"]], "Crossing Points": [[10, "module-polar_route.crossing"]], "Crossing Point Smoothing": [[10, "module-polar_route.crossing_smoothing"]], "Methods - Vessel Performance": [[11, "methods-vessel-performance"]], "Vessel Overview": [[11, "vessel-overview"]], "Vessel Performance Modeller": [[11, "module-polar_route.vessel_performance.vessel_performance_modeller"]], "Vessel Factory": [[11, "module-polar_route.vessel_performance.vessel_factory"]], "Abstract Vessel": [[11, "module-polar_route.vessel_performance.abstract_vessel"]], "Abstract Ship": [[11, "module-polar_route.vessel_performance.vessels.abstract_ship"]], "SDA": [[11, "module-polar_route.vessel_performance.vessels.SDA"]], "Abstract Glider": [[11, "module-polar_route.vessel_performance.vessels.abstract_glider"]], "Slocum Glider": [[11, "module-polar_route.vessel_performance.vessels.slocum"]]}, "indexentries": {"case_from_angle() (in module polar_route.route_calc)": [[9, "polar_route.route_calc.case_from_angle"]], "find_intersections() (in module polar_route.route_calc)": [[9, "polar_route.route_calc.find_intersections"]], "load_mesh() (in module polar_route.route_calc)": [[9, "polar_route.route_calc.load_mesh"]], "load_route() (in module polar_route.route_calc)": [[9, "polar_route.route_calc.load_route"]], "module": [[9, "module-polar_route.route_calc"], [10, "module-polar_route.crossing"], [10, "module-polar_route.crossing_smoothing"], [10, "module-polar_route.route_planner"], [11, "module-polar_route.vessel_performance.abstract_vessel"], [11, "module-polar_route.vessel_performance.vessel_factory"], [11, "module-polar_route.vessel_performance.vessel_performance_modeller"], [11, "module-polar_route.vessel_performance.vessels.SDA"], [11, "module-polar_route.vessel_performance.vessels.abstract_glider"], [11, "module-polar_route.vessel_performance.vessels.abstract_ship"], [11, "module-polar_route.vessel_performance.vessels.slocum"]], "order_track() (in module polar_route.route_calc)": [[9, "polar_route.route_calc.order_track"]], "polar_route.route_calc": [[9, "module-polar_route.route_calc"]], "route_calc() (in module polar_route.route_calc)": [[9, "polar_route.route_calc.route_calc"]], "traveltime_distance() (in module polar_route.route_calc)": [[9, "polar_route.route_calc.traveltime_distance"]], "traveltime_in_cell() (in module polar_route.route_calc)": [[9, "polar_route.route_calc.traveltime_in_cell"]], "pathvalues (class in polar_route.crossing_smoothing)": [[10, "polar_route.crossing_smoothing.PathValues"]], "routeplanner (class in polar_route.route_planner)": [[10, "polar_route.route_planner.RoutePlanner"]], "_adjust_waypoints() (in module polar_route.route_planner)": [[10, "polar_route.route_planner._adjust_waypoints"]], "_case_from_angle() (polar_route.crossing_smoothing.pathvalues method)": [[10, "polar_route.crossing_smoothing.PathValues._case_from_angle"]], "_dijkstra() (polar_route.route_planner.routeplanner method)": [[10, "polar_route.route_planner.RoutePlanner._dijkstra"]], "_dijkstra_paths() (polar_route.route_planner.routeplanner method)": [[10, "polar_route.route_planner.RoutePlanner._dijkstra_paths"]], "_dist_around_globe() (in module polar_route.crossing_smoothing)": [[10, "polar_route.crossing_smoothing._dist_around_globe"]], "_find_edge() (polar_route.crossing_smoothing.find_edge method)": [[10, "polar_route.crossing_smoothing.find_edge._find_edge"]], "_initialise_dijkstra_graph() (in module polar_route.route_planner)": [[10, "polar_route.route_planner._initialise_dijkstra_graph"]], "_initialise_dijkstra_route() (in module polar_route.route_planner)": [[10, "polar_route.route_planner._initialise_dijkstra_route"]], "_json_str() (in module polar_route.route_planner)": [[10, "polar_route.route_planner._json_str"]], "_mesh_boundary_polygon() (in module polar_route.route_planner)": [[10, "polar_route.route_planner._mesh_boundary_polygon"]], "_neighbour_cost() (polar_route.route_planner.routeplanner method)": [[10, "polar_route.route_planner.RoutePlanner._neighbour_cost"]], "_objective_value() (polar_route.route_planner.routeplanner method)": [[10, "polar_route.route_planner.RoutePlanner._objective_value"]], "_traveltime_in_cell() (polar_route.crossing_smoothing.pathvalues method)": [[10, "polar_route.crossing_smoothing.PathValues._traveltime_in_cell"]], "_unit_speed() (polar_route.crossing_smoothing.pathvalues method)": [[10, "polar_route.crossing_smoothing.PathValues._unit_speed"]], "_unit_time() (polar_route.crossing_smoothing.pathvalues method)": [[10, "polar_route.crossing_smoothing.PathValues._unit_time"]], "_waypoint_correction() (polar_route.crossing_smoothing.pathvalues method)": [[10, "polar_route.crossing_smoothing.PathValues._waypoint_correction"]], "compute_routes() (polar_route.route_planner.routeplanner method)": [[10, "polar_route.route_planner.RoutePlanner.compute_routes"]], "compute_smoothed_routes() (polar_route.route_planner.routeplanner method)": [[10, "polar_route.route_planner.RoutePlanner.compute_smoothed_routes"]], "find_edge (class in polar_route.crossing_smoothing)": [[10, "polar_route.crossing_smoothing.find_edge"]], "objective_function() (polar_route.crossing_smoothing.pathvalues method)": [[10, "polar_route.crossing_smoothing.PathValues.objective_function"]], "path_requested_variables (polar_route.crossing_smoothing.pathvalues attribute)": [[10, "polar_route.crossing_smoothing.PathValues.path_requested_variables"]], "paths (polar_route.route_planner.routeplanner attribute)": [[10, "polar_route.route_planner.RoutePlanner.paths"]], "polar_route.crossing": [[10, "module-polar_route.crossing"]], "polar_route.crossing_smoothing": [[10, "module-polar_route.crossing_smoothing"]], "polar_route.route_planner": [[10, "module-polar_route.route_planner"]], "to_charttracker_csv() (polar_route.route_planner.routeplanner method)": [[10, "polar_route.route_planner.RoutePlanner.to_charttracker_csv"]], "to_json() (polar_route.route_planner.routeplanner method)": [[10, "polar_route.route_planner.RoutePlanner.to_json"]], "unit_shipspeed (polar_route.crossing_smoothing.pathvalues attribute)": [[10, "polar_route.crossing_smoothing.PathValues.unit_shipspeed"]], "unit_time (polar_route.crossing_smoothing.pathvalues attribute)": [[10, "polar_route.crossing_smoothing.PathValues.unit_time"]], "waypoints (polar_route.route_planner.routeplanner attribute)": [[10, "polar_route.route_planner.RoutePlanner.waypoints"]], "abstractglider (class in polar_route.vessel_performance.vessels.abstract_glider)": [[11, "polar_route.vessel_performance.vessels.abstract_glider.AbstractGlider"]], "abstractship (class in polar_route.vessel_performance.vessels.abstract_ship)": [[11, "polar_route.vessel_performance.vessels.abstract_ship.AbstractShip"]], "abstractvessel (class in polar_route.vessel_performance.abstract_vessel)": [[11, "polar_route.vessel_performance.abstract_vessel.AbstractVessel"]], "sda (class in polar_route.vessel_performance.vessels.sda)": [[11, "polar_route.vessel_performance.vessels.SDA.SDA"]], "slocumglider (class in polar_route.vessel_performance.vessels.slocum)": [[11, "polar_route.vessel_performance.vessels.slocum.SlocumGlider"]], "vesselfactory (class in polar_route.vessel_performance.vessel_factory)": [[11, "polar_route.vessel_performance.vessel_factory.VesselFactory"]], "vesselperformancemodeller (class in polar_route.vessel_performance.vessel_performance_modeller)": [[11, "polar_route.vessel_performance.vessel_performance_modeller.VesselPerformanceModeller"]], "__init__() (polar_route.vessel_performance.abstract_vessel.abstractvessel method)": [[11, "polar_route.vessel_performance.abstract_vessel.AbstractVessel.__init__"]], "__init__() (polar_route.vessel_performance.vessel_performance_modeller.vesselperformancemodeller method)": [[11, "polar_route.vessel_performance.vessel_performance_modeller.VesselPerformanceModeller.__init__"]], "__init__() (polar_route.vessel_performance.vessels.sda.sda method)": [[11, "polar_route.vessel_performance.vessels.SDA.SDA.__init__"]], "__init__() (polar_route.vessel_performance.vessels.abstract_glider.abstractglider method)": [[11, "polar_route.vessel_performance.vessels.abstract_glider.AbstractGlider.__init__"]], "__init__() (polar_route.vessel_performance.vessels.abstract_ship.abstractship method)": [[11, "polar_route.vessel_performance.vessels.abstract_ship.AbstractShip.__init__"]], "__init__() (polar_route.vessel_performance.vessels.slocum.slocumglider method)": [[11, "polar_route.vessel_performance.vessels.slocum.SlocumGlider.__init__"]], "extreme_ice() (polar_route.vessel_performance.vessels.abstract_glider.abstractglider method)": [[11, "polar_route.vessel_performance.vessels.abstract_glider.AbstractGlider.extreme_ice"]], "extreme_ice() (polar_route.vessel_performance.vessels.abstract_ship.abstractship method)": [[11, "polar_route.vessel_performance.vessels.abstract_ship.AbstractShip.extreme_ice"]], "get_vessel() (polar_route.vessel_performance.vessel_factory.vesselfactory class method)": [[11, "polar_route.vessel_performance.vessel_factory.VesselFactory.get_vessel"]], "invert_resistance() (polar_route.vessel_performance.vessels.sda.sda method)": [[11, "polar_route.vessel_performance.vessels.SDA.SDA.invert_resistance"]], "land() (polar_route.vessel_performance.vessels.abstract_glider.abstractglider method)": [[11, "polar_route.vessel_performance.vessels.abstract_glider.AbstractGlider.land"]], "land() (polar_route.vessel_performance.vessels.abstract_ship.abstractship method)": [[11, "polar_route.vessel_performance.vessels.abstract_ship.AbstractShip.land"]], "model_accessibility() (polar_route.vessel_performance.abstract_vessel.abstractvessel method)": [[11, "polar_route.vessel_performance.abstract_vessel.AbstractVessel.model_accessibility"]], "model_accessibility() (polar_route.vessel_performance.vessel_performance_modeller.vesselperformancemodeller method)": [[11, "polar_route.vessel_performance.vessel_performance_modeller.VesselPerformanceModeller.model_accessibility"]], "model_accessibility() (polar_route.vessel_performance.vessels.abstract_glider.abstractglider method)": [[11, "polar_route.vessel_performance.vessels.abstract_glider.AbstractGlider.model_accessibility"]], "model_accessibility() (polar_route.vessel_performance.vessels.abstract_ship.abstractship method)": [[11, "polar_route.vessel_performance.vessels.abstract_ship.AbstractShip.model_accessibility"]], "model_battery() (polar_route.vessel_performance.vessels.slocum.slocumglider method)": [[11, "polar_route.vessel_performance.vessels.slocum.SlocumGlider.model_battery"]], "model_fuel() (polar_route.vessel_performance.vessels.sda.sda method)": [[11, "polar_route.vessel_performance.vessels.SDA.SDA.model_fuel"]], "model_performance() (polar_route.vessel_performance.abstract_vessel.abstractvessel method)": [[11, "polar_route.vessel_performance.abstract_vessel.AbstractVessel.model_performance"]], "model_performance() (polar_route.vessel_performance.vessel_performance_modeller.vesselperformancemodeller method)": [[11, "polar_route.vessel_performance.vessel_performance_modeller.VesselPerformanceModeller.model_performance"]], "model_performance() (polar_route.vessel_performance.vessels.abstract_glider.abstractglider method)": [[11, "polar_route.vessel_performance.vessels.abstract_glider.AbstractGlider.model_performance"]], "model_performance() (polar_route.vessel_performance.vessels.abstract_ship.abstractship method)": [[11, "polar_route.vessel_performance.vessels.abstract_ship.AbstractShip.model_performance"]], "model_resistance() (polar_route.vessel_performance.vessels.sda.sda method)": [[11, "polar_route.vessel_performance.vessels.SDA.SDA.model_resistance"]], "model_speed() (polar_route.vessel_performance.vessels.sda.sda method)": [[11, "polar_route.vessel_performance.vessels.SDA.SDA.model_speed"]], "model_speed() (polar_route.vessel_performance.vessels.slocum.slocumglider method)": [[11, "polar_route.vessel_performance.vessels.slocum.SlocumGlider.model_speed"]], "polar_route.vessel_performance.abstract_vessel": [[11, "module-polar_route.vessel_performance.abstract_vessel"]], "polar_route.vessel_performance.vessel_factory": [[11, "module-polar_route.vessel_performance.vessel_factory"]], "polar_route.vessel_performance.vessel_performance_modeller": [[11, "module-polar_route.vessel_performance.vessel_performance_modeller"]], "polar_route.vessel_performance.vessels.sda": [[11, "module-polar_route.vessel_performance.vessels.SDA"]], "polar_route.vessel_performance.vessels.abstract_glider": [[11, "module-polar_route.vessel_performance.vessels.abstract_glider"]], "polar_route.vessel_performance.vessels.abstract_ship": [[11, "module-polar_route.vessel_performance.vessels.abstract_ship"]], "polar_route.vessel_performance.vessels.slocum": [[11, "module-polar_route.vessel_performance.vessels.slocum"]], "shallow() (polar_route.vessel_performance.vessels.abstract_glider.abstractglider method)": [[11, "polar_route.vessel_performance.vessels.abstract_glider.AbstractGlider.shallow"]], "to_json() (polar_route.vessel_performance.vessel_performance_modeller.vesselperformancemodeller method)": [[11, "polar_route.vessel_performance.vessel_performance_modeller.VesselPerformanceModeller.to_json"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "sections/Code_overview", "sections/Command_line_interface", "sections/Configuration/Configuration_overview", "sections/Configuration/Route_planning_config", "sections/Configuration/Vessel_performance_config", "sections/Examples", "sections/Installation", "sections/Outputs", "sections/Route_calculation", "sections/Route_optimisation", "sections/Vehicle_specifics"], "filenames": ["index.rst", "sections/Code_overview.rst", "sections/Command_line_interface.rst", "sections/Configuration/Configuration_overview.rst", "sections/Configuration/Route_planning_config.rst", "sections/Configuration/Vessel_performance_config.rst", "sections/Examples.rst", "sections/Installation.rst", "sections/Outputs.rst", "sections/Route_calculation.rst", "sections/Route_optimisation.rst", "sections/Vehicle_specifics.rst"], "titles": ["Welcome to the PolarRoute Manual Pages", "7. Background", "4. Command Line Interface", "5. Configuration Overview", "5.2. Configuration - Route Planning", "5.1. Configuration - Vessel Performance Modeller", "2. Command Line Interface Examples", "1. Installation", "6. Outputs - Data Types", "9. Methods - Route Calculation", "10. Methods - Route Planner", "8. Methods - Vessel Performance"], "terms": {"i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11], "tool": [0, 1], "optimis": [0, 1, 2], "rout": [0, 1, 2, 3, 5, 7], "maritim": 0, "vehicl": [0, 1, 2, 6, 8, 9, 10, 11], "travel": [0, 1, 2, 5, 6, 8, 9, 10], "polar": [0, 1, 7], "water": [0, 1, 5, 11], "It": [0, 2, 7, 8], "an": [1, 2, 3, 6, 7, 8, 10, 11], "extens": 8, "meshiphi": [0, 1, 2, 3, 6, 8], "packag": [0, 1, 2, 3, 6, 7, 10], "design": [0, 11], "discretis": 0, "world": [0, 6], "from": [0, 1, 2, 4, 6, 7, 8, 9, 10, 11], "heterogen": 0, "data": [0, 1, 2], "sourc": [0, 2, 4, 6, 7, 10], "follow": [0, 1, 2, 4, 5, 6, 8, 11], "link": 0, "more": [0, 6, 8, 10], "detail": [0, 2, 6, 11], "doc": [0, 2, 6, 8], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "softwar": [0, 1, 2, 3, 7], "ha": [0, 2, 6, 7, 8], "been": [0, 2, 6, 8], "develop": [0, 1, 4, 6, 7], "british": [0, 11], "antarct": [0, 11], "survei": [0, 11], "ba": [0, 6, 7], "primarili": 0, "research": [0, 11], "vessel": [0, 1, 2, 3, 4, 8, 9, 10], "rr": [0, 11], "sir": [0, 11], "david": [0, 11], "attenborough": [0, 11], "though": [], "applic": [0, 1], "ani": [0, 2, 5, 6, 8, 11], "e": [0, 1, 5, 6, 7, 10], "g": [0, 1, 5, 6, 10], "auv": 0, "The": [0, 1, 2, 3, 4, 5, 6, 7, 10, 11], "written": [0, 3], "python": [0, 3, 7, 10], "open": [0, 1, 5, 6, 8], "For": [0, 4, 6, 7, 10], "inform": [0, 1, 2, 4, 5, 6, 8, 9, 10], "project": [0, 6], "pleas": [0, 6], "visit": 0, "websit": 0, "our": [0, 1, 11], "github": [0, 7], "repositori": [0, 7], "codebas": [0, 1, 10], "ongo": 0, "yet": [0, 6], "complet": 0, "contact": 0, "content": 0, "background": 0, "code": [0, 6, 7, 9, 10], "overview": [0, 2, 8], "structur": [0, 3, 5, 6, 8], "instal": [0, 6], "gdal": 0, "ipython": 6, "notebook": 6, "simul": [0, 2], "digit": [0, 2], "environ": [0, 2, 7, 8, 11], "command": [0, 3, 5], "line": [0, 3, 5, 9], "interfac": [0, 11], "add_vehicl": [0, 5, 6], "optimise_rout": [0, 6], "calculate_rout": 0, "plot": [0, 1, 7], "configur": [0, 1, 2, 6, 8, 11], "perform": [0, 1, 2, 3, 6, 8, 9, 10], "model": [0, 2, 3, 8], "plan": [0, 1, 2, 3, 6, 8], "output": [0, 1, 2, 4, 7, 10], "type": [0, 1, 2, 9, 10, 11], "vessel_mesh": [0, 2, 6], "json": [0, 2, 3, 6, 10, 11], "file": [0, 1, 2, 3, 4, 5, 6, 9, 10, 11], "method": [0, 1, 6], "factori": 0, "abstract": 0, "ship": [0, 1, 4, 5, 6, 9], "sda": [0, 5, 8], "glider": 0, "slocum": 0, "calcul": [0, 2, 5, 6, 11], "planner": [0, 1, 2, 8], "modul": 0, "exampl": [0, 1, 2, 3, 8], "run": [1, 2, 6, 7, 8, 10], "1": [6, 8, 10], "antarctica": [6, 7], "process": [1, 2, 3, 6, 8, 10], "all": [1, 2, 3, 4, 5, 8, 9, 10, 11], "stage": [1, 2, 3, 6, 8, 10], "2": 6, "dijkstra": [1, 2, 4, 6, 10], "v": [2, 9, 10], "smooth": [1, 2, 4, 6], "path": [1, 2, 4, 6, 9, 10], "variat": [], "properti": [5, 8, 10], "we": [1, 3, 6, 7, 10], "present": [], "autom": 1, "us": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "ic": [1, 5, 8, 11], "strengthen": 1, "oper": [1, 7], "region": [1, 6, 10], "build": [1, 2], "underwat": [1, 11], "long": [1, 2, 4, 8, 10], "distanc": [1, 9, 10], "report": 1, "fox": 1, "et": 1, "al": 1, "2021": 1, "start": [1, 4, 6, 8, 9, 10], "same": [1, 4, 6, 10], "grid": 1, "base": [1, 4, 10, 11], "construct": [1, 2, 3, 4, 6, 8, 9, 10], "approach": 1, "obtain": 1, "satisfi": 1, "constraint": 1, "appli": [1, 8, 10], "novel": 1, "result": 1, "shorten": 1, "ensur": 1, "great": [1, 6], "circl": [1, 6], "arc": [1, 6], "where": [1, 4, 5, 8, 10], "possibl": 1, "two": [1, 4, 6, 8, 9, 10, 11], "effici": 1, "gener": [1, 2, 3, 6, 10], "standard": [1, 3, 8, 10], "navig": [1, 2], "solut": [1, 6], "around": [1, 6, 10], "area": [1, 6], "domin": 1, "sea": [1, 5, 11], "while": 1, "have": [1, 6, 8], "focuss": 1, "ar": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11], "also": [0, 1, 2, 5, 6, 7], "broader": 1, "context": 1, "commerci": 1, "must": [1, 4, 6], "respons": 1, "chang": 1, "local": 1, "weather": 1, "condit": 1, "outlin": [1, 3, 7, 10], "manual": [1, 6], "provid": [0, 1, 2, 3, 5, 6, 7], "user": [1, 2, 4, 6, 8, 9, 10], "thei": [1, 2], "need": [1, 6, 9], "set": [1, 2, 4, 5, 8], "hope": 1, "suppli": [1, 10, 11], "each": [1, 3, 4, 6, 8, 10, 11], "section": [1, 2, 3, 6, 7, 8, 9, 10], "allow": [1, 2, 5, 7, 10], "understand": 1, "throughout": 1, "toolkit": [], "can": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11], "separ": [1, 3, 8, 10], "four": 1, "main": 1, "shown": [1, 2], "figur": [1, 2], "below": [1, 7, 8, 10, 11], "routeplann": [6, 10], "broken": 1, "down": 1, "specif": [1, 2, 5, 6, 8, 11], "featur": [1, 6, 8, 10], "discret": [1, 8], "mesh": [0, 1, 2, 3, 4, 8, 9, 10, 11], "In": [1, 2, 3, 6, 7, 10], "knowledg": 1, "how": [1, 2, 6, 10], "variabl": [1, 4, 5, 9, 10], "comput": [1, 10], "graph": [1, 4, 10, 11], "constrain": 1, "give": [1, 2, 6, 9], "between": [1, 2, 4, 6, 8, 9, 10], "defin": [1, 2, 4, 6, 8, 9, 10, 11], "waypoint": [1, 2, 4, 6, 9, 10], "minimis": [1, 4], "object": [1, 4, 6, 8, 10, 11], "function": [0, 1, 4, 6, 7, 9, 10, 11], "time": [1, 2, 4, 8, 9, 10], "fuel": [1, 2, 4, 5, 6, 8, 9, 10, 11], "onc": [1, 2, 6, 8], "formul": 1, "procedur": 1, "non": [1, 6], "improv": 1, "input": [1, 6, 10, 11], "pipelin": 1, "make": [1, 8], "found": [1, 2, 3, 8], "document": [1, 2, 3], "produc": [1, 2, 11], "form": [1, 6, 8, 10], "which": [1, 2, 6, 8, 10, 11], "addit": [1, 2, 6, 8], "seri": [1, 10], "class": [1, 5, 8, 10, 11], "interact": [1, 6], "map": [1, 6, 11], "static": 1, "These": [1, 4, 6, 8, 10], "later": 1, "polarrout": [1, 2, 3, 6], "4": 6, "cli": [2, 6], "entri": [2, 5, 6, 8, 10], "point": [2, 5, 6, 8, 9], "intend": 2, "success": 2, "through": [2, 3, 5, 6, 9, 10], "encod": [2, 6, 8], "vessel_config": [2, 8, 11], "posit": [2, 8], "argument": [2, 3, 5], "A": [2, 4, 5, 6, 8, 10], "format": [2, 3, 6, 8, 9, 10, 11], "requir": [2, 4, 6, 7, 11], "creat": [0, 2, 8, 10], "create_mesh": [0, 6], "option": [0, 2, 3], "verbos": 2, "log": 2, "o": [2, 6], "locat": [2, 8, 10], "return": [2, 4, 9, 10, 11], "explain": 2, "optim": [2, 6, 10], "route_config": 2, "csv": [2, 4, 6, 8, 10], "paramet": [2, 4, 5, 6, 9, 10, 11], "ad": [2, 6], "when": [2, 6, 7, 8], "contain": [2, 4, 8, 9, 10, 11], "abov": [2, 4, 5, 6], "As": [2, 8], "tabl": 2, "name": [2, 4, 5, 8, 9, 10], "lat": [2, 4, 8, 10], "destin": 2, "hallei": [2, 8, 10], "75": [2, 8, 10], "26722": [2, 8, 10], "27": [2, 8, 10], "21694": [2, 8, 10], "x": [2, 9], "rothera": [2, 8, 10], "68": 2, "3892": 2, "95": 2, "2436": 2, "south": 2, "georgia": 2, "54": 2, "87916667": 2, "37": 2, "26416667": 2, "falkland": [2, 8, 10], "55": 2, "63472222": 2, "64": 2, "88": 2, "eleph": 2, "island": 2, "60": 2, "54722222": 2, "18138889": 2, "mai": [2, 6, 8], "extend": 2, "determin": [2, 4, 6, 9, 10, 11], "either": [2, 4, 5, 6, 10], "column": [2, 4, 8], "mark": [2, 5], "p": 2, "onli": [2, 4, 5, 7], "entir": 2, "d": 2, "well": 2, "cost": [2, 9, 10], "pre": [2, 7], "geojson": [2, 4, 8, 9, 10], "assum": [2, 7], "order": [2, 6, 9], "given": [2, 5, 8, 9, 10, 11], "rhumb": 2, "ident": 2, "out": [2, 6], "If": [2, 4, 6, 10], "cross": [2, 9], "cell": [2, 4, 5, 8, 9, 10, 11], "consid": [2, 8], "inaccess": [2, 6, 8, 11], "warn": 2, "displai": 2, "save": [2, 4, 6, 8], "visualis": [0, 2], "geoplot": [0, 2, 6], "librari": [2, 8], "relev": [8, 9, 11], "page": 6, "other": [2, 11], "gi": 2, "qgi": 2, "export": [2, 7], "common": [7, 11], "tif": 2, "export_mesh": 2, "portion": 3, "pass": [3, 6, 8], "script": 3, "config": [2, 3, 6, 7, 10, 11], "directori": [2, 3, 11], "descript": [3, 8], "objective_funct": [4, 10], "traveltim": [4, 6, 8, 9, 10], "path_vari": [4, 8], "waypoints_org": 4, "source_waypoint": 4, "longpathstart": 4, "end_waypoint": [4, 10], "vector": [4, 6, 9, 10], "uc": [4, 9], "vc": [4, 9], "zero_curr": 4, "fals": [4, 6, 10], "variable_spe": 4, "true": [4, 5, 11], "time_unit": 4, "dai": [4, 10, 11], "early_stopping_criterion": 4, "save_dijkstra_graph": 4, "max": [4, 11], "iter": 4, "number": 4, "1000": 4, "minimum": [4, 5, 11], "differ": [4, 5], "1e": 4, "3": [4, 5, 7, 11], "typic": [4, 5, 6], "string": [4, 5, 8, 10], "list": [4, 5, 8, 9, 10], "waypoints_path": 4, "filepath": 4, "includ": [4, 6, 7, 8, 9, 10, 11], "within": [4, 6, 9, 10, 11], "left": 4, "blank": 4, "end": [4, 8, 9, 10], "vector_nam": 4, "definit": [4, 8], "horizont": 4, "vertic": 4, "compon": [4, 9, 10], "act": [4, 8, 11], "cellbox": [4, 6, 8, 9, 10, 11], "bool": [4, 11], "remov": [4, 10, 11], "effect": 4, "current": [4, 5, 6, 9], "zero": 4, "speed": [4, 5, 6, 8, 9, 10, 11], "unit": [4, 5, 10], "take": [4, 8, 11], "support": [2, 4, 5, 6], "hr": [4, 5, 10], "futur": 4, "releas": 4, "earli": 4, "stop": 4, "criterion": 4, "full": [4, 8], "should": [4, 5, 8, 9, 10, 11], "conjunct": 4, "repres": [4, 6, 8], "valu": [4, 5, 8, 9, 10, 11], "across": [4, 10, 11], "max_iteration_numb": 4, "int": [4, 9, 10], "maximum": [4, 5, 11], "most": 4, "converg": 4, "met": 4, "100x": 4, "earlier": 4, "than": 4, "minimum_differ": 4, "float": [4, 5, 8, 9, 10, 11], "befor": 4, "trigger": 4, "necessari": [5, 7], "about": [5, 6, 8, 10], "execut": 5, "consumpt": [5, 6, 8, 11], "vesselperformancemodel": [5, 6, 8, 11], "vessel_typ": 5, "max_spe": 5, "26": [5, 8, 10], "5": [5, 8, 10], "km": [5, 10, 11], "beam": 5, "24": 5, "0": [5, 8, 9, 10], "hull_typ": 5, "slender": 5, "force_limit": 5, "96634": 5, "max_ice_conc": 5, "80": 5, "min_depth": 5, "10": [5, 7], "max_wav": 5, "excluded_zon": 5, "exclusion_zon": 5, "measur": 5, "width": 5, "metr": 5, "hull": 5, "profil": 5, "one": [5, 10, 11], "blunt": 5, "resist": [5, 8, 11], "forc": [5, 8, 10, 11], "specifi": 5, "newton": 5, "concentr": [5, 11], "abl": [5, 7], "percentag": [5, 11], "depth": [5, 6, 11], "signific": 5, "wave": 5, "height": 5, "boolean": [5, 8, 11], "enter": 5, "kei": [5, 9, 10], "unnavig": 5, "discuss": 6, "googl": 6, "colab": 6, "shortli": [], "step": [6, 7], "correspond": [], "first": 6, "version": 7, "9": 7, "you": [6, 7], "don": [], "t": 10, "work": [7, 11], "suggest": [], "anaconda": [], "distribut": 6, "http": [7, 8], "www": [], "com": 7, "product": 6, "instruct": 7, "git": 7, "clone": 7, "setup": [], "py": [], "pip": [6, 7], "tiff": 7, "imag": 7, "so": 7, "would": [6, 8], "recommend": 7, "steer": [], "clear": [], "trivial": 7, "problem": 7, "With": 7, "said": 7, "variou": 7, "system": 7, "higher": 7, "virtual": 7, "pipwin": 7, "easi": 7, "binari": 7, "fiona": 7, "ubuntu": 7, "debian": 7, "sudo": 7, "add": [2, 6, 7], "apt": 7, "ppa": 7, "ubuntugi": 7, "get": [6, 10], "updat": [7, 10, 11], "bin": 7, "libgdal": 7, "dev": 7, "cplus_include_path": 7, "usr": 7, "c_include_path": 7, "fedora": 7, "dnf": 7, "devel": 7, "homebrew": 7, "brew": 7, "head": 7, "environment": [1, 3, 6, 8, 10, 11], "transform": 8, "stream": [], "import": [6, 8], "polar_rout": [6, 8, 9, 10, 11], "vessel_perform": [6, 8, 11], "vessel_performance_model": [6, 8, 11], "r": [2, 6, 8], "f": [6, 8], "load": [6, 8, 9, 10, 11], "vpm": 8, "mesh_json": [6, 8], "model_access": [6, 8, 11], "model_perform": [6, 8, 11], "vessel_mesh_json": 8, "to_json": [6, 8, 10, 11], "To": [6, 8], "rang": 8, "attribut": [8, 10, 11], "elev": [6, 8], "avail": [2, 6, 7, 8], "via": 8, "data_load": [], "gebco": 8, "bsose_depth": 8, "sic": [6, 8, 10, 11], "amsr": 8, "bsose_s": 8, "baltic_s": 8, "icenet": 8, "modi": 8, "thick": [8, 11], "densiti": [8, 11], "u10": 8, "v10": 8, "era5_wind": 8, "see": [6, 8, 10], "dataload": [6, 8], "still": 8, "without": 8, "assign": 8, "default": [8, 10], "miss": 8, "after": [6, 8], "new": [2, 8], "its": [6, 8, 10, 11], "neighbour": [8, 10, 11], "rate": [8, 11], "whether": [7, 8], "reason": 8, "land": [6, 8, 11], "shallow": [8, 11], "enough": 8, "ext_ic": [8, 11], "total": [8, 10], "encount": 8, "due": [8, 11], "wind": [6, 8], "rel": 8, "appar": 8, "angl": 8, "dure": [6, 8], "piplin": 8, "case": [6, 8, 9, 10], "ot": [], "n": 8, "52": [8, 10], "6347222222": [8, 10], "index": [8, 9, 10], "row": 8, "etc": 8, "latitud": [8, 10], "wgs84": 8, "longitud": [8, 10], "origin": [0, 8], "wa": [0, 8], "convert": 8, "panda": 8, "datafram": [6, 8, 9, 10], "waypoints_datafram": 8, "pd": [6, 8, 10], "featurecollect": [8, 10], "geometri": [8, 10], "linestr": [8, 10], "coordin": [8, 9, 10], "07960297382266": [8, 10], "619238882768894": [8, 10], "03531938671648596": [8, 10], "050310986633880575": [8, 10], "9648858923588642": [8, 10], "3745886107069096": [8, 10], "2017": [8, 10], "01": [8, 10], "00": [8, 10], "50": [8, 10], "51": [8, 10], "595036800": [8, 10], "12": [8, 10], "869276800": [8, 10], "infor": [], "org": 8, "meta": 8, "cumul": 8, "along": [8, 9, 10], "utc": 8, "datetim": [8, 10], "start_tim": 8, "describ": [2, 6, 9, 10], "evalu": 9, "previou": [9, 10], "route_calc": 9, "case_from_angl": 9, "direct": [2, 9, 10], "associ": [9, 10], "ndarrai": 9, "select": [9, 10], "find_intersect": 9, "df": 9, "find": [6, 9, 11], "param": [9, 11], "info": [6, 8, 9, 10], "geodatafram": 9, "dictionari": [6, 9, 10, 11], "id": [9, 10], "track_point": 9, "dict": [9, 10, 11], "load_mesh": 9, "mesh_fil": 9, "str": 9, "load_rout": 9, "route_fil": [2, 9], "from_wp": 9, "to_wp": 9, "order_track": 9, "track": 9, "user_track": 9, "user_path": 9, "traveltime_dist": 9, "wp": [9, 10], "cp": [9, 10], "vector_x": 9, "vector_i": 9, "segment": [9, 10], "y": 9, "arrai": 9, "traveltime_in_cel": 9, "xdist": [9, 10], "ydist": [9, 10], "u": [9, 10], "": [6, 9, 10], "insid": 9, "respect": 10, "route_plann": [6, 10], "cost_func": 10, "newtoniandist": 10, "compute_rout": [6, 10], "compute_smoothed_rout": [6, 10], "independ": 10, "interest": 10, "_dijkstra": 10, "wpt_name": 10, "whole": 10, "domain": 10, "_dijkstra_path": 10, "start_waypoint": 10, "hidden": 10, "intern": 10, "_neighbour_cost": 10, "minimum_objective_index": 10, "edg": 10, "_objective_valu": 10, "source_graph": 10, "neighbour_graph": 10, "append": [6, 10], "blocked_metr": 10, "debug": 10, "previous": 10, "_initialise_dijkstra_graph": 10, "dijkstra_graph": 10, "initialis": [6, 10, 11], "dijkstra_graph_dict": 10, "compris": 10, "_initialise_dijkstra_rout": 10, "dijkstra_rout": 10, "ap": 10, "find_edg": 10, "adjac": 10, "pair": 10, "_json_str": 10, "implement": 10, "unsmooth": 10, "newtoniancurv": 10, "go": 10, "crossing_smooth": 10, "pathvalu": 10, "intersect": 10, "path_requested_vari": 10, "cumsum": 10, "cell_index": 10, "none": 10, "unit_shipspe": 10, "knot": 10, "unit_tim": 10, "min": 10, "_case_from_angl": 10, "_traveltime_in_cel": 10, "_unit_spe": 10, "val": 10, "m": [10, 11], "_unit_tim": 10, "_waypoint_correct": 10, "correct": 10, "usag": [10, 11], "request": 10, "transit": 10, "tupl": 10, "segment_valu": 10, "connect": 10, "adjacent_pair": 10, "relat": [10, 11], "waypoint_correct": 10, "_dist_around_glob": 10, "start_point": 10, "crossing_point": 10, "globe": 10, "degre": 10, "cell_a": 10, "cell_b": 10, "characterist": [6, 10, 11], "_find_edg": 10, "travers": 11, "particular": 11, "what": 11, "access": [6, 10, 11], "b": 11, "c": 11, "weddel": 11, "latter": 11, "quantiti": 11, "deriv": [6, 11], "former": 11, "uml": 11, "diagram": 11, "subsystem": 11, "env_mesh_json": 11, "both": 11, "modifi": 11, "__init__": 11, "accordingli": 11, "represent": [6, 11], "j_mesh": 11, "vessel_factori": 11, "vesselfactori": 11, "classmethod": 11, "get_vessel": 11, "instanc": 11, "abstract_vessel": 11, "abstractvessel": 11, "aggregatedcellbox": 11, "being": 11, "access_valu": 11, "performance_valu": 11, "abstract_ship": 11, "abstractship": 11, "extreme_ic": 11, "criteria": 11, "invert_resist": 11, "keep": 11, "threshold": 11, "averag": 11, "kg": 11, "safe": 11, "h": 11, "new_spe": 11, "model_fuel": 11, "model_resist": 11, "model_spe": 11, "abstract_glid": 11, "abstractglid": 11, "level": 11, "too": 11, "slocumglid": 11, "g2": 11, "model_batteri": 11, "batteri": 11, "ah": 11, "done": 6, "termin": 6, "against": 6, "vesselperform": 6, "vp": 6, "cast": 6, "dump": 6, "now": 6, "depend": [0, 6, 7], "further": 6, "reduc": 6, "compute_smooth_rout": 6, "replac": 6, "rp": 6, "aim": 1, "initi": 1, "environmentmesh": 6, "consol": 6, "leverag": [], "resimulate_vehicl": 0, "extract_rout": 0, "multipl": [2, 6], "again": [2, 6], "exist": [2, 7], "easili": 2, "individu": 2, "extract": [2, 6], "larger": 2, "automat": 2, "filenam": 2, "gpx": 2, "to_charttracker_csv": 10, "route_nam": 10, "polarroutepath": 10, "chart": 10, "tracker": 10, "_adjust_waypoint": 10, "max_dist": 10, "move": 10, "closest": 10, "isn": 10, "alreadi": 10, "up": 10, "flexibl": 10, "_mesh_boundary_polygon": 10, "polygon": 10, "boundari": 10, "howev": [0, 6], "empti": 0, "synthet": 0, "real": 0, "collect": 2, "parsabl": 2, "There": 2, "environment_config": 2, "grf_exampl": [2, 6], "plot_mesh": [2, 6], "commonli": 2, "arrow": 2, "summaris": 6, "basic": 6, "At": 6, "mesh_config_fil": 6, "mesh_output_fil": 6, "vessel_config_fil": 6, "vessel_output_fil": 6, "route_config_fil": 6, "waypoints_fil": 6, "route_output_fil": 6, "any_output_fil": 6, "output_fil": 6, "fulfil": 6, "successfulli": 6, "like": 6, "try": 6, "here": 6, "some": 6, "simpli": 6, "zip": 6, "archiv": 6, "appropri": 6, "call": 6, "waypoints_exampl": 6, "sever": 6, "guid": 6, "creation": 6, "show": 6, "someon": 6, "simpl": 6, "sinc": 6, "expect": 6, "straight": 6, "seen": 6, "mercat": 6, "uniform": 6, "gaussian": 6, "random": 6, "field": 6, "somewhat": 6, "realist": 6, "bathymetri": 6, "walk": 6, "everi": 6, "involv": 6, "coast": 6, "public": 6, "avoid": 6, "violat": 6, "share": 6, "polici": 6, "instead": 6, "those": 6, "download": [6, 7], "them": 6, "read": 6, "manipul": 6, "increas": 6, "resolut": 6, "split": 6, "alter": 6, "explan": 6, "mesh_gener": 6, "mesh_build": 6, "meshbuild": 6, "cg": 6, "build_environmental_mesh": 6, "w": 6, "indent": 6, "snippet": 6, "back": 6, "just": 6, "next": 6, "route_mesh": 6, "bas_geoplot": 6, "mp": 6, "titl": 6, "grf": 6, "meshgrid": 6, "predefin": 6, "cx": 6, "8": 7, "pypi": 7, "purpos": 7, "want": 7, "edit": 7, "copi": 7, "skip": 7, "alwai": 7, "downstream": 8, "visual_": 8, "interpret": 6}, "objects": {"polar_route": [[10, 0, 0, "-", "crossing"], [10, 0, 0, "-", "crossing_smoothing"], [9, 0, 0, "-", "route_calc"], [10, 0, 0, "-", "route_planner"]], "polar_route.crossing_smoothing": [[10, 1, 1, "", "PathValues"], [10, 4, 1, "", "_dist_around_globe"], [10, 1, 1, "", "find_edge"]], "polar_route.crossing_smoothing.PathValues": [[10, 2, 1, "", "_case_from_angle"], [10, 2, 1, "", "_traveltime_in_cell"], [10, 2, 1, "", "_unit_speed"], [10, 2, 1, "", "_unit_time"], [10, 2, 1, "", "_waypoint_correction"], [10, 2, 1, "", "objective_function"], [10, 3, 1, "", "path_requested_variables"], [10, 3, 1, "", "unit_shipspeed"], [10, 3, 1, "", "unit_time"]], "polar_route.crossing_smoothing.find_edge": [[10, 2, 1, "", "_find_edge"]], "polar_route.route_calc": [[9, 4, 1, "", "case_from_angle"], [9, 4, 1, "", "find_intersections"], [9, 4, 1, "", "load_mesh"], [9, 4, 1, "", "load_route"], [9, 4, 1, "", "order_track"], [9, 4, 1, "", "route_calc"], [9, 4, 1, "", "traveltime_distance"], [9, 4, 1, "", "traveltime_in_cell"]], "polar_route.route_planner": [[10, 1, 1, "", "RoutePlanner"], [10, 4, 1, "", "_adjust_waypoints"], [10, 4, 1, "", "_initialise_dijkstra_graph"], [10, 4, 1, "", "_initialise_dijkstra_route"], [10, 4, 1, "", "_json_str"], [10, 4, 1, "", "_mesh_boundary_polygon"]], "polar_route.route_planner.RoutePlanner": [[10, 2, 1, "", "_dijkstra"], [10, 2, 1, "", "_dijkstra_paths"], [10, 2, 1, "", "_neighbour_cost"], [10, 2, 1, "", "_objective_value"], [10, 2, 1, "", "compute_routes"], [10, 2, 1, "", "compute_smoothed_routes"], [10, 3, 1, "", "paths"], [10, 2, 1, "", "to_charttracker_csv"], [10, 2, 1, "", "to_json"], [10, 3, 1, "", "waypoints"]], "polar_route.vessel_performance": [[11, 0, 0, "-", "abstract_vessel"], [11, 0, 0, "-", "vessel_factory"], [11, 0, 0, "-", "vessel_performance_modeller"]], "polar_route.vessel_performance.abstract_vessel": [[11, 1, 1, "", "AbstractVessel"]], "polar_route.vessel_performance.abstract_vessel.AbstractVessel": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "model_accessibility"], [11, 2, 1, "", "model_performance"]], "polar_route.vessel_performance.vessel_factory": [[11, 1, 1, "", "VesselFactory"]], "polar_route.vessel_performance.vessel_factory.VesselFactory": [[11, 2, 1, "", "get_vessel"]], "polar_route.vessel_performance.vessel_performance_modeller": [[11, 1, 1, "", "VesselPerformanceModeller"]], "polar_route.vessel_performance.vessel_performance_modeller.VesselPerformanceModeller": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "model_accessibility"], [11, 2, 1, "", "model_performance"], [11, 2, 1, "", "to_json"]], "polar_route.vessel_performance.vessels": [[11, 0, 0, "-", "SDA"], [11, 0, 0, "-", "abstract_glider"], [11, 0, 0, "-", "abstract_ship"], [11, 0, 0, "-", "slocum"]], "polar_route.vessel_performance.vessels.SDA": [[11, 1, 1, "", "SDA"]], "polar_route.vessel_performance.vessels.SDA.SDA": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "invert_resistance"], [11, 2, 1, "", "model_fuel"], [11, 2, 1, "", "model_resistance"], [11, 2, 1, "", "model_speed"]], "polar_route.vessel_performance.vessels.abstract_glider": [[11, 1, 1, "", "AbstractGlider"]], "polar_route.vessel_performance.vessels.abstract_glider.AbstractGlider": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "extreme_ice"], [11, 2, 1, "", "land"], [11, 2, 1, "", "model_accessibility"], [11, 2, 1, "", "model_performance"], [11, 2, 1, "", "shallow"]], "polar_route.vessel_performance.vessels.abstract_ship": [[11, 1, 1, "", "AbstractShip"]], "polar_route.vessel_performance.vessels.abstract_ship.AbstractShip": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "extreme_ice"], [11, 2, 1, "", "land"], [11, 2, 1, "", "model_accessibility"], [11, 2, 1, "", "model_performance"]], "polar_route.vessel_performance.vessels.slocum": [[11, 1, 1, "", "SlocumGlider"]], "polar_route.vessel_performance.vessels.slocum.SlocumGlider": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "model_battery"], [11, 2, 1, "", "model_speed"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"]}, "titleterms": {"welcom": 0, "polarrout": [0, 7], "manual": 0, "page": 0, "background": 1, "code": 1, "overview": [1, 3, 9, 10, 11], "structur": 1, "command": [2, 6], "line": [2, 6], "interfac": [2, 6], "add_vehicl": 2, "optimise_rout": 2, "calculate_rout": 2, "plot": 2, "configur": [3, 4, 5], "rout": [4, 6, 8, 9, 10], "plan": 4, "vessel": [5, 6, 11], "perform": [5, 11], "model": [5, 11], "exampl": 6, "run": [], "1": [], "antarctica": [], "process": [], "all": [], "stage": [], "planner": 10, "2": [], "dijkstra": [], "v": [], "smooth": 10, "path": 8, "variat": [], "vehicl": [], "properti": [], "instal": 7, "gdal": 7, "window": 7, "linux": 7, "maco": 7, "output": [6, 8], "data": [6, 8], "type": 8, "The": 8, "vessel_mesh": 8, "json": 8, "file": 8, "waypoint": 8, "method": [9, 10, 11], "calcul": 9, "optimis": [6, 10], "modul": 10, "cross": 10, "point": 10, "factori": 11, "abstract": 11, "ship": 11, "sda": 11, "glider": 11, "slocum": 11, "python": 6, "ipython": [], "notebook": [], "simul": 6, "digit": 6, "environ": 6, "resimulate_vehicl": 2, "extract_rout": 2, "create_mesh": 2, "empti": 6, "mesh": 6, "synthet": 6, "real": 6, "creat": 6, "visualis": 6, "geoplot": 7, "option": 7}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 57}, "alltitles": {"Welcome to the PolarRoute Manual Pages": [[0, "welcome-to-the-polarroute-manual-pages"]], "Background": [[1, "background"]], "Code Overview": [[1, "code-overview"]], "Code Structure": [[1, "code-structure"]], "Command Line Interface": [[2, "command-line-interface"]], "create_mesh": [[2, "create-mesh"]], "add_vehicle": [[2, "add-vehicle"]], "resimulate_vehicle": [[2, "resimulate-vehicle"]], "optimise_routes": [[2, "optimise-routes"]], "calculate_route": [[2, "calculate-route"]], "extract_routes": [[2, "extract-routes"]], "Plotting": [[2, "plotting"]], "Configuration Overview": [[3, "configuration-overview"]], "Configuration - Route Planning": [[4, "configuration-route-planning"]], "Configuration - Vessel Performance Modeller": [[5, "configuration-vessel-performance-modeller"]], "Installation": [[7, "installation"]], "Installing PolarRoute": [[7, "installing-polarroute"]], "Installing GeoPlot": [[7, "installing-geoplot"]], "Installing GDAL (Optional)": [[7, "installing-gdal-optional"]], "Windows": [[7, "windows"]], "Linux/MacOS": [[7, "linux-macos"]], "Outputs - Data Types": [[8, "outputs-data-types"]], "The Vessel_mesh.json file": [[8, "the-vessel-mesh-json-file"]], "The Route.json file": [[8, "the-route-json-file"]], "waypoints": [[8, "waypoints"]], "paths": [[8, "paths"]], "Methods - Route Calculation": [[9, "methods-route-calculation"]], "Route Calculation Overview": [[9, "route-calculation-overview"]], "Route Calculation": [[9, "module-polar_route.route_calc"]], "Methods - Route Planner": [[10, "methods-route-planner"]], "Route Optimisation Overview": [[10, "route-optimisation-overview"]], "Route Optimisation Modules": [[10, "route-optimisation-modules"]], "Route Planner": [[10, "module-polar_route.route_planner"]], "Crossing Points": [[10, "module-polar_route.crossing"]], "Crossing Point Smoothing": [[10, "module-polar_route.crossing_smoothing"]], "Methods - Vessel Performance": [[11, "methods-vessel-performance"]], "Vessel Overview": [[11, "vessel-overview"]], "Vessel Performance Modeller": [[11, "module-polar_route.vessel_performance.vessel_performance_modeller"]], "Vessel Factory": [[11, "module-polar_route.vessel_performance.vessel_factory"]], "Abstract Vessel": [[11, "module-polar_route.vessel_performance.abstract_vessel"]], "Abstract Ship": [[11, "module-polar_route.vessel_performance.vessels.abstract_ship"]], "SDA": [[11, "module-polar_route.vessel_performance.vessels.SDA"]], "Abstract Glider": [[11, "module-polar_route.vessel_performance.vessels.abstract_glider"]], "Slocum Glider": [[11, "module-polar_route.vessel_performance.vessels.slocum"]], "Command Line Interface Examples": [[6, "command-line-interface-examples"]], "Empty Mesh Example": [[6, "empty-mesh-example"]], "Synthetic Data Example": [[6, "synthetic-data-example"]], "Real Data Example": [[6, "real-data-example"]], "Python Examples": [[6, "python-examples"]], "Creating the digital environment.": [[6, "creating-the-digital-environment"]], "Simulating a Vessel in a Digital Environment": [[6, "simulating-a-vessel-in-a-digital-environment"]], "Route Optimisation": [[6, "route-optimisation"]], "Visualising Outputs": [[6, "visualising-outputs"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/docs/html/sections/Examples.html b/docs/html/sections/Examples.html index 870ef79a..2ae58e1b 100644 --- a/docs/html/sections/Examples.html +++ b/docs/html/sections/Examples.html @@ -154,7 +154,7 @@

2.3. Real Data Example

3. Python Examples

-

Route planning may also be done using a python terminal. In this case, the CLI is not required but the steps required for route planning +

Route planning may also be done in a python interpreter. In this case, the CLI is not required but the steps required for route planning follow the same format - create a digital environment; simulated a vessel against it; optimise a route plan through the digital environment. To perform the steps detailed in this section, a mesh must first be generated using MeshiPhi.

The files used in the following example are those used in the synthetic example from the notebook section above. Download them @@ -163,7 +163,7 @@

3. Python Examples3.1. Creating the digital environment.

A configuration file is needed to initialise the `Mesh` object which forms the digital environment. This configuration file is of the same format used in the create_mesh CLI entry-point, and may either be loaded from a json file or constructed -within the python terminal.

+within a python interpreter.

Loading configuration from json file:

import json
 # Read in config file
@@ -171,10 +171,10 @@ 

3.1. Creating the digital environment.config = json.load(f)

-

The digital environment `Mesh` object can then be initialised. This mesh object will be constructed using parameters in it -configuration file. This mesh object can be manipulated further, such as increasing its resolution through further -splitting, adding additional data sources or altering is configuration parameters. See MeshiPhi -docs for a more in-depth explanation. The digital environment `Mesh` object can then be cast to a json object and saved to a file.

+

The EnvironmentMesh object can then be initialised. This mesh object will be constructed using the parameters in its +configuration file. This mesh object can then be manipulated further, such as increasing its resolution through further +splitting, adding additional data sources or altering its configuration parameters. See MeshiPhi +docs for a more in-depth explanation. The EnvironmentMesh object can then be cast to a json object and saved to a file.

from meshiphi.mesh_generation.mesh_builder import MeshBuilder
 
 # Create mesh from config
@@ -195,9 +195,9 @@ 

3.1. Creating the digital environment.

3.2. Simulating a Vessel in a Digital Environment

-

Once a digital environment EnvironmentMesh object has been created with MeshiPhi, a vessels performance when travelling within it may be simulated. The VesselPerformanceModeller +

Once a digital environment EnvironmentMesh object has been created with MeshiPhi, a vessel’s performance when travelling within it may be simulated. The VesselPerformanceModeller object requires a digital environment in json format and vessel specific configuration parameters, also in json format. These may either -be loaded from a file, or created within the python terminal.

+be loaded from a file, or created within any python interpreter.

Loading mesh and vessel from json files:

# Loading digital environment from file
 with open('/path/to/grf_example.mesh.json', 'r') as f:
@@ -255,12 +255,12 @@ 

3.3. Route Optimisation

3.4. Visualising Outputs

-

The `Mesh` object can be visualised using the `GeoPlot` package, also developed by BAS. This package is not included in the distribution +

The EnvironmentMesh object can be visualised using the GeoPlot package, also developed by BAS. This package is not included in the distribution of MeshiPhi, but can be installed using the following command:

pip install bas_geoplot
 
-

`GeoPlot` can be used to visualise the `Mesh` object using the following code in an iPython notebook:

+

GeoPlot can be used to visualise the Mesh object using the following code in an iPython notebook or any python interpreter:

from bas_geoplot.interactive import Map
 
 mesh = pd.DataFrame(mesh_json['cellboxes'])