Server for an app that determines if it's safe to fly your drone.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


ClearSkies was developed as part of the NASA SpaceApps 2016 hackathon in Waterloo. It was developed for the Don't Crash My Drone challenge.
SpaceApps Project Page

ClearSkies is an Android app that provides drone operators with an overview of the most important flying conditions that affect safety. This is achieved by aggregating data for weather conditions, no-fly zones, flight paths, and other drones in the same vicinity. These conditions are used to notify the drone operator whether their drone is still in a safe zone. As soon as they enter an unsafe zone, so for example, in a 5 mile radius of an airport, which is a no-fly/restricted access zone, the app changes its status from GREEN to RED.

This API allows the Android app to get data about airports, drones and flights in a certain region. The app visualizes and presents this information to the drone operator.

Clear Skies Android App
Android App Gtihub Repo

Setup Instruction

  1. Clone the repo
  2. $ cd clearskies-server
  3. $ . env/bin/activate
  4. $ python


Note: New features have been added since the documentation was last updated



Returns 'Safe' if there is no airport within a 5 mile radius, if not, returns the first airport that is closer than 5 miles, indicating that it is not safe

Example (Near Pearson):


Returns Pearson:

  continent: "NA",
  iata: "YYZ",
  iso: "CA",
  lat: "43.681583",
  lon: "-79.61146",
  name: "Lester B. Pearson International Airport",
  size: "large",
  status: 1,
  type: "airport"

Example (Waterloo):

Returns safe

safe: true



Given 4 lat long pairs where:

  • lat1, lon1 – Bottom left
  • lat2, lon2 – Bottom right
  • lat3, lon3 – Top right
  • lat4, lon4 – Top left should return an object, where the key airportsin corresponds to the array of airports in the specified lat, lon rectangle

Example (Toronto):



  "airportsin": [
      "continent": "NA",
      "iata": "YKZ",
      "iso": "CA",
      "lat": "43.86131",
      "lon": "-79.36774",
      "name": "Buttonville Municipal Airport",
      "size": "medium",
      "status": 1,
      "type": "airport"
      "continent": "NA",
      "iata": "YTZ",
      "iso": "CA",
      "lat": "43.632023",
      "lon": "-79.39585",
      "name": "Billy Bishop Toronto City Centre Airport",
      "size": "medium",
      "status": 1,
      "type": "airport"
      "continent": "NA",
      "iata": "YZD",
      "iso": "CA",
      "lat": "43.74278",
      "lon": "-79.46555",
      "name": "Downsview Airport",
      "size": "medium",
      "status": 1,
      "type": "airport"