Using the DFlight API Obstacle Endpoints
Background
The FAA has detailed standards and definitions for what constitutes an “obstruction to air navigation”. For all of the details see Part 77 of the Federal Aviation Regulations.
In general, these are objects which extend to a height of 200 FT or more above ground level, but can also include objects of much lesser height if they are near a road, railroad, or airport. The location of such obstacles is ever-changing… construction cranes go up, grain silos are torn down, etc. Results provided via the /obstacles endpoints are updated every 24 hours to provide the most recent information available on any given day.
{ "poly": { "type": "Polygon", "coordinates": [ [ [-81.711, 41.504], [-81.708, 41.500], [-81.695, 41.507], [-81.698, 41.510], [-81.711, 41.504] ] ] } }
and we’ll send our POST request to the /obstacles/polygon-query endpoint.
As with all request types (except airspace), the response body is a json object containing a single element named found. The contents of found will be a GeoJSON FeatureCollection with one Feature per obstacle found in your requested area of interest.
The feature properties given for obstacles are:
- name: string composed of city-state-id
- obstacle_type: one of 50 standard types
- quantity: integer value giving number of structures
- height_ft: integer value giving the height of the structure in feet
- lighting: type of lighting used on the structure
- marking: type of paint or marker used on the structure
Below shows the entirety of our results, with the gray polygon indicating our requested area.
{ "found": { "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.709023, 41.50145 ] }, "properties": { "name": "CLEVELAND-OH-022708", "obstacle_type": "ELEVATOR", "quantity": 1, "height_ft": 158, "lighting": "Unknown", "marking": "Unknown" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.707362, 41.504028 ] }, "properties": { "name": "CLEVELAND-OH-027090", "obstacle_type": "CRANE", "quantity": 1, "height_ft": 150, "lighting": "Red", "marking": "Flag Marker" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.706528, 41.504584 ] }, "properties": { "name": "CLEVELAND-OH-027084", "obstacle_type": "CRANE", "quantity": 1, "height_ft": 150, "lighting": "Red", "marking": "Flag Marker" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.701114, 41.505042 ] }, "properties": { "name": "CLEVELAND-OH-126551", "obstacle_type": "POLE", "quantity": 1, "height_ft": 35, "lighting": "None", "marking": "None" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.705112, 41.505334 ] }, "properties": { "name": "CLEVELAND-OH-027091", "obstacle_type": "CRANE", "quantity": 1, "height_ft": 150, "lighting": "Red", "marking": "Flag Marker" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.697231, 41.505842 ] }, "properties": { "name": "CLEVELAND-OH-022504", "obstacle_type": "POLE", "quantity": 1, "height_ft": 33, "lighting": "None", "marking": "None" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.696545, 41.5062 ] }, "properties": { "name": "CLEVELAND-OH-022503", "obstacle_type": "POLE", "quantity": 1, "height_ft": 40, "lighting": "Unknown", "marking": "Unknown" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.69677, 41.506667 ] }, "properties": { "name": "CLEVELAND-OH-022710", "obstacle_type": "WINDMILL", "quantity": 1, "height_ft": 110, "lighting": "Unknown", "marking": "Unknown" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.699125, 41.507028 ] }, "properties": { "name": "CLEVELAND-OH-001164", "obstacle_type": "STADIUM", "quantity": 1, "height_ft": 176, "lighting": "Medium intensity White Strobe & Red", "marking": "None" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.69625, 41.507295 ] }, "properties": { "name": "CLEVELAND-OH-022666", "obstacle_type": "DOME", "quantity": 1, "height_ft": 61, "lighting": "Unknown", "marking": "Unknown" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.700562, 41.507437 ] }, "properties": { "name": "CLEVELAND-OH-122953", "obstacle_type": "TOWER", "quantity": 1, "height_ft": 35, "lighting": "None", "marking": "None" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.700562, 41.50745 ] }, "properties": { "name": "CLEVELAND-OH-120250", "obstacle_type": "UTILITY POLE", "quantity": 1, "height_ft": 33, "lighting": "None", "marking": "None" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.696523, 41.507614 ] }, "properties": { "name": "CLEVELAND-OH-022748", "obstacle_type": "BLDG", "quantity": 1, "height_ft": 107, "lighting": "Unknown", "marking": "Unknown" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.697406, 41.507667 ] }, "properties": { "name": "CLEVELAND-OH-022667", "obstacle_type": "BLDG", "quantity": 1, "height_ft": 59, "lighting": "Unknown", "marking": "Unknown" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.697564, 41.508728 ] }, "properties": { "name": "CLEVELAND-OH-022450", "obstacle_type": "POLE", "quantity": 1, "height_ft": 86, "lighting": "Red", "marking": "Unknown" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -81.697223, 41.509167 ] }, "properties": { "name": "CLEVELAND-OH-115009", "obstacle_type": "BRIDGE", "quantity": 1, "height_ft": 71, "lighting": "Red", "marking": "None" } } ] } }
The geometry type of Features returned from /obstacles endpoints will always be Point. The spatial extent of the structure will depend on it’s type.
Cases where the quantity is greater than 1 indicate a group of structures of the same type. It is possible that only the tallest or most prominent of the structures will be lighted or marked.