top of page
sample3.jpg

My third project is a heuristic approach to densiometer readings (canopy cover quantification) designed to save time in the field by relegating the manual estimation to the computer. I've opted to use numpy in Python instead of countcolors in R to quantify the percentage of open vs. closed canopy, as mass indexing 3-channel images was evidently too heavy for R. Unlike in remote sensing, color gradients are not as important when processing data sets with only 2 relevant bins.

As such, I use Python to scan an image (taken on my phone) into a binary array. Currently I am working on a way to properly address determination of contiguous sky vs. cloud cover, which is a problem when not sampling under ideal weather conditions (bright overcast sky).

I still need to do testing with hemispherical images - high-quality DSLR images are unrealistic and frankly unnecessary for the purposes of habitat assessments, but at the least we can use a fisheye lens to mimic the spherical crown of a densiometer. In this case, the percent calculated is still likely to be more accurate than a conventional estimation.

Existing literature suggests similar methods for canopy density approximations, though few seem to account for darker sky tones or glare from semi-reflective surfaces. Other associated labs fine-tune their images with photo editing software -  my operating procedure is simply not going to have the level of accuracy provided by manual correction, but it is my understanding that the margin of error is acceptable for use cases, and data sets will be reviewed at glance to catch such outliers.

newtest.jpg

On the left is an example control image.

On the right is the same image, binarized into 2 BW channels.

This is the earliest prototype from when it was still built in R - the current Python build has better contiguous canopy detection so that the sky between clouds isn't incorrectly counted as part of the canopy.

bottom of page