Summary
Generates a JSON string that represents the RunwayCenterline, OIS, obstacles, and elevation along the profile of the approach surface.
Discussion
The GenerateOISProfileJSON function is used to create a standard format that provides a view of runway and approach surfaces as well as any obstructions and terrain (maximum and minimum) that can be used in web-based applications. The information contained in the JSON allows you to create a representation of the runway and approach profile similar to the Terrain and Obstacle Profile tool. This information will be stored in a field on the OIS Multipatch called profileJSON. If you specify an obstacle feature class to be included, that information will be stored in the obstacleJSON field.
Syntax
GenerateOISProfileJSON (runway_centerline, ois, demRaster, {sampling_distance}, {obstacle}, {profile_OIS}, {profile_Runway})
Parameter | Explanation | Data Type |
runway_centerline | A z-aware polyline feature class or layer that contains the centerline of the runway. At least one of the following fields is required: DESIGNATOR_TXT or RWYDESG. | Layer |
ois | A multipatch feature class or layer that represents the approach surface. The following fields are required:
| Layer |
demRaster | A layer of a raster dataset. | Layer |
sampling_distance | The size of the sampling distance, in meters. | Double |
obstacle | A z-aware point feature class or layer that contains the obstacles. The following fields are required:
| Layer |
profile_OIS | Determines if points other than the end points are added for the OIS.
| Boolean |
profile_Runway | Determines if points other than the end points are added for the runway.
| Boolean |
Code sample
GenerateOISProfileJSON example
This script updates the profileJSON field with the information about the runway and approach profile.
# Name: GenerateOISProfileJSONExample.py
# Description: Generates the JSON of the approach profile
# Author: Esri
# Date: April 2015
# Import arcpyproduction and aviation modules
import arcpy
import arcpyproduction
# Check out Aviation license
arcpy.CheckOutExtension("Aeronautical")
# Set variables
mxd = arcpy.mapping.MapDocument(r"C:\Aviation\GenerateJSON.mxd")
lyrs = arcpy.mapping.ListLayers(mxd)
lyrLine = lyrOIS = lyrdemRaster = lyrObstacle = ""
for lyr in lyrs:
if lyr.name == "RunwayCenterLine":
lyrLine = lyr
elif lyr.name == "ois":
lyrOIS = lyr
elif lyr.name == "DEMRaster":
lyrdemRaster = lyr
elif lyr.name == "Obstacle":
lyrObstacle = lyr
# Generate the profile JSON
arcpyproduction.aviation.airports.GenerateOISProfileJSON(lyrLine, lyrOIS, lyrdemRaster, 20, lyrObstacle, False, False)
# Check in Aviation license
arcpy.CheckInExtension("Aeronautical")