As a relatively new user to GIS trying out 3D Analyst tools, I'm trying to run a Line of Sight which is not working the way I'd expect. Note I'm running the tool straight from the toolbox, no Python or ModelBuilder at the moment.

I have an observer point shapefile, which I want to be 2m above the terrain I've set up in the arcmap file (I have set up an attribute field called 'OFFSETA' containing '2' in this point shapefile,) and I have about 8 target points in a seperate point shapefile, which should be 130m above the terrain (I've set up an attribute field here called 'OFFSETB' containing '130'.)

I've used the 'Construct Sight Lines' tool, (specifying the OffsetA and OffsetB fields for respective heights,) and then run the 'Line of Sight' analysis on the resulting lines using the terrain in the file, and I'm getting 8 completely red polylines running from my observer point to my 8 target points, showing no visibility. However, I KNOW from a viewshed analysis from another program, and also a 3D model from another program, that at least one of the my target points is visible at these heights and with this terrain data.

I'm running this whole process in ArcMap, should I be doing it in ArcGlobe?

Do I need to specify somewhere that the OFFSETA and OFFSETB values are on top of the Z values of the terrain at those specific points? (I'd assumed, possibly wrongly, it would automatically allow for this, but maybe it's all running underground?!)

Is there a simple way to specify this or do I need to query the terrain elevation at these points and add manually to my height above ground?

I also found Using line of sight or something similar to identify where lines go through hills which seems to suggest the tool is generally quite unreliable / inconsistent. I'm not sure if I'm missing something in the process or if it is generally just not a good tool to use.

It seems to work if I just use the shortcut button on the toolbar and point and click on the map - it looks completely different doing it like this and much more like what I'd expect, with parts of the line green and parts red. But I want to be able to use the shapefiles I have as exact inputs!


Your fourth paragraph I think is the key to your problem and you've already solved it yourself.

If your points don't have z values to start with and aren't draped onto your surface, then the values (2, 130) you're using are only above their nominal height of 0. If your terrain is higher than that, then yes, all your sight lines are underground. The reason it's working with the button is that your click is registering at the surface and not the point's elevation. Your offset does need to be in addition to the point's elevation - be that because the points are draped on a surface or because they have an elevation to start with.

The simplest fix is probably to get your points to 3D, which there are a couple of options for at that help file link. You'll probably want to go that route, as I'm not sure using the drape method would yield you anything if you went to a model - it would be better to have the discrete values in the data.

Note that having a z value field and having z-enabled data are two different things. When you create a feature class, there is a check box to enable z values. This gives a z component to the shape field, and not just another field with a z value. Depending on the tools you're working with, this distinction is important. Note in the Construct Sight Lines help where it gives the priority that various height fields will be used (I think you've seen this based on your comment). I believe that Add Surface Information does convert to 3D (therefore giving a shape.z value) but I'm not positive on that. It's been a while and I'm not actively testing this, just going from memory.

ArcGlobe I'm not as familiar with. I do know there are differences between Scene and Globe in the way things are handled.

  • Ahhh ok, thanks! This is better, I am now getting at least red and green lines which looks much more like what I've been expecting. However.... they're still not right?! I have used Add Surface Information to obtain a Z field, and then created another field to add my Z field and my offset field together to create an overall height above the terrain, and this is what I'm using. The answers I'm getting though look like they are just to the ground level of my targets rather than my ground+offset (+130m)? I'm specifying my edited field in the 'target height field' space, rather than Z. Any ideas? – Lisa SH Jun 20 '14 at 9:38
  • Also, when I open the lines of sight in ArcGlobe they are clinging to the terrain, even when set to float. There's presumeably a setting or input I'm missing somewhere... – Lisa SH Jun 20 '14 at 9:44
  • Ahh, ok, so there are default Z height field titles that take precedence over your specified input in 'Construct Sight Lines'... if I change my 'total_height' field to 'Spot' it reads it automatically, the presence of a 'Z' field was overriding 'total_height', even though I was selecting that one. Now in ArcGlobe I have 3D lines running from +2m above terrain to +130m above terrain. Sadly this doesn't seem to fix my Line of Sight output, that one is still hugging the terrain and doesn't seem to be taking account of the target 'Spot' height at all... – Lisa SH Jun 20 '14 at 9:56
  • @LisaSH Did you reconstruct your sight lines before using line of sight (or rerun line of sight afterward)? I'm not sure (again, not actively testing) but LoS output may be 2D regardless of input - check, and if so you'd have to then convert those lines to 3D. Part of the problem with all of this is you can set heights in several places and ways, and apply offsets as well. All the various steps and interacting options get difficult to track when you tinker here or there. – Chris W Jun 20 '14 at 20:29
  • Yeah I've rerun line of sight after fixing my sight lines, and just the same result. I wouldn't even mind if the output was a 2D line, it just doesn't seem to be running the analysis on the height of my targets, just the base height. I know what you mean, there seems to be a variety of ways of doing this which can be easily confused... – Lisa SH Jun 23 '14 at 7:57

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