I'm trying to determine the visibility of a property (polygon) from surrounding sites within the same county. Sounds simple, but here's the catch: it's a solar farm analysis project, and the county requires the subject site be 'invisible' or not visible from any other property in the county. That said, the property currently has a thick loblolly pine plantation along its edges (trees are approximately 20m in height). So I've run a bare earth viewshed analysis (no problem with that one) BUT am trying to figure out how to run a separate analysis that incorporates/considers the height of the pines as an obscuring factor. Any chance you could help with this?

I don't have a DSM to work with, just a DEM.

  • do you have LiDAR points for your analysis area? if so you can use the first return points to generate a DSM
    – ziggy
    Oct 24, 2016 at 16:02

1 Answer 1


Your workflow will be something like this (you don't mention what software you're using but this should work with anything). Basically you just need to add your pine trees to the DEM as if they were solid ground. This won't account for any possible gaps in tree coverage, and it won't account for any differences in viewshed due to the trees' leaves being on in the summer vs. off in the winter (not important here because pines are coniferous).

I'll assume your DEM is in meters.

  1. Digitize your pine tree stands as polygons. If it's a pine tree plantation, coverage should be pretty uniform and you may only have a few polygons.
  2. Give your polygon layer a floating-point numeric attribute field and assign a value of 20 to every polygon.
  3. Convert your polygon layer to a raster, using the numeric field as your raster value. That should give you a raster with a value of 20 everywhere there are pine trees. Make sure that the background cells in the output raster (cells where there are no trees) are assigned a value of zero rather than NODATA.
  4. Add your pine tree raster to your DEM using the Raster Calculator (QGIS and ArcGIS both have one).
  5. Now you have a DEM that's 20 meters taller where the pine trees are. Re-run your viewshed analysis.
  • Thanks. I worked through the development of the Plantation raster with no issue, but after trying to use the Raster Calculator to combine the original DEM and that of the plantation I ma having no luck. Is there a specific formula for adding rasters together - do I need to use a 'tool' from the tool window in the calculator?
    – wncbotany
    Oct 24, 2016 at 16:44
  • @wncbotany if you tag your question with the software you're using, that would help us answer. I'm guessing it's ArcGIS, in which case the raster calculator syntax is basically just "Raster1 + Raster2". Here's the help: desktop.arcgis.com/en/arcmap/10.3/tools/spatial-analyst-toolbox/…. Also try generating the tree raster with the same coordinate system and cell size as your DEM.
    – Dan C
    Oct 24, 2016 at 17:22
  • 3
    The one thing that was omitted in the proposed methodology is to make sure that the background value (not trees) is zero in the plantation raster. If the non-tree values are nodata then the result of adding the plantation raster to your DEM will be nodata in areas without plantations. It may also be undesirable to use an "integer" value as it could end up rounding your elevation values. It is critical to look at raster overlay behavior in GIS software. In ArcGIS, nodata begets nodata and integer begets integer so, if you sum an integer and float the result is an integer. Oct 24, 2016 at 18:42
  • Thanks @JeffreyEvans, I updated the answer. There's really no reason to use integer over floating-point and it totally slipped my mind that DEM + NODATA = NODATA.
    – Dan C
    Oct 24, 2016 at 19:57
  • 1
    Con(IsNull("pineraster"), "dem", "dem" + 20)
    – user2856
    Oct 24, 2016 at 20:57

Your Answer

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

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