Fontaines à boire

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("fontaines-a-boire.qmd")'

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

font_path <- here::here("data", "paris", "fontaines-a-boire.parquet")
fontaines <- arrow::read_parquet(font_path) |>
  dplyr::mutate(
    ar = suppressWarnings(as.integer(stringr::str_extract(commune, "[0-9]+"))),
    disponible = dispo == "OUI"
  )

n_tot   <- nrow(fontaines)
arr_sf  <- arrondissements_sf()
pts_sf  <- fontaines |>
  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())

1323 fontaines à boire, des classiques fontaines Wallace en fonte verte aux bornes fontaines de parcs, en passant par les fontaines pétillantes plus récentes. 94% sont actuellement disponibles.

Code
fontaines |>
  dplyr::transmute(Type = type_objet, Modèle = modele, Voie = voie,
                   Arrondissement = ar, Disponible = dispo) |>
  dplyr::slice_sample(n = 8) |>
  gt::gt() |>
  gt::sub_missing(missing_text = "—") |>
  gt::tab_header(title = "8 fontaines tirées au hasard") |>
  gt::tab_options(table.width = "100%")
8 fontaines tirées au hasard
Type Modèle Voie Arrondissement Disponible
FONTAINE_BOIS Fontaine des Bois, Parcs et Jardins CIMETIERE PARISIEN DE THIAIS OUI
FONTAINE_BOIS Fontaine des Bois, Parcs et Jardins QUAI DE VALMY 10 OUI
BORNE_FONTAINE GHM Ville de Paris RUE D ABOUKIR 2 OUI
FONTAINE_BOIS GHM Bois AVENUE DAUMESNIL 12 OUI
BORNE_FONTAINE GHM Ville de Paris RUE AMELOT 11 OUI
FONTAINE_2EN1 Mât source RUE DE BELLEVILLE 19 OUI
FONTAINE_BOIS GHM Bois PARC DES BUTTES CHAUMONT 19 OUI
FONTAINE_BOIS RUE FELIX FAURE 15 OUI

Carte

Code
pal <- leaflet::colorFactor("Set2", domain = fontaines$type_objet)

leaflet::leaflet(pts_sf, options = leaflet::leafletOptions(minZoom = 11)) |>
  paris_basemap() |>
  leaflet::addPolygons(data = arr_sf, fill = FALSE, color = "#999", weight = 1) |>
  leaflet::addCircleMarkers(
    radius = 4, stroke = FALSE, fillOpacity = 0.8,
    fillColor = ~pal(type_objet),
    label = ~sprintf("%s (%s)", voie, modele),
    popup = ~sprintf("<b>%s</b><br>%s<br>%s<br>%s", type_objet, modele, voie,
                     ifelse(disponible, "Disponible", paste("Indisponible :", motif_ind)))
  ) |>
  leaflet::addLegend("bottomright", pal = pal, values = ~type_objet, title = "Type", opacity = 0.9)

Par arrondissement

Code
cnt <- fontaines |> dplyr::filter(!is.na(ar)) |> dplyr::count(ar, name = "n")

arr_sf |>
  dplyr::left_join(cnt, by = c("c_ar" = "ar")) |>
  ggplot() +
  geom_sf(aes(fill = n), colour = "white", linewidth = 0.2) +
  scale_fill_viridis_c(option = "mako", direction = -1, na.value = "grey92", name = "Fontaines") +
  labs(title = "Fontaines à boire par arrondissement",
       subtitle = "20ᵉ, 12ᵉ et 16ᵉ (bois inclus) en tête") +
  theme_carte

Types de fontaines

Code
fontaines |>
  dplyr::count(type_objet, sort = TRUE) |>
  dplyr::mutate(type_objet = forcats::fct_reorder(type_objet, n)) |>
  ggplot(aes(n, type_objet)) +
  geom_col(fill = "#2f6f9f", width = 0.65) +
  geom_text(aes(label = n), hjust = -0.2, size = 3.2) +
  scale_x_continuous(expand = expansion(mult = c(0, 0.12))) +
  labs(title = "Type de fontaine",
       subtitle = "Bornes-fontaines de parcs et jardins en tête, loin devant les Wallace",
       x = NULL, y = NULL) +
  theme_barres

Source & données

Code
tibble::tibble(
  ` ` = c("Jeu de données", "Producteur", "Licence", "Fichier", "Mise à jour", "Observations"),
  `  ` = c(
    "[Fontaines à boire](https://opendata.paris.fr/explore/dataset/fontaines-a-boire/information/)",
    "Direction de la Voirie et des Déplacements — Ville de Paris",
    "Open Database License (ODbL)",
    sprintf("`data/paris/fontaines-a-boire.parquet` (%s ko) + `arrondissements.parquet`",
            round(file.size(font_path) / 1024)),
    format(as.Date(file.mtime(font_path)), "%d %B %Y"),
    sprintf("%d fontaines", n_tot)
  )
) |>
  gt::gt() |> gt::fmt_markdown(columns = `  `) |>
  gt::tab_options(table.width = "100%", column_labels.hidden = TRUE)
Jeu de données Fontaines à boire
Producteur Direction de la Voirie et des Déplacements — Ville de Paris
Licence Open Database License (ODbL)
Fichier data/paris/fontaines-a-boire.parquet (78 ko) + arrondissements.parquet
Mise à jour 05 septembre 2026
Observations 1323 fontaines