library(lubridate)
library(tidyverse)
library(sf)
library(mapview)
library(rnaturalearth)
library(rnoaa)
library(dygraphs)
library(xts)
countries<-st_as_sf(rnaturalearth::countries110,crs=4326)
nigeria<-filter(countries,admin=="Nigeria")
stations <- rnoaa::ghcnd_stations()
stations<-st_as_sf(stations, coords=c("longitude", "latitude"),crs=4326)
stations <- st_filter(stations,nigeria)
mapview(stations)
library(giscourse)
f<-function(x)data.frame(id=x,get_ghcnd(x))
  climate<-lapply(unique(stations$id), f)
  climate<-as.data.frame(do.call("rbind",climate))
nigeria_climate <- climate
save(nigeria_climate,file="~/rstudio/aqm/data/nigeria_climate.rda")
d<-climate
d$value<-d$value/10
d$date<-as.Date(d$date)
d$year<-year(d$date)
d$day<-yday(d$date)
d %>% filter(element=="TMIN") ->tmin
d %>% filter(element=="TMAX") ->tmax
d %>% filter(element=="PRCP") ->prcp
tmin %>% group_by(id) %>% mutate(anom=value-mean(value)) ->tmin
tmax %>% group_by(id) %>% mutate(anom=value-mean(value)) ->tmax
prcp %>% group_by(id) %>% mutate(anom=value-mean(value)) ->prcp
tmin %>% group_by(date) %>% summarise(tmin=mean(anom))%>% filter(date>dmy("01-01-1920"))->a1
tmax %>% group_by(date) %>% summarise(tmax=mean(anom))%>% filter(date>dmy("01-01-1920"))->a2
prcp %>% group_by(date) %>% summarise(prcp=mean(anom))%>% filter(date>dmy("01-01-1920"))->a3
a1$tmin<-a1$tmin+mean(tmin$value)
a2$tmax<-a2$tmax+mean(tmax$value)
a3$prcp<-a3$prcp+mean(prcp$value)
a<-merge(a1,a2)
#a<-merge(a,a3)
a$Tavg<-(a$tmin+a$tmax)/2


dd<-xts(data.frame(Tmin=a$tmin,Tmax=a$tmax, Tavg=a$Tavg),a$date)
dygraph(dd) %>% dyRoller(rollPeriod = 365) %>% dyRangeSelector(dateWindow = c(dmy("01-01-1930"),dmy("01-01-2020"))) %>% dyOptions(colors=c("darkblue","darkred", "grey"))