Proposal for Search and Rescue API and architecture
Build open APIs and standards to automate and accelerate search and rescue efforts for glider pilots.
The proposed concept includes multiple components:
- DB API (after file upload)
- OGN API (live)
- Algorithms that run on top of live OGN data
- Frontend to interact with API and show data on map
Different platforms could provide an API in this format, which would enable the frontend to collect data from multiple resources.
GET /sar/search?lat=45&lon=10&radius=50&start_time=2021-02-07T19:00:00&end_time=2021-02-07T20:00:00
Return flight id / pilot id for flights that were closer than radius to the given position in the given time interval.
GET /sar/flarm?flarm_id=12345
Search uploaded files for flarm contacts with the given flarm id and returns the last known position of the aircraft.
POST /sar/notify?lat=45&lon=10&radius=50&start_time=2021-02-07T19:00:00&end_time=2021-02-07T20:00:00
Notify all pilots that were closer than radius to the given position in the given time interval by email. Notification could be call to upload flarm files which could contain more information.
User could save data like SPOT key or emergency contacts which could also be given out by the API.
This API runs on top of live OGN data (saved for 24 hours) in redis or database.
GET /sar/last_position/{flarm_id}
Get the last position of an aircraft from OGN data.
These algorithms periodically run on top of live OGN data in redis or database. E.g. use Viterbi algorithm to find maximum likelihood (hidden) path of states (crashed / not crashed) for sequence of observed events. Maybe we can abstract so that people can work on those algorithms without being familiar to the structure of live OGN data.
It would be useful to have actual OGN data from glider crashes / outlandings to validate and tests these algorithms.
- UI for above API calls
- Map to show returned position and position history (from OGN API and)
- Authentication for special users to send emails and start other processes
We want to provide the DB API and frontend until late spring. This would be in time for the 2021 season. OGN API and algorithms are expected to take more time.
This repository should provide a place to discuss and share ideas. Please open pull requests or issues to exchange ideas.