Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jkleiber/flight-planner
Automatically create optimal flight plans between two airports
https://github.com/jkleiber/flight-planner
Last synced: 6 days ago
JSON representation
Automatically create optimal flight plans between two airports
- Host: GitHub
- URL: https://github.com/jkleiber/flight-planner
- Owner: jkleiber
- License: mit
- Created: 2023-12-21T21:32:49.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2023-12-26T03:32:44.000Z (11 months ago)
- Last Synced: 2024-10-11T03:14:21.913Z (28 days ago)
- Language: Python
- Size: 15.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# flight-planner
**This is not a certified software tool**
The goal of this project is to automatically create optimal flight plans, given departure and arrival airports and constraints (such as airspace restrictions, NOTAMs, etc.)
## Project Status
The project currently is a command line based tool that can find the shortest path (disregarding constraints) between two waypoints if they are on defined airways in the USA.The following shortcomings are known:
- The tool does not work on connecting airports to airports.
- The tool cannot connect Alaska and Hawaii to the continental USA.
- The tool only works in the USA.## Installation
Install [poetry](https://python-poetry.org/). Then, just clone the repository and run
```
poetry update
```
to activate the virtual environment and install dependencies. From there, you're good to go!## Usage
### Generating an Airway Database
An airway graph is provided in `data/`, but to regenerate it from the local NASR files (also in `data/`) run:
```
poetry run python generate_airways.py
```
This script has the following optional parameters:
- `--awy_file`: path to the NASR `AWY_SEG.csv`. Default is to the relevant file in the `data/` directory.
- `--fix_file`: path to the NASR `FIX_BASE.csv`. Default is to the relevant file in the `data/` directory.
- `--apt_file`: path to the NASR `APT_BASE.csv`. Default is to the relevant file in the `data/` directory.
- `--navaid_file`: path to the NASR `NAV_BASE.csv`. Default is to the relevant file in the `data/` directory.
- `--star_file`: path to the NASR `STAR_RTE.csv`. Default is to the relevant file in the `data/` directory.
- `--sid_file`: path to the NASR `DP_RTE.csv`. Default is to the relevant file in the `data/` directory.
- `--in_file`: path to a file containing an airway graph to modify. Default is no input.
- `--out_file`: path to output the generated airway graph to. Default is `data/airway_graph.pkl`.### Flight Planning
To find a flight plan between two waypoints, run:
```
poetry run python main.py [start] [end]
```
where `start` and `end` are the waypoint identifiers. The script has the following optional parameters:
- `--graph_file`: path to the airway graph (generated above). Default is `data/airway_graph.pkl`.## Example
For a flight plan between `MONIA` and `MILBY`, run:
```
poetry run python main.py MONIA MILBY
```
The resulting plan is shown in SkyVector:
![MONIA to MILBY](img/monia_to_milby.png)A longer flight from `SWAGG` to `LIMBO` can be found with:
```
poetry run python main.py SWAGG LIMBO
```
The resulting plan is shown in SkyVector:
![SWAGG to LIMBO](img/swagg_to_limbo.png)