Calculate Maximum Elevation Figures (Production Mapping)
Resumen
Calculates Maximum Elevation Figure (MEF) values for each cell in the input MEF Feature Layer. The tool uses a digital elevation model (DEM) or point data with elevation values to calculate MEF.
MEF values are based on maximum elevation values derived from terrain and vertical obstruction data, bounded in a grid. They can be calculated for Joint Operations Graphic (JOG), Operational Navigation Chart (ONC), Tactical Pilotage Chart (TPC) grid cells, or any other polygon grid features.
Uso
The tool modifies the MEF Feature Layer (in_mef_feat_layer) by calculating three integer fields. These fields must already exist in the MEF Feature Layer.
-
The MEF Feature Layer must contain polygons.
The tool uses a feature layer to determine vertical obstructions within each grid cell.
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 and the Vertical Obstruction Accuracy Value. If the highest value originates from the Terrain Layer, MEF value is calculated as the sum of the highest terrain elevation value, MEF Vertical Obstruction Allowance, and the Terrain Accuracy Value.
If the spot height (Terrain Layer) is the highest point in a cell, the tool adds the possible vertical error (accuracy value) plus 61m (200 ft).
This tool will update null values to -32768. This is done to flag values for quality control.
To use this tool in a stand-alone script, check out a production mapping foundation license: arcpy.CheckOutExtension("Foundation").
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_mef_feat_layer |
A polygon layer that contains the MEF grid. MEF grids include Joint Operations Graphic (JOG) grids, Operational Navigation Chart (ONC) grids, Tactical Pilotage Chart (TPC) grids, and other polygon grids. | 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. | Field |
in_max_dem_val_field | The field that stores the maximum elevation value for each cell in the in_mef_feat_layer. | Field |
in_mef_allowance |
The added default value for each calculated MEF value. The default is 200. | Long |
in_mef_units | The linear unit for MEF values:
| String |
in_terrain_layer |
A point feature layer or DEM raster layer used to determine the terrain elevation. | Feature 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. | Field |
in_terrain_accuracy |
A value that represents the accuracy of the terrain layer within a specified number of units. | Long |
in_terrain_units |
The linear units for terrain values:
| String |
in_vo_feat_layer |
The point layer that contains all the obstructions for the cells for which the MEF values are being calculated; this is generated from a Digital Vertical Obstruction File (DVOF). | Feature Layer |
in_vo_elev_field |
The field in the vertical obstruction feature layer that contains the elevation values for each obstruction, which is usually the Height Above Mean Sea Level (HEIGHTAMSL). | Field |
in_vo_accuracy |
A value that represents the accuracy of the vertical obstruction feature layer within a specified number of units. | Long |
in_vo_units |
Linear units for vertical obstruction values:
| String |
Ejemplo de código
This ArcGIS Python window script uses grid and elevation data from production mapping sample datasets. To use it, change the paths to the sample data and load the script into an empty ArcMap document.
import arcpy # Set up paths to the Production Mapping Sample data demdd = "C:\\data\\Foundation_Data_Tutorials\\Reference\\DEM\\demdd" ElevP = "C:\\data\\Foundation_Data_Tutorials\\PLTSDatabase\\GDB\\SoCal.mdb\\SoCal\\ElevP" SC_Index = "C:\\data\\Foundation_Data_Tutorials\\Reference\\Reference.gdb\\SC_Index" # These will be the feature layers ElevP_Layer = "ElevP_Layer" MakeRas_demdd1 = "MakeRas_demdd2" SC_Index_Layer = "SC_Index_Layer" # Make Raster Layer from demdd arcpy.MakeRasterLayer_management(demdd, MakeRas_demdd1, "", "-117.39358183757 32.4865905390336 -116.856162842319 33.0136745536059", "") # Make Feature Layer from SC_index arcpy.MakeFeatureLayer_management(SC_Index, SC_Index_Layer) # Make Feature Layer from ElevP arcpy.MakeFeatureLayer_management(ElevP, ElevP_Layer) arcpy.ImportToolbox(r'C:\Program Files\ArcGIS\Desktop10.0\ArcToolbox\Toolboxes\Production Mapping Tools.tbx') # Calculate Max Elevation Figures - Note the mefvalue, mefMaxVoValue, and mefTerrainField fields must be LONGs and exist in SC_index arcpy.CalculateMaxElevationFigures_production(SC_Index_Layer, "mefvalue", "mefMaxVoValue", "mefTerrainField", "200", "Feet", MakeRas_demdd1, "", "20", "Feet", ElevP_Layer, "zv2", "20", "Feet")
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 TOC. Select properties.
- The Layer Properties dialog box displays.
- Click the labels tab.
- Click the Expression button.
- 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 the Verify button 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