Notes on ESRI Terrain service for analysis

02-10-2022 01:30 PM
Labels (1)
by Anonymous User
Not applicable

I've been using the ESRI Terrain service as a convenient DEM for some FMV work. I'm using the drone's calculated AGL + Terrain service values to get SensorTrueAltitude for the Video Multiplexor tool. Here's some notes for posterity if it helps anybody.

TLDR: It matters how you add the Terrain service to your Local Scene. "Add Data", "New ArcGIS Server", and "Make Image Server Layer" all seem to work fine. "Make Raster Layer" and adding Terrain as a Ground layer both output all zero values when using the Extract Multi Values to Points tool. Using WorldElevation3D/Terrain3D as input to Extract Multi Values threw an error.

Testing Workflow:

1. Open a new local scene.
2. Ribbon > Map > Add Data > Living Atlas > Terrain
3. Ribbon > Insert > Connections > Server > New ArcGIS Server > Terrain URL > Add Terrain from Catalog Window
4. TOC > Right Click "Ground" > Add Elevation Source > Living Atlas > Terrain
5. Make Raster Layer Tool > Terrain URL as input
6. Make Image Server Layer Tool > Terrain URL as input
    WARNING 000950: Output raster exceeds the size limitation (rows: 5000 and columns: 5000) defined on the image server. Please input a smaller extent.

7. Extract Multi Values to Points on all (6) elevation sources from setup. Point layer is in WGS84, and not near any body of water.
    - Terrain service from Add Data
    - Terrain service from New ArcGIS Server
    - Terrain service added as "Ground"
    - Terrain service from Make Raster Layer
    - Terrain service from Make Image Server Layer
    - WorldElevation3D/Terrain3D default layer in a new scene

    ERROR 010555: Internal Error in Sample: Cannot read raster:WorldElevation3D/Terrain3D.

8. Remove "WorldElevation3D/Terrain3D" from Extract Multi Values to Points "Input rasters" parameter. Rerun.
    - Terrain from Make Raster Layer output column is all zeros
    - Terrain from WorldElevation/Terrain "Ground" layer output column is all zeros
    - The other layers output columns are as expected


To me, this still isn't an intuitive process. There are multiple seemingly different ways to accomplish the same task, and the docs aren't explicit on the pros and cons. I don't understand why "Make Raster Layer" tool succeeds with Terrain service as input, appears normal in the TOC, and then outputs all zero values when used for analysis. What's the purpose of allowing that to succeed then? Or even allowing it as valid input? In arcpy, I ended up using "Make Image Server Layer" to load the Terrain service. It has a size restriction, while the other methods of adding it in the GUI do not (at least there's no user warning). I only tested the above in a Local Scene. Not sure if Map or Global Scene would yield different results.


In addition, if you use Terrain as input, there is no way after the fact to determine what elevation source was actually used for your processing. You must set a definition query in order to guarantee which dataset is used. It'd be nice to know what "Best" actually means without having to set it explicitly. From the docs:

Mosaic Method: This image service uses a default mosaic method of "By Attribute”, using Field 'Best' and target of 0. Each of the rasters has been attributed with ‘Best’ field value that is generally a function of the pixel size such that higher resolution datasets are displayed at higher priority. Other mosaic methods can be set, but care should be taken as the order of the rasters may change. Where required, queries can also be set to display only specific datasets such as only NED or the lock raster mosaic rule used to lock to a specific dataset.

This can be problematic for FMV multiplexing, because the camera FOV may rise to the horizon due to wind, pilot or operator error, etc. If this occurs, even for a moment, the Video Multiplexor tool will fail if the underlying high res DTM doesn't reach to the semi-infinite extent required to multiplex those frames. The Multiplexor tool will then down sample you to STRM or similar. If you definition query to high res, the tool fails. If you don't definition query you get stuck (silently with no way to check!!) with low res STRM. At the very least this critical information could be output as a tool message.


Final note, it'd be nice if the elevation map told you which service and service url to use in the pop up attributes.


0 Replies