Working with elevations is often a necessary part of doing high-accuracy GPS data collection. This can be confusing, as ArcGIS Field Maps stores the proper elevation (ortho ht) in the Z-value of the feature, and in meters. Additionally, the Z-value isn't displayed in the feature popup, attribute table, or Field Maps/AGOL UI. To complicate matters further, the ellipsoid height is stored in the ESRIGNSS_Altitude field. This can be easily confused with the ortho height, and often does not match known elevations of lidar data, benchmarks, topo surveys, etc.
There are two solutions to these issues: configure the popup in your ArcGIS Online web map to display the proper ortho height, or set up a field calculate in Field Maps Designer to add the z-value to the attribute table.
Solution 1: Display Z-value in a popup and convert to feet
- In the ArcGIS online web map viewer click on the layer and select "Configure Popup" from the menu
- Add an attribute expression
- Use the arcade script shown below, and name the field something descriptive descriptive
- We have named ours "Ortho Ht. (ft)"
- The new expression will not immediately be displayed in the popup
- It needs to be enabled first
- Open the fields list
- Click Select Fields
- Select your new Ortho Ht. from the Expressions section
- Click Done
- Your new Ortho Ht. data will be displayed at the bottom of the popup table
Solution 2: Set up a Field Calculation in Field Maps Designer
- Make sure that you have a Decimal or Double type attribute set up in the data collection layer's attribute table
- You can do this in ArcGIS Pro or ArcGIS Online
- Open the Field Maps Designer
- Select your map
- Add the attribute field to the form in the Field Maps Designer editor
- Select the added attribute field, and scroll to the bottom of the pane on the right side of the screen
- Add a calculated expression
- Use the arcade script
- Click Done
- The attribute is ready to go
The Arcade Script text can be found below:
// change to false if feet desired
var useMeters = false;
var geom = Geometry($feature);
if(!IsEmpty(geom)){
var elevation = geom.Z;
if(useMeters){
return elevation;
}
else {
return Round(elevation * 3.2808,3);
}
}
else {
return null;
}
Comments
0 comments
Please sign in to leave a comment.