I am trying to perform a Viewshed analysis in ArcGIS, and after reviewing multiple questions on this forum involving the definitions of OFFSETA v OFFSETB I am confused as to which to use.

The accepted and upvoted answer to Viewsheds and Observer Points in ArcGIS Spatial analyst appears to state that OFFSETA is the height of the target point, (in this case a turbine of 50m) and OFFSETB is the eye level height above DEM (in this case 1.65m).

Whereas the accepted and upvoted answer to Viewshed Analysis for bridge polyline observer feature appears to state that OFFSETA is the eye level height above DEM, and OFFSETB is the height of the target point.

I think the confusion is coming from the way the ESRI help documentation is worded - they appear to explain a viewshed as calculating which areas of ground you can see from an observer point, rather than which areas of ground you can see a target point from? Both are applicable, it just makes the terminology confusing if you are using the opposite approach to their example.

enter image description here

Their definitions are:

There are two offset items, one defining the elevation to be added to the observer location and the other defining what will be added to each cell to be considered for visibility.

OFFSETA The OFFSETA item indicates a vertical distance in surface units to be added to the z-value of the observation point. If OFFSETA exists in the feature attribute table, its value is added to the SPOT elevation when present; otherwise, it is added to the interpolated surface z-value. The OFFSETA value must be positive. If the OFFSETA item does not exist, the default value is 1.

OFFSETB The OFFSETB item indicates a vertical distance in surface units to be added to the z-value of each cell as it is considered for visibility. If OFFSETB exists in the feature attribute table, its value is added to the surface z-value of each cell location when it is being analyzed for visibility. The value must be positive. If no OFFSETB item is found in the feature attribute table, it defaults to 0.*

For my own query, I have a shapefile containing target points, and a raster DEM of terrain data.

I want to see all the areas on my terrain data from which I would be able to see my points, if the points are sitting at ground height but my eye level across the terrain data is 2m.

I have used Extract Values To Points to make sure my points have ground level heights from the DEM, and I know I need to use OFFSETA or OFFSETB as an additional field in my points file to incorporate my eye level of 2m, which should add 2m to every cell of my terrain model in the visibility calc.

My understanding is I would use OFFSETB and set this to 2m, as will add 2m to each cell of my raster, rather than adding 2m to my points, which I want to keep at ground height.

Can anyone confirm or correct my understanding?

  • 1
    @Lisa, I noticed that you have two GIS.SE accounts. I suggest you merge them. See this link.
    – Fezter
    Dec 7, 2016 at 1:37

2 Answers 2


I believe that your confusion of what OFFSETA and OFFSETB represent is a result of the fact that two questions can be answered using viewshed tool. Classic viewshed answers question "What can observer see from location X?" - in this case OFFSETA represents eye level of observer and OFFSETB represents height of target (if there is any). The second question that can be answered by viewshed tool is the reversed variant of viewshed. "From which locations the observer can see location X?" Sometimes this viewshed is named "reverse (inverse) viewshed" to highlight the difference. In this case OFFSETA represents the height of target (object to be seen) and OFFSETB represents eye level of observer.

So yes, your understanding is correct. OFFSETB will be offset of observer in your case. However, I would suggest using at least small OFFSETA (0.1 meter or somethig like that) in order to avoid intersection of line-of-sight with the terrain closely to you points, which would most likely render your points invisible even in situations when it should be visibile.

  • Thank you! Yes, I thought the confusion stemmed from terminology and the direction of the query being performed, if it can be described as such - I hadn't even realised there was such a label as 'inverse viewshed', but this makes sense. According to QGIS help documentation, the default OFFSETA is 1, I think to address the issue you have flagged - this will obviously provide a worst-case in this instance but I'm ok with that.
    – lisagravy
    Dec 7, 2016 at 14:08
  • I believe that the term reverse viewshed was first used by Pete Fisher, quite likely in this article info.asprs.org/publications/pers/96journal/november/…, if you are interested in some scientific reading regarding visibility. The default OFFSETA value quite likely adresses the issue but feel free to lower the value. I think that the problem can only occur if the surface elevation equals the point elevation (regardless if it is target or observation point).
    – Jan Caha
    Dec 7, 2016 at 20:10


Dig 2 m deep hole in the ground: enter image description here

Run Viewsheds: enter image description here enter image description here enter image description here


OFFSETA is the eye level height above DEM, and OFFSETB is the height of the target point.

I afraid that you have to place 2m high observer at EVERY cell of your DEM and check how many points you'll be able to see. Simple script, but will take a long time to complete.

  • Thanks for your effort - though I'm not sure I understand how you've drawn your conclusions? Please could you explain a bit further? If OFFSETB is the height of the target point as you suggest, (your green dot,) what does OFFSETA apply to if not the eye level across the DEM? If it is this, then why would I need to make additional observer points? Your OFFSETB example shows increased visibility - I would suggest this could be due to a 1.5m eye level height across the DEM allowing views down into the hole which previously didn't exist. (1/2)
    – lisagravy
    Dec 7, 2016 at 13:50
  • Your OFFSETA example shows the same visibility as the no offset example - this could be due to the increased target point height not exceeding the ground level of 2m, and thus not being visible from the ground? So I would take your results to conclude OFFSETA is the point height, and OFFSETB is added to each cell of the DEM? Though I feel I may well be misunderstanding something? (2/2)
    – lisagravy
    Dec 7, 2016 at 13:52
  • Green point IS observer. He can see no flat terrain outside 2 m deep pit, where he is sitting until his height A offset is less than 2 m. This is what 2 first tests are telling is
    – FelixIP
    Dec 7, 2016 at 18:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.