setwd("/Volumes/UMS2006/070_CONSERVATION/PRIMA")
setwd("//2006ja20nas/UMS2006/070_CONSERVATION/PRIMA")

rm(list=ls())

library(dplyr)
library(data.table)
library(openxlsx)
library(readr)
library(readxl)
library(readODS)
library(rgdal)
library(rgeos)
library(raster)
library(ff)
library(reshape2)
library(sf)
library(gstat)

########################################
######## RESEAU ROUTIER - BD TOPO ######
########################################
france = st_read('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')

shape = st_read('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/BDTOPO_3-3_TOUSTHEMES_SHP_RGR92UTM40S_D974_2022-12-15_REU/BDTOPO/1_DONNEES_LIVRAISON_2022-12-00159/BDT_3-3_SHP_RGR92UTM40S_D974-ED2022-12-15/TRANSPORT/TRONCON_DE_ROUTE.shp','TRONCON_DE_ROUTE')
shape = shape[!(shape$NATURE %in% c('Escalier','Piste cyclable','Bac ou liaison maritime', 'Chemin', 'Route empierrée', 'Sentier')),]
shape = shape[shape$NB_VOIES != 0,]
shape = shape[!is.na(shape$NB_VOIES),] 
shape = st_transform(shape, st_crs(france))

imp = data.frame(NB_VOIES = sort(unique(shape$NB_VOIES)), Importance = c(1:4))
imp
shape = left_join(shape, imp , by = c('NB_VOIES'))

#Ajout des colonnes 
idx.min = ncol(france)+1
idx.max = ncol(france) + nrow(imp)
france[,idx.min:idx.max] = 0
colnames(france)[idx.min:idx.max] = paste0('clss_',imp$Importance)

idx.min = ncol(france)+1
idx.max = ncol(france) + nrow(imp)
france[,idx.min:idx.max] = 0
colnames(france)[idx.min:idx.max] = paste0('tot_clss_',imp$Importance)
idx.min.tokeep = idx.min
idx.max.tokeep = idx.max

for (clss in unique(shape$Importance)) { #correction des routes par leur degre d'importance selon leur nombre de voies, voir Guette 2018 
  shape.i = shape[shape$Importance == clss,]
  
  idx.min = 1
  idx.max = 1
  
  while(idx.max != nrow(shape.i)) {
    
    idx.max = min(idx.min + 6500, nrow(shape.i))
    print(idx.min)
    print(idx.max)
    
    shape.ii = shape.i[idx.min : idx.max, ]
    inter = st_intersection(shape.ii, france, byid = T, checkValidity = 2L)
    
    for (i in unique(inter$CD_SIG)) {
      
      poly = inter[inter$CD_SIG %in% i,]
      prop = sum(as.numeric(st_length(poly))) * clss
      france[france$CD_SIG == i, paste0('clss_',clss)] = prop
    }
    
    france[, paste0('tot_clss_',clss)] = st_drop_geometry(france[, paste0('tot_clss_',clss)]) + st_drop_geometry(france[, paste0('clss_',clss)])
    
    idx.min = idx.max + 1
    remove(shape.ii)
    remove(inter)
  }
  
  print(clss)
}

france$prop = apply(st_drop_geometry(france[idx.min.tokeep:idx.max.tokeep]), 1, sum)

rr <- rasterize(france, rr, field='prop')
rr = rr/1000
writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Longueur-de-routes-corrigee-par-leur-valeur-d-importance_2022', format = 'GTiff', overwrite=T)

########################################
######## SENTIER - BD TOPO ######
########################################
rm(list=ls())
france = st_read('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')

shape = st_read('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/BDTOPO_3-3_TOUSTHEMES_SHP_RGR92UTM40S_D974_2022-12-15_REU/BDTOPO/1_DONNEES_LIVRAISON_2022-12-00159/BDT_3-3_SHP_RGR92UTM40S_D974-ED2022-12-15/TRANSPORT/TRONCON_DE_ROUTE.shp','TRONCON_DE_ROUTE')
shape = shape[shape$NATURE %in% 'Sentier',]
shape = shape[shape$URBAIN %in% 'Non',]
shape = st_transform(shape, st_crs(france))

inter = st_intersection(shape, france, byid = T, checkValidity = 2L)
inter$lgth = as.numeric(st_length(inter))/1000
inter = st_drop_geometry(inter)

get.sum = function(df) {
  return(data.frame(CD_SIG = unique(df$CD_SIG), lgth = sum(df$lgth)))
}
inter = group_by(inter, CD_SIG) %>% do(get.sum(.)) %>% data.frame

france = left_join(france, inter, by = 'CD_SIG')
france$lgth[is.na(france$lgth)] = 0
rr <- rasterize(france, rr, field='lgth')
writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Longueur-de-sentiers-non-urbain_2022', format = 'GTiff', overwrite=T)

##############################################################
#################### INCENDIES ###############################
##############################################################
rm(list=ls())
moy.pond = function(x, communes, field) {
  id.maille = x$CD_SIG
  commune.i = communes@data[communes@data$CD_SIG %in% id.maille, ]
  quantite = sum(na.omit(commune.i[,paste(field)]*commune.i$prop.commune.dans.maille))/100
  return(data.frame(CD_SIG = id.maille, field = field, quantite = quantite))
}
myData = read_delim("R:/070_CONSERVATION/PRIMA/Pression&MenaceBiodiv/SIG/DATA_BRUTE/export_BDIFF_incendies_20230112/Incendies.csv", 
                    delim = ";", escape_double = FALSE, trim_ws = TRUE, 
                    skip = 6)
colnames(myData)[colnames(myData) == 'Code INSEE'] = 'insee'
myData = myData[is.na(myData$"Précision de la donnée"),]
myData$`Surfaces non boisées artificialisées (m2)` = ifelse(is.na(myData$`Surfaces non boisées artificialisées (m2)`), 0, myData$`Surfaces non boisées artificialisées (m2)`)
myData$Surf_int = myData$`Surface parcourue (m2)` - myData$`Surfaces non boisées artificialisées (m2)`
ffinal = data.frame()

for (a in unique(myData$Année)) { #moyenne des surfaces brulees par annee et par commune 
  subdata = myData[myData$Année == a,]
  
  # surf.foret = by(subdata$`Surface forêt (m2)`, subdata$insee,sum)
  # surf.boisee = by(subdata$`Surface autres terres boisées (m2)`, subdata$insee,sum)
  # surf.nonboisee.naturelle = by(subdata$`Surfaces non boisées naturelles (m2)`, subdata$insee,sum)
  # 
  # final = data.frame(insee = names(surf.foret), surf.foret = c(surf.foret), surf.boisee = c(surf.boisee), surf.nonboisee.naturelle = c(surf.nonboisee.naturelle))
  # final$surf.foret[is.na(final$surf.foret)] = 0
  # final$surf.boisee[is.na(final$surf.boisee)] = 0
  # final$surf.nonboisee.naturelle[is.na(final$surf.nonboisee.naturelle)] = 0
  # final$surf.brulee.m2 = final$surf.foret + final$surf.boisee + final$surf.nonboisee.naturelle
  
  surf.brulee.m2 = by(subdata$Surf_int, subdata$insee,sum)
  final = data.frame(insee = names(surf.brulee.m2), surf.brulee.m2 = c(surf.brulee.m2))
  final$annee = a
  ffinal = rbind(ffinal, final)
  print(a)
}

surf.brulee.m2 = by(ffinal$surf.brulee.m2, ffinal$insee, sum)/length(unique(ffinal$annee))
remove(ffinal)
remove(final)
final = data.frame(insee = names(surf.brulee.m2), surf.brulee.m2 = c(surf.brulee.m2))

communes = readOGR('./BasedeDonnees/SIG/OM/communes-REU-20200101.shp','communes-REU-20200101')
communes = spTransform(communes, CRS('+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'))
communes@data = left_join(communes@data,final,by='insee')

poids = read.xlsx('./BasedeDonnees/SIG/OM/Proportion-chevauchement-des-communes-sur-maille-1X1_REU.xlsx')
communes@data = left_join(communes@data, poids, by = 'insee')
france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')

val = group_by(france@data, CD_SIG) %>% do(moy.pond(., communes = communes, field = 'surf.brulee.m2')) %>% data.frame() 
france@data = left_join(france@data, val, by = 'CD_SIG')

rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
rr <- rasterize(france, rr, field='quantite', na.rm = T)
rr = rr/10000 #transforme en ha
writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Surface-moyenne-annuelle-brulee-par-Incendies_ha_2006-2021',format = 'GTiff', overwrite=T)

##############################################################
############# PRELEVEMENT EAU - EAU FRANCE ###################
##############################################################
rm(list=ls())
moy.pond = function(x, communes, field) {
  id.maille = x$CD_SIG
  commune.i = communes@data[communes@data$CD_SIG %in% id.maille, ]
  quantite = sum(na.omit(commune.i[,paste(field)]*commune.i$prop.commune.dans.maille))/100
  return(data.frame(CD_SIG = id.maille, field = field, quantite = quantite))
}

communes = readOGR('./BasedeDonnees/SIG/OM/communes-REU-20200101.shp','communes-REU-20200101')
communes = spTransform(communes, CRS('+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'))
poids = read.xlsx('./BasedeDonnees/SIG/OM/Proportion-chevauchement-des-communes-sur-maille-1X1_REU.xlsx')
rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')

lb = c("AEP", "IRR")
chp = 'insee'

sum.fun = function(df) {
  sum.df = sum(na.omit(df$VALEUR))
  sum.df = data.frame(insee = as.character(unique(df$insee)), val = sum.df)
  return(sum.df)
}

prelev = read.csv('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/EauFrance/REU/prelevements.csv',header=T,sep=',')
prelev = prelev[prelev$Code.usage.BNPE %in% c('AEP', 'IRR'),]
colnames(prelev)[colnames(prelev)=='Code.INSEE'] = 'insee'
colnames(prelev)[colnames(prelev) == 'Volume..m3.'] = "VALEUR"
prelev$VALEUR = as.numeric(prelev$VALEUR)

for (y in unique(prelev$Année)) {
  prelev.y = prelev[prelev$Année == y, ]
  
  for (l in lb) {
    subdata = prelev.y[prelev.y$Code.usage.BNPE == l,]
    
    subdata.i = group_by(subdata, insee) %>% do(sum.fun(.)) %>% data.frame()
    
    communes@data = data.frame(insee = unique(communes@data[,chp]))
    communes@data = left_join(communes@data, subdata.i, by = 'insee')
    communes@data = left_join(communes@data, poids, by = 'insee')
    france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
    
    val = group_by(france@data, CD_SIG) %>% do(moy.pond(., communes = communes, field = 'val')) %>% data.frame() 
    france@data = left_join(france@data, val, by = 'CD_SIG')
    
    rr <- rasterize(france, rr, field='quantite', na.rm = T)
    writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/Eau-France_Prelevements_m3ParAn_',paste0(unlist(strsplit(l,' ')), collapse = '-'),'_',y,''),format = 'GTiff', overwrite=T)
  }
  print(y)
}

# Moyenne sur toutes les annees 
for (l in lb) {
  files = paste0('./Pression&MenaceBiodiv/SIG/Eau-France_Prelevements_m3ParAn_',paste0(unlist(strsplit(l,' ')), collapse = '-'),'_',unique(prelev$Année),'.tif')
  rr = stack(files)
  assign(paste0('rr.', l), mean(rr, na.rm = T))
  unlink(files)
}

# Somme sur toutes les activites  
rr = rr.AEP + rr.IRR
writeRaster(rr, './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Eau-France_Prelevements_m3ParAn_Eau-potable-Irrigation_Mean2012-2019.tif', format = 'GTiff', overwrite = T)

##############################################################
############### DECHETS DANGEREUX ET NON-DANGEREUX  ##########
##############################################################
rm(list=ls())

france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')

epsg.ref = 2975
proj.ref = CRS('+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs')

communes = readOGR('./BasedeDonnees/SIG/OM/communes-REU-20200101.shp','communes-REU-20200101')
communes = spTransform(communes, proj.ref)
corresp = read.csv('./Pression&MenaceBiodiv/SIG/correspondance-code-insee-code-postal.csv', header = T, sep =';')
corresp = corresp[, c('Code.INSEE', 'Code.Postal')]
communes@data = left_join(communes@data, corresp, by = c('insee'='Code.INSEE'))
years = c(2007:2020)

for (y in years) {
  
  coords = read.csv(paste0('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/IREP/',y,'/etablissements.csv'), header = T, sep = ';')
  coords = coords[coords$region %in% 'REUNION',]
  coords$code_epsg[is.na(coords$code_epsg)] = epsg.ref
  coords$code_epsg[coords$identifiant %in% c(7100691, 7101267, 7101586)] = epsg.ref #correction coquille 
  
  ids = unique(coords$identifiant)
  ids = ids[!is.na(ids)]
  
  ##### DECHETS DANGEREUX ##############
  dechets = read.csv(paste0('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/IREP/',y,'/Prod_dechets_dangereux.csv'), header = T, sep = ';')
  dechets = dechets[dechets$identifiant %in% ids, ]
  myData = coords[,c('identifiant','coordonnees_x','coordonnees_y', 'code_epsg')]
  dechets = left_join(dechets,myData,by='identifiant')
  dechets = dechets[!(is.na(dechets$quantite)),]
  dechets = dechets[!is.na(dechets$code_epsg),]
  
  ###### Somme des dechets par installation
  final = data.frame() 
  for(i in unique(dechets$identifiant)) {
    subdata.i = dechets[dechets$identifiant == i,]
    quantite = sum(subdata.i$quantite)
    final = rbind(final, data.frame(Annee = y, Identifiant = i, x = unique(subdata.i$coordonnees_x), y = unique(subdata.i$coordonnees_y),
                                    quantite = quantite, unite = 'tonne/an', epsg = unique(subdata.i$code_epsg)))
  }
  
  # Creation des SpatialPoints
  if (sum(final$epsg != epsg.ref)!= 0) { #projection des coordonnees sur le meme epsg
    tocheck = final[final$epsg != epsg.ref, ]
    
    for (subepsg in unique(tocheck$epsg)) {
      
      subcheck = tocheck[tocheck$epsg == subepsg, ]
      xy = SpatialPoints(coords = data.frame(x=subcheck$x, y = subcheck$y))
      xy = st_as_sf(xy)  
      xy = st_set_crs(xy, paste0('EPSG:',subepsg))
      xy = st_transform(xy, paste0('EPSG:', epsg.ref))
      
      subcheck$x = st_coordinates(xy)[,1]
      subcheck$y = st_coordinates(xy)[,2]
      
      final = final[final$epsg %in% epsg.ref, ]
      final = rbind(final, subcheck)
      final$epsg = epsg.ref
    }
  } 
  
  xy = data.frame(x = as.numeric(final$x), y = as.numeric(final$y))
  xy = SpatialPointsDataFrame(xy, proj4string = proj.ref, data = final)
  xy = spTransform(xy,france@proj4string)
  xy = crop(xy,france)
  
  inter = gIntersects(xy, france,byid = T)
  france@data$quantite = 0
  
  for (i in 1:nrow(inter)) {
    idx = which(inter[i,]==TRUE)
    if(length(idx)>0) {
      quantite = sum(xy@data$quantite[idx])
      france@data$quantite[i] = quantite
    }
  }
  
  # Creation du raster
  rr <- rasterize(france, rr, field='quantite')
  writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/Dechets_dangereux_tonneParAn_',y),format = 'GTiff', overwrite=T)
  
  remove(xy)
  remove(dechets)
  
  ##### DECHETS NON-DANGEREUX ##############
  dechets = read.csv(paste0('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/IREP/',y,'/Prod_dechets_non_dangereux.csv'), header = T, sep = ';')
  dechets = dechets[dechets$identifiant %in% ids, ]
  myData = coords[,c('identifiant','coordonnees_x','coordonnees_y', 'code_epsg')]
  dechets = left_join(dechets,myData,by='identifiant')
  dechets = dechets[!(is.na(dechets$quantite)),]
  dechets = dechets[!is.na(dechets$code_epsg),]
  
  ###### Somme des dechets par installation
  final = data.frame() 
  for(i in unique(dechets$identifiant)) {
    subdata.i = dechets[dechets$identifiant == i,]
    quantite = sum(subdata.i$quantite)
    final = rbind(final, data.frame(Annee = y, Identifiant = i, x = unique(subdata.i$coordonnees_x), y = unique(subdata.i$coordonnees_y),
                                    quantite = quantite, unite = 'tonne/an', epsg = unique(subdata.i$code_epsg)))
  }
  
  # Creation des SpatialPoints
  if (sum(final$epsg != epsg.ref)!= 0) { #projection des coordonnees sur le meme epsg
    tocheck = final[final$epsg != epsg.ref, ]
    
    for (subepsg in unique(tocheck$epsg)) {
      
      subcheck = tocheck[tocheck$epsg == subepsg, ]
      xy = SpatialPoints(coords = data.frame(x=subcheck$x, y = subcheck$y))
      xy = st_as_sf(xy)  
      xy = st_set_crs(xy, paste0('EPSG:',subepsg))
      xy = st_transform(xy, paste0('EPSG:', epsg.ref))
      
      subcheck$x = st_coordinates(xy)[,1]
      subcheck$y = st_coordinates(xy)[,2]
      
      final = final[final$epsg %in% epsg.ref, ]
      final = rbind(final, subcheck)
      final$epsg = epsg.ref
    }
  } 
  
  xy = data.frame(x = as.numeric(final$x), y = as.numeric(final$y))
  xy = SpatialPointsDataFrame(xy, proj4string = proj.ref, data = final)
  xy = spTransform(xy,france@proj4string)
  xy = crop(xy,france)
  
  inter = gIntersects(xy, france,byid = T)
  france@data$quantite = 0
  
  for (i in 1:nrow(inter)) {
    
    idx = which(inter[i,]==TRUE)
    if(length(idx)>0) {
      quantite = sum(xy@data$quantite[idx])
      france@data$quantite[i] = quantite
    }
    
  }
  
  # Creation du raster
  rr <- rasterize(france, rr, field='quantite')
  writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/Dechets_non_dangereux_tonneParAn_',y),format = 'GTiff', overwrite=T)
  
  print(y)
  
}

# Moyenne sur les annees 
files = paste0('./Pression&MenaceBiodiv/SIG/Dechets_dangereux_tonneParAn_',years,'.tif')
rr = stack(files)
dech.dang = mean(rr)
unlink(files)  

files = paste0('./Pression&MenaceBiodiv/SIG/Dechets_non_dangereux_tonneParAn_',years,'.tif')
rr = stack(files)
dech.n.dang = mean(rr)
unlink(files)

# Somme des deux
rr = dech.dang + dech.n.dang
writeRaster(rr, './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Dechets_dangereux-et-non-dangereux_Installations-Classees_tonneParAn_Mean2007-2020.tif', format = 'GTiff', overwrite = T)

##############################################################
############ ACHAT PESTICIDES PAR CODE POSTAL ################
##############################################################
rm(list=ls())
moy.pond = function(df, field) {
  quantite = sum(na.omit(df[,paste(field)]*df$prop.commune.dans.maille))/100
  return(data.frame(CD_SIG = unique(df$CD_SIG), field = field, quantite = quantite))
}


sum.fun = function(df) {
  sum.df = by(df$VALEUR, df$cas, sum)
  sum.df = data.frame(cas = names(sum.df), val = c(sum.df))
  return(sum.df)
}

sum.fun2 = function(df) {
  sum.df = data.frame(val = sum(df$val.toxic))
  return(sum.df)
}


communes = readOGR('./BasedeDonnees/SIG/OM/communes-REU-20200101.shp','communes-REU-20200101')
communes = spTransform(communes, CRS('+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'))
communes@data = data.frame(insee = communes@data$insee)
rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')

correp = read.csv('./Pression&MenaceBiodiv/SIG/correspondance-code-insee-code-postal.csv',header=T,sep=';')
correp = correp[, c('Code.INSEE','Code.Postal')]
colnames(correp)[colnames(correp)=='Code.INSEE'] = 'insee'
correp$insee = as.character(correp$insee)
poids = read.xlsx('./BasedeDonnees/SIG/OM/Proportion-chevauchement-des-communes-sur-maille-1X1_REU.xlsx')
communes@data = left_join(communes@data, correp, by ='insee')
communes@data = left_join(communes@data, poids, by ='insee')

# TOXICITE : Dose letale 50 ; voie orale ; maximum pour tous les taxons 
cas = read_excel('./Pression&MenaceBiodiv/SIG/DATA_BRUTE/PPDB_MNHN_20-09-04/PPDB_MNHN_20-09-04.xlsx', sheet = 1)
cas = cas[,c('ID','CAS RN','Alternative/old CAS numbers')]
toxicite = read_excel('./Pression&MenaceBiodiv/SIG/DATA_BRUTE/PPDB_MNHN_20-09-04/PPDB_MNHN_20-09-04.xlsx', sheet = 3)
toxicite = left_join(toxicite, cas, by = 'ID')
tokeep = toxicite[,grep('LD50', colnames(toxicite))]
tokeep = tokeep[,c("Mammals - Acute oral LD50, mg/kg BW/day",  "Birds - Acute LD50, mg/kg")]
tokeep$`Mammals - Acute oral LD50, mg/kg BW/day`[is.na(tokeep$`Mammals - Acute oral LD50, mg/kg BW/day`)] = 0
tokeep$`Birds - Acute LD50, mg/kg`[is.na(tokeep$`Birds - Acute LD50, mg/kg`)] = 0
tokeep = apply(tokeep, 1, max)
tokeep[tokeep == 0] = NA
toxicite$LD.oral.max = tokeep/1000 #attention unite ; on divise par 1000 car initialement mg/kg bw et on veut kg/kg bw
toxicite = toxicite[,c('CAS RN', 'Active', 'LD.oral.max')]
colnames(toxicite)[colnames(toxicite) == 'CAS RN'] = 'cas'
toxicite = toxicite[!is.na(toxicite$LD.oral.max),]
toxicite = toxicite[, c('cas', 'LD.oral.max')]
toxicite = distinct(toxicite)

years = c(2015:2020)

for (y in years) {
  print(y)
  final = read.csv(paste0('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/BNVD_ACHAT_DOM/BNVD_TRACABILITE_20230112_170329_ACHAT_CP_SUBSTANCE_REUNION/BNVD_TRACABILITE_20230112_170329_ACHAT_CP_SUBSTANCE_LA REUNION_',
                          y, '.csv'),header=T,sep=';')  
  colnames(final)[colnames(final) == 'quantite_substance'] = "VALEUR"
  final$VALEUR = as.numeric(final$VALEUR)
  
  
  subdata = final[!is.na(final$VALEUR),]
  subdata = subdata[subdata$cas != "", ]
  subdata.i = group_by(subdata, code_postal_acheteur) %>% do(sum.fun(.)) %>% data.frame() #somme par commune et par substance
  subdata.i = left_join(subdata.i, toxicite, by = 'cas') # ajout de la toxicite des substance, LD50 orale 
  # length(unique(subdata.i$cas)) #verif donnee manquantes
  # length(unique(subdata.i$cas[is.na(subdata.i$LD.oral.max)]))
  subdata.i$val.toxic = subdata.i$val/subdata.i$LD.oral.max # calcul de l'indicateur par substance 
  # sum(subdata.i$val[is.na(subdata.i$LD.oral.max)])/1000
  # sum(subdata.i$val)/1000
  check = subdata.i[is.na(subdata.i$LD.oral.max),]
  tobind = final[, c('cas', 'classification')]
  tobind = distinct(tobind)
  tobind = tobind[tobind$cas %in% check$cas,]
  # table(tobind$classification)
  
  subdata.i = subdata.i[!is.na(subdata.i$val.toxic),] #retrait des valeurs sans toxicite 
  subdata.i = group_by(subdata.i, code_postal_acheteur) %>% do(sum.fun2(.)) %>% data.frame() #somme par commune de toutes les toxicites 
  colnames(subdata.i)[colnames(subdata.i) == 'code_postal_acheteur'] = 'Code.Postal'
  subdata.i$Code.Postal = as.character(subdata.i$Code.Postal)
  #ajout des communes pour lesquelles on a pas la toxicite 
  if (sum(!(subdata$code_postal_acheteur %in% subdata.i$Code.Postal)) != 0) {
    toadd = data.frame(Code.Postal = unique(subdata$code_postal_acheteur[!(subdata$code_postal_acheteur %in% subdata.i$Code.Postal)]), val = NA)
    subdata.i = rbind(subdata.i, toadd)
  }
  
  if (length(unique(communes@data$Code.Postal[!(communes@data$Code.Postal %in% subdata.i$Code.Postal)])) != 0) {
  toadd = data.frame(Code.Postal = unique(communes@data$Code.Postal[!(communes@data$Code.Postal %in% subdata.i$Code.Postal)]), val = 0) #ajout des communes pour lesquelles on a pas d'achat
  subdata.i = rbind(subdata.i, toadd)
  }
  
  subcom = left_join(communes@data, subdata.i, by = 'Code.Postal')
  subcom = group_by(subcom, CD_SIG) %>% do(moy.pond(., field = 'val')) %>% data.frame() 
  subfrance = france
  subfrance@data = left_join(subfrance@data, subcom, by = 'CD_SIG')
  rr <- rasterize(subfrance, rr, field='quantite', na.rm = T)
  assign(paste0('rr.', y), rr)
  
}

rr = stack(rr.2015, rr.2016, rr.2017, rr.2018, rr.2019, rr.2020)
rr = mean(rr, na.rm = T)

writeRaster(rr, file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Achat-Pesticides_Toxicite-Substance_Mean2015-2020', format = 'GTiff', overwrite = T)

##############################################################
############## ARTIFICIALISATION  DES SOLS ###################
##############################################################
rm(list=ls())
moy.pond = function(x, communes, field) {
  id.maille = x$CD_SIG
  commune.i = communes@data[communes@data$CD_SIG %in% id.maille, ]
  quantite = sum(na.omit(commune.i[,paste(field)]*commune.i$prop.commune.dans.maille))/100
  return(data.frame(CD_SIG = id.maille, field = field, quantite = quantite))
}

poids = read.xlsx('./BasedeDonnees/SIG/OM/Proportion-chevauchement-des-communes-sur-maille-1X1_REU.xlsx')

communes = readOGR('./BasedeDonnees/SIG/OM/communes-REU-20200101.shp','communes-REU-20200101')
communes = spTransform(communes, CRS('+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'))
rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')

myData = readOGR("./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/artificialisation_dom/artificialisation_dom_974_2009_2021_shp/obs_artif_conso_com_2009_2021_974.shp", "obs_artif_conso_com_2009_2021_974")
myData = myData@data
colnames(myData)[colnames(myData) == 'idcom'] = 'insee'
idx = grep('naf',colnames(myData))
lb = colnames(myData)[idx]
lb 
lb = 'naf09art21'
chp = 'insee'

communes@data = data.frame(insee = unique(communes@data[,chp]))
communes@data = left_join(communes@data, myData, by = 'insee')
communes@data = left_join(communes@data, poids, by = 'insee')

for (l in lb) {
  
  france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
  val = group_by(france@data, CD_SIG) %>% do(moy.pond(., communes = communes, field = l)) %>% data.frame() 
  france@data = left_join(france@data, val, by = 'CD_SIG')
  
  rr <- rasterize(france, rr, field='quantite', na.rm = T)
  writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Flux-d-artificialisation_ha_',l,'_2009-2021'),format = 'GTiff', overwrite=T)
}

###############################################################
############## CLC : CONVERSION COUVERTURE SPECIFIQUE #########
###############################################################
rm(list=ls())

rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
france@data$prop = 0

typo = read_excel('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_SHAPEFILE/Nomenclature_CorineLandCover.xls', sheet = 3)
todo = c(121, 123, 124, 132, 131, 141, 142)  
todo = 131

CLC = readOGR('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/CLCXX_DOM/CLC18_SHP__FRA_2019-08-21/1_DONNEES_LIVRAISON_2019-08-21/CLC2018_FR_REU/CLC18_FR_REU.shp','CLC18_FR_REU')

remove.accent = function(x) {
  x = gsub('é','e', x)
  return(x)
}

for (t in todo) {
  
  CLC.i = CLC[CLC@data$CODE_18 %in% t,] 
  
  if (length(CLC.i) > 0) {
    
  CLC.i = spTransform(CLC.i, france@proj4string)
    
  inter = gIntersection(CLC.i, france, byid = T, checkValidity = 2L)
  
  ids = names(inter)
  ids = colsplit(ids,' ',c('CLC','maille'))
  
  france@data$prop = 0
  
  for (i in sort(unique(ids$maille))) {
    ids.i = ids[ids$maille %in% i,]
    ids.i = paste(ids.i$CLC, ids.i$maille)
    poly = inter[names(inter) %in% ids.i,]
    prop = gArea(poly)/(1000*1000)*100
    france@data$prop[rownames(france@data) == i] = prop
  }
  
  lb = typo$libelle_fr[typo$code_clc_niveau_3 == t]
  lb = remove.accent(lb)
  lb = gsub(' ','-', lb)
  
  rr <- rasterize(france, rr, field='prop')
  writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Proportion-de-la-maille-couverte-par-',lb,'_CLC_2018'), format = 'GTiff', overwrite=T)
  }
}

# # Somme des couches 
# rr1 = raster('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Proportion-de-la-maille-couverte-par-Aeroports_CLC_2018.tif')
# rr2 = raster('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Proportion-de-la-maille-couverte-par-Zones-portuaires_CLC_2018.tif')
# rr3 = raster('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Proportion-de-la-maille-couverte-par-Zones-industrielles-ou-commerciales-et-installations-publiques_CLC_2018.tif')
# rr4 = raster('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Proportion-de-la-maille-couverte-par-Decharges_CLC_2018.tif')
# 
# rr = rr1+rr2+rr3+rr4
# writeRaster(rr, './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1x1_Proportion-de-la-maille-couverte-par-Aeroports-ZP-ZIC-Decharges_CLC_2018', format = 'GTiff', overwrite = T)
# 
# rr1 = raster('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Proportion-de-la-maille-couverte-par-Equipements-sportifs-et-de-loisirs_CLC_2018.tif')

#########################################################
# Evolution des territoires agricoles entre 2006 et 2018
#########################################################
rm(list=ls())

# Territoires agricoles 2018
rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
france@data$prop = 0
CLC = readOGR('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/CLCXX_DOM/CLC18_SHP__FRA_2019-08-21/1_DONNEES_LIVRAISON_2019-08-21/CLC2018_FR_REU/CLC18_FR_REU.shp','CLC18_FR_REU')
CLC.i = CLC[CLC@data$CODE_18 %in% c(211:213, 221:223, 241),] 
CLC.i = spTransform(CLC.i, france@proj4string)
inter = gIntersection(CLC.i, france, byid = T, checkValidity = 2L)

ids = names(inter)
ids = colsplit(ids,' ',c('CLC','maille'))

for (i in sort(unique(ids$maille))) {
  ids.i = ids[ids$maille %in% i,]
  ids.i = paste(ids.i$CLC, ids.i$maille)
  poly = inter[names(inter) %in% ids.i,]
  prop = gArea(poly)/(1000*1000)*100
  france@data$prop[rownames(france@data) == i] = prop
}

rr2018 <- rasterize(france, rr, field='prop')

# Territoires agricoles 2006
CLC = readOGR('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/CLCXX_DOM/CLC06_DOM_UTM_SHP/CLC06_D974_UTM/CLC06_D974_UTM.shp', 'CLC06_D974_UTM')
CLC.i = CLC[CLC@data$CODE_06 %in% as.character(c(2111, 2112, 2120, 2130, 2210, 2221, 2222:2224, 2230, 2410)),] 
CLC.i = spTransform(CLC.i, france@proj4string)
inter = gIntersection(CLC.i, france, byid = T, checkValidity = 2L)

ids = names(inter)
ids = colsplit(ids,' ',c('CLC','maille'))

for (i in sort(unique(ids$maille))) {
  ids.i = ids[ids$maille %in% i,]
  ids.i = paste(ids.i$CLC, ids.i$maille)
  poly = inter[names(inter) %in% ids.i,]
  prop = gArea(poly)/(1000*1000)*100
  france@data$prop[rownames(france@data) == i] = prop
}

rr2006 <- rasterize(france, rr, field='prop')
rr = rr2018-rr2006

writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Evolution-couverture-Terres-arables-et-Cultures-permanentes_CLC_2006-2018', format = 'GTiff', overwrite=T)

###############################################################
################# DEPRISE AGRICOLE ########################### 
###############################################################
rm(list=ls())

##### DIFFERENTIEL DES POLYGONES DE PRAIRIES/PELOUSES ET FORETS ####
CLC_actuel = readOGR('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/CLCXX_DOM/CLC18_SHP__FRA_2019-08-21/1_DONNEES_LIVRAISON_2019-08-21/CLC2018_FR_REU/CLC18_FR_REU.shp','CLC18_FR_REU')
CLC_actuel = CLC_actuel[CLC_actuel@data$CODE_18 %in% c(311:313,322:324),]
CLC_ancien = readOGR('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/CLCXX_DOM/CLC00_DOM_UTM_SHP/CLC00_D974/CLC00_D974_UTM.shp','CLC00_D974_UTM')
CLC_ancien = CLC_ancien[CLC_ancien@data$CODE_00 %in% c(2310, 3210, 3330),] 

inter = gIntersection(CLC_ancien, CLC_actuel, byid = T, checkValidity = 2L, drop_lower_td = T)
A = gArea(inter, byid = T)
inter = inter[A > 10000] #elimine les bordures

rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
france@data$prop = 0

deprise = inter
deprise = spTransform(deprise, france@proj4string)

inter = gIntersection(deprise, france, byid = T, checkValidity = 2L)

ids = names(inter)
ids = colsplit(ids,' ',c('deprise1','deprise2','maille'))

for (i in sort(unique(ids$maille))) {
  ids.i = ids[ids$maille %in% i,]
  ids.i = paste(ids.i$deprise1, ids.i$deprise2, ids.i$maille)
  poly = inter[names(inter) %in% ids.i,]
  prop = gArea(poly)/(1000*1000)*100
  france@data$prop[rownames(france@data) == i] = prop
}

rr <- rasterize(france, rr, field='prop')
writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Proportion_DepriseAgricole_2000-2018-Prairies-vers-forets', format = 'GTiff', overwrite=T)

##########################################################
#### THEIA - OCCUPATION SOL  (PLANTATION) ################
##########################################################
rm(list=ls())

rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
france = st_read('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
france$prop = 0

# shape = readOGR('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/RE_LCM/RE_LCM_2019_level1.shp','RE_LCM_2019_level1')
# todo = c("Espace artificialise", "Espace agricole")  #niveau 1
# 
# for (t in todo) {
#   
#   print(t)
#   shape.i = shape[shape@data$Niveau1 %in% t,] 
#   shape.i = spTransform(shape.i, france@proj4string)
#   inter = gIntersection(shape.i, france, byid = T, checkValidity = 2L)
#   
#   ids = names(inter)
#   ids = colsplit(ids,' ',c('shape','maille'))
#   
#   for (i in sort(unique(ids$maille))) {
#     ids.i = ids[ids$maille %in% i,]
#     ids.i = paste(ids.i$shape, ids.i$maille)
#     poly = inter[names(inter) %in% ids.i,]
#     prop = gArea(poly)/(1000*1000)*100
#     france@data$prop[rownames(france@data) == i] = prop
#   }
#   
#   lb = gsub(' ','-', t)
#   
#   rr <- rasterize(france, rr, field='prop')
#   writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Proportion-de-la-maille-couverte-par-',lb,'_Theia_2019'), format = 'GTiff', overwrite=T)
# }

# Plantation 
shape = st_read('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/RE_LCM/OS_SPOT_2020_32740.shp','OS_SPOT_2020_32740')

unique(shape$libelle3)[grep('Plantation',unique(shape$libelle3))]

shape.i = shape[shape$libelle3 %in% "Plantation forestiere",] 
shape.i = st_transform(shape.i, st_crs(france))

inter = gIntersection(as_Spatial(shape.i), as_Spatial(france), byid = T, checkValidity = 2L)

ids = names(inter)
ids = colsplit(ids,' ',c('shape','maille'))

for (i in sort(unique(ids$maille))) {
  ids.i = ids[ids$maille %in% i,]
  ids.i = paste(ids.i$shape, ids.i$maille)
  poly = inter[names(inter) %in% ids.i,]
  prop = gArea(poly)/(1000*1000)*100
  france$prop[rownames(france) == i] = prop
}

rr <- rasterize(france, rr, field='prop')
writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Proportion-de-la-maille-couverte-par-Plantation-forestiere_Theia_2020', format = 'GTiff', overwrite=T)

##############################################################
############### INSTALLATIONS SPORTIVES ###################### 
##############################################################
rm(list=ls())
moy.pond = function(x, communes, field) {
  id.maille = x$CD_SIG
  commune.i = communes@data[communes@data$CD_SIG %in% id.maille, ]
  quantite = sum(na.omit(commune.i[,paste(field)]*commune.i$prop.commune.dans.maille))/100
  return(data.frame(CD_SIG = id.maille, field = field, quantite = quantite))
}
codes <- read_excel("./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/2020-res-communes/2020_Communes_CorrespFamTypEq.xlsx")

# Categorie generale des installations sportives
communes = readOGR('./BasedeDonnees/SIG/OM/communes-REU-20200101.shp','communes-REU-20200101')
communes = spTransform(communes, CRS('+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'))

myData <- read_excel("./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/2020-res-communes/2020_Communes_FamEq.xlsx")
myData = as.data.frame(myData)
colnames(myData)[colnames(myData) == 'ComInsee'] = 'insee'
myData = myData[,colnames(myData)!='ComLib']

communes@data = left_join(communes@data, myData, by = 'insee')

# Categorie detaillee des installations sportives
myData <- read_excel("./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/2020-res-communes/2020_Communes_TypEq.xlsx")
myData = as.data.frame(myData)
colnames(myData)[colnames(myData) == 'ComInsee'] = 'insee'
myData = myData[,colnames(myData)!='ComLib']
myData = myData[,colnames(myData)!= 'Nombre d\'équipements sportifs']
communes@data = left_join(communes@data, myData, by = 'insee')

## Creation du raster du nombre d'installations sportives 
poids = read.xlsx('./BasedeDonnees/SIG/OM/Proportion-chevauchement-des-communes-sur-maille-1X1_REU.xlsx')
communes@data = left_join(communes@data, poids, by = 'insee')
france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')

# Creation pour chaque type d'installation 
todo = colnames(communes@data)[6:35]
todo = todo[c(4, 22, 23, 29)]

remove(rr.full)

for (t in todo) {
  
  val = group_by(france@data, CD_SIG) %>% do(moy.pond(., communes = communes, field = paste(t))) %>% data.frame() 
  france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
  france@data = left_join(france@data, val, by = 'CD_SIG')
  
  rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
  rr <- rasterize(france, rr, field='quantite', na.rm = T)
  t = gsub('/','-',t)
  t = gsub('é','e',t)
  if (class(try(rr.full)) == 'try-error') {
    rr.full = rr 
  } else {
    rr.full = stack(rr.full, rr)
  }
  
  # writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_GLP/GLP_1X1_Nombre-Installations-',paste0(unlist(strsplit(t,' ')),collapse ='-'),'_2018'),format = 'GTiff', overwrite=T)
  print(t)
}

rr = sum(rr.full, na.rm = T)
writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Nombre-Installations_Activites-Aeriennes_Activites-Nautiques_Sport-nature_Piste-sports-mecaniques_2020',format = 'GTiff', overwrite=T)

##############################################################
#### NAIADES PHYSICOCHIMIE DES COURS D'EAU ###################
##############################################################
rm(list=ls())

stations = read.csv('./Pression&MenaceBiodiv/SIG/DATA_BRUTE/Naiades_Export_France_Entiere_PC/stations.csv', sep = ';')

rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')

myData = read.xlsx('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/Naiades_DOM_2005_2020.xlsx')
myData = myData[myData$LbDepartement == 'LA REUNION',]

# Nitrates
nitrates = myData[myData$CdParametre == 1340,]
val = by(nitrates$RsAna, nitrates$CdStationMesureEauxSurface, as.numeric)
val = lapply(val, mean)
df = data.frame(CdStationMesureEauxSurface = names(val), RsAna = unlist(val))
df = left_join(df,stations, by = 'CdStationMesureEauxSurface')

# Creation des points spatiaux 
xy = data.frame(x = df$CoordXStationMesureEauxSurface, y = df$CoordYStationMesureEauxSurface) 
idx = is.na(xy$x)
xy = xy[!idx,]
df = df[!idx,]
xy = SpatialPointsDataFrame(xy, data = df, proj4string = france@proj4string)

# # kriegeage
# vgmEmpirique <- gstat::variogram(RsAna ~ 1, data = xy)
# # Ajustement d'un modele expo
# vgmX <- fit.variogram(vgmEmpirique, vgm("Exp"))
# geoX <- gstat(formula = RsAna ~ 1, locations = xy,
#               model = vgmX)
# 
# # projection sur le raster
# geoX$data$var1$data@proj4string = france@proj4string
# maille.c = gCentroid(france, byid = T)
# rr.c = SpatialPixels(maille.c) #grid pour la construction du kernel
# geoXprd <- predict(geoX, newdata = rr.c)
# rr = raster(geoXprd)

inter = gIntersects(xy, france,byid = T)
france@data$quantite = 0

for (i in 1:nrow(inter)) {
  idx = which(inter[i,]==TRUE)
  if(length(idx)>0) {
    quantite = mean(na.omit(as.numeric(xy@data$RsAna[idx])))
    france@data$quantite[i] = quantite
  }
}

# Creation du raster
rr <- rasterize(france, rr, field='quantite')
writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Naiades_Concentration-moyenne-en-Nitrates-dans-eau_milligrammes-par-litre_2005-2020', format = 'GTiff', overwrite=T)

#Phosphates
phosphates = myData[myData$CdParametre == 1350,]
val = by(phosphates$RsAna, phosphates$CdStationMesureEauxSurface, as.numeric)
val = lapply(val, mean)
df = data.frame(CdStationMesureEauxSurface = names(val), RsAna = unlist(val))
df = left_join(df,stations, by = 'CdStationMesureEauxSurface')

# Creation des points spatiaux 
xy = data.frame(x = df$CoordXStationMesureEauxSurface, y = df$CoordYStationMesureEauxSurface) 
idx = is.na(xy$x)
xy = xy[!idx,]
df = df[!idx,]
xy = SpatialPointsDataFrame(xy, data = df, proj4string = france@proj4string)

# # kriegeage
# vgmEmpirique <- gstat::variogram(RsAna ~ 1, data = xy)
# # Ajustement d'un modele expo
# vgmX <- fit.variogram(vgmEmpirique, vgm("Exp"))
# geoX <- gstat(formula = RsAna ~ 1, locations = xy,
#               model = vgmX)
# 
# # projection sur le raster
# geoX$data$var1$data@proj4string = france@proj4string
# maille.c = gCentroid(france, byid = T)
# rr.c = SpatialPixels(maille.c) #grid pour la construction du kernel
# geoXprd <- predict(geoX, newdata = rr.c)
# rr = raster(geoXprd)

inter = gIntersects(xy, france,byid = T)
france@data$quantite = 0

for (i in 1:nrow(inter)) {
  idx = which(inter[i,]==TRUE)
  if(length(idx)>0) {
    quantite = mean(na.omit(as.numeric(xy@data$RsAna[idx])))
    france@data$quantite[i] = quantite
  }
}

# Creation du raster
rr <- rasterize(france, rr, field='quantite')
writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Naiades_Concentration-moyenne-en-Phosphore-dans-eau_milligrammes-par-litre_2005-2020', format = 'GTiff', overwrite=T)

##############################################################
########## LOGEMENTS TOURISTIQUES ############################
##############################################################
rm(list=ls())
moy.pond = function(x, communes, field) {
  id.maille = x$CD_SIG
  commune.i = communes@data[communes@data$CD_SIG %in% id.maille, ]
  quantite = sum(na.omit(commune.i[,paste(field)]*commune.i$prop.commune.dans.maille))/100
  return(data.frame(CD_SIG = id.maille, field = field, quantite = quantite))
}

myData <- read_excel("./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/Logements_touristiques2022.xlsx", skip = 3)
colnames(myData)[colnames(myData) == 'Code'] = 'insee'

communes = readOGR('./BasedeDonnees/SIG/OM/communes-REU-20200101.shp','communes-REU-20200101')
communes = spTransform(communes, CRS('+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'))
poids = read.xlsx('./BasedeDonnees/SIG/OM/Proportion-chevauchement-des-communes-sur-maille-1X1_REU.xlsx')
communes@data = left_join(communes@data,myData,by='insee')
communes@data = left_join(communes@data, poids, by = 'insee')

# todo = colnames(communes@data)[grep('Nb',colnames(communes@data))]
# france = readOGR('./BasedeDonnees/SIG/OM/1X1/GLP_UTM20N1X1/GLP_UTM20N1X1.shp','GLP_UTM20N1X1')
# for (t in todo) {
#   
#   val = group_by(france@data, CD_SIG) %>% do(moy.pond(., communes = communes, field = paste(t))) %>% data.frame() 
#   france = readOGR('./BasedeDonnees/SIG/OM/1X1/GLP_UTM20N1X1/GLP_UTM20N1X1.shp','GLP_UTM20N1X1')
#   france@data = left_join(france@data, val, by = 'CD_SIG')
#   
#   rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_GLP_1X1.tif')
#   rr <- rasterize(france, rr, field='quantite', na.rm = T)
#   
#   writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/Logements-Touristiques_',paste0(unlist(strsplit(t,' ')),collapse = '-'),''),format = 'GTiff', overwrite=T)
#   print(t)
# }

# # Somme des deux 
# rr1 = raster('./Pression&MenaceBiodiv/SIG/Logements-Touristiques_Nb-d\'emplacements-de-camping-2022.tif')
# rr2 = raster('./Pression&MenaceBiodiv/SIG/Logements-Touristiques_Nb-de-chambres-dans-les-hôtels-2022.tif')
# rr = rr1+rr2
# # writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_GLP/GLP_1X1_Logements-Touristiques_Nb-d-emplacements-camping-et-chambre-d-hotels_2022',format = 'GTiff', overwrite=T)
# writeRaster(rr2,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_GLP/GLP_1X1_Logements-Touristiques_Nb-de-chambre-d-hotels_2022',format = 'GTiff', overwrite=T)

# Calcul uniquement pour les communes rurales 
rurale = read_excel('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/grille_densite_7_niveaux_detaille_2022.xlsx')
colnames(rurale)[1] = 'insee'
colnames(rurale)[3] = 'cat'
rurale$statut = ifelse(rurale$cat %in% c(1:4), 'Urbaine','Rurale')
rurale = rurale[,c('insee','statut')]

communes@data = left_join(communes@data, rurale, by = 'insee')
communes@data$Nb_lit = communes@data$`Nb d'emplacements de camping 2022` + communes@data$`Nb de chambres dans les hôtels 2022`
communes@data$Nb_lit[communes@data$statut == 'Urbaine'] = 0

france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
val = group_by(france@data, CD_SIG) %>% do(moy.pond(., communes = communes, field = 'Nb_lit')) %>% data.frame() 
france@data = left_join(france@data, val, by = 'CD_SIG')

rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
rr <- rasterize(france, rr, field='quantite')
writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Logements-Touristiques_Nb-de-chambre-d-hotels_Zone-rurale-uniquement_2022',format = 'GTiff', overwrite=T)

#############################################
########## DRIAS ############################
#############################################
rm(list=ls())

france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
maille.c = gCentroid(france, byid = T)
rr.c = SpatialPixels(maille.c) #grid pour la construction du kernel
# rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_GLP_1X1.tif')

myData = read.table('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/DRIAS/Data_Reunion.txt', header = T, sep = ';')
myData = myData[myData$Période == 'H1',]
xy = SpatialPointsDataFrame(data.frame(x = myData$Longitude, y = myData$Latitude), data = myData, proj4string = CRS('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'))
xy = spTransform(xy, france@proj4string)

## ECART TEMPERATURE MOYENNE ##
# kriegeage
vgmEmpirique <- gstat::variogram(ATAV ~ 1, data = xy)
# Ajustement d'un modele expo
vgmX <- fit.variogram(vgmEmpirique, vgm("Exp"))
geoX <- gstat(formula = ATAV ~ 1, locations = xy,
              model = vgmX)

# projection sur le raster
geoX$data$var1$data@proj4string = france@proj4string
geoXprd <- predict(geoX, newdata = rr.c)
rr = raster(geoXprd)
writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_DRIAS_Prevision-ecart-temperature-moyenne-journaliere_RCP4.5_2021-2050.tif', format = 'GTiff', overwrite=T)

## ECART CUMUL PRECIPITATIONS ##
# Pas de données pour la Réunion 

###############################################################
################### OBSTACLE A L'ECOULEMENT  ##################
###############################################################
rm(list=ls())

shape = readOGR('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/ObstEcoul/ObstEcoul_REU.shp','ObstEcoul_REU')
rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
shape = spTransform(shape, france@proj4string)
shape = shape[shape@data$LbEtOuvrag %in% 'Existant',]

inter = gIntersects(shape, france,byid = T)
france@data$quantite = apply(inter,1,sum)

# Creation du raster
rr <- rasterize(france, rr, field='quantite')
writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Nombre-d-obstacles-a-l-ecoulement_2022', format = 'GTiff', overwrite=T)

##############################################################
################## IMPERVIOUSNESS ISA ########################
##############################################################
rm(list=ls())
rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')

rast = raster('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/EstISA_final_REU.tif')
rast = projectRaster(rast, crs = france@proj4string)

inter = extract(rast, france, fun = mean, na.rm = T)
france@data$quantite = inter 
rr = rasterize(france, rr, field = 'quantite')

writeRaster(rr, file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_NOAA_Taux-Impermeabilisation-du-sol_2010', format = 'GTiff', overwrite = T )

# ##############################################################
# ################## PANNEAUX PHOTOVOLTAIQUES ##################
# ##############################################################
# rm(list=ls())
# rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
# france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
# 
# myData = read.csv("./Pression&MenaceBiodiv/SIG/DATA_BRUTE/BDPV-opendata-installations.csv", header=T, sep = ';')
# xy = data.frame(x = myData$lon, myData$lat)
# xy = SpatialPointsDataFrame(xy, data = myData, proj4string = CRS('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'))
# xy = spTransform(xy, france@proj4string)
# 
# inter = gIntersects(xy, france,byid = T)
# france@data$quantite = 0
# 
# for (i in 1:nrow(inter)) {
#   idx = which(inter[i,]==TRUE)
#   if(length(idx)>0) {
#     quantite = sum(xy@data$nb_panneaux[idx])
#     france@data$quantite[i] = quantite
#   }
# }
# 
# rr <- rasterize(france, rr, field='quantite', na.rm = T)
# writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Nombre-panneaux-photovoltaiques-depuis-1993-jusqu-a-2019.tif ',format = 'GTiff', overwrite=T)
# 
# ###############################################################
# ################# INSTALLATIONS CLASSEES ######################
# ###############################################################
# rm(list=ls())
# france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
# rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
# 
# shape = readOGR('./Pression&MenaceBiodiv/SIG/DATA_BRUTE/InstallationsClassees_2020-06-29/InstallationsClassees.shp','InstallationsClassees')
# tokeep = shape@data
# tokeep = tokeep[tokeep$epsg == 2975,] #epsg pour la reunion 
# shape = SpatialPointsDataFrame(coords = data.frame(x = as.numeric(tokeep$x), y = as.numeric(tokeep$y)), data = tokeep)
# shape@proj4string = CRS("+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs")
# 
# shape = spTransform(shape, france@proj4string)
# 
# shape@data$famille = ifelse(shape@data$famille_ic %in% c("Bovins", "Porcs", "Volailles"), 'Elevage', shape@data$famille_ic)
# 
# for (f in unique(shape@data$famille)) {
#   subdata = shape[shape@data$famille == f, ]
#   inter = gIntersects(subdata, france,byid = T)
#   france@data$quantite = apply(inter,1,sum)
#   
#   rr <- rasterize(france, rr, field = 'quantite')
#   
#   if (f == "Elevage") {f = 'Bovins-Porcs-Volailles'}
#   writeRaster(rr, file = paste0('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Nombre-d-installation-classees_',f,'_2020'), format = 'GTiff', overwrite=T)
#   print(f)
# }
# 
# ##############################################################
# ### QUANTITES D'EMISSIONS PAR LES INSTALLATIONS POLLUANTES ###
# ##############################################################
# rm(list=ls())
# tokeep = readOGR('./Pression&MenaceBiodiv/SIG/DATA_BRUTE/InstallationsClassees_2020-06-29/','InstallationsClassees')
# tokeep = tokeep@data
# tokeep = tokeep[tokeep$epsg == 2975,] #epsg pour la reunion 
# tokeep$code_s3ic = as.numeric(tokeep$code_s3ic)
# colnames(tokeep)[colnames(tokeep) == 'code_s3ic'] = 'Identifiant'
# france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
# rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
# 
# years = c(2014,2015,2016,2017,2018)
# 
# for (y in years) {
#   print(y)
#   # Jointure des installations aux emissions
#   emissions = read.csv(paste0('./Pression&MenaceBiodiv/SIG/DATA_BRUTE/Données sur les émissions polluantes_IREP/',y,'/emissions.csv'), header = T)
#   emissions = emissions[emissions$Polluant != 'Dioxyde de carbone (CO2) d\'origine biomasse',] #doublon avec le total
#   emissions = emissions[emissions$Polluant != 'Dioxyde de carbone (CO2) d\'origine non biomasse',] #doublon avec le total
#   
#   myData = tokeep[,c('Identifiant','x','y')]
#   myData = left_join(myData,emissions,by='Identifiant')
#   myData = myData[!is.na(myData$Milieu),]
#   myData$Milieu = ifelse(myData$Milieu %in% c("Eau (direct)" ,  "Eau (indirect)"), 'Eau', myData$Milieu)
#   
#   # Somme des polluants par installation et milieu de pollution 
#   final = data.frame()
#   for (m in unique(myData$Milieu)) {
#     subdata = myData[myData$Milieu == m, ]
#     
#     for (i in unique(subdata$Identifiant)) {
#       subdata.i = subdata[subdata$Identifiant == i,]
#       quantite = sum(subdata.i$quantite)
#       final = rbind(final, data.frame(Annee = y, Milieu = m, Identifiant = i, x = unique(subdata.i$x), y = unique(subdata.i$y),
#                                       quantite = quantite, unite = 'kg/an'))
#     }
#   }
#   
#   final$quantite = final$quantite/1000
#   final$unite = 't/an'
#   
#   # Creation des SpatialPoints
#   xy = data.frame(x = as.numeric(final$x), y = as.numeric(final$y))
#   xy = SpatialPoints(xy, CRS("+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"))
#   xy = SpatialPointsDataFrame(xy, data = final)
#   xy = spTransform(xy,france@proj4string)
#   xy = crop(xy,france)
#   
#   # Creation du raster par milieu 
#   for (m in unique(xy@data$Milieu)) {
#     xy.m = xy[xy@data$Milieu == m,]
#     
#     inter = gIntersects(xy.m, france,byid = T)
#     france@data$quantite = NA
#     
#     for (i in 1:nrow(inter)) {
#       idx = which(inter[i,]==TRUE)
#       if(length(idx)>0) {
#         quantite = sum(xy.m@data$quantite[idx])
#         france@data$quantite[i] = quantite
#       }
#     }
#     
#     rr <- rasterize(france, rr, field='quantite')
#     
#     writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/Pollution_tonneParAn_',m,'_',y),format = 'GTiff', overwrite=T)
#     print(m)
#   }
#   remove(xy)
#   remove(final)
#   remove(myData)
#   remove(subdata)
#   remove(subdata.i)
# }
# 
# # Moyenne sur les cinq dernieres annees 
# for (m in c('Air','Eau')) {
#   files = paste0('./Pression&MenaceBiodiv/SIG/Pollution_tonneParAn_',m,'_',years,'.tif')
#   rr = stack(files)
#   rr.mean = mean(rr, na.rm = T)
#   writeRaster(rr.mean,file = paste0('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Pollution-Installations-Classees_tonneParAn_',m,'_Mean2014-2018'),format = 'GTiff', overwrite=T)
#   unlink(files)
# }
# 
# ##############################################################
# ########## PRELEVEMENTS EAUX SURFACE ET SOUTERRAINE ##########
# ##############################################################
# rm(list=ls())
# tokeep = readOGR('./Pression&MenaceBiodiv/SIG/DATA_BRUTE/InstallationsClassees_2020-06-29/','InstallationsClassees')
# tokeep = tokeep@data
# tokeep = tokeep[tokeep$epsg == 2975,] #epsg pour la reunion 
# tokeep$code_s3ic = as.numeric(tokeep$code_s3ic)
# colnames(tokeep)[colnames(tokeep) == 'code_s3ic'] = 'Identifiant'
# 
# france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
# rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
# 
# years = c(2014,2015,2016,2017,2018)
# 
# for (y in years) {
#   
#   prelev = read.csv(paste0('./Pression&MenaceBiodiv/SIG/DATA_BRUTE/Données sur les émissions polluantes_IREP/',y,'/Prelevements.csv'), header = T)
#   myData = tokeep[,c('Identifiant','x','y')]
#   prelev = left_join(prelev,myData,by='Identifiant')
#   prelev = prelev[!is.na(prelev$x),]
#   
#   ### EAU DE SURFACE
#   sample = prelev[!(is.na(prelev$Prelevements_eaux_surface)),]
#   
#   # Creation des SpatialPoints
#   xy = data.frame(x = as.numeric(sample$x), y = as.numeric(sample$y))
#   xy = SpatialPoints(xy, CRS("+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"))
#   xy = SpatialPointsDataFrame(xy, data = sample)
#   xy = spTransform(xy,france@proj4string)
#   xy = crop(xy,france)
#   
#   inter = gIntersects(xy, france,byid = T)
#   france@data$quantite = NA 
#   
#   for (i in 1:nrow(inter)) {
#     idx = which(inter[i,]==TRUE)
#     if(length(idx)>0) {
#       quantite = sum(xy@data$Prelevements_eaux_surface[idx])
#       france@data$quantite[i] = quantite
#     }
#   }
#   
#   # Creation du raster
#   rr <- rasterize(france, rr, field='quantite')
#   writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/Prelevement_EauSurface_m3ParAn_',y),format = 'GTiff', overwrite=T)
#   
#   remove(xy)
#   remove(sample)
#   
#   ### EAU SOUTERRAINE
#   sample = prelev[!(is.na(prelev$Prelevements_eaux_souterraines)),]
#   
#   # Creation des SpatialPoints
#   xy = data.frame(x = as.numeric(sample$x), y = as.numeric(sample$y))
#   xy = SpatialPoints(xy, CRS("+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"))
#   xy = SpatialPointsDataFrame(xy, data = sample)
#   xy = spTransform(xy,france@proj4string)
#   xy = crop(xy,france)
#   
#   inter = gIntersects(xy, france,byid = T)
#   france@data$quantite = NA
#   
#   for (i in 1:nrow(inter)) {
#     idx = which(inter[i,]==TRUE)
#     if(length(idx)>0) {
#       quantite = sum(xy@data$Prelevements_eaux_souterraines[idx])
#       france@data$quantite[i] = quantite
#     }
#   }
#   
#   # Creation du raster
#   rr <- rasterize(france, rr, field='quantite')
#   writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/Prelevement_EauSouterraine_m3ParAn_',y),format = 'GTiff', overwrite=T)
#   print(y)
# }
# 
# # Moyenne sur les cinq dernieres annees 
# files = paste0('./Pression&MenaceBiodiv/SIG/Prelevement_EauSouterraine_m3ParAn_',years,'.tif')
# rr = stack(files)
# rr.mean = mean(rr, na.rm = T)
# writeRaster(rr.mean,file = './Pression&MenaceBiodiv/SIG/Prelevement-Installations-Classees_EauSouterraine_m3ParAn_Mean2014-2018',format = 'GTiff', overwrite=T)
# unlink(files)  
# 
# files = paste0('./Pression&MenaceBiodiv/SIG/Prelevement_EauSurface_m3ParAn_',years,'.tif')
# rr = stack(files)
# rr.mean = mean(rr, na.rm = T)
# writeRaster(rr.mean,file = './Pression&MenaceBiodiv/SIG/Prelevement-Installations-Classees_EauSurface_m3ParAn_Mean2014-2018',format = 'GTiff', overwrite=T)
# unlink(files)
# 
# # Somme des deux 
# rr1 = raster('./Pression&MenaceBiodiv/SIG/Prelevement-Installations-Classees_EauSouterraine_m3ParAn_Mean2014-2018.tif')
# rr2 = raster('./Pression&MenaceBiodiv/SIG/Prelevement-Installations-Classees_EauSurface_m3ParAn_Mean2014-2018.tif')
# values(rr1)[is.na(values(rr1))] = 0
# values(rr2)[is.na(values(rr2))] = 0
# 
# rr = rr1+rr2
# writeRaster(rr, './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Prelevement-Installations-Classees_EauSurface-et-Souterraine_m3ParAn_Mean2014-2018.tif', format = 'GTiff', overwrite = T)
# 
# ##############################################################
# ############# ASSAINISSEMENT COMMUNAL ########################
# ##############################################################
# rm(list=ls())
# france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
# rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
# 
# years = c(2010:2018)
# 
# lb = c("Quantit? ?pandage agricole (tMS/an)", "Quantit? mise en d?charge (tMS/an)","Pourcentage rejet direct temps sec", "Quantit? incin?r?e (tMS/an)")
# 
# for (y in years) {
#   
#   traitement = read_excel(paste0('./Pression&MenaceBiodiv/SIG/DATA_BRUTE/AssainissementCommunal/Export_ERU_',y,'.xlsx'),sheet = 2)
#   traitement = as.data.frame(traitement)
#   traitement = traitement[traitement$`Système de projection` == "UTM Sud fuseau 40",]
#   
#   ###### PRODUCTION ET GESTION BOUE ########
#   idx1 = which(colnames(traitement) == "Coordonnée X du rejet")
#   idx2 = which(colnames(traitement) == "Coordonnée Y du rejet")
#   xy = data.frame(x = as.numeric(traitement[,idx1]), y = as.numeric(traitement[,idx2]))
#   tokeep = !is.na(xy$x)
#   xy = xy[tokeep,]
#   xy = SpatialPointsDataFrame(xy, data = traitement[tokeep,], proj4string =  CRS("+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"))
#   xy = spTransform(xy , france@proj4string)
#   
#   inter = gIntersects(xy, france,byid = T)
#   
#   for (l in lb) {
#     
#     idx.lb = which(colnames(xy@data) == l)
#     france@data$quantite = NA
#     
#     for (i in 1:nrow(inter)) {
#       
#       idx = which(inter[i,]==TRUE)
#       if(length(idx)>0) {
#         quantite = sum(as.numeric(xy@data[idx, idx.lb]))
#         france@data$quantite[i] = quantite
#       }
#       
#     }
#     
#     rr <- rasterize(france, rr, field='quantite', na.rm = T)
#     l = gsub('/','-',l)
#     writeRaster(rr,file = paste0('./Pression&MenaceBiodiv/SIG/STEU-Rejet-Boue_',paste0(unlist(strsplit(l,' ')),collapse = '-'),'_',y,''),format = 'GTiff', overwrite=T)
#   }
#   
#   print(y)
# }
# 
# # Moyenne sur toutes les annees ##
# lb = gsub('/','-',lb)
# for (l in lb) {
#   files = paste0('./Pression&MenaceBiodiv/SIG/STEU-Rejet-Boue_',paste0(unlist(strsplit(l,' ')),collapse = '-'),'_',years,'.tif')
#   rr = stack(files)
#   rr.mean = mean(rr, na.rm = T)
#   writeRaster(rr.mean,file = paste0('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_STEU-Rejet-Boue_',paste0(unlist(strsplit(l,' ')),collapse = '-'),'_Mean2010-2018'),format = 'GTiff', overwrite=T)
#   unlink(files)
# }
# 
# 
# ##############################################################
# ############ CHEPTEL ET UNITE GROS BETAIL ####################
# ##############################################################
# rm(list=ls())
# moy.pond = function(x, communes, field) {
#   id.maille = x$CD_SIG
#   commune.i = communes@data[communes@data$CD_SIG %in% id.maille, ]
#   quantite = sum(na.omit(commune.i[,paste(field)]*commune.i$prop.commune.dans.maille))/100
#   return(data.frame(CD_SIG = id.maille, field = field, quantite = quantite))
# }
# communes = readOGR('./BasedeDonnees/SIG/OM/communes-REU-20200101.shp','communes-REU-20200101')
# communes = spTransform(communes, CRS('+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'))
# poids = read.xlsx('./BasedeDonnees/SIG/OM/Proportion-chevauchement-des-communes-sur-maille-1X1_REU.xlsx')
# rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
# 
# cheptel = read.table('./Pression&MenaceBiodiv/SIG/DATA_BRUTE/FDS_G_2141_2010.txt', header=T, sep=';')
# colnames(cheptel)[colnames(cheptel) == 'COM'] = 'insee'
# cheptel = cheptel[cheptel$insee != "............", ]
# chp = 'insee'
# 
# #### Nombre de petites exploitations ####
# subdata = cheptel[cheptel$G_2141_LIB_DIM1 == "Petites exploitations",]
# subdata = subdata[subdata$G_2141_LIB_DIM2 %in% "Elevages (total hors apiculture)(1)",]
# subdata = subdata[subdata$G_2141_LIB_DIM3 == "Exploitations en ayant",]
# subdata = subdata[subdata$QUALITE == 'OUI',]
# 
# communes@data = data.frame(insee = unique(communes@data[,chp]))
# communes@data = left_join(communes@data, subdata, by = 'insee')
# communes@data = left_join(communes@data, poids, by = 'insee')
# 
# france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
# val = group_by(france@data, CD_SIG) %>% do(moy.pond(., communes = communes, field = 'VALEUR')) %>% data.frame() 
# france@data = left_join(france@data, val, by = 'CD_SIG')
# 
# rr <- rasterize(france, rr, field='quantite', na.rm = T)
# writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Recensement-Cheptel-Gros-Betail_Nombre-Petites-Exploitations_2010',format = 'GTiff', overwrite=T)
# 
# #### Nombre de moyennes et grandes exploitations ####
# subdata = cheptel[cheptel$G_2141_LIB_DIM1 == "Moyennes et grandes exploitations",]
# subdata = subdata[subdata$G_2141_LIB_DIM2 %in% "Elevages (total hors apiculture)(1)",]
# subdata = subdata[subdata$G_2141_LIB_DIM3 == "Exploitations en ayant",]
# subdata = subdata[subdata$QUALITE == 'OUI',]
# 
# communes@data = data.frame(insee = unique(communes@data[,chp]))
# communes@data = left_join(communes@data, subdata, by = 'insee')
# communes@data = left_join(communes@data, poids, by = 'insee')
# 
# france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
# val = group_by(france@data, CD_SIG) %>% do(moy.pond(., communes = communes, field = 'VALEUR')) %>% data.frame() 
# france@data = left_join(france@data, val, by = 'CD_SIG')
# 
# rr <- rasterize(france, rr, field='quantite', na.rm = T)
# writeRaster(rr,file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Recensement-Cheptel-Gros-Betail_Nombre-Grandes-et-Moyennes-Exploitations_2010',format = 'GTiff', overwrite=T)
# 
# ##############################################################
# ################## WorldClim #################################
# ##############################################################
# rm(list=ls())
# rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
# france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
# 
# dirs = list.dirs('./Pression&MenaceBiodiv/SIG/DATA_BRUTE/WorldClim')
# dirs = dirs[grep('Reunion',dirs)]
# 
# for (d in dirs) {
#   print(d)
#   files = list.files(paste0(d,'/'))
#   if (length(grep('aux', files)) != 0) {files = files[-grep('aux', files)]}
#   
#   rast = stack(paste0(d, '/',files))
#   rast = mean(rast, na.rm = T)
#   rast = projectRaster(rast, crs = france@proj4string)
#   
#   inter = extract(rast, france, fun = mean, na.rm = T)
#   if (d == "./Pression&MenaceBiodiv/SIG/DATA_BRUTE/WorldClim/SolarRadiation_kJ-m2-day/Reunion" ) {inter = inter * 0.001 } #multiplier par 10+6 * 10-9 pour radiation solaire car kJ par m2 ==> 10-9 terajoule * 10+6 1km2 (maille) <==> 10^-3 pour avoir terajoule/maille/jour 
#   france@data$quantite = inter 
#   rr = rasterize(france, rr, field = 'quantite')
#   
#   lb = strsplit(files, '_')
#   lb = unlist(lb[1])
#   lb = toupper(lb[3])
#   writeRaster(rr, file = paste0('./Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_WorldClim_Moyenne-mensuelle_',lb,'_1970-2000.tif'), format = 'GTiff', overwrite = T )
#   
# }

# ##############################################################
# ################## POLLUTION LUMINEUSE ####################### #pour l'instant base sur oct/nov/dec 2020 .... voir si autres mois sont dispo 
# ##############################################################
# rm(list=ls())
# rr = raster('./BasedeDonnees/SIG/OM/TIFF/1X1/Maillage_REU_1X1.tif')
# france = readOGR('./BasedeDonnees/SIG/OM/1X1/REU_UTM40S1X1/REU_UTM40S1X1.shp','REU_UTM40S1X1')
# 
# files = list.files('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/SVDNB_OM/')
# files = files[grep('REU',files)]
# 
# pollution = stack(paste0('./Pression&MenaceBiodiv/SIG/DATA_BRUTE_OM/SVDNB_OM/',files))
# pollution.mean = mean(pollution, na.rm = T)
# pollution.mean = projectRaster(pollution.mean, crs = france@proj4string)
# 
# ### Extraction des valeurs sur chaque maille et calcul de la moyenne #######
# inter = extract(pollution.mean, france, fun = mean, na.rm = T)
# france@data$quantite = inter * 10^-12 * 10^10 #(nanowatts en kilowatts et cm2 en 1km2)
# rr = rasterize(france, rr, field = 'quantite')
# writeRaster(rr, file = './Pression&MenaceBiodiv/SIG/DATA_NORMALISEE_MAILLAGE_REU/REU_1X1_Pollution-lumineuse_Mean-kiloWatts-per-month_2019', format = 'GTiff', overwrite = T )