Comparison between Yellow Rail occupancy at each site for each year and bands/indices derrived from yearly Landsat-8 data. Methods: site were buffered by 250 m, open water and upland areas were removed from the buffer, spatial mean data was extracted from yearly Landsat-8 data.
library(dplyr)
library(ggplot2)
library(kableExtra)
setwd("C:/Users/Evan/Desktop/ALPHA/YellowRail/RS_analysis")
#read and clean data
dat <- read.csv("YR_sitesBuf.csv")
ext2013 <- read.csv("extract2013.csv")
ext2014 <- read.csv("extract2014.csv")
ext2015 <- read.csv("extract2015.csv")
ext2016 <- read.csv("extract2016.csv")
ext2017 <- read.csv("extract2017.csv")
ext2018 <- read.csv("extract2018.csv")
ext2019 <- read.csv("extract2019.csv")
ext <- rbind(ext2013, ext2014, ext2015, ext2016, ext2017, ext2018, ext2019)
ext <- ext %>% select(-system.index, -.geo)
dat <- merge(dat,ext, by = "UID")
jt <- data.frame(occupied = c(0,1), presence = c("absent", "present"))
dat <- merge(dat, jt, by = "occupied")
RSvars <- colnames(dat[,18:27])
years <- c(2013:2019)
for (i in 1:length(years)){
for (j in 1:length(RSvars)){
var <- RSvars[j]
YR <- years[i]
d <- dat %>% filter(year == YR)
print(
ggplot(d, aes_string(x = "presence", y = var)) +
geom_boxplot() + ggtitle(paste0(YR))
)
}
}trends between yearly mean Landsat values and percent site occupancy for each year
dat2 <- dat %>% group_by(year) %>% tally(occupied)
dat3 <- dat %>% group_by(year) %>% summarise(n = n())
trends <- as.data.frame(cbind(dat2, dat3[,2]))
colnames(trends) <- c("year", "numPresence", "total")
trends <- trends %>% mutate(percentOccupied = (numPresence/total)*100)
RSdat <- dat %>% group_by(year) %>% summarise_at(RSvars, mean, na.rm = TRUE)
trends <- merge(trends, RSdat, by = "year")
trends <- trends %>% mutate(yearChar = as.character((year)))
for (i in 1:length(RSvars)){
var <- RSvars[i]
print(
ggplot(trends, aes_string(x = "percentOccupied", y = var, color = "yearChar")) +
geom_point(size = 2) +
geom_smooth(aes(group = 1), method = "lm", alpha = 0) +
xlab("Percent Occupied") + ylab(var)
)
}