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})
Parameter | Explanation | Data 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.
| String |
low_runway_end_type | Specifies the classification of the low end of the runway.
| 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.
| 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.
| 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
Name | Explanation | Data Type |
derived_outfeatureclass | The updated feature class containing the generated obstruction identification surfaces. | Feature Layer |
Code sample
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")
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")
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