Chapter 3 Urbanisme
3.1 Plan Cadastre
Le plan cadastral est le découpage du territoire français en unités de surfaces permettant le calcul de certains impôts. Chaque commune est divisée en sections et les sections sont divisées en feuilles. Une feuille cadastrale contient des parcelles qui peuvent supporter des bâtiments.
3.1.1 Le Plan Cadastre Informatisé PCI
Le plan cadastral est un asemblage d’environ 600 000 feuilles représentant chacune une section ou une partie d’une section cadastrale. Le PCI existe sous la forme de deux produits complémentaires: Le PCI vecteur qui regroupe les feuilles qui ont été numérisées et couve l’essentiel du territoire (4 181 communes sur un total de 35 200) et le PCI image qui regroupe les feuilles qui n’ont été que scannées et complète la couverture. Les données du PCI sont disponibles dans plusieurs formats: Format EDIGEO et format DXF. Les données sont mises à disposition de deux manières: en téléchargement direct à la feuille ou via un outil en ligne pour les archives communales. La documentation complète et les liens de téléchargement des données sont disponible via cette page de datagouv.
3.1.2 Le Plan Cadastre simplifié
Le plan Cadastre simplifié est produit par Etalab et se concentre sur le découpage parcellaire et les bâtiments. Cette version du plan cadastre est disponible dans des formats de données géographiques usuels (geojson et shapefile) ce qui rend son utilisation plus simple. Le téléchargement se fait par couche, et à différentes échelles (France entière, département et commune) via cete page.
3.1.3 Exploration des données
Nous avons téléchargé les données du plan cadastre simplifié fournies par Etalab pour explorer rapidement le contenu.
# load department data (code depratemnt = 75)
cadastre_75_communes <- rgdal::readOGR("data/FrenchOpenData/territoires/cadastre/dept-75/cadastre-75-communes.json")
## OGR data source with driver: GeoJSON
## Source: "D:\OpenGeoKPI\OpenDataBook-France\data\FrenchOpenData\territoires\cadastre\dept-75\cadastre-75-communes.json", layer: "cadastre-75-communes"
## with 20 features
## It has 4 fields
## id nom created updated
## 0 75101 PARIS 01 2006/11/28 2019/06/06
## 1 75102 PARIS 02 2007/01/24 2018/12/27
## 2 75104 PARIS 04 2007/01/30 2016/01/05
## 3 75105 PARIS 05 2006/08/30 2019/10/14
## 4 75109 PARIS 09 2007/01/30 2018/10/25
## 5 75107 PARIS 07 2007/10/29 2015/12/07
## [1] 20
# load communes data (code commune 75112): feuilles
cadastre_75112_feuilles <- rgdal::readOGR("data/FrenchOpenData/territoires/cadastre/dept-75/comm-75012/cadastre-75112-feuilles.json")
## OGR data source with driver: GeoJSON
## Source: "D:\OpenGeoKPI\OpenDataBook-France\data\FrenchOpenData\territoires\cadastre\dept-75\comm-75012\cadastre-75112-feuilles.json", layer: "cadastre-75112-feuilles"
## with 108 features
## It has 10 fields
## id commune prefixe section numero qualite modeConfection echelle
## 0 75112000AA01 75112 000 AA 01 03 01 500
## 1 75112000AB01 75112 000 AB 01 03 01 500
## 2 75112000AC01 75112 000 AC 01 03 01 500
## 3 75112000AD01 75112 000 AD 01 03 01 500
## 4 75112000AE01 75112 000 AE 01 03 01 500
## 5 75112000AH01 75112 000 AH 01 03 01 500
## created updated
## 0 2007/10/08 2018/03/28
## 1 2007/10/19 2019/06/24
## 2 2007/10/09 2017/06/20
## 3 2007/10/08 2019/03/08
## 4 2007/10/09 2019/07/08
## 5 2011/03/09 2019/03/08
## [1] 20
# load communes data (code commune 75112): sections
cadastre_75112_sections <- rgdal::readOGR("data/FrenchOpenData/territoires/cadastre/dept-75/comm-75012/cadastre-75112-sections.json")
## OGR data source with driver: GeoJSON
## Source: "D:\OpenGeoKPI\OpenDataBook-France\data\FrenchOpenData\territoires\cadastre\dept-75\comm-75012\cadastre-75112-sections.json", layer: "cadastre-75112-sections"
## with 108 features
## It has 6 fields
## id commune prefixe code created updated
## 0 75112000AA 75112 000 AA 2007/10/08 2014/02/12
## 1 75112000AB 75112 000 AB 2007/10/19 2014/02/12
## 2 75112000AC 75112 000 AC 2007/10/09 2014/02/12
## 3 75112000AD 75112 000 AD 2007/10/08 2014/02/12
## 4 75112000AE 75112 000 AE 2007/10/09 2014/02/12
## 5 75112000AH 75112 000 AH 2007/10/08 2014/02/12
## [1] 108
Ci-dessous une géo-visualisation intéractive des limites géographiques des communes et des sections:
library(leaflet)
library(leaflet.providers)
leaflet() %>%
addTiles() %>%
addProviderTiles("OpenStreetMap.France", group = "OSM.France") %>%
addProviderTiles(providers$GeoportailFrance.parcels, group = "GeoportailFrance.parcels") %>%
addProviderTiles(providers$CartoDB.DarkMatter , group = "CartoDB") %>%
# Add communes
addPolygons(data = cadastre_75_communes,
group = "communes",
stroke = TRUE, color = "black", weight = 3,dashArray = "3",
smoothFactor = 0.3, fill = TRUE, fillOpacity = 0.2,
highlight = highlightOptions(
weight = 5,
color = "#666",
dashArray = "",
fillOpacity = 0.3,
bringToFront = TRUE),
label = cadastre_75_communes@data$nom,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
# Add sections
addPolygons(data = cadastre_75112_sections,
group = "sections",
stroke = TRUE, color = "blue", weight = 2,dashArray = "3",
smoothFactor = 0.3, fill = TRUE, fillOpacity = 0.2,
highlight = highlightOptions(
weight = 5,
color = "#666",
dashArray = "",
fillOpacity = 0.3,
bringToFront = TRUE),
label = cadastre_75112_sections@data$code,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
# Layers control
addLayersControl(
baseGroups = c("OSM.France", "GeoportailFrance.parcels","CartoDB"),
overlayGroups = c("communes", "sections"),
options = layersControlOptions(collapsed = FALSE)
)
Maintenant, nous allons explorer le contenu des données du plan cadastre à l’échelle de parcelles et de bâtiments en foncalisant sur la commune du 75112.
# load communes data (code commune 75112): parcelles
cadastre_75112_parcelles <- rgdal::readOGR("data/FrenchOpenData/territoires/cadastre/dept-75/comm-75012/cadastre-75112-parcelles.json")
## OGR data source with driver: GeoJSON
## Source: "D:\OpenGeoKPI\OpenDataBook-France\data\FrenchOpenData\territoires\cadastre\dept-75\comm-75012\cadastre-75112-parcelles.json", layer: "cadastre-75112-parcelles"
## with 3980 features
## It has 9 fields
## id commune prefixe section numero contenance arpente created
## 0 75112000AA0036 75112 000 AA 36 2313 0 2007/10/08
## 1 75112000AA0029 75112 000 AA 29 2755 0 2007/10/08
## 2 75112000AA0072 75112 000 AA 72 902 0 2007/10/08
## 3 75112000AA0033 75112 000 AA 33 2469 0 2007/10/08
## 4 75112000AA0044 75112 000 AA 44 1270 0 2007/10/08
## 5 75112000AA0035 75112 000 AA 35 1038 0 2007/10/08
## updated
## 0 2016/07/21
## 1 2016/07/21
## 2 2016/07/21
## 3 2016/07/21
## 4 2016/07/21
## 5 2016/07/21
## [1] 225
# load communes data (code commune 75112): bâtiments
cadastre_75112_batiments <- rgdal::readOGR("data/FrenchOpenData/territoires/cadastre/dept-75/comm-75012/cadastre-75112-batiments.json")
## OGR data source with driver: GeoJSON
## Source: "D:\OpenGeoKPI\OpenDataBook-France\data\FrenchOpenData\territoires\cadastre\dept-75\comm-75012\cadastre-75112-batiments.json", layer: "cadastre-75112-batiments"
## with 6278 features
## It has 5 fields
## type nom commune created updated
## 0 01 <NA> 75112 2007/10/08 2014/02/12
## 1 01 <NA> 75112 2007/10/08 2014/02/12
## 2 01 <NA> 75112 2007/10/08 2014/02/12
## 3 01 Ecole 75112 2008/02/08 2014/02/12
## 4 01 <NA> 75112 2007/10/08 2014/02/12
## 5 01 <NA> 75112 2007/10/08 2014/02/12
## [1] 6278
Ci-dessous une géo-visualisation intéractive des limites géographiques des parcelles et des bâtiments:
leaflet() %>%
addTiles() %>%
addProviderTiles("OpenStreetMap.France", group = "OSM.France") %>%
addProviderTiles(providers$GeoportailFrance.parcels, group = "GeoportailFrance.parcels") %>%
addProviderTiles(providers$CartoDB.DarkMatter , group = "CartoDB") %>%
# Add parcelles
addPolygons(data = cadastre_75112_parcelles,
group = "Parcelles",
stroke = TRUE, color = "black", weight = 2,dashArray = "3",
smoothFactor = 0.3, fill = TRUE, fillOpacity = 0.6,
highlight = highlightOptions(
weight = 5,
color = "#666",
dashArray = "",
fillOpacity = 0.3,
bringToFront = TRUE),
label = cadastre_75112_parcelles@data$numero,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
# Add sections
addPolygons(data = cadastre_75112_batiments,
group = "Bâtiments",
stroke = TRUE, color = "blue", weight = 1,dashArray = "3",
smoothFactor = 0.3, fill = TRUE, fillOpacity = 0.2,
highlight = highlightOptions(
weight = 5,
color = "#666",
dashArray = "",
fillOpacity = 0.3,
bringToFront = TRUE),
label = cadastre_75112_batiments@data$nom,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
# Layers control
addLayersControl(
baseGroups = c("OSM.France", "GeoportailFrance.parcels","CartoDB"),
overlayGroups = c("Parcelles", "Bâtiments"),
options = layersControlOptions(collapsed = FALSE)
)
3.2 Plan Local d’Urbanisme (PLU)
En France, le plan local d’urbanisme (PLU), ou le plan local d’urbanisme intercommunal (PLUI), est le principal document de planification de l’urbanisme au niveau communal ou intercommunal. Il replace le plan d’occupation des sols. Il comporte, comme un schéma directeur, des orientations sur l’évolution de la ville à l’horizon de 10 à 15 ans. Le PLU est un document réglementaire: il régit l’évolution des parcelles à travers l’instruction des permis de constuire et de démolir.
Il contient les documents suivants:
- Le rapport de présentation qui qui décrit un diagnostic et une analyse de l’état initial de l’environnement
- Le Projet d’Aménagement et de Développement DUrable (PADD) qui expose le projet des élus en matière d’aménagement et d’urbanisme.
- Les documents graphiques qui délimitent les différentes zones:
- U: Zones urbaines
- AU: Zones à urbaniser
- A: zones agricoles
- N: zones naturelles et forestières
- Le réglement qui fixe les différentes règles applicables à l’intérieur de chaque zone
Le PLU peut être consulté depuis le géoportail de l’urbanisme et les données peuvent être téléchargées depuis le site data.gouv. Pour certaines communes, les informations concernant le PLU sont consultables à travers une application web de géo-visualisation comme (PLU de Paris.) Nous avons téléchargé le plan de zonage du PLU de Paris sous format geojson à partir de cette page. Le fichier contient les dilimitations géographiques des différentes zones en fonction de leurs attributs: N (zone naturelle et forestière), UG (zone urbaine générale), UGSU (zone urbaine de grands services urbains) et UV (Zone Urbaine verte).
# load paris plu data
plu_paris <- rgdal::readOGR("data/FrenchOpenData/territoires/plu/plu-plan-de-zonage.geojson")
## OGR data source with driver: GeoJSON
## Source: "D:\OpenGeoKPI\OpenDataBook-France\data\FrenchOpenData\territoires\plu\plu-plan-de-zonage.geojson", layer: "plu-plan-de-zonage"
## with 1039 features
## It has 6 fields, of which 1 list fields
##
## N PSMV7 PSMVM SENAT UG UGSU UV
## 2 2 2 1 28 134 870
Ci-dessous une géo-visualisation intéractive du plan de zonage de paris avec des filtres sur les types de zone
leaflet() %>%
addTiles() %>%
addProviderTiles("OpenStreetMap.France", group = "OSM.France") %>%
addProviderTiles(providers$GeoportailFrance.parcels, group = "GeoportailFrance.parcels") %>%
addProviderTiles(providers$CartoDB.DarkMatter , group = "CartoDB") %>%
# Zones: UV
addPolygons(data = plu_paris[plu_paris@data$zone == "UV", ],
group = "UV",
stroke = TRUE, color = "red", weight = 1,dashArray = "3",
smoothFactor = 0.3, fill = TRUE, fillOpacity = 0.4,
highlight = highlightOptions(
weight = 5,
color = "#666",
dashArray = "",
fillOpacity = 0.3,
bringToFront = TRUE),
label = plu_paris@data[plu_paris@data$zone == "UV", "numardt"],
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
# Zones UG
addPolygons(data = plu_paris[plu_paris@data$zone == "UG", ],
group = "UG",
stroke = TRUE, color = "blue", weight = 1,dashArray = "1",
smoothFactor = 0.3, fill = TRUE, fillOpacity = 0.2,
highlight = highlightOptions(
weight = 5,
color = "#666",
dashArray = "",
fillOpacity = 0.3,
bringToFront = TRUE),
label = plu_paris@data[plu_paris@data$zone == "UG", "numardt"],
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
# Zones N
addPolygons(data = plu_paris[plu_paris@data$zone == "N", ],
group = "N",
stroke = TRUE, color = "green", weight = 2,dashArray = "1",
smoothFactor = 0.3, fill = TRUE, fillOpacity = 0.4,
highlight = highlightOptions(
weight = 5,
color = "#666",
dashArray = "",
fillOpacity = 0.3,
bringToFront = TRUE),
label = plu_paris@data[plu_paris@data$zone == "N", "numardt"],
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
# Zones UGSU
addPolygons(data = plu_paris[plu_paris@data$zone == "UGSU", ],
group = "UGSU",
stroke = TRUE, color = "darkorange2", weight = 1,dashArray = "1",
smoothFactor = 0.3, fill = TRUE, fillOpacity = 0.5,
highlight = highlightOptions(
weight = 5,
color = "#666",
dashArray = "",
fillOpacity = 0.3,
bringToFront = TRUE),
label = plu_paris@data[plu_paris@data$zone == "UGSU", "numardt"],
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
# Layers control
addLayersControl(
baseGroups = c("OSM.France", "GeoportailFrance.parcels","CartoDB"),
overlayGroups = c("UV","UG","N","UGSU"),
options = layersControlOptions(collapsed = FALSE)
)