💾 Archived View for republic.circumlunar.space › users › johngodlee › posts › 2018-09-30-lai-phone.g… captured on 2023-09-08 at 16:21:55. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-12-04)

-=-=-=-=-=-=-

Comparing forest canopy measurements with a phone lens and an expensive DSLR fisheye

DATE: 2018-09-30

AUTHOR: John L. Godlee

On my most recent teaching stint as a demonstrator for a 4th year undergraduate field course, myself and one of the other demonstrators experimented with estimating forest canopy structural metrics like gap fraction and Leaf Area Index (LAI) using two different photographic methods. The first was a conventional full hemipsherical fisheye lens on a DSLR camera, the second was a considerably cheaper fisheye lens converter for a smartphone.

We took 10 photos with the same orientation at the same height under a stand of Ash-Birch mixed plantation. I cropped the images so each set of paired images captured approximately the same area of canopy.

Thresholded photo

Original photo

One issue was that the phone fisheye converter tended to move around on the body of the phone, leading to the edges of the fisheye frame being distorted or excluded from the phone's frame. This meant that to maintain consistency between the angle of view cpatured by each photo, all photos had to be cropped to approximately (DEGREES) field of view. To see whether this excess cropping affected estimations of LAI or gap fraction, I compared photos from the DSLR camera, cropped to different proportional circular crops:

phone_px_rad <- 2460 / 2
camera_px_rad <- 3925 / 2

crops <- c(1, 0.9, 0.75, 0.5, 0.25)

phone_px_rad <- phone_px_rad * crops
camera_px_rad <- camera_px_rad * crops
rads <- c(phone_px_rad, camera_px_rad)
phone_camera <- c(rep("phone", times = 5), rep("camera", times = 5))
crops_group <- rep(crops, times = 2)

crops_df <- data.frame(crops_group, phone_camera, rads)

ggplot(crops_df, aes(x = crops_group, y = rads, colour = phone_camera)) + 
    geom_point() + 
    geom_line() + 
    scale_x_reverse() + 
    theme_classic() + 
    labs(x = "Proportional crop by diameter of original image", 
        y = "Pixel diameter of resultant image")

Plot of field of view by diameter crop

Plot of percentage crop by mean gap fraction

Spaghetti plot of comparison between photos by camera or phone