Airspace Advisory

The Airspace Advisory API returns all the airspace that applies to a given ruleset. Based on the concept of Contextual Airspace, AirMap's Airspace Advisory API applies the rules a pilot is flying under to various types of airspace intersecting with their flight plan, returning only relevant information.

For example, for a pilot flying near Los Angeles International Airport under the US Part 107 ruleset, a rule may state: Do not fly in Class B controlled airspace without ATC authorization. In contrast, the corresponding advisory, which takes their flight location into account, states: LOS ANGELES CLASS B AREA A no fly area, requires FAA special authorization.

AirMap's Airspace Advisory API takes in a geometry (i.e. flight area) and one or more ruleset identifiers, returning all the relevant advisories that intersect with that flight area. As an example, let's check the airspace around Los Angeles for a commercial pilot operating under the US Part 107 ruleset:

curl -X "POST" "https://api.airmap.com/advisory/v2/airspace" \
     -H 'Accept: application/json' \
     -H 'X-Api-Key: <API_KEY>' \
     -H 'Content-Type: application/json' \
     -d '{"geometry": {"type": "Polygon", "coordinates": [[[-118.52076382098657, 34.016872949411734 ], [-118.52093642974953, 34.015420315594696 ], [-118.52144762278037, 34.01402348223875 ], [-118.52227775521766, 34.01273613289486 ], [-118.52339492553733, 34.01160774570497 ], [-118.52475620151054, 34.010681691066885 ], [-118.52630927006504, 34.00999356385172 ], [-118.52799444764727, 34.00956981443051 ], [-118.52974697382777, 34.00942673128363 ], [-118.53149950000828, 34.00956981443051 ], [-118.5331846775905, 34.00999356385172 ], [-118.534737746145, 34.010681691066885 ], [-118.53609902211821, 34.01160774570497 ], [-118.5372161924379, 34.01273613289486 ], [-118.53804632487515, 34.01402348223875 ], [-118.53855751790601, 34.015420315594696 ], [-118.53873012666897, 34.016872949411734 ], [-118.53855751790601, 34.01832555837196 ], [-118.53804632487515, 34.01972232094169 ], [-118.5372161924379, 34.02100956434651 ], [-118.53609902211821, 34.02213782657273 ], [-118.534737746145, 34.02306375624716 ], [-118.5331846775905, 34.023751777523245 ], [-118.53149950000828, 34.024175456158225 ], [-118.52974697382777, 34.024318514448304 ], [-118.52799444764727, 34.024175456158225 ], [-118.52630927006504, 34.023751777523245 ], [-118.52475620151054, 34.02306375624716 ], [-118.52339492553733, 34.02213782657273 ], [-118.52227775521766, 34.02100956434651 ], [-118.52144762278037, 34.01972232094169 ], [-118.52093642974953, 34.01832555837196 ], [-118.52076382098657, 34.016872949411734 ] ] ] }, "rulesets": "usa_part_107"}'
  
     
## The Airspace Advisory API returns the specific advisories which apply to this flight and ruleset:

{
  "status": "success",
  "data": {
    "color": "orange",
    "advisories": [
      {
        "id": "c9518539-fb02-4bba-8615-bf034a877ed7",
        "name": "SANTA MONICA CLASS D Airspace requires FAA Authorization. Automated authorization available at or below 50 ft",
        "last_updated": "2020-07-14T21:12:17.000Z",
        "longitude": -118.523634726365,
        "latitude": 34.024727922872,
        "distance": 0,
        "type": "controlled_airspace",
        "city": null,
        "state": "California",
        "country": "USA",
        "rule_id": 5555,
        "ruleset_id": "usa_part_107",
        "properties": {
          "airport_id": "SMO",
          "airport_name": "Santa Monica Muni",
          "airspace_classification": "D",
          "authorization": true,
          "auto_auth_floor_m_agl": 0,
          "auto_auth_ceiling_m_agl": 15.24,
          "manual_auth_ceiling_m_agl": 121.92,
          "icao": "KSMO",
          "laanc": true,
          "last_edit_date": "8/14/2017",
          "type": "controlled_airspace",
          "url": "https://www.airmap.com/laanc/"
        },
        "color": "orange",
        "requirements": {
          "notice": {
            "phone": null,
            "digital": false
          }
        },
        "extents": {
          "floor_m": 15.24,
          "ceiling_m": 121.92,
          "floor_code": "AGL",
          "ceiling_code": "AGL"
        }
      }, 
      {
        "id": "ae5acfa6-4011-46ec-a7de-e60cb91a3c7b",
        "name": "SANTA MONICA CLASS D Airspace requires FAA Authorization. ",
        "last_updated": "2020-07-14T21:12:17.000Z",
        "longitude": -118.523751836698,
        "latitude": 34.0085640842219,
        "distance": 0,
        "type": "controlled_airspace",
        "city": null,
        "state": null,
        "country": "USA",
        "rule_id": 5555,
        "ruleset_id": "usa_part_107",
        "properties": {
          "airport_id": "SMO",
          "airport_name": "Santa Monica Muni",
          "airspace_classification": "D",
          "authorization": true,
          "auto_auth_floor_m_agl": 0,
          "auto_auth_ceiling_m_agl": 0,
          "manual_auth_ceiling_m_agl": 121.92,
          "icao": "KSMO",
          "laanc": true,
          "last_edit_date": "1/24/2018",
          "url": "https://www.airmap.com/laanc/"
        },
        "color": "orange",
        "requirements": {
          "notice": {
            "phone": null,
            "digital": false
          }
        },
        "extents": {
          "floor_m": 0,
          "ceiling_m": 121.92,
          "floor_code": "AGL",
          "ceiling_code": "AGL"
        }
      }
    ]
  }
}
let coordinates = [[
    CLLocationCoordinate2D(latitude: 38.72569753630937, longitude: -77.26924896240234),
    CLLocationCoordinate2D(latitude: 38.72569753630937, longitude: -76.88781738281250),
    CLLocationCoordinate2D(latitude: 39.02451827974919, longitude: -76.88781738281250),
    CLLocationCoordinate2D(latitude: 39.02451827974919, longitude: -77.26924896240234),
    CLLocationCoordinate2D(latitude: 38.72569753630937, longitude: -77.26924896240234)
]]

let polygon = AirMapPolygon(coordinates: coordinates)
let rulesets: [AirMapRulesetId] = ["usa_part_107", "usa_sec_336"]

AirMap.getAirspaceStatus(within: polygon, rulesetIds: rulesets) { (result) in
    
    switch result {
        
    case .error(let error):
        print(error)
        
    case .value(let airspace):

        for advisory in airspace.advisories {
            print()
            print(advisory.type.title)
            print(advisory.name)
        }
    }
}
List<String> rulesetIds = ...

AirMap.getAirspaceStatus(polygon, rulesetIds, new AirMapCallback<AirMapAirspaceStatus>() {
    @Override
    protected void onSuccess(AirMapAirspaceStatus status) {
        // Show status advisories
        AirMapLog.d(TAG, "Status: " + status);
    }

    @Override
    protected void onError(AirMapException e) {
        // Handle error
    }
});

An important property of an advisory is its color, designating its relative restrictiveness when evaluating the safety and permissibility of a flight. The overall response also includes a color corresponding to the most restrictive color returned within the list. It can be a simple and intuitive form of visually communicating risk to a pilot in your application before they make the decision to fly.

The colors correspond to the following definitions:

ColorDescription
GreenThere are no known advisories in this area
YellowThere are known advisories in this area and caution should be used
OrangeFlight is regulated in this area and requires authorization to fly
RedFlight is strictly regulated in this area (Probably not safe/legal to fly for the majority of people)

Updated 2 years ago


What's Next

Checking the weather

Weather

Airspace Advisory


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.