Mobiliers urbains (plan de voirie)

Données - Ville de Paris

Code
source(here::here("_rinit.R"))
source(here::here("data", "paris", "_paris.R"))   # wkb2sfc(), 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-mobiliers-urbains-kiosques-toilettes-publiques-panneaux-publicita.qmd")'

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

mu_path <- here::here("data", "paris", "plan-de-voirie-mobiliers-urbains-kiosques-toilettes-publiques-panneaux-publicita.parquet")
mu <- arrow::read_parquet(mu_path)

n_tot  <- nrow(mu)
arr_sf <- arrondissements_sf()
pts_sf <- mu |>
  dplyr::mutate(geometry = wkb2sfc(geo_point_2d)) |>
  sf::st_as_sf(crs = 4326)

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())

Couche géographique « concessions » du plan de voirie numérique de Paris : les emprises au sol des kiosques, sanisettes, panneaux publicitaires et autres mobiliers urbains implantés sur le domaine public. 94 456 emprises au total.

Le jeu de données ne comporte cependant aucun champ distinguant kiosques, sanisettes et panneaux publicitaires entre eux (lib_classe est vide, lib_level vaut toujours « CONCESSIONS ») : impossible donc de ventiler par type de mobilier — seule leur localisation est exploitable ici.

Code
mu |>
  dplyr::transmute(`N° pavé` = num_pave, `Longueur du contour (m)` = round(st_length_shape, 1)) |>
  head(8) |>
  gt::gt() |>
  gt::tab_header(title = "8 premières emprises du jeu de données") |>
  gt::tab_options(table.width = "100%")
8 premières emprises du jeu de données
N° pavé Longueur du contour (m)
151H 0.1
203D 0.1
174C 0.3
153B 0.0
202B 0.1
174A 0.1
144A 0.6
151C 0.7

Où se trouvent-ils

Code
ggplot() +
  geom_sf(data = arr_sf, fill = "grey97", colour = "grey70", linewidth = 0.3) +
  geom_hex(data = sf::st_coordinates(pts_sf) |> tibble::as_tibble(),
           aes(X, Y), bins = 70, alpha = 0.9) +
  scale_fill_viridis_c(option = "inferno", direction = -1, trans = "sqrt", name = "Mobiliers") +
  coord_sf(xlim = sf::st_bbox(arr_sf)[c("xmin", "xmax")],
          ylim = sf::st_bbox(arr_sf)[c("ymin", "ymax")], expand = FALSE) +
  labs(title = "Densité des mobiliers urbains (kiosques, sanisettes, panneaux…)") +
  theme_carte

Par arrondissement

Code
cnt <- pts_sf |>
  sf::st_join(arr_sf["c_ar"], join = sf::st_within) |>
  sf::st_drop_geometry() |>
  dplyr::filter(!is.na(c_ar)) |>
  dplyr::count(c_ar, name = "n")

arr_sf |>
  dplyr::left_join(cnt, by = "c_ar") |>
  ggplot() +
  geom_sf(aes(fill = n), colour = "white", linewidth = 0.2) +
  scale_fill_viridis_c(option = "rocket", direction = -1, na.value = "grey92", name = "Mobiliers") +
  labs(title = "Mobiliers urbains par arrondissement") +
  theme_carte

Taille des emprises

Code
mu |>
  dplyr::filter(st_length_shape > 0) |>
  ggplot(aes(st_length_shape)) +
  geom_histogram(bins = 50, fill = "#7a5a2b") +
  scale_x_log10(labels = scales::label_number()) +
  labs(title = "Longueur du contour de chaque emprise (échelle log)",
       subtitle = sprintf("Médiane : %.2f m", median(mu$st_length_shape, na.rm = TRUE)),
       x = "Mètres (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(
    "[Mobiliers urbains — kiosques, sanisettes, panneaux publicitaires](https://opendata.paris.fr/explore/dataset/plan-de-voirie-mobiliers-urbains-kiosques-toilettes-publiques-panneaux-publicita/information/)",
    "Direction de la Voirie et des Déplacements — Ville de Paris",
    "Open Database License (ODbL)",
    sprintf("`data/paris/plan-de-voirie-mobiliers-urbains-kiosques-toilettes-publiques-panneaux-publicita.parquet` (%s ko) + `arrondissements.parquet`",
            round(file.size(mu_path) / 1024)),
    format(as.Date(file.mtime(mu_path)), "%d %B %Y"),
    sprintf("%s emprises, pas de champ de type disponible", format(n_tot, big.mark = " "))
  )
) |>
  gt::gt() |> gt::fmt_markdown(columns = `  `) |>
  gt::tab_options(table.width = "100%", column_labels.hidden = TRUE)
Jeu de données Mobiliers urbains — kiosques, sanisettes, panneaux publicitaires
Producteur Direction de la Voirie et des Déplacements — Ville de Paris
Licence Open Database License (ODbL)
Fichier data/paris/plan-de-voirie-mobiliers-urbains-kiosques-toilettes-publiques-panneaux-publicita.parquet (18842 ko) + arrondissements.parquet
Mise à jour 05 septembre 2026
Observations 94 456 emprises, pas de champ de type disponible