NavTools 2021.06¶
NavTools helps with planning, execution and analysis of simple waypoint-based navigation using rhumb-line routes. It’s suitable for small craft making relatively short passages where the great circle accuracy isn’t critical.
This is focused on Python 3.9.
Introduction¶
Implementation¶
Each of the following sections describes the implementation details for each module.
planning
– Route Planning Applicationanalysis
– Track Analysis Applicationopencpn_table
– OpenCPN Table Applicationwaypoint_merge
– Waypoint and Route Merge Applicationnavigation
– Navigation Calculationslowrance_usr
– Lowrance USR File Parserolc
– OLC Geocodingigrf
– International Geomagnetic Reference Fieldsolar
– Sunrise and Sunset
The TODO List¶
This is a list of all “TODO” items from the documentation.
Todo
Use urllib.request
We can then use urllib
instead of simple
Path.open()
so that we could use
“file:///path/to/file” or “https://server/path/to/file”.
Even though most use cases involve disconnected computers, and rely on a statically downloaded file. It’s easy to cover all the bases by opening a URL instead of assuming a local file.
The official file: http://www.ngdc.noaa.gov/IAGA/vmod/igrf11coeffs.txt
(The original entry is located in /Users/slott/github/local/navtools/navtools/igrf.py:docstring of navtools.igrf.IGRF.load_coeffs, line 20.)
Todo
Locate the sunrise equation and include anticipated time-of-day for an ETA
(The original entry is located in /Users/slott/github/local/navtools/docs/planning.rst, line 179.)
Todo
Compute the locations at noon of each day.
This requires looking at waypoints before and after local noon, Splitting the segment to find noon, and adding a waypoint with no course change.
(The original entry is located in /Users/slott/github/local/navtools/docs/planning.rst, line 186.)
Todo
Unify with opencpn_table.Leg
.
leg: int
ETE: Optional[“Duration”]
ETA: Optional[datetime.datetime]
ETA_summary: Optional[str]
speed: float
tide: Optional[str]
distance: Optional[float]
bearing: Optional[float]
course: Optional[float] = None
(The original entry is located in /Users/slott/github/local/navtools/navtools/planning.py:docstring of navtools.planning.SchedulePoint, line 4.)
Todo
Implement arrival-based planning to solve for departure.
(The original entry is located in /Users/slott/github/local/navtools/navtools/planning.py:docstring of navtools.planning.plan, line 13.)
Todo
Implement departure and arrival planning to solve for speed.
(The original entry is located in /Users/slott/github/local/navtools/navtools/planning.py:docstring of navtools.planning.plan, line 15.)
Todo
Unify with planning.SchedulePoint
.
(The original entry is located in /Users/slott/github/local/navtools/navtools/opencpn_table.py:docstring of navtools.opencpn_table.Leg, line 10.)
Todo
parameterize the distance or geocode options.
(The original entry is located in /Users/slott/github/local/navtools/navtools/waypoint_merge.py:docstring of navtools.waypoint_merge.main, line 4.)