Summary
Generates a JSON string that represents the RunwayCenterline, OIS, obstacles, and elevation along the profile of the approach surface, storing the result in an existing OIS Multipatch layer.
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 text 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}, {curved_path})
Parameter | Explanation | Data Type |
runway_centerline | A z-aware polyline layer that contains the centerline of the runway. The recommended input is RunwayCenterline from the Airports 18B data model or ADHPSurfaceLine from the AIS data model. At least one of the following fields is required: DESIGNATOR_TXT or RWYDESG. | Layer |
ois | A multipatch 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 layer that contains the obstacles. The following fields are required:
| Layer |
profile_OIS | Specifies whether points other than the end points are added for the OIS.
| Boolean |
profile_Runway | Specifies whether points other than the end points are added for the runway.
| Boolean |
curved_path | The curved_path layer that contains the path used to create curved approach. | Layer |
Code sample
GenerateOISProfileJSON example - Straight Approach
This script updates the profileJSON field with the information about the runway and approach profile as well as the obstacleJSON field with the obstacle information.
# Name: GenerateOISProfileJSONExample.py
# Description: Generates the JSON of the approach profile
# Author: Esri
# Date: April 2016
# 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 = None
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")
GenerateOISProfileJSON example - Curved Approach
This script updates the profileJSON field with the information about the runway and approach profile as well as the obstacleJSON field with the obstacle information.
# Name: GenerateOISProfileJSON_curvedapproach.py
# Description: Generates the JSON of the approach profile
# Author: Esri
# Date: April 2016
# 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 = lyrCurvePath = None
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
elif lyr.name == "CurvedPath":
lyrCurvePath = lyr
# Generate the profile JSON
arcpyproduction.aviation.airports.GenerateOISProfileJSON(lyrLine, lyrOIS, lyrdemRaster, 20, lyrObstacle, False, False, lyrCurvePath)
# Check in Aviation license
arcpy.CheckInExtension("Aeronautical")