library(prism)
library(raster)
library(tidyverse)
options(prism.path = getwd())
#get_prism_normals(type="tmean",resolution = "4km",mon = 11, keepZip=F)
#get_prism_normals(type="tmax",resolution = "4km",mon = 1:12, keepZip=F)
#get_prism_normals(type="tmin",resolution = "4km",mon = 1:12, keepZip=F)
#get_prism_monthlys(type="tmean", years = 2018, mon = 11, keepZip=F)
#get_prism_monthlys(type="tmin", years = 2012:2018, mon = 1:12, keepZip=F)
#get_prism_monthlys(type="tmax", years = 2012:2018, mon = 1:12, keepZip=F)
#get_prism_dailys(type="tmax", minDate = "2013-01-01", maxDate = "2018-11-11", keepZip=F)
#prism_image(ls_prism_data()[1,1])
prismFileList <- ls_prism_data(absPath = TRUE)
janNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_01_bil"),2]
febNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_02_bil"),2]
marNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_03_bil"),2]
aprNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_04_bil"),2]
mayNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_05_bil"),2]
junNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_06_bil"),2]
julNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_07_bil"),2]
augNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_08_bil"),2]
sepNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_09_bil"),2]
octNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_10_bil"),2]
novNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_11_bil"),2]
decNorm <- prismFileList[which(prismFileList$files == "PRISM_tmean_30yr_normal_4kmM2_12_bil"),2]
tmeans <- prismFileList[which(grepl("_tmean_+", prismFileList$files)),]
jan2018 <- prismFileList[which(prismFileList$files == grep("_201801_", tmeans$files, value=TRUE)),2]
feb2018 <- prismFileList[which(prismFileList$files == grep("_201802_", tmeans$files, value=TRUE)),2]
mar2018 <- prismFileList[which(prismFileList$files == grep("_201803_", tmeans$files, value=TRUE)),2]
apr2018 <- prismFileList[which(prismFileList$files == grep("_201804_", tmeans$files, value=TRUE)),2]
may2018 <- prismFileList[which(prismFileList$files == grep("_201805_", tmeans$files, value=TRUE)),2]
jun2018 <- prismFileList[which(prismFileList$files == grep("_201806_", tmeans$files, value=TRUE)),2]
jul2018 <- prismFileList[which(prismFileList$files == grep("_201807_", tmeans$files, value=TRUE)),2]
aug2018 <- prismFileList[which(prismFileList$files == grep("_201808_", tmeans$files, value=TRUE)),2]
sep2018 <- prismFileList[which(prismFileList$files == grep("_201809_", tmeans$files, value=TRUE)),2]
oct2018 <- prismFileList[which(prismFileList$files == grep("_201810_", tmeans$files, value=TRUE)),2]
nov2018 <- prismFileList[which(prismFileList$files == grep("_201811_", tmeans$files, value=TRUE)),2]
#dec2018 <- prismFileList[which(prismFileList$files == grep("_201812_", tmeans18$files, value=TRUE)),2]
jan2017 <- prismFileList[which(prismFileList$files == grep("_201701_", tmeans$files, value=TRUE)),2]
feb2017 <- prismFileList[which(prismFileList$files == grep("_201702_", tmeans$files, value=TRUE)),2]
mar2017 <- prismFileList[which(prismFileList$files == grep("_201703_", tmeans$files, value=TRUE)),2]
apr2017 <- prismFileList[which(prismFileList$files == grep("_201704_", tmeans$files, value=TRUE)),2]
may2017 <- prismFileList[which(prismFileList$files == grep("_201705_", tmeans$files, value=TRUE)),2]
jun2017 <- prismFileList[which(prismFileList$files == grep("_201706_", tmeans$files, value=TRUE)),2]
jul2017 <- prismFileList[which(prismFileList$files == grep("_201707_", tmeans$files, value=TRUE)),2]
aug2017 <- prismFileList[which(prismFileList$files == grep("_201708_", tmeans$files, value=TRUE)),2]
sep2017 <- prismFileList[which(prismFileList$files == grep("_201709_", tmeans$files, value=TRUE)),2]
oct2017 <- prismFileList[which(prismFileList$files == grep("_201710_", tmeans$files, value=TRUE)),2]
nov2017 <- prismFileList[which(prismFileList$files == grep("_201711_", tmeans$files, value=TRUE)),2]
dec2017 <- prismFileList[which(prismFileList$files == grep("_201712_", tmeans$files, value=TRUE)),2]
janNorm_rast <- raster(janNorm)
febNorm_rast <- raster(febNorm)
marNorm_rast <- raster(marNorm)
aprNorm_rast <- raster(aprNorm)
mayNorm_rast <- raster(mayNorm)
junNorm_rast <- raster(junNorm)
julNorm_rast <- raster(julNorm)
augNorm_rast <- raster(augNorm)
sepNorm_rast <- raster(sepNorm)
octNorm_rast <- raster(octNorm)
novNorm_rast <- raster(novNorm)
decNorm_rast <- raster(decNorm)
jan2018_rast <- raster(jan2018)
feb2018_rast <- raster(feb2018)
mar2018_rast <- raster(mar2018)
apr2018_rast <- raster(apr2018)
may2018_rast <- raster(may2018)
jun2018_rast <- raster(jun2018)
jul2018_rast <- raster(jul2018)
aug2018_rast <- raster(aug2018)
sep2018_rast <- raster(sep2018)
oct2018_rast <- raster(oct2018)
nov2018_rast <- raster(nov2018)
#dec2018_rast <- raster(dec2018)
jan2017_rast <- raster(jan2017)
feb2017_rast <- raster(feb2017)
mar2017_rast <- raster(mar2017)
apr2017_rast <- raster(apr2017)
may2017_rast <- raster(may2017)
jun2017_rast <- raster(jun2017)
jul2017_rast <- raster(jul2017)
aug2017_rast <- raster(aug2017)
sep2017_rast <- raster(sep2017)
oct2017_rast <- raster(oct2017)
nov2017_rast <- raster(nov2017)
dec2017_rast <- raster(dec2017)
anomCalc <- function(x, y) {
return(x - y)
}
janYoYDiff <- overlay(jan2018_rast, jan2017_rast, fun = anomCalc)
febYoYDiff <- overlay(feb2018_rast, feb2017_rast, fun = anomCalc)
marYoYDiff <- overlay(mar2018_rast, mar2017_rast, fun = anomCalc)
aprYoYDiff <- overlay(apr2018_rast, apr2017_rast, fun = anomCalc)
mayYoYDiff <- overlay(may2018_rast, may2017_rast, fun = anomCalc)
junYoYDiff <- overlay(jun2018_rast, jun2017_rast, fun = anomCalc)
julYoYDiff <- overlay(jul2018_rast, jul2017_rast, fun = anomCalc)
augYoYDiff <- overlay(aug2018_rast, aug2017_rast, fun = anomCalc)
sepYoYDiff <- overlay(sep2018_rast, sep2017_rast, fun = anomCalc)
octYoYDiff <- overlay(oct2018_rast, oct2017_rast, fun = anomCalc)
novYoYDiff <- overlay(nov2018_rast, nov2017_rast, fun = anomCalc)
#decYoYDiff <- overlay(dec2018_rast, dec2017_rast, fun = anomCalc)
plot(janYoYDiff, main = "January 2018 vs. January 2017")Convert Raster Data to Point Data
janDF <- data.frame(rasterToPoints(janYoYDiff)) %>%
rename(lon = "x", lat = "y", delta = "layer") %>%
mutate(month = as.factor("jan"))
febDF <- data.frame(rasterToPoints(febYoYDiff)) %>%
rename(lon = "x", lat = "y", delta = "layer") %>%
mutate(month = as.factor("feb"))
marDF <- data.frame(rasterToPoints(marYoYDiff)) %>%
rename(lon = "x", lat = "y", delta = "layer") %>%
mutate(month = as.factor("mar"))
aprDF <- data.frame(rasterToPoints(aprYoYDiff)) %>%
rename(lon = "x", lat = "y", delta = "layer") %>%
mutate(month = as.factor("apr"))
mayDF <- data.frame(rasterToPoints(mayYoYDiff)) %>%
rename(lon = "x", lat = "y", delta = "layer") %>%
mutate(month = as.factor("may"))
junDF <- data.frame(rasterToPoints(junYoYDiff)) %>%
rename(lon = "x", lat = "y", delta = "layer") %>%
mutate(month = as.factor("jun"))
julDF <- data.frame(rasterToPoints(julYoYDiff)) %>%
rename(lon = "x", lat = "y", delta = "layer") %>%
mutate(month = as.factor("jul"))
augDF <- data.frame(rasterToPoints(augYoYDiff)) %>%
rename(lon = "x", lat = "y", delta = "layer") %>%
mutate(month = as.factor("aug"))
sepDF <- data.frame(rasterToPoints(sepYoYDiff)) %>%
rename(lon = "x", lat = "y", delta = "layer") %>%
mutate(month = as.factor("sep"))
octDF <- data.frame(rasterToPoints(octYoYDiff)) %>%
rename(lon = "x", lat = "y", delta = "layer") %>%
mutate(month = as.factor("oct"))
novDF <- data.frame(rasterToPoints(novYoYDiff)) %>%
rename(lon = "x", lat = "y", delta = "layer") %>%
mutate(month = as.factor("nov"))
# decDF <- data.frame(rasterToPoints(decYoYDiff)) %>%
# rename(lon = "x", lat = "y", delta = "layer") %>%
# mutate(month = as.factor("dec"))
ytdDiffDF <- rbind(janDF,
febDF,
marDF,
aprDF,
mayDF,
junDF,
julDF,
augDF,
sepDF,
octDF,
novDF)
str(ytdDiffDF)## 'data.frame': 5297941 obs. of 4 variables:
## $ lon : num -95.1 -95.2 -95.1 -95.1 -95 ...
## $ lat : num 49.4 49.4 49.4 49.4 49.4 ...
## $ delta: num -2.6 -2.55 -2.59 -2.61 -2.61 ...
## $ month: Factor w/ 11 levels "jan","feb","mar",..: 1 1 1 1 1 1 1 1 1 1 ...
## lon lat delta month
## Min. :-124.79 Min. :24.50 Min. :-14.4440 jan : 481631
## 1st Qu.:-110.42 1st Qu.:35.21 1st Qu.: -2.4750 feb : 481631
## Median : -99.33 Median :39.62 Median : -0.3870 mar : 481631
## Mean : -99.22 Mean :39.39 Mean : -0.6842 apr : 481631
## 3rd Qu.: -88.83 3rd Qu.:43.79 3rd Qu.: 1.2670 may : 481631
## Max. : -66.96 Max. :49.42 Max. : 10.6660 jun : 481631
## (Other):2408155