library(pacman)
p_load(tidyverse, sf, viridis, patchwork, RColorBrewer, rgdal, ggspatial, raster, GISTools, cowplot, here)
path <- glue::glue(here(), "/practicals/Data/Week12_Data/Week12_Data")

files <- list.files(path, "*", full.names = T)

agg.cov <-  read_csv(files[[1]], show_col_types = F)

head(agg.cov)
NA

p1 <- agg.cov %>%
  ggplot(aes(east, north, colour = SR)) +
  geom_point(shape = 15, size = 1) +
  coord_fixed() +
  scale_colour_viridis()

p1 <- p1 +
  theme(legend.title = element_blank(), 
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.ticks = element_blank(),
        plot.background = element_blank(),
        panel.background = element_blank(), 
        axis.line = element_blank(), 
        axis.text = element_blank(), 
        axis.title = element_blank()
        )
  
p1


p2 <-  agg.cov %>%
  ggplot(aes(east, north, colour = SR)) +
  geom_point(shape = 15, size = 1) +
  scale_colour_viridis()

p2


ireland <- st_read(files[[6]], quiet = T )

ireland_sf <- st_transform(st_as_sf(ireland), 29903)

p.future <- ireland_sf %>%
  ggplot() +
  geom_sf(fill = "white") +
  coord_sf()

p.future

load(files[[9]])
load(files[[10]])


change <- current.resistance %>%
  mutate(change = pred.resistance$pred.H45.50 - resist.fit) %>%
  dplyr::select(-resist.fit) %>%
  mutate(id = row_number()) %>%
  arrange(change)

o <- order(change$change)[c(1:26, 497:522)]


central <- change[-o, ]

extreme <- change[o,]

p.future <- p.future +
  theme_bw() +
  theme(axis.ticks = element_blank(),
        axis.text = element_blank(),
        panel.border = element_blank(),
        panel.grid = element_blank()) +
  labs(x = NULL, y = NULL)

p.future <- p.future +
  ggtitle("Change in resistance 2050")
  

pal <- brewer.pal(n = 11, name = 'PRGn')

p.future +
  geom_tile(data = central, aes(east, north, fill = change)) +
  geom_tile(data = extreme, aes(east, north, group = change)) +
  scale_fill_gradientn(limits = c(-0.0185, 0.0185), colours = pal) +
  theme(legend.title = element_text(size = 20), 
        legend.text = element_text(size = 20), 
        plot.title = element_text(size = 20), 
        plot.title.position = "plot") +
  annotation_north_arrow(location = 'tl', height = unit(1, "cm"), wirth = unit(1, "cm")) +
  annotation_scale(location = 'br', text_cex = 1.5)


plot_grid(p1, p2, nrow = 1, 
          labels = c('a)', 'b)'))

NA
NA
load(files[[10]])

head(stability)
NA
NA

df <- rasterFromXYZ(stability)

projection(df) <- CRS("+init=epsg:29903")
plot(df$evi.rec, box = FALSE,
     axes = FALSE, 
     main = "Recovery Time", 
     cex.main = 2,
     legend.width = 2, 
     axis.args = list(cex.axis = 2),
     col = viridis(15))
north.arrow(50000, 150000, len = 10000, lab ="N", col = "black")
scalebar(d = 100000,xy = c(200000, 50000), label = '100km')

LS0tDQp0aXRsZTogIldlZWsgMTIgcHJhY3RpY2FsOiBHSVMiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZSA9IEZBTFNFfQ0KDQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZSA9IEZBTFNFKQ0KDQpgYGANCg0KDQpgYGB7cn0NCg0KbGlicmFyeShwYWNtYW4pDQpwX2xvYWQodGlkeXZlcnNlLCBzZiwgdmlyaWRpcywgcGF0Y2h3b3JrLCBSQ29sb3JCcmV3ZXIsIHJnZGFsLCBnZ3NwYXRpYWwsIHJhc3RlciwgR0lTVG9vbHMsIGNvd3Bsb3QsIGhlcmUpDQoNCg0KYGBgDQoNCg0KYGBge3IgZGF0YX0NCnBhdGggPC0gZ2x1ZTo6Z2x1ZShoZXJlKCksICIvcHJhY3RpY2Fscy9EYXRhL1dlZWsxMl9EYXRhL1dlZWsxMl9EYXRhIikNCg0KZmlsZXMgPC0gbGlzdC5maWxlcyhwYXRoLCAiKiIsIGZ1bGwubmFtZXMgPSBUKQ0KDQpgYGANCg0KYGBge3J9DQoNCmFnZy5jb3YgPC0gIHJlYWRfY3N2KGZpbGVzW1sxXV0sIHNob3dfY29sX3R5cGVzID0gRikNCg0KaGVhZChhZ2cuY292KQ0KDQpgYGANCg0KYGBge3J9DQoNCnAxIDwtIGFnZy5jb3YgJT4lDQogIGdncGxvdChhZXMoZWFzdCwgbm9ydGgsIGNvbG91ciA9IFNSKSkgKw0KICBnZW9tX3BvaW50KHNoYXBlID0gMTUsIHNpemUgPSAxKSArDQogIGNvb3JkX2ZpeGVkKCkgKw0KICBzY2FsZV9jb2xvdXJfdmlyaWRpcygpDQoNCnAxIDwtIHAxICsNCiAgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpLCANCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgYXhpcy50aWNrcyA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgcGxvdC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICBwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpLCANCiAgICAgICAgYXhpcy5saW5lID0gZWxlbWVudF9ibGFuaygpLCANCiAgICAgICAgYXhpcy50ZXh0ID0gZWxlbWVudF9ibGFuaygpLCANCiAgICAgICAgYXhpcy50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKQ0KICAgICAgICApDQogIA0KcDENCmBgYA0KDQoNCmBgYHtyfQ0KDQpwMiA8LSAgYWdnLmNvdiAlPiUNCiAgZ2dwbG90KGFlcyhlYXN0LCBub3J0aCwgY29sb3VyID0gU1IpKSArDQogIGdlb21fcG9pbnQoc2hhcGUgPSAxNSwgc2l6ZSA9IDEpICsNCiAgc2NhbGVfY29sb3VyX3ZpcmlkaXMoKQ0KDQpwMg0KYGBgDQoNCg0KYGBge3IgaXJlbGFuZH0NCg0KaXJlbGFuZCA8LSBzdF9yZWFkKGZpbGVzW1s2XV0sIHF1aWV0ID0gVCApDQoNCmlyZWxhbmRfc2YgPC0gc3RfdHJhbnNmb3JtKHN0X2FzX3NmKGlyZWxhbmQpLCAyOTkwMykNCg0KcC5mdXR1cmUgPC0gaXJlbGFuZF9zZiAlPiUNCiAgZ2dwbG90KCkgKw0KICBnZW9tX3NmKGZpbGwgPSAid2hpdGUiKSArDQogIGNvb3JkX3NmKCkNCg0KcC5mdXR1cmUNCg0KYGBgDQoNCmBgYHtyfQ0KbG9hZChmaWxlc1tbOV1dKQ0KbG9hZChmaWxlc1tbMTBdXSkNCg0KDQpjaGFuZ2UgPC0gY3VycmVudC5yZXNpc3RhbmNlICU+JQ0KICBtdXRhdGUoY2hhbmdlID0gcHJlZC5yZXNpc3RhbmNlJHByZWQuSDQ1LjUwIC0gcmVzaXN0LmZpdCkgJT4lDQogIGRwbHlyOjpzZWxlY3QoLXJlc2lzdC5maXQpICU+JQ0KICBtdXRhdGUoaWQgPSByb3dfbnVtYmVyKCkpICU+JQ0KICBhcnJhbmdlKGNoYW5nZSkNCg0KbyA8LSBvcmRlcihjaGFuZ2UkY2hhbmdlKVtjKDE6MjYsIDQ5Nzo1MjIpXQ0KDQoNCmNlbnRyYWwgPC0gY2hhbmdlWy1vLCBdDQoNCmV4dHJlbWUgPC0gY2hhbmdlW28sXQ0KDQpgYGANCg0KYGBge3J9DQoNCnAuZnV0dXJlIDwtIHAuZnV0dXJlICsNCiAgdGhlbWVfYncoKSArDQogIHRoZW1lKGF4aXMudGlja3MgPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgIGF4aXMudGV4dCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgcGFuZWwuYm9yZGVyID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICBwYW5lbC5ncmlkID0gZWxlbWVudF9ibGFuaygpKSArDQogIGxhYnMoeCA9IE5VTEwsIHkgPSBOVUxMKQ0KDQpwLmZ1dHVyZSA8LSBwLmZ1dHVyZSArDQogIGdndGl0bGUoIkNoYW5nZSBpbiByZXNpc3RhbmNlIDIwNTAiKQ0KICANCg0KYGBgDQoNCg0KYGBge3J9DQoNCnBhbCA8LSBicmV3ZXIucGFsKG4gPSAxMSwgbmFtZSA9ICdQUkduJykNCg0KcC5mdXR1cmUgKw0KICBnZW9tX3RpbGUoZGF0YSA9IGNlbnRyYWwsIGFlcyhlYXN0LCBub3J0aCwgZmlsbCA9IGNoYW5nZSkpICsNCiAgZ2VvbV90aWxlKGRhdGEgPSBleHRyZW1lLCBhZXMoZWFzdCwgbm9ydGgsIGdyb3VwID0gY2hhbmdlKSkgKw0KICBzY2FsZV9maWxsX2dyYWRpZW50bihsaW1pdHMgPSBjKC0wLjAxODUsIDAuMDE4NSksIGNvbG91cnMgPSBwYWwpICsNCiAgdGhlbWUobGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAyMCksIA0KICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMjApLCANCiAgICAgICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMjApLCANCiAgICAgICAgcGxvdC50aXRsZS5wb3NpdGlvbiA9ICJwbG90IikgKw0KICBhbm5vdGF0aW9uX25vcnRoX2Fycm93KGxvY2F0aW9uID0gJ3RsJywgaGVpZ2h0ID0gdW5pdCgxLCAiY20iKSwgd2lydGggPSB1bml0KDEsICJjbSIpKSArDQogIGFubm90YXRpb25fc2NhbGUobG9jYXRpb24gPSAnYnInLCB0ZXh0X2NleCA9IDEuNSkNCg0KYGBgDQoNCmBgYHtyfQ0KDQpwbG90X2dyaWQocDEsIHAyLCBucm93ID0gMSwgDQogICAgICAgICAgbGFiZWxzID0gYygnYSknLCAnYiknKSkNCg0KDQpgYGANCg0KYGBge3J9DQpsb2FkKGZpbGVzW1sxMF1dKQ0KDQpoZWFkKHN0YWJpbGl0eSkNCg0KDQpgYGANCg0KYGBge3J9DQoNCmRmIDwtIHJhc3RlckZyb21YWVooc3RhYmlsaXR5KQ0KDQpwcm9qZWN0aW9uKGRmKSA8LSBDUlMoIitpbml0PWVwc2c6Mjk5MDMiKQ0KDQpgYGANCg0KYGBge3J9DQpwbG90KGRmJGV2aS5yZWMsIGJveCA9IEZBTFNFLA0KICAgICBheGVzID0gRkFMU0UsIA0KICAgICBtYWluID0gIlJlY292ZXJ5IFRpbWUiLCANCiAgICAgY2V4Lm1haW4gPSAyLA0KICAgICBsZWdlbmQud2lkdGggPSAyLCANCiAgICAgYXhpcy5hcmdzID0gbGlzdChjZXguYXhpcyA9IDIpLA0KICAgICBjb2wgPSB2aXJpZGlzKDE1KSkNCm5vcnRoLmFycm93KDUwMDAwLCAxNTAwMDAsIGxlbiA9IDEwMDAwLCBsYWIgPSJOIiwgY29sID0gImJsYWNrIikNCnNjYWxlYmFyKGQgPSAxMDAwMDAseHkgPSBjKDIwMDAwMCwgNTAwMDApLCBsYWJlbCA9ICcxMDBrbScpDQoNCmBgYA0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg==