In some of my first posts, I discussed the possibility of using povray for viewshed analyses, since it is a more flexible tool, and can better handle complex analyses, like terrain + vegetation, something which most GIS tools cannot. In the end though, I just produced a simple terrain based viewshed analysis. Now, I’m getting ready to go deeper. Now, I’m ready to put some 28,000 trees on our viewshed terrain.
So, why not just use a digital surface model instead (an elevation model that shows us the top of all vegetation, buildings, ground, etc.)? Well, trees, especially if there is a single row of them, are not going to necessarily block all views, so a digital elevation (or terrain) model in conjunction with an estimate of tree locations is a far better solution for accurate estimations of viewsheds.
So how do we get there? I started with a dense LiDAR dataset with 3 returns. I performed my analysis only on points that were either return 2 or 3, which tells me I very likely am dealing with canopy vegetation. Then I take a moving average using (yes, I know) ArcGIS’ Spatial Analyst Point Statistics tool to determine canopy heights.
Now, to make things easy, rather than figuring out where the trees really are, I’m going to then generate random points approximately 30 feet apart, and use the elevation from my raster from the Point Statistics tool to determine the heights of my canopy.
To save on parsing time in povray, I’ll generate 28,000 non-unique trees across the landscape and see how things look.
First the code for the placement of the 28,000 random trees (written in BASH):
Now we have some random tree locations. We make an include file of it (called “tree_coords2.inc”) that looks like this:
Now we need some trees. I don’t want my machine to use too much memory, so a good tree “include” would be the ticket. Pov-Tree seems the ticket here, and I’ll even use one of the pre-built trees, the Linden.
I forgot before to include the pov file for rendering:
So here’s the canopy close up:
Which doesn’t look too bad… .
And now far out:
So now we have a start for putting trees on our landscape (coming next…).