Skip to content
Snippets Groups Projects
Commit 113ba835 authored by Juliette Engelaere-Lefebvre's avatar Juliette Engelaere-Lefebvre
Browse files

Merge branch 'master' into targests

parents 7f8b9f44 734686db
No related branches found
No related tags found
No related merge requests found
......@@ -39,10 +39,7 @@ creer_export_eru_2014_2017<-function(annee){
Code.INSEE.commune.d.implantation,
Conformité.globale.performances,
Nom.du.milieu.de.rejet,
Type.du.milieu.du.rejet) %>%
rename(code_commune=Code.INSEE.commune.d.implantation,
tranche=Tranche.d.obligation,
conformite=Conformité.globale.performances) %>%
Type.du.milieu.du.rejet) %>%
mutate(annee=annee)
return(export_eru)
......@@ -66,10 +63,7 @@ creer_export_eru_2018_2019<-function(annee){
Code.INSEE.commune.d.implantation,
Conformité.globale.performances,
Nom.du.milieu.de.rejet,
Type.du.milieu.du.rejet) %>%
rename(code_commune=Code.INSEE.commune.d.implantation,
tranche=Tranche.d.obligation,
conformite=Conformité.globale.performances) %>%
Type.du.milieu.du.rejet) %>%
mutate(annee=annee)
return(export_eru)
......@@ -83,6 +77,15 @@ export_eru_2018_2019<-rbindlist(export_eru_2018_2019, fill = TRUE, idcol = F)
export_eru<-bind_rows(export_eru_2014_2017,export_eru_2018_2019)
# save(export_eru,file = "export_eru.RData")
export_eru<-export_eru %>%
rename(code_commune=Code.INSEE.commune.principale,
# code_commune=Code.INSEE.commune.d.implantation, # implantation du rejet a priori, pas de la station
tranche=Tranche.d.obligation,
conformite=Conformité.globale.performances) %>%
mutate(conformite=ifelse(conformite %in% c("?","N/A"),"Inc",conformite))
# calcul de l'indicateur ---------
......@@ -93,32 +96,22 @@ eru1<-export_eru %>%
mutate(variable=case_when(tranche=="Taille < 200 EH" & conformite=="Oui"~ "nbre_steu_conforme_inf_200_eh",
tranche=="Taille < 200 EH" & conformite=="Non"~ "nbre_steu_non_conforme_inf_200_eh",
tranche=="Taille < 200 EH" & conformite=="Inc"~ "nbre_steu_conformite_inconnues_inf_200_eh",
tranche=="Taille < 200 EH" & conformite=="?"~ "nbre_steu_conformite_inconnues_inf_200_eh",
tranche=="Taille < 200 EH" & conformite=="N/A"~ "nbre_steu_conformite_inconnues_inf_200_eh",
tranche=="[ 200 ; 2 000 [ EH" & conformite=="Oui"~ "nbre_steu_conforme_sup_200_inf_2000_eh",
tranche=="[ 200 ; 2 000 [ EH" & conformite=="Non"~ "nbre_steu_non_conforme_sup_200_inf_2000_eh",
tranche=="[ 200 ; 2 000 [ EH" & conformite=="Inc"~ "nbre_steu_conformite_inconnue_sup_200_inf_2000_eh",
tranche=="[ 200 ; 2 000 [ EH" & conformite=="?"~ "nbre_steu_conformite_inconnue_sup_200_inf_2000_eh",
tranche=="[ 200 ; 2 000 [ EH" & conformite=="N/A"~ "nbre_steu_conformite_inconnue_sup_200_inf_2000_eh",
tranche=="[ 2 000 ; 10 000 [ EH" & conformite=="Oui"~ "nbre_steu_conforme_sup_2000_inf_10000_eh",
tranche=="[ 2 000 ; 10 000 [ EH" & conformite=="Non"~ "nbre_steu_non_conforme_sup_2000_inf_10000_eh",
tranche=="[ 2 000 ; 10 000 [ EH" & conformite=="Inc"~ "nbre_steu_conformite_inconnue_sup_2000_inf_10000_eh",
tranche=="[ 2 000 ; 10 000 [ EH" & conformite=="?"~ "nbre_steu_conformite_inconnue_sup_2000_inf_10000_eh",
tranche=="[ 2 000 ; 10 000 [ EH" & conformite=="N/A"~ "nbre_steu_conformite_inconnue_sup_2000_inf_10000_eh",
tranche=="[ 10 000 ; 100 000 [ E" & conformite=="Oui"~ "nbre_steu_conforme_sup_10000_inf_100000_eh",
tranche=="[ 10 000 ; 100 000 [ E" & conformite=="Non"~ "nbre_steu_non_conforme_sup_10000_inf_100000_eh",
tranche=="[ 10 000 ; 100 000 [ E" & conformite=="Inc"~ "nbre_steu_conformite_inconnue_sup_10000_inf_100000_eh",
tranche=="[ 10 000 ; 100 000 [ E" & conformite=="?"~ "nbre_steu_conformite_inconnue_sup_10000_inf_100000_eh",
tranche=="[ 10 000 ; 100 000 [ E" & conformite=="N/A"~ "nbre_steu_conformite_inconnue_sup_10000_inf_100000_eh",
tranche=="[ 100 000 ; ... [ EH" & conformite=="Oui"~ "nbre_steu_conforme_sup_100000_eh",
tranche=="[ 100 000 ; ... [ EH" & conformite=="Non"~ "nbre_steu_non_conforme_sup_100000_eh",
tranche=="[ 100 000 ; ... [ EH" & conformite=="Inc"~ "nbre_steu_conformite_inconnue_sup_100000_eh",
tranche=="[ 100 000 ; ... [ EH" & conformite=="?"~ "nbre_steu_conformite_inconnue_sup_100000_eh",
tranche=="[ 100 000 ; ... [ EH" & conformite=="N/A"~ "nbre_steu_conformite_inconnue_sup_100000_eh")) %>%
tranche=="[ 100 000 ; ... [ EH" & conformite=="Inc"~ "nbre_steu_conformite_inconnue_sup_100000_eh")) %>%
select(-c(tranche,conformite)) %>%
rename(DEPCOM=code_commune)
......@@ -128,9 +121,7 @@ eru2<-export_eru %>%
ungroup() %>%
mutate(variable=case_when(conformite=="Oui"~ "nbre_steu_conforme",
conformite=="Non"~ "nbre_steu_non_conforme",
conformite=="Inc"~ "nbre_steu_conformite_inconnue",
conformite=="?"~ "nbre_steu_conformite_inconnue",
conformite=="N/A"~ "nbre_steu_conformite_inconnue",)) %>%
conformite=="Inc"~ "nbre_steu_conformite_inconnue")) %>%
select(-conformite) %>%
rename(DEPCOM=code_commune)
......@@ -156,8 +147,9 @@ eru4<-export_eru %>%
indicateur_steu_normes_ue<-bind_rows(eru1,eru2,eru3,eru4) %>%
mutate(date=as.Date(paste0(annee,"-12-31"))) %>%
select(-annee) %>%
complete(DEPCOM,date,variable,fill = list(valeur =0)) %>%
complete(DEPCOM,date,variable,fill = list(valeur = 0)) %>%
pivot_wider(names_from = variable,values_from = valeur)
# versement dans le sgbd/datamart.portrait_territoires de l'indicateur -------------
......
......@@ -49,7 +49,7 @@ regions<-regions_geo %>%
rename(CodeZone=REG,SurfaceZone=AREA) %>%
mutate(TypeZone = "Régions")
territoires<-bind_rows(communes,departements,epci,regions) %>%
territoires<-bind_rows(communes,departements,epci,regions) %>%
mutate(SurfaceZone=SurfaceZone/10000) # conversion des m² en ha en cohérence avec cogifiee_agri
territoires$SurfaceZone<-drop_units(territoires$SurfaceZone) # suppression de la mention de l'unité
......@@ -63,7 +63,7 @@ indicateur_agri_cogiter<-left_join(cogifiee_agri,territoires) %>%
part_sau_siege_surf_commune,
repartition_unite_travail_annuel_sau_siege,
repartition_unite_gros_betail_tous_aliments_sau_siege) %>%
mutate(valeur=ifelse(is.finite(valeur)|is.infinite(valeur)|is.nan(valeur),0,valeur)) %>%
mutate(valeur=ifelse(is.infinite(valeur)|is.nan(valeur),0,valeur)) %>%
pivot_wider(names_from = variable,values_from = valeur) %>%
mutate_if(is.character, as.factor)
......
# indicateur_observatoire_artificialisation_population_legale_cogiter
# librairies ----------
library(DBI)
library(RPostgreSQL)
library(dplyr)
library(tidyr)
library(COGiter)
library(lubridate)
library(sf)
rm(list = ls())
# connection au sgbd/datamart et chargement des tables ----------
drv <- dbDriver("PostgreSQL")
con_datamart <- dbConnect(drv,
dbname="datamart",
host=Sys.getenv("server"),
port=Sys.getenv("port"),
user=Sys.getenv("userid"),
password=Sys.getenv("pwd_does"))
postgresqlpqExec(con_datamart, "SET client_encoding = 'windows-1252'")
# chargement des données -------------
observatoire_artificialisation<-dbReadTable(con_datamart,c("portrait_territoires","cogifiee_observatoire_artificialisation"))
# unique(observatoire_artificialisation$date)
# [1] "2010-01-01" "2011-01-01" "2012-01-01" "2013-01-01" "2014-01-01" "2015-01-01" "2016-01-01" "2017-01-01" "2018-01-01"
# [10] "2019-01-01"
population_legale<-dbReadTable(con_datamart,c("portrait_territoires","cogifiee_population_legale"))
# unique(population_legale$date)
# [1] "1968-01-01" "1975-01-01" "1982-01-01" "1990-01-01" "1999-01-01" "2006-01-01" "2007-01-01" "2008-01-01" "2009-01-01"
# [10] "2010-01-01" "2011-01-01" "2012-01-01" "2013-01-01" "2014-01-01" "2015-01-01" "2016-01-01" "2017-01-01" "2018-01-01"
communes<-communes_geo %>%
st_drop_geometry() %>%
rename(CodeZone=DEPCOM,SurfaceZone=AREA) %>%
mutate(TypeZone = "Communes")
departements<-departements_geo %>%
st_drop_geometry()%>%
rename(CodeZone=DEP,SurfaceZone=AREA) %>%
mutate(TypeZone = "Départements")
epci<-epci_geo %>%
st_drop_geometry()%>%
rename(CodeZone=EPCI,SurfaceZone=AREA) %>%
mutate(TypeZone = "Epci")
regions<-regions_geo %>%
st_drop_geometry() %>%
rename(CodeZone=REG,SurfaceZone=AREA) %>%
mutate(TypeZone = "Régions")
territoires<-bind_rows(communes,departements,epci,regions)
rm(communes,departements,epci,regions)
# calcul de l'indicateur -----------
population_legale<-population_legale %>%
mutate_if(is.factor,as.character) %>%
filter(date >= "2006-01-01") %>%
group_by(TypeZone,CodeZone) %>%
mutate(diff_population_legale_5ans = population_municipale - lag(population_municipale,5),
lag5_population_legale = lag(population_municipale,5)) %>%
ungroup() %>%
filter(!is.na(lag5_population_legale)) %>%
select(-c(population_municipale,lag5_population_legale))
observatoire_artificialisation<-observatoire_artificialisation %>%
mutate_if(is.factor,as.character) %>%
select(-c(flux_naf_artificialisation_activite:flux_naf_artificialisation_mixte)) %>%
group_by(TypeZone,CodeZone) %>%
mutate(lag1 = lag(flux_naf_artificialisation_total,1),
lag2 = lag(flux_naf_artificialisation_total,2),
lag3 = lag(flux_naf_artificialisation_total,3),
lag4 = lag(flux_naf_artificialisation_total,4)) %>%
mutate(naf_artificialisation_5ans = flux_naf_artificialisation_total+lag1+lag2+lag3+lag4) %>%
select(-c(flux_naf_artificialisation_total:lag4)) %>%
filter(!is.na(naf_artificialisation_5ans)) %>%
ungroup()
indicateur_observatoire_artificialisation_population_legale_cogiter<-left_join(observatoire_artificialisation,
population_legale) %>%
mutate(naf_artificialisation_par_hbt_accueilli_5ans = round(naf_artificialisation_5ans/diff_population_legale_5ans,digits = 2)) %>%
left_join(territoires) %>%
mutate(pourcentage_naf_artificialisation_5ans_sur_SurfarceZone = as.numeric(round(naf_artificialisation_5ans/SurfaceZone *100,digits = 1))) %>%
select(-c(diff_population_legale_5ans,SurfaceZone)) %>%
filter(!is.na(naf_artificialisation_par_hbt_accueilli_5ans)) %>%
mutate_if(is.character,as.factor)
# versement dans le sgbd/datamart.portrait_territoires -------------
dbWriteTable(con_datamart, c("portrait_territoires","indicateur_observatoire_artificialisation_population_legale_cogiter"),
indicateur_observatoire_artificialisation_population_legale_cogiter, row.names=FALSE, overwrite=TRUE)
dbDisconnect(con_datamart)
rm(list=ls())
# indicateur_elec_renouvelable
# indicateur_prod_elec_renouvelable
# 2 indicateurs : total elec renouvelable produite et calcul % enr dans conso
......
......@@ -69,7 +69,7 @@ variables_non_publiques <- tranches_ecln %>%
#table des données publiques
data_ecln_A <- data_ecln_donnees %>%
filter (variable %in% variables_publiques|
TypeZone %in% c("Régions","Départements")) %>%
TypeZone %in% c("Régions","Départements","France")) %>%
select(-secret,-variable_associee,-categorie) %>%
mutate(valeur=as.character(valeur))
......@@ -118,7 +118,7 @@ secret_communes$valeur<-case_when(
TRUE ~ secret_communes$valeur)
secret_communes<-secret_communes %>%
ungroup() %>%
select(TypeZone,Zone,CodeZone,date,variable,valeur,EPCI,DEP,REG,NOM_EPCI,nb_promoteurs)
select(TypeZone,Zone,CodeZone,date,variable,valeur,EPCI,NATURE_EPCI,DEP,REG,NOM_EPCI,nb_promoteurs)
# secretisation des EPCI -----
......@@ -148,7 +148,7 @@ secret_epci$valeur<-case_when(
TRUE ~ secret_epci$valeur)
secret_epci<-secret_epci %>%
ungroup() %>%
select(TypeZone,Zone,CodeZone,date,variable,valeur,EPCI,DEP,REG,NOM_EPCI,nb_promoteurs)
select(TypeZone,Zone,CodeZone,date,variable,valeur,EPCI,NATURE_EPCI,DEP,REG,NOM_EPCI,nb_promoteurs)
# regroupement des zonages ------------
......
# specifique_gestion_durable_foret
# librairies -------
library(readxl)
library(tidyverse)
library(lubridate)
library(mefa4)
library(COGiter)
library(DBI)
library(RPostgreSQL)
rm(list = ls())
# chargement des données du CRPF ----------------
# données élaborées par le Centre Régional de la Propriété Forestière (CRPF) à partir d'une requête spatiale EPCI
# Au titre du Code Forestier 5 documents sont considérés comme des Documents de Gestion Durable.
# En l'occurrence, pour l'exercice demandé, il est donc légitime de les additionner.
# PSG = plan simple de gestion (pour les forêts > 25 ha) --> garantie de gestion durable
# PSG volontaire = idem pour forêts de 10 à 25 ha --> garantie de gestion durable
# RTG = règlement type de gestion, càd pour des surfaces < 25 ha
# adhésion à un règlement type établi par un gestionnaire habilité pour cela,
# la plupart du temps une coopérative --> garantie de gestion durable
# CBPS = code de bonnes pratiques sylvicoles (forêts < 25 ha) : adhésion à des principes de gestion durable
# devant être respectés --> présomption de garantie de gestion durable
# CBPS+ = idem assorti d'un programme de coupes et travaux spécifique à la forêt concernée --> présomption de garantie de gestion durable
# Les chiffres ne concernent donc que la forêt privée. Celle-ci représente 90% de la forêt des Pays de la Loire.
# Les forêts publiques sont, sauf exception, gérées par l'ONF sur la base d'un aménagement forestier,
# constituant, lui aussi, une garantie de gestion durable.
# Le pourcentage de gestion durable en forêt publique est
# donc proche de 100%, aux forêts en cours de renouvellement d'aménagement si latence,
# ou aux forêts nouvellement acquises par des collectivités près.
# La surface forestière de référence retenue, nécessaire pour obtenir un pourcentage,
# est celle de la BD Forêt de l'IGN du moment, même si l'on sait qu'elle est fluctuante.
# Corrections à la main de la ligne 271 du fichier .xlsx :
# de la ligne 271 : CBPS+ au lieu de CBPS déjà renseigné pour CC du Val de Sarthe
# et de la ligne 91 : Obligatoire (plus de 25 ha) au lieu de PSG - nouveau seuil 2011 pour CC Châteaubriant-Derval
crpf_dgd_epci<-read_excel(path = "extdata/DGDpar EPCI_Copie de stat_pdl_epci.xlsx")
# traitement des données ----------
crpf_dgd_epci_total<-crpf_dgd_epci %>%
filter(!is.na(`Proportion de forêt sous DGD (%)`)) %>%
rename(NOM_EPCI=EPCI,
surface_gestion_durable = `Surface DGD (ha)`,
surface_totale_foret = `Surface forêt (BD Forêt v2) (ha)`,
pourcentage_foret_geree_durablement = `Proportion de forêt sous DGD (%)`)
liste_EPCI<-crpf_dgd_epci_total %>%
select(NOM_EPCI)
crpf_dgd_epci_detail<-crpf_dgd_epci %>%
select(-c(`Surface forêt (BD Forêt v2) (ha)`,`Proportion de forêt sous DGD (%)`)) %>%
mutate(EPCI=case_when(EPCI=="Volontaire (moins de 25 ha)"~"PSG_volontaire",
EPCI=="Obligatoire (plus de 25 ha)"~"PSG_obligatoire",
T~EPCI)) %>%
filter(EPCI!="PSG") %>%
rename(surface_ha=`Surface DGD (ha)`) %>%
mutate(NOM_EPCI=ifelse(EPCI %in% unique(liste_EPCI$NOM_EPCI),EPCI,NA)) %>%
mutate(NOM_EPCI=ifelse(is.na(NOM_EPCI),lag(NOM_EPCI),NOM_EPCI)) %>% # pas très élégant
mutate(NOM_EPCI=ifelse(is.na(NOM_EPCI),lag(NOM_EPCI),NOM_EPCI)) %>%
mutate(NOM_EPCI=ifelse(is.na(NOM_EPCI),lag(NOM_EPCI),NOM_EPCI)) %>%
mutate(NOM_EPCI=ifelse(is.na(NOM_EPCI),lag(NOM_EPCI),NOM_EPCI)) %>%
mutate(NOM_EPCI=ifelse(is.na(NOM_EPCI),lag(NOM_EPCI),NOM_EPCI)) %>%
filter(EPCI %notin% unique(liste_EPCI$NOM_EPCI)) %>%
rename(document_gestion_durable=EPCI) %>%
complete(document_gestion_durable,NOM_EPCI,fill = list(surface_ha =0)) %>%
pivot_wider(names_from = document_gestion_durable,values_from = surface_ha)
crpf_dgd_epci<-left_join(crpf_dgd_epci_detail,crpf_dgd_epci_total)
# renommage des EPCI en référence aux EPCI du package COGiter ----------
epci_pdl<-epci %>% filter(grepl(52,REGIONS_DE_L_EPCI))
x<-inner_join(liste_EPCI,epci) # 60 obs
y<-anti_join(liste_EPCI,epci) # 10 obs
crpf_dgd_epci<-crpf_dgd_epci %>%
mutate(NOM_EPCI=case_when(NOM_EPCI=="CA Agglomération du Choletais"~ "CA du Choletais",
NOM_EPCI=="CA de la Presqu'île de Guérande Atlantique (CAP ATLANTIQUE)"~"CA de la Presqu'île de Guérande Atlantique (Cap Atlantique)",
NOM_EPCI=="CA La Roche sur Yon - Agglomération"~"CA La Roche-sur-Yon Agglomération",
NOM_EPCI=="CA Laval Agglomération"~"CA de Laval Agglomération",
NOM_EPCI=="CC du Pays de Fontenay-Vendée"~"CC Pays de Fontenay-Vendée",
NOM_EPCI=="CC du Pays de Pontchâteau St-Gildas-des-Bois"~"CC du Pays de Pontchâteau Saint-Gildas-des-Bois",
NOM_EPCI=="CC du Pays de St Gilles-Croix-de-Vie"~"CC du Pays de Saint-Gilles-Croix-de-Vie",
NOM_EPCI=="CC du Sud Estuaire"~"CC du Sud-Estuaire",
NOM_EPCI=="CC Maine Coeur de Sarthe"~"CC Maine Cœur de Sarthe",
NOM_EPCI=="CC Terres de Montaigu, CC Montaigu-Rocheservière"~"CC Terres-de-Montaigu, communauté de communes Montaigu-Rocheservière",
T~NOM_EPCI))
x<-semi_join(crpf_dgd_epci,epci_pdl) # 70 obs
y<-anti_join(epci_pdl,crpf_dgd_epci) # CC de l'Île de Noirmoutier
# ajout de l'EPCI CC de l'Île de Noirmoutier --------
# consultation du sgdb avec QGIS : consultation/foret/n_foret_prive_dgd_s_r52 et n_foret_publique_2009_s_r52
# aucune forêt privée (avec un document de gestion forestière durable) ou publique pour CC de l'Île de Noirmoutier
indicateur_gestion_durable_foret<-left_join(epci_pdl %>% select(EPCI,NOM_EPCI),crpf_dgd_epci)
# finalisation de la table en format large ----------
indicateur_gestion_durable_foret<-crpf_dgd_epci %>%
left_join(epci_pdl) %>%
gather(key = "variable",value = "valeur",CBPS:pourcentage_foret_geree_durablement) %>%
mutate(valeur=ifelse(is.na(valeur),0,valeur)) %>%
mutate(TypeZone="Epci") %>%
rename(CodeZone = EPCI,Zone=NOM_EPCI) %>%
mutate(date = dmy("01-01-2021")) %>%
mutate_if(is.character,as.factor) %>%
select(TypeZone,Zone,CodeZone,date,variable,valeur) %>%
pivot_wider(names_from = variable,values_from = valeur)
# versement dans le sgbd/datamart.portrait_territoires -------------
drv <- dbDriver("PostgreSQL")
con_datamart <- dbConnect(drv,
dbname="datamart",
host=Sys.getenv("server"),
port=Sys.getenv("port"),
user=Sys.getenv("userid"),
password=Sys.getenv("sgbd_pwd"))
postgresqlpqExec(con_datamart, "SET client_encoding = 'windows-1252'")
dbWriteTable(con_datamart, c("portrait_territoires","specifique_gestion_durable_foret"),
indicateur_gestion_durable_foret, row.names=FALSE, overwrite=TRUE)
dbDisconnect(con_datamart)
rm(list=ls())
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment