Reading the data in

setwd("C:/Users/mpmar/OneDrive/Documents/Densities_habitat")
seg_data <- read_csv("seg_data.csv")
obs_data <- read_csv("obs_data.csv")
pt  <- geodata::gadm(country = "PRT", level = 0,  path=tempdir())
spain <- geodata::gadm(country = "ESP", level = 0,  path=tempdir())
morocco <- geodata::gadm(country = "MAR", level = 0,  path=tempdir())

r_crs2 = "+proj=laea +lat_0=38.993572 +lon_0=-16.523438 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"

pt_proj <- terra::project(pt, r_crs2)
spain_proj <- terra::project(spain, r_crs2)
morocco_proj <- terra::project(morocco, r_crs2)

Reading the prediction grids for 2020 in

portugalgrid_2020_autumn <- read_csv("grids/2020/portugalgrid_2020_autumn.csv")
portugalgrid_2020_spring <- read_csv("grids/2020/portugalgrid_2020_spring.csv")
portugalgrid_2020_summer <- read_csv("grids/2020/portugalgrid_2020_summer.csv")
portugalgrid_2020_winter <- read_csv("grids/2020/portugalgrid_2020_winter.csv")

Reading the prediction grids for 2016 in

portugalgrid_2016_autumn <- read_csv("grids/2016/portugalgrid_2016_autumn.csv")
portugalgrid_2016_spring <- read_csv("grids/2016/portugalgrid_2016_spring.csv")
portugalgrid_2016_summer <- read_csv("grids/2016/portugalgrid_2016_summer.csv")
portugalgrid_2016_winter <- read_csv("grids/2016/portugalgrid_2016_winter.csv")

Creating predictions under RCP8.5 and fisheries collapse

portugalgrid_climate_change_autumn <- portugalgrid_2016_autumn
portugalgrid_climate_change_spring <- portugalgrid_2016_spring
portugalgrid_climate_change_summer <- portugalgrid_2016_summer
portugalgrid_climate_change_winter <- portugalgrid_2016_winter

portugalgrid_climate_change_autumn$SST_week <- portugalgrid_climate_change_autumn$SST_week+3.2
portugalgrid_climate_change_spring$SST_week <- portugalgrid_climate_change_spring$SST_week+3.2
portugalgrid_climate_change_summer$SST_week <- portugalgrid_climate_change_summer$SST_week+3.2
portugalgrid_climate_change_summer$SST_week <- portugalgrid_climate_change_summer$SST_week+3.2

portugalgrid_cc_fc_autumn <- portugalgrid_climate_change_autumn
portugalgrid_cc_fc_spring <- portugalgrid_climate_change_spring
portugalgrid_cc_fc_summer <- portugalgrid_climate_change_summer
portugalgrid_cc_fc_winter <- portugalgrid_climate_change_winter


portugalgrid_cc_fc_autumn$biomass <- 116989/2
portugalgrid_cc_fc_spring$biomass <- 116989/2
portugalgrid_cc_fc_summer$biomass <- 116989/2
portugalgrid_cc_fc_winter$biomass <- 116989/2

Modelling

Detection function

df_dolphin_unif_2.1 <- ds(data = obs_data,
                 formula = ~1,
                 key = "unif",
                 nadj = 2,mono_method = "slsqp", optimizer = "R")
## Warning: Unknown or uninitialised column: `distance`.
## Unknown or uninitialised column: `distance`.
## Columns "distbegin" and "distend" in data: performing a binned analysis...
## Fitting uniform key function with cosine(1,2) adjustments
## AIC= 1933.177
## No survey area information supplied, only estimating detection function.
summary(df_dolphin_unif_2.1)
## 
## Summary for distance analysis 
## Number of observations :  737 
## Distance range         :  0  -  300 
## 
## Model       : Uniform key function with cosine adjustment terms of order 1,2 
## 
## Strict monotonicity constraints were enforced.
## AIC         :  1933.177 
## Optimisation:  mrds (slsqp) 
## 
## Detection function parameters
## Scale coefficient(s):  
## NULL
## 
## Adjustment term coefficient(s):  
##               estimate         se
## cos, order 1 0.9193033 0.04182242
## cos, order 2 0.2423833 0.06062181
## 
##                         Estimate         SE         CV
## Average p              0.4626018  0.0190366 0.04115116
## N in covered region 1593.1630066 78.4151513 0.04921979
plot(df_dolphin_unif_2.1)

DSM

obs_data_2 <- obs_data
obs_data_2$distance <- (obs_data_2$distbegin+obs_data_2$distend)/2
DDE_DSM_ECS <- dsm(formula = count ~ s(distcoast, k = 4) + s(dist1000, k = 4) + s(biomass, k = 4) + s(Chl_week, k = 4) + s(Chl_week_lag, k = 4) + s(SST_week, k = 4) + s(Salt_week, k = 4) + s(Zoo_week, k = 4),
                   ddf.obj = df_dolphin_unif_2.1,
                   segment.data = seg_data,
                   observation.data = obs_data_2,
                   engine = "gam",
                   method = "REML",
                   family = tw())
summary(DDE_DSM_ECS)
## 
## Family: Tweedie(p=1.48) 
## Link function: log 
## 
## Formula:
## count ~ s(distcoast, k = 4) + s(dist1000, k = 4) + s(biomass, 
##     k = 4) + s(Chl_week, k = 4) + s(Chl_week_lag, k = 4) + s(SST_week, 
##     k = 4) + s(Salt_week, k = 4) + s(Zoo_week, k = 4) + offset(off.set)
## 
## Parametric coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -14.19019    0.06003  -236.4   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Approximate significance of smooth terms:
##                   edf Ref.df      F  p-value    
## s(distcoast)    2.713  2.934  3.429 0.011329 *  
## s(dist1000)     2.240  2.594  1.853 0.095515 .  
## s(biomass)      2.287  2.657  7.116 0.000185 ***
## s(Chl_week)     2.454  2.806  8.200 0.000362 ***
## s(Chl_week_lag) 1.002  1.003 13.966 0.000186 ***
## s(SST_week)     2.924  2.995  9.957 3.79e-06 ***
## s(Salt_week)    1.002  1.003  3.416 0.064553 .  
## s(Zoo_week)     2.652  2.918  6.911 0.000180 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## R-sq.(adj) =  0.00045   Deviance explained = 5.66%
## -REML = 5659.9  Scale est. = 51.969    n = 48875
AIC(DDE_DSM_ECS)
## [1] 11299.89

Prediction

2020 densities and CVs

portugalgrid_2020_spring$Density <- predict(DDE_DSM_ECS, portugalgrid_2020_spring, portugalgrid_2020_spring$off.set)
portugalgrid_2020_summer$Density <- predict(DDE_DSM_ECS, portugalgrid_2020_summer, portugalgrid_2020_spring$off.set)
portugalgrid_2020_autumn$Density <- predict(DDE_DSM_ECS, portugalgrid_2020_autumn, portugalgrid_2020_spring$off.set)
portugalgrid_2020_winter$Density <- predict(DDE_DSM_ECS, portugalgrid_2020_winter, portugalgrid_2020_spring$off.set)
var_spring_2020 <- dsm_var_gam(DDE_DSM_ECS, portugalgrid_2020_spring, portugalgrid_2020_spring$off.set)
var_summer_2020 <- dsm_var_gam(DDE_DSM_ECS, portugalgrid_2020_summer, portugalgrid_2020_spring$off.set)
var_autumn_2020 <- dsm_var_gam(DDE_DSM_ECS, portugalgrid_2020_autumn, portugalgrid_2020_spring$off.set)
var_winter_2020 <- dsm_var_gam(DDE_DSM_ECS, portugalgrid_2020_winter, portugalgrid_2020_spring$off.set)

For 2100 with RCP8.5 and fisheries collapse

portugalgrid_cc_fc_spring$Density <- predict(DDE_DSM_ECS, portugalgrid_cc_fc_spring, portugalgrid_2020_spring$off.set)
portugalgrid_cc_fc_summer$Density <- predict(DDE_DSM_ECS, portugalgrid_cc_fc_summer, portugalgrid_2020_spring$off.set)
portugalgrid_cc_fc_autumn$Density <- predict(DDE_DSM_ECS, portugalgrid_cc_fc_autumn, portugalgrid_2020_spring$off.set)
portugalgrid_cc_fc_winter$Density <- predict(DDE_DSM_ECS, portugalgrid_cc_fc_winter, portugalgrid_2020_spring$off.set)
var_spring__cc_fc_ <- dsm_var_gam(DDE_DSM_ECS, portugalgrid_cc_fc_spring, portugalgrid_2020_spring$off.set)
var_summer__cc_fc_ <- dsm_var_gam(DDE_DSM_ECS, portugalgrid_cc_fc_summer, portugalgrid_2020_spring$off.set)
var_autumn_cc_fc_ <- dsm_var_gam(DDE_DSM_ECS, portugalgrid_cc_fc_autumn, portugalgrid_2020_spring$off.set)
var_winter_cc_fc_ <- dsm_var_gam(DDE_DSM_ECS, portugalgrid_cc_fc_winter, portugalgrid_2020_spring$off.set)

Densities table for 2020

Density_table <- data.frame(Season = c("Spring",
                                       "Summer",
                                       "Autumn",
                                       "Winter"),
                            Abundance = c(sum(portugalgrid_2020_spring$Density),
                                          sum(portugalgrid_2020_summer$Density),
                                          sum(portugalgrid_2020_autumn$Density),
                                          sum(portugalgrid_2020_winter$Density)),
                            Mean_Density = c(mean(portugalgrid_2020_spring$Density),
                                             mean(portugalgrid_2020_summer$Density),
                                             mean(portugalgrid_2020_autumn$Density),
                                             mean(portugalgrid_2020_winter$Density)),
                            CV = c(summary(var_spring_2020)$cv[,1],
                                   summary(var_summer_2020)$cv[,1],
                                   summary(var_autumn_2020)$cv[,1],
                                   summary(var_winter_2020)$cv[,1])
                            )

Density_table
##   Season Abundance Mean_Density        CV
## 1 Spring  237175.9    0.7539183 0.1938039
## 2 Summer  177424.1    0.5639834 0.1602045
## 3 Autumn  230861.1    0.7338451 0.1732905
## 4 Winter  202542.0    0.6438265 0.1879266

Densities table for 2100

Density_table_cc_fc_ <- data.frame(Season = c("Spring",
                                       "Summer",
                                       "Autumn",
                                       "Winter"),
                            Abundance = c(sum(portugalgrid_cc_fc_spring$Density),
                                          sum(portugalgrid_cc_fc_summer$Density),
                                          sum(portugalgrid_cc_fc_autumn$Density),
                                          sum(portugalgrid_cc_fc_winter$Density)),
                            Mean_Density = c(mean(portugalgrid_cc_fc_spring$Density),
                                             mean(portugalgrid_cc_fc_summer$Density),
                                             mean(portugalgrid_cc_fc_autumn$Density),
                                             mean(portugalgrid_cc_fc_winter$Density)),
                            CV = c(summary(var_spring_2020)$cv[,1],
                                   summary(var_summer_2020)$cv[,1],
                                   summary(var_autumn_2020)$cv[,1],
                                   summary(var_winter_2020)$cv[,1])
                            )

Density_table_cc_fc_
##   Season  Abundance Mean_Density        CV
## 1 Spring 110744.406  0.352026619 0.1938039
## 2 Summer   1588.353  0.005048947 0.1602045
## 3 Autumn  10182.964  0.032368899 0.1732905
## 4 Winter  79125.149  0.251517524 0.1879266

Density ratios

Ratios_table <- data.frame(Season = c("Spring",
                                      "Summer",
                                      "Autumn",
                                      "Winter"),
                           Ratio = Density_table_cc_fc_$Mean_Density/Density_table$Mean_Density,
                           CV = sqrt((Density_table$CV)^2+(Density_table_cc_fc_$CV)^2))

Ratios_table
##   Season       Ratio        CV
## 1 Spring 0.466929427 0.2740801
## 2 Summer 0.008952297 0.2265634
## 3 Autumn 0.044108628 0.2450697
## 4 Winter 0.390660440 0.2657684

Distribution Maps

2020

spring_plot <- ggplot(portugalgrid_2020_spring) +
  geom_tile(aes(x = x, y = y, fill = Density)) + 
  labs(title = "Spring Distribution")+
  scale_fill_viridis(limits = c(0,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

summer_plot <- ggplot(portugalgrid_2020_summer) +
  geom_tile(aes(x = x, y = y, fill = Density)) + 
  labs(title = "Summer Distribution")+
  scale_fill_viridis(limits = c(0,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

autmn_plot <- ggplot(portugalgrid_2020_autumn) +
  geom_tile(aes(x = x, y = y, fill = Density)) + 
  labs(title = "Autumn Distribution")+
  scale_fill_viridis(limits = c(0,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

winter_plot <- ggplot(portugalgrid_2020_winter) +
  geom_tile(aes(x = x, y = y, fill = Density)) + 
  labs(title = "Winter Distribution")+
  scale_fill_viridis(limits = c(0,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

plot_grid(spring_plot, summer_plot, autmn_plot, winter_plot, labels = "AUTO")
## Warning: Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).

2100

spring_plot_cc_fc_ <- ggplot(portugalgrid_cc_fc_spring) +
  geom_tile(aes(x = x, y = y, fill = Density)) + 
  labs(title = "Spring Distribution")+
  scale_fill_viridis(limits = c(0,2))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

summer_plot_cc_fc_ <- ggplot(portugalgrid_cc_fc_summer) +
  geom_tile(aes(x = x, y = y, fill = Density)) + 
  labs(title = "Summer Distribution")+
  scale_fill_viridis(limits = c(0,2))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

autmn_plot_cc_fc_ <- ggplot(portugalgrid_cc_fc_autumn) +
  geom_tile(aes(x = x, y = y, fill = Density)) + 
  labs(title = "Autumn Distribution")+
  scale_fill_viridis(limits = c(0,2))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

winter_plot_cc_fc_ <- ggplot(portugalgrid_cc_fc_winter) +
  geom_tile(aes(x = x, y = y, fill = Density)) + 
  labs(title = "Winter Distribution")+
  scale_fill_viridis(limits = c(0,2))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

plot_grid(spring_plot_cc_fc_, summer_plot_cc_fc_, autmn_plot_cc_fc_, winter_plot_cc_fc_, labels = "AUTO")
## Warning: Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).

Ratio

portugalgrid_cc_fc_spring$Ratio <- portugalgrid_cc_fc_spring$Density/portugalgrid_2020_spring$Density
portugalgrid_cc_fc_summer$Ratio <- portugalgrid_cc_fc_summer$Density/portugalgrid_2020_summer$Density
portugalgrid_cc_fc_autumn$Ratio <- portugalgrid_cc_fc_autumn$Density/portugalgrid_2020_autumn$Density
portugalgrid_cc_fc_winter$Ratio <- portugalgrid_cc_fc_winter$Density/portugalgrid_2020_winter$Density
spring_plot_cc_fc_R <- ggplot(portugalgrid_cc_fc_spring) +
  geom_tile(aes(x = x, y = y, fill = Ratio)) + 
  labs(title = "Spring Density Loss")+
  scale_fill_viridis(limits = c(0,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

summer_plot_cc_fc_R <- ggplot(portugalgrid_cc_fc_summer) +
  geom_tile(aes(x = x, y = y, fill = Ratio)) + 
  labs(title = "Summer Density Loss")+
  scale_fill_viridis(limits = c(0,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

autmn_plot_cc_fc_R <- ggplot(portugalgrid_cc_fc_autumn) +
  geom_tile(aes(x = x, y = y, fill = Ratio)) + 
  labs(title = "Autumn Density Loss")+
  scale_fill_viridis(limits = c(0,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

winter_plot_cc_fc_R <- ggplot(portugalgrid_cc_fc_winter) +
  geom_tile(aes(x = x, y = y, fill = Ratio)) + 
  labs(title = "Winter Density Loss")+
  scale_fill_viridis(limits = c(0,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

plot_grid(spring_plot_cc_fc_R, summer_plot_cc_fc_R, autmn_plot_cc_fc_R, winter_plot_cc_fc_R, labels = "AUTO")
## Warning: Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).

Loss

portugalgrid_cc_fc_spring$Loss <- portugalgrid_2020_spring$Density-portugalgrid_cc_fc_spring$Density
portugalgrid_cc_fc_summer$Loss <- portugalgrid_2020_summer$Density-portugalgrid_cc_fc_summer$Density
portugalgrid_cc_fc_autumn$Loss <- portugalgrid_2020_autumn$Density-portugalgrid_cc_fc_autumn$Density
portugalgrid_cc_fc_winter$Loss <- portugalgrid_2020_winter$Density-portugalgrid_cc_fc_winter$Density
spring_plot_cc_fc_R <- ggplot(portugalgrid_cc_fc_spring) +
  geom_tile(aes(x = x, y = y, fill = Loss)) + 
  labs(title = "Spring Density Loss")+
  scale_fill_viridis(option = "C", limits = c(-4,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

summer_plot_cc_fc_R <- ggplot(portugalgrid_cc_fc_summer) +
  geom_tile(aes(x = x, y = y, fill = Loss)) + 
  labs(title = "Summer Density Loss")+
  scale_fill_viridis(option = "C", limits = c(-4,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

autmn_plot_cc_fc_R <- ggplot(portugalgrid_cc_fc_autumn) +
  geom_tile(aes(x = x, y = y, fill = Loss)) + 
  labs(title = "Autumn Density Loss")+
  scale_fill_viridis(option = "C", limits = c(-4,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

winter_plot_cc_fc_R <- ggplot(portugalgrid_cc_fc_winter) +
  geom_tile(aes(x = x, y = y, fill = Loss)) + 
  labs(title = "Winter Density Loss")+
  scale_fill_viridis(option = "C", limits = c(-4,4))+
  geom_spatvector(data = pt_proj, fill = "grey70")+
  geom_spatvector(data = spain_proj, fill = "grey35")+
  geom_spatvector(data = morocco_proj, fill = "grey35")+
  xlim(min(portugalgrid_2020_summer$x), max(portugalgrid_2020_summer$x))+
  ylim(min(portugalgrid_2020_summer$y), max(portugalgrid_2020_summer$y))

plot_grid(spring_plot_cc_fc_R, summer_plot_cc_fc_R, autmn_plot_cc_fc_R, winter_plot_cc_fc_R, labels = "AUTO")
## Warning: Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).
## Removed 49 rows containing missing values or values outside the scale range
## (`geom_tile()`).