Generate OIS Obstacle Data (Aviation)

Available with Aviation Airports license.

Available with Aviation Charting license.

Summary

Generates a JSON string that is stored in the OBSTACLEJSON field on the input Obstruction Identification Surface (OIS) multipatch feature class that contains the data necessary to depict obstacles to safety of flight within the approach surfaces (in the form of points, lines, or polygons) in the Terrain and Obstacle Profile layout element.

For each runway feature, the tool identifies each of the approach surfaces associated with that runway. For each approach surface, the tool uses the underlying elevation models and input obstacle features to determine the highest elevations and heights of those obstacle features that intersect the approach surfaces extent. The resulting 3D points, representing the highest-point cross section of each affected obstacle, are created and stored in JSON format and saved in the corresponding approach OIS feature.

The following table shows values that are populated in the OBSTACLEJSON output message. They are given per input obstacle feature if the planimetrically intersect any input approach surface multipatch feature.

FieldExamplePopulated with

Type_Code

"Type_Code": "Stack"

Input Obstacle Features Type_Code field. It is given as the description for its coded domain value or as Unknown if no domain value is found or if the input is null.

HACCM

"HACCM": 0.304801

Input Obstacle Features HORIZACC_VAL field, converted to meters. It is given as -1.0 if the input is null.

VACCM

"VACCM": 0.304801

Input Obstacle Features VERTACC_VAL field, converted to meters. It is given as -1.0 if the input is null.

Height

"Height": 16.664848

Value of Input Obstacle Height parameter (feature geometry or input field) converted to meters.

GNDElev

"GNDElev": 335.647491

The ground elevation at the Input Obstacle's location from Elevation Source (DEM or input field) converted to meters.

NormalDist

"NormalDist": 946.035675

The distance, in meters, between the obstacle and the nearest point on the runway centerline.

Offset

"Offset": 143.128218

The distance, in meters, between the obstacle and the nearest point on the extended runway centerline.

X

"X": -95.953753

The x-coordinate of the obstacle in WGS84 decimal degrees.

Y

"Y": 45.550517

The y-coordinate of the obstacle in WGS84 decimal degrees.

ZVMC

"ZVMC": 352.31234

The elevation of the top of the obstacle (Height + GNDElev) in meters.

OIS

"OIS": 384.942139

The z-value of the OIS at the obstacle's location.

Penetrates

"Penetrates": false

A value of true if ZVMC is greater than or equal to OIS; otherwise, false.

Label

"Label": "362"

The value of the Obstacle Labels input parameter.

Usage

  • The Input Runway Features parameter must be z-enabled and have projected horizontal and vertical coordinate systems defined. It must include a populated Runway Designator text field, which must be named as one of the following from the ArcGIS Aviation data models:

    • RWYDESG
    • RUNWAYDESIGNATORIDENTIFIER
    • DESIGNATOR_TXT
    Tip:

    Recommended input features are RunwayCenterline from the Airports data models (18B or 18C) or ADHPSurfaceLine from the AIS datamodel. For more information, see the respective schemas for attribute properties.

  • The Input Obstacle Features parameter must be z-enabled and have projected horizontal and vertical coordinate systems defined.

    Tip:

    Recommended input features are VerticalStructurePoint, VerticalStructureLine, and VerticalStructurePolygon from the Airports 18B or 18C data models. For more information, see the respective schemas for the attribute properties.

  • The Input Obstacle Features parameter should include a field to represent the type of obstacle that is used by the tool to populate the "Type_Code" values in the OBSTACLEJSON field results. Null values in this field will be written as Unknown in the output. Permissible field names are any of the following:

    • TYPE_CODE
    • OBSTACLETY
    • OBSTACLETYPECODE
    • ObsType
    • OBJECTTYPECODE
    • OBJECTTYPE

  • The Input Obstacle Features parameter can include the following fields. If present, the values of these fields will contribute to the HACCM and VACCM fields in the output OBSTACLEJSON values:

    • HORIZACC_VAL
    • HORIZACC_UOM
    • VERTACC_VAL
    • VERTACC_UOM

  • The Target OIS Features parameter must be a multipatch feature class, with projected horizontal and vertical coordinate systems defined, contain approach features, and include the following fields:

    • RWYDESG or LANDINGSTRIPDESIGIDENTIFIER or DESIGNATOR_TXT (Populated with a runway designator, for example, '09/27')
    • NAME (Populated with the value 'Approach Surface')
    • OBSTACLEJSON (Populated by the tool)
      Tip:

      Recommended input features are ObstructionIdSurface_MP from the Airports 18B or 18C data models. The approach features can be generated with one of the tools from the Obstruction Identification Surfaces toolset.

      Note:

      The field length must be at least 50,000 characters. A warning appears if the JSON output exceeds the length of the OBSTACLEJSON field.

  • Input Obstacle Feature elevations are specified by the Obstacle Feature Height Type parameter. Use the Absolute Height (ABSOLUTE_HEIGHT in Python) option if the input data includes feature geometry or a numeric attribute field with the elevation value of the top of the obstacle above mean sea level. Use the Relative Height (RELATIVE_HEIGHT in Python) option if feature geometry or a numeric attribute field contains the value of the obstacle height above ground level.

    Obstacle Feature Height Type
  • This tool requires base elevation data to function correctly. That data can come from one or more underlying digital elevation models (DEMs) or from a numeric attribute field in the input obstacle feature class. One or the other must be provided, with the appropriate option specified using the Elevation Source parameter.

  • The tool will use a flight path ID field (PATHID, text, Nullable, 255) in the Target OIS Features to associate curved approach polylines with specific approach surfaces. This is required if you have an Input Flight Path Features value. Use this value in the Target OIS Features with the OBJECTID of the corresponding Input Flight Path Features. This will be populated by the Create Curved Approach tool when creating the curved approach surface or surfaces.

  • If the tool is run repeatedly with different Input Obstacle Features parameter values, it will append the generated JSON data for each set of obstacles to each affected approach surface feature. Subsequently running the tool with an updated version of given Input Obstacle Features values will selectively update the JSON data for those features without affecting the JSON data generated using other Input Obstacle Features values.

Syntax

GenerateOISObstacleData(in_runway_features, {in_dems}, in_obstacle_features, target_ois_features, {obstacle_height_field}, {obstacle_height_unit}, {in_flightpath_features}, {label_field}, {height_option}, {elevation_option}, {elevation_field}, {elevation_field_unit})
ParameterExplanationData Type
in_runway_features

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

Feature Layer
in_dems
[in_dems,...]
(Optional)

The DEMs covering the obstacles, used to derive base elevation values. This parameter is used if elevation_option is set to ELEVATION_DEM.

Raster Layer
in_obstacle_features

The input obstacle features that will be analyzed. The feature class must be z-enabled.

Feature Layer
target_ois_features

The multipatch features with defined airport data model schema. The feature class must be z-enabled.

Feature Layer
obstacle_height_field
(Optional)

The field containing the height of the obstacle features or the keyword FEATURE_GEOMETRY to indicate obstacle feature geometry z-coordinate values.

  • FEATURE_GEOMETRYThe field containing the height of the obstacle features.
String
obstacle_height_unit
(Optional)

Specifies the obstacle height unit of measure.

  • KILOMETERSThe unit is kilometers.
  • METERSThe unit is meters.
  • DECIMETERSThe unit is decimeters.
  • CENTIMETERSThe unit is centimeters.
  • MILLIMETERSThe unit is millimeters.
  • NAUTICAL_MILESThe unit is nautical miles.
  • MILESThe unit is miles.
  • YARDSThe unit is yards.
  • FEETThe unit is feet.
  • INCHESThe unit is inches
  • DECIMAL_DEGREESThe unit is decimal degrees.
  • POINTSThe unit is points.
  • UNKNOWNThe unit is unknown.
String
in_flightpath_features
(Optional)

The polyline features that define curved approaches to the specified runways. If unspecified, all input features will be processed as straight approaches.

Feature Layer
label_field
(Optional)

A field from the input obstacle feature class. When an obstacle JSON generated by this tool is later used to create a Terrain and Obstacle Profile element in a layout, the data from the selected field will be used to label the input point obstacles in that element.

The Obstacle Labels parameter only applies to Input Obstacle Features parameter values that contain point features.

Note:

If no value is specified, the ObjectID will be applied by default.

String
height_option
(Optional)

Specifies how the tool interprets obstacle height values.

  • ABSOLUTE_HEIGHT Obstacle heights are measured from sea level.
  • RELATIVE_HEIGHT Obstacle heights are measured from ground level. This is the default.
String
elevation_option
(Optional)

Specifies where the tool finds the obstacle base elevation heights.

  • ELEVATION_FIELD Base elevation heights will be found in a numeric field of the obstacle feature class.
  • ELEVATION_DEM Base elevation heights will be found by deriving them from one or more DEMs. This is the default.
String
elevation_field
(Optional)

The field containing base elevation heights of the obstacle features.

This parameter is used if elevation_option is set to ELEVATION_FIELD. The default is the first numeric field in the obstacle feature class.

String
elevation_field_unit
(Optional)

Specifies the linear unit of the base elevation values. This parameter is used if elevation_option is set to ELEVATION_FIELD.

  • KILOMETERSThe unit is kilometers.
  • METERSThe unit is meters. This is the default.
  • DECIMETERSThe unit is decimeters.
  • CENTIMETERSThe unit is centimeters.
  • MILLIMETERSThe unit is millimeters.
  • NAUTICAL_MILESThe unit is nautical miles.
  • MILESThe unit is miles.
  • YARDSThe unit is yards.
  • FEETThe unit is feet.
  • INCHESThe unit is inches
  • DECIMAL_DEGREESThe unit is decimal degrees.
  • POINTSThe unit is points.
  • UNKNOWNThe unit is unknown.
String

Derived Output

NameExplanationData Type
out_ois_features

The updated multipatch feature class.

Feature Layer

Code sample

GenerateOISObstacleData example (stand-alone script)

The following Python window script demonstrates how to use the GenerateOISObstacleData tool.

import arcpy

# set gp environment
arcpy.CheckOutExtension("Airports")

# Input RunwayCenterline Feature Class
inRunwayFeatures = r"C:\data\ois.gdb\RunwayCenterlines"

# Input Terrain DEM Raster
inDEMRaster = [r"C:\data\ois.gdb\AirportFirstDEM",
               r"C:\data\ois.gdb\AirportSecondDEM"]

# Input Obstacle Feature Class
inOISObstacles = r"C:\data\ois.gdb\Obstacles"

# Input Obstruction Identification Surface Feature Class
targetOISFeatures = r"C:\data\ois.gdb\ObstructionIdSurface"

# Input Curved Approach Feature Class
inCurvedApproachFeatures = r"C:\data\ois.gdb\CurvedApproach"

# Processing GenerateOISObstacleData
arcpy.GenerateOISObstacleData_aviation(inRunwayFeatures, inDEMRaster,
                                       inOISObstacles, targetOISFeatures,
                                       "HEIGHT_VAL", "FEET", inCurvedApproachFeatures, "OBJECTID","RELATIVE_HEIGHT","ELEVATION_DEM")


arcpy.CheckInExtension("Airports")

Environments

Licensing information

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

Related topics