Summary
Calculates Maximum Elevation Figures (MEF) for each polygon cell or quadrangle in the MEF Feature Layer. MEF values are the elevation of the highest natural or manufactured obstruction plus a vertical error and allowance. This sum is rounded to the next higher hundred-foot level. You use these values as labels for the MEF Feature Layer.
To derive the highest obstruction value, the tool uses terrain data from a digital elevation model (DEM) and vertical obstruction data from a point feature class. You can calculate MEF values for Joint Operations Graphic (JOG), Operational Navigation Chart (ONC), Tactical Pilotage Chart (TPC) grid cells, NATO STANAG-3591 Edition 6, or any other polygon grid features.
Usage
This tool calculates values in three integer fields in the MEF Feature Layer (in_mef_feat_layer in Python). These fields must already exist in the MEF Feature Layer. One field will contain MEF values. The other two fields will contain maximum elevations from the Terrain Layer and Vertical Obstruction Feature Layer.
This tool will update null values to -32768. This flags values for quality control.
MEF values are used for labels on the MEF Feature Layer. Use the label expression at the end of this document to format MEF values for display.
The MEF Feature Layer must contain polygons.
The tool rounds the MEF values to the next 100 feet, unless it is already divisible by 100.
MEF calculation depends on the type of the highest vertical obstruction value in a quadrangle or cell. If the highest value originates from the Vertical Obstruction Feature Layer, MEF is calculated as the sum of the highest vertical obstruction value, the Vertical Obstruction Accuracy Value, and the MEF Vertical Obstruction Allowance. If the highest value originates from the Terrain Layer, MEF is calculated as the sum of the highest terrain elevation value, MEF Vertical Obstruction Allowance, and the Terrain Accuracy Value.
Syntax
arcpy.production.CalculateMaxElevationFigures(in_mef_feat_layer, in_mef_val_field, in_max_vo_val_field, in_max_dem_val_field, in_mef_allowance, in_terrain_layer, in_point_field, in_terrain_accuracy, in_vo_feat_layer, in_vo_accuracy, in_specification)
Parameter | Explanation | Data Type |
in_mef_feat_layer | A polygon layer that contains the MEF grid and the three fields that will be updated by the tool. | Feature Layer |
in_mef_val_field | The in_mef_feat_layer field in which the tool writes MEF values. | Field |
in_max_vo_val_field | The in_mef_feat_layer field in which the tool writes maximum vertical obstruction values from in_vo_feat_layer. | Field |
in_max_dem_val_field | The in_mef_feat_layer field in which the tool writes maximum elevation values from in_terrain_layer. | Field |
in_mef_allowance |
A vertical allowance value added to each calculated MEF value. The value accounts for nonrepresented natural or manufactured features. The default is 200 feet. | Linear unit |
in_terrain_layer | A point feature layer or DEM raster layer used to determine the terrain elevation. | Feature Layer;Mosaic Layer;Raster Layer |
in_point_field | The field that contains elevation values in in_point_layer. Use this parameter if in_point_layer is a feature layer. | String |
in_terrain_accuracy | A value that represents the accuracy of the terrain layer within a specified number of units. The default is 20 meters. | Linear unit |
in_vo_feat_layer [[Features,{Elevation Field},{Elevation Units}],...] | The layers that contain all the obstructions for the cells for which the MEF values are being calculated; this is generated from a Digital Vertical Obstruction File (DVOF).
| Value Table |
in_vo_accuracy | A value that represents the accuracy of the vertical obstruction feature layer within a specified number of units. The default is 20 meters. | Linear unit |
in_specification | The specification used to generate the maximum elevation points.
| String |
Code sample
CalculateMaxElevationFigures example (Python window)
The following Python window script demonstrates how to use the CalculateMaxElevationFigures tool.
# Name: CalculateMEF_StandAlone.py
# Description: Calculates maximum elevation figures for JOG data
# Requirements: Production Mapping extension
# Date: September 2014
import arcpy
# Check out extension
arcpy.CheckOutExtension("Foundation")
# set the current workspace
arcpy.env.workspace = "C:/data/VMap1JOG.gdb"
arcpy.env.addOutputsToMap=True
# local variables
mef_features = "VMap1JOG/JogMEF"
mef_lyr = "mefLayer"
mef_value = "MEF_VALUE"
max_vo_value = "MAX_ELEVATION"
max_terrain_value = "MAX_TERRAIN"
vo_allowance = "150 Feet"
terrain_features = "VMap1JOG/ElevP"
terrain_lyr = "terrain_lyr"
terrain_field = "zv2"
terrain_accuracy = "200 Feet"
vo_features="vo_lyr hgt Meters"
vo_lyr = "vo_lyr"
vo_accuracy="20 Feet"
specification = "JOG_MIL_J_89100"
# Make the MEF feature layer
arcpy.MakeFeatureLayer_management(mef_features, mef_lyr)
# Make the terrain feature layer
arcpy.MakeFeatureLayer_management(terrain_features, terrain_lyr)
# Make the obstruction feature layer
arcpy.MakeFeatureLayer_management(r'c:/data/VMap1JOG.gdb/Vmap1JOG/ObstrP', vo_lyr)
# Execute Calculate Max Elevation Figures
arcpy.CalculateMaxElevationFigures_production(mef_lyr,mef_value,max_vo_value,
max_terrain_value,vo_allowance,
terrain_lyr,terrain_field,
terrain_accuracy,vo_features,
vo_accuracy,specification)
print arcpy.GetMessages()
The following ArcGIS label expression can be used to label your maximum elevation figures in the MEF feature layer. To use this label expression
- Execute the Calculate MEF tool on your MEF feature layer.
- Right-click the MEF feature layer in the ArcMap table of contents and click Properties.
The Layer Properties dialog box appears.
- Click the Labels tab.
- Click Expression.
- Load the expression listed below into the Expression window. Make sure you change all [MEF_VALUE] occurrences to the name of your in_mef_val_field.
- Click Verify to validate the label expression.
- Click OK to close the Label Expression dialog box.
- Check on the Label features in this layer check box in the Labels tab of the Layer Properties dialog box.
- Click OK to close the Layer Properties dialog box.
Function FindLabel ( [MEF_VALUE] )
Dim l, h, s, f, z, j, len2, lenfin
s = [MEF_VALUE]
len2 = len(s)
if len2 < 4 then
l = mid(s, 1, 1)
z = "<FNT name='Arial' size='30'>" & "0" & "</FNT>"
j = "<SUP><FNT name='Arial' size='30'>" & l & "</FNT></SUP>"
Findlabel = z & j
elseif len2 = 4 then
l = mid(s, 1, 1)
h = mid(s, 2, 1)
z = "<FNT name='Arial' size='30'>" & l & "</FNT>"
j = "<SUP><FNT name='Arial' size='30'>" & h & "</FNT></SUP>"
Findlabel = Z & j
else
l = mid(s, 1, 2)
h = mid(s, 3, 1)
z = "<FNT name='Arial' size='30'>" & l & "</FNT>"
j = "<SUP><FNT name='Arial' size='30'>" & h & "</FNT></SUP>"
Findlabel = Z & j
end if
End Function
Environments
Licensing information
- Basic: No
- Standard: Requires Production Mapping
- Advanced: Requires Production Mapping
Related topics
- An overview of the Elevation toolset
- How maximum elevation figures are calculated for a Joint Operations Graphic
- How maximum elevation figures are calculated for a Tactical Pilotage Chart
- How maximum elevation figures are calculated for an Operational Navigation Chart
- How maximum elevation figures are calculated for a STANAG