Emprises des espaces verts (plan de voirie)

Données - Ville de Paris

Code
source(here::here("_rinit.R"))
source(here::here("data", "paris", "_paris.R"))   # wkb2sfc(), paris_basemap(), arrondissements_sf()
invisible(Sys.setlocale("LC_TIME", "fr_FR.UTF-8"))
# cd ~/iCloud/website/data/paris; /usr/local/bin/R -e 'quarto::quarto_render("plan-de-voirie-emprises-espaces-verts.qmd")'

knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE,
                      fig.width = 8, fig.height = 5, dpi = 150)

pv_path <- here::here("data", "paris", "plan-de-voirie-emprises-espaces-verts.parquet")
pv <- arrow::read_parquet(pv_path) |>
  dplyr::mutate(ha = st_area_shape / 1e4)

n_tot    <- nrow(pv)
total_ha <- sum(pv$ha, na.rm = TRUE)
arr_sf   <- arrondissements_sf()

sh_sf <- pv |>
  dplyr::mutate(geometry = wkb2sfc(geo_shape)) |>
  sf::st_as_sf(crs = 4326) |>
  sf::st_join(arr_sf["c_ar"], join = sf::st_intersects, largest = TRUE)

theme_carte <- theme_void(base_size = 12) +
  theme(plot.title = element_text(face = "bold"),
        plot.subtitle = element_text(colour = "grey35"),
        plot.margin = margin(5, 12, 5, 5))
theme_barres <- theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"),
        plot.subtitle = element_text(colour = "grey35"),
        panel.grid.major.y = element_blank())

La couche géographique « Emprise espace vert » du plan de voirie numérique de Paris (fond de plan cadastral / CAO utilisé par les services techniques) : 989 polygones, pour 1 939 hectares. Contrairement au catalogue des espaces verts, cette couche technique inclut les deux grands bois (Boulogne, Vincennes), ce qui explique un total très supérieur.

Code
sh_sf |>
  sf::st_drop_geometry() |>
  dplyr::arrange(dplyr::desc(ha)) |>
  dplyr::transmute(`N° pavé` = num_pave, Arrondissement = c_ar, `Surface (ha)` = round(ha, 1)) |>
  head(8) |>
  gt::gt() |>
  gt::sub_missing(missing_text = "—") |>
  gt::tab_header(title = "8 plus grandes emprises (Boulogne et Vincennes en tête)") |>
  gt::tab_options(table.width = "100%")
8 plus grandes emprises (Boulogne et Vincennes en tête)
N° pavé Arrondissement Surface (ha)
121E 12 302.8
121E 12 85.9
121G 12 73.7
162N 16 49.9
161N 16 47.9
161N 16 45.5
203F 20 44.6
121F 12 38.9

Carte

Code
ggplot() +
  geom_sf(data = arr_sf, fill = "grey96", colour = "white") +
  geom_sf(data = sh_sf, fill = "#2f6f4f", colour = NA, alpha = 0.8) +
  labs(title = "Emprises d'espaces verts du plan de voirie") +
  theme_carte

Par arrondissement

Code
cnt <- sh_sf |> sf::st_drop_geometry() |> dplyr::filter(!is.na(c_ar)) |>
  dplyr::group_by(c_ar) |> dplyr::summarise(ha = sum(ha, na.rm = TRUE), .groups = "drop")

arr_sf |>
  dplyr::left_join(cnt, by = "c_ar") |>
  ggplot() +
  geom_sf(aes(fill = ha), colour = "white", linewidth = 0.2) +
  scale_fill_viridis_c(option = "viridis", direction = -1, na.value = "grey92", name = "Hectares",
                       trans = "sqrt") +
  labs(title = "Surface d'emprises d'espaces verts par arrondissement",
       subtitle = "16ᵉ et 12ᵉ dominent très largement (bois de Boulogne et de Vincennes)") +
  theme_carte

Distribution des tailles

Code
pv |>
  ggplot(aes(ha)) +
  geom_histogram(bins = 40, fill = "#3b6f8a") +
  scale_x_log10(labels = scales::label_number()) +
  labs(title = "Distribution des surfaces d'emprise (échelle log)",
       subtitle = sprintf("Médiane : %.2f ha — quelques très grandes emprises (bois) dominent le total",
                          median(pv$ha, na.rm = TRUE)),
       x = "Hectares (log)", y = "Nombre d'emprises") +
  theme_barres

Source & données

Code
tibble::tibble(
  ` ` = c("Jeu de données", "Producteur", "Licence", "Fichier", "Mise à jour", "Observations"),
  `  ` = c(
    "[Emprises espaces verts (plan de voirie)](https://opendata.paris.fr/explore/dataset/plan-de-voirie-emprises-espaces-verts/information/)",
    "Direction de la Voirie et des Déplacements — Ville de Paris",
    "Open Database License (ODbL)",
    sprintf("`data/paris/plan-de-voirie-emprises-espaces-verts.parquet` (%s ko) + `arrondissements.parquet`",
            round(file.size(pv_path) / 1024)),
    format(as.Date(file.mtime(pv_path)), "%d %B %Y"),
    sprintf("%d emprises, %s ha", n_tot, scales::number(total_ha, 1))
  )
) |>
  gt::gt() |> gt::fmt_markdown(columns = `  `) |>
  gt::tab_options(table.width = "100%", column_labels.hidden = TRUE)
Jeu de données Emprises espaces verts (plan de voirie)
Producteur Direction de la Voirie et des Déplacements — Ville de Paris
Licence Open Database License (ODbL)
Fichier data/paris/plan-de-voirie-emprises-espaces-verts.parquet (1454 ko) + arrondissements.parquet
Mise à jour 05 septembre 2026
Observations 989 emprises, 1 939 ha