FAA FAR 77 (Aviation)

Available with Aviation Airports license.

Available with Aviation Charting license.

Summary

Creates obstruction identification surfaces (OIS) based on the FAA Part 77 specification. This regulation establishes standards and notification requirements for objects affecting navigable airspace. The type, function, and dimension of a surface differ by its runway classification. This tool creates surfaces as a polygon or multipatch features.

Usage

  • The Input Runway Features parameter must be z-enabled.

  • The selections you make in High Runway Designator Classification and Low Runway Designator Classification parameters will automatically populate most of the surface parameters.

  • This tool creates the OIS in an existing polygon or multipatch feature class. It can also be generated in an existing polygon shapefile. If a feature class is selected for Target OIS Features, it must have a vertical spatial reference.

  • For military airports, the outer horizontal surface is merged as well as the horizontal and conical surfaces.

  • To create a JSON file for Custom JSON File, use the CustomizeOIS.exe file that is part of the ArcGIS Aviation data package available from My Esri.

  • The Airport Elevation parameter has a default value of 0. If you use an elevation value greater than 0, it takes precedence and overrides any existing airport elevation value read from the Input Airport Control Point Feature parameter.

  • The Input Airport Control Point Feature parameter can be used to supply x-, y-, and z-geometry for an Airport Elevation parameter, displaced threshold point features, or both. If displaced threshold points are included, surfaces will be constructed based on their x-, y-, and z-geometry instead of their corresponding Input Runway Feature parameter endpoint.

  • OIS tools are flexible and accept a variety of input and output feature class types. For more information, see the OIS Input and Output schemas.

  • The horizontal surface generated by this tool will be continuous across the multipatch feature.

    Legacy:

    In ArcGIS Pro 2.6.x and earlier versions, the horizontal surface generated by this tool will be cut by the transitional or approach surfaces.

Syntax

arcpy.aviation.FAAFAR77(in_features, target, high_runway_end_type, low_runway_end_type, {specially_prepared_hard_surface_runway}, {highend_clear_way_length}, {lowend_clear_way_length}, {airport_elevation}, {include_merged_surface}, {custom_json_file}, {airport_control_point_feature_class})
ParameterExplanationData Type
in_features

The input runway dataset. The feature class must be z-enabled and contain polylines.

Feature Layer
target

The target feature class that will contain the generated obstruction identification surfaces.

Feature Layer
high_runway_end_type

Specifies the classification of the high end of the runway.

  • CONSTRUCTION_OR_ALTERATION_ON_AN_AIRPORT_WITH_LONGEST_RUNWAY_MORE_THAN_3200_FEETConstruction on or alteration to a runway longer than 3,200 feet with an imaginary surface that extends outward 20,000 feet and has a slope that does not exceed 100 to 1.
  • CONSTRUCTION_OR_ALTERATION_ON_AN_AIRPORT_WITH_LONGEST_RUNWAY_LESS_THAN_3200_FEETConstruction on or alteration to a runway less than 3,200 feet long with an imaginary surface that extends outward 10,000 feet and has a slope that does not exceed 50 to 1.
  • CONSTRUCTION_OR_ALTERATION_ON_A_HELIPORTConstruction on or alteration to a heliport landing and takeoff area with an imaginary surface that extends outward 5,000 feet and has a slope that does not exceed 25 to 1.
  • MILITARY_AIRPORTMilitary airport runways are operated by an armed force of the United States. Primary surfaces are the same length as the runway. Primary surface width is 2,000 feet. Clear zone surface length is 1,000 feet, and width is the same as the primary surface. The approach clearance surface starts 200 feet beyond each end of the primary surface and extends for 50,000 feet. Approach surface width matches the primary surface width at the runway end but flares to a width of 16,000 feet at an elevation of 50,000 feet. Approach clearance surface slope is 50 to 1 to an elevation of 500 feet above airport elevation. It then rises horizontally to 50,000 feet. Transitional surface slope is 7 to 1 outward and upward at right angles to the runway centerline. See section 77.28 in the FAR Part 77 specification for more information.
  • NONPRECISION_INSTRUMENT_RUNWAY_GREATER_THAN_(>)_3/4_MILE_VISIBILITYA runway with a nonprecision instrument approach procedure that allows for landing in visibility conditions greater than three-quarters of a mile.
  • NONPRECISION_INSTRUMENT_RUNWAY_LESS_THAN_(<)_3/4_MILE_VISIBILITYA runway with a nonprecision instrument approach procedure that allows for landing in visibility conditions less than three-quarters of a mile.
  • PRECISION_INSTRUMENT_RUNWAYA runway that uses Instrument Landing System (ILS) or Precision Approach Radar (PAR) for approach procedures.
  • UTILITY_RUNWAY_VISUAL_APPROACHA runway built for propeller aircraft not exceeding 12,500 pounds gross weight. Aircraft using the runway employ visual approach procedures.
  • UTILITY_RUNWAY_NON_PRECISION_INSTRUMENT_APPROACHA runway built for propeller aircraft not exceeding 12,500 pounds gross weight. The runway has an instrument approach procedure that uses air navigation facilities with horizontal guidance. It can also have area-type navigation equipment with approved nonprecision instrument approach procedures.
  • VISUAL_RUNWAY_VISUAL_APPROACHA runway that supports only visual approach procedures.
String
low_runway_end_type

Specifies the classification of the low end of the runway.

  • SAME_AS_HIGH_RUNWAY_END_CLASSIFICATIONNo low runway end type.
  • NONPRECISION_INSTRUMENT_RUNWAY_GREATER_THAN_(>)_3/4_MILE_VISIBILITYA runway with a nonprecision instrument approach procedure that allows for landing in visibility conditions greater than three-quarters of a mile.
  • NONPRECISION_INSTRUMENT_RUNWAY_LESS_THAN_(<)_3/4_MILE_VISIBILITYA runway with a nonprecision instrument approach procedure that allows for landing in visibility conditions less than three-quarters of a mile.
  • PRECISION_INSTRUMENT_RUNWAYA runway that uses Instrument Landing System (ILS) or Precision Approach Radar (PAR) for approach procedures.
  • UTILITY_RUNWAY_VISUAL_APPROACHA runway built for propeller aircraft not exceeding 12,500 pounds gross weight. Aircraft using the runway employ visual approach procedures.
  • UTILITY_RUNWAY_NON_PRECISION_INSTRUMENT_APPROACHA runway built for propeller aircraft not exceeding 12,500 pounds gross weight. The runway has an instrument approach procedure that uses air navigation facilities with horizontal guidance. It can also have area-type navigation equipment with approved nonprecision instrument approach procedures.
  • VISUAL_RUNWAY_VISUAL_APPROACHA runway that supports only visual approach procedures.
String
specially_prepared_hard_surface_runway
(Optional)

Specifies whether the runway has a specially prepared hard surface. A specially prepared hard surface indicates that the primary surface extends 200 feet beyond each end of the runway.

  • SPECIALLY_PREPARED_HARD_SURFACE_RUNWAYThe runway has a specially prepared hard surface. This is the default.
  • NON_SPECIALLY_PREPARED_HARD_SURFACE_RUNWAYThe runway does not have a specially prepared hard surface.
Boolean
highend_clear_way_length
(Optional)

The length of the area at the high end of the runway. The unit of measurement is based on the input runway features.

Double
lowend_clear_way_length
(Optional)

The length of the area at the low end of the runway. The unit of measurement is based on the input runway features.

Double
airport_elevation
(Optional)

The highest elevation on any of the runways of the airport. The value should be in the vertical coordinate system linear units of the target feature class. If no value is provided, the highest point from the Input Runway Features parameter value will be used.

Double
include_merged_surface
(Optional)

Specifies whether merged horizontal and conical surfaces are included in the OIS in addition to the regular surfaces.

  • INCLUDE_MERGED_SURFACEMerged surfaces are included in the OIS output. This is the default.
  • NOT_INCLUDE_MERGED_SURFACEMerged surfaces are not included in the OIS output.
Boolean
custom_json_file
(Optional)

The import configuration, in JSON format, that creates the custom OIS.

File
airport_control_point_feature_class
(Optional)

The point features containing an Airport Elevation feature, displaced threshold features, or both. Values provided in the Airport Elevation parameter will take precedence over these point features.

Feature Layer

Derived Output

NameExplanationData Type
derived_outfeatureclass

The updated feature class containing the generated obstruction identification surfaces.

Feature Layer

Code sample

FAAFAR77 example 1 (stand-alone script)

The following Python window script demonstrates how to use the FAAFAR77 function.

import arcpy

# set gp environment
arcpy.env.workspace = "c:/data/ois.gdb"
arcpy.CheckOutExtension("Aeronautical")

# Input Runway Feature Class
inFeatures = "RunwayCenterline"

# feature class that will contain the OIS surface
outFeatures = "ObstructionIdSurface"

# runway variables
hiEndRunway = "PRECISION_INSTRUMENT_RUNWAY"
lowEndRunway = "PRECISION_INSTRUMENT_RUNWAY"
hardSurfaceRunway = "SPECIALLY_PREPARED_HARD_SURFACE_RUNWAY"
hiEndClearWay = 0
lowEndClearWay = 0
airportElev = 0

# execute the tool
arcpy.FAAFAR77_aviation(inFeatures, outFeatures, hiEndRunway, lowEndRunway,
                        hardSurfaceRunway, hiEndClearWay, lowEndClearWay,
                        airportElev, "INCLUDE_MERGED_SURFACE")

arcpy.CheckInExtension("Aeronautical")
FAAFAR77 example 2 (stand-alone script)

The following Python window script demonstrates how to use the FAAFAR77 function with the custom_json_file parameter.

import arcpy

# set gp environment
arcpy.env.workspace = "c:/data/ois.gdb"
arcpy.CheckOutExtension("Aeronautical")

# Input Runway Feature Class
inFeatures = "RunwayCenterline"

# feature class that will contain the OIS surface
outFeatures="ObstructionIdSurface"

# runway variables
hiEndRunway = "PRECISION_INSTRUMENT_RUNWAY"
lowEndRunway = "PRECISION_INSTRUMENT_RUNWAY"
hardSurfaceRunway = "SPECIALLY_PREPARED_HARD_SURFACE_RUNWAY"
hiEndClearWay = 0
lowEndClearWay = 0
airportElev = 0
customJSON = r"C:\data\customOIS.json"

# execute the tool
arcpy.FAAFAR77_aviation(inFeatures, outFeatures, hiEndRunway, lowEndRunway,
                        hardSurfaceRunway, hiEndClearWay, lowEndClearWay,
                        airportElev, "INCLUDE_MERGED_SURFACE", customJSON)

arcpy.CheckInExtension("Aeronautical")
FAAFAR77 example 3 (stand-alone script)

The following Python window script demonstrates how to use the FAAFAR77 function with the airport_control_point_feature_class parameter.

import arcpy

# set gp environment
arcpy.env.workspace = "c:/data/ois.gdb"
arcpy.CheckOutExtension("Aeronautical")

# Input Runway Feature Class
inFeatures = "RunwayCenterline"

# feature class that will contain the OIS surface
outFeatures="ObstructionIdSurface"

# runway variables
hiEndRunway = "PRECISION_INSTRUMENT_RUNWAY"
lowEndRunway = "PRECISION_INSTRUMENT_RUNWAY"
hardSurfaceRunway = "SPECIALLY_PREPARED_HARD_SURFACE_RUNWAY"
hiEndClearWay = 0
lowEndClearWay = 0
airportElev = 0
customJSON = r"C:\data\customOIS.json"

# Feature class that will contain the Airport Elevation feature
inACPFeatures= "AirportControlPoint"

# execute the tool
arcpy.FAAFAR77_aviation(inFeatures, outFeatures, hiEndRunway, lowEndRunway,
                        hardSurfaceRunway, hiEndClearWay, lowEndClearWay,
                        airportElev, "INCLUDE_MERGED_SURFACE", customJSON, inACPFeatures)

arcpy.CheckInExtension("Aeronautical")

Environments

Licensing information

  • Basic: No
  • Standard: Requires Airports, ArcGIS Aviation Charting
  • Advanced: Requires Airports, ArcGIS Aviation Charting