Utility to process routes and waypoints used by the British Antarctic Survey (BAS) Air Unit.
Note: This project is focused on needs within the British Antarctic Survey. It has been open-sourced in case it is of interest to others. Some resources, indicated with a '🛡' or '🔒' symbol, can only be accessed by BAS staff or project members respectively. Contact the Project Maintainer to request access.
To support the BAS Air Unit manage their network of routes and waypoints such that:
- information is internally consistent, through defined structures and constraints
- information is interoperable between different systems, through the use of open/standard formats
- information is well described and sharable with other teams, through distribution as datasets (through the Ops Data Store 🛡)
This project was developed in response to discussions and requests with the BAS Air Unit to review and simplify the process they used to manage their network of waypoints, and to ensure its future sustainability.
BAS staff can read more about this background in this GitLab issue 🛡.
This service has a number of limitations, including:
- the Air Unit Network utility does not support multiple, or additional, networks
- the Air Unit Network utility does not require route names to follow the required naming convention
- the Air Unit Network utility does not require waypoint identifiers to be unique across all waypoints
- the Air Unit Network utility does not require waypoint comments to follow the required GPX comment structure
- the Air Unit Network utility does not require waypoints within imported routes to be listed as standalone waypoints
- comments for waypoints use an overly complex structure to support an ad-hoc serialisation format within GPX files
- Unicode characters (such as emoji) are unsupported in route/waypoint names, comments, etc.
Some or all of these limitations may be addressed in future improvements to this project. See the project issue tracker 🛡 for details.
$ python -m pip install bas-air-unit-network-dataset
If loading waypoints and routes from a GPX file, these requirements must be met in addition to the constraints from the Information Model:
- the GPX comment field should consist of 8 elements, in the order below, separated with a vertical bar (
|
):- name: a full, or formal name for the waypoint (maximum 17 characters)
- co-located with: name of a related depot, instrument and/or other feature - use
N/A
if not applicable - last accessed at: date waypoint was last accessed in the form
YYYY-MM-DD
- useN/A
if unvisited - last accessed by: pilot that that last accessed waypoint - use
N/A
if unvisited - fuel: amount of fuel at a waypoint, as a positive whole number - use
N/A
if not applicable - elevation_ft: elevation at waypoint, as a positive whole number - use
N/A
if not applicable - comment: any other information - use
N/A
if not applicable - category: a grouping value - use
N/A
if not applicable
For example (a co-located, previously visited, waypoint with a full name, additional information and a category):
- identifier:
ALPHA
- comment:
Alpha 001 | Dog | 2014-12-24 | CW | 10 | 130 | Bring treats. | Animals
For example (a standalone, unvisited, waypoint with no full/formal name or additional information):
- identifier:
BRAVO
- comment:
N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A
Note: Only the 'name' in a comment will be included in FPL waypoints.
See the tests/create_outputs.py
for an example of converting a set of input waypoints and
routes into output formats, creating an Output Directory, using an instance of the
MainAirUnitNetwork
class.
The Network
class (on which the MainAirUnitNetwork
class is based) includes a built-in method for loading features
from a GPX file (used in the example above). To load data from other data sources, construct Waypoint
and Route
features directly and add to a Network
object.
When using the MainAirUnitNetwork
class from this project to process waypoints and routes, an output directory
similar to the example below will be created:
/path/to/output/directory
├── CSV
│ ├── 00_WAYPOINTS_DDM_2023_12_03.csv
│ └── 00_WAYPOINTS_DD_2023_12_03.csv
├── FPL
│ ├── 00_NETWORK_2023_12_03.fpl
│ ├── 01_BRAVO_TO_ALPHA.fpl
│ ├── 02_BRAVO_TO_BRAVO.fpl
│ └── 03_BRAVO_TO_LIMA.fpl
├── GPX
│ ├── 00_NETWORK_2023_12_03.gpx
└── PDF
└── 00_WAYPOINTS_2023_12_03.pdf
The Air Unit Network utility does not include access control. If needed, access controls should be applied to the output directory, as is the case for the Ops Data Store 🛡 for example.
See Implementation documentation.
See Developing documentation.
British Antarctic Survey (BAS) Mapping and Geographic Information Centre (MAGIC). Contact [email protected].
The project lead is @felnne.
Copyright (c) 2022 - 2024 UK Research and Innovation (UKRI), British Antarctic Survey (BAS).
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.