AnsweredAssumed Answered

Viewshed 2 geoprocessing package in Runtime SDK

Question asked by ZPiSQEWt727iu2t7v0A6 on Feb 21, 2018
Latest reply on Mar 27, 2018 by jballard-esristaff

Hi, I'm having trouble getting good results from Viewshed 2 as a GeoprocessingTask.


System info:

-- Runtime SDK version 100.2.0 for Qt, C++ API, Windows.

-- Runtime Local Server for Qt 100.1.0 (not 100.2.0, if that matters)

-- NVIDIA Quadro K4200 GPU (CUDA compute capability 3.0) with latest drivers



-- Observers are Point features

-- Elevation source is a SRTM .hgt file


First, I used the Viewshed analysis class with good results. I was able to see a reasonable looking viewshed using a LocationViewshed object. I added the SRTM DEM as an elevation source to my Scene and it worked great.


Now I'm trying to do the viewshed as a GeoprocessingTask using the same observers and same elevation source. The GeoprocessingJob object accepts my input observer features and other parameters, and successfully returns an output raster, but the result is not what I expected.


The observer is located a few meters above the DEM (observer offset ~5 meters) with a horizontal FOV of approximately 15 degrees and a vertical FOV of approximately 60 degrees. The inner and outer radii are set to 5 meters and 16 km respectively.


The screenshot shows the observer point (the yellow square), with the Viewshed 2 output raster overlaid onto the Scene. The viewshed is the black region.


On the left, using the ALL_SIGHTLINES mode, the viewshed shape doesn't seem to be influenced by the terrain; it only appears to be limited by the azimuth and radius ranges that I set. Considering that the observer is at sea level viewing a mountain range of around 1000 meters elevation, the viewshed should not extend behind the mountains.


On the right, using the PERIMETER_SIGHTLINES mode, the viewshed appears to be limited by terrain features. The bottom picture shows that more clearly.


Why might I be having trouble with the ALL_SIGHTLINES mode?