Les arbres remarquables de Paris

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("arbresremarquablesparis.qmd")'

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

rem_path <- here::here("data", "paris", "arbresremarquablesparis.parquet")
rem <- arrow::read_parquet(rem_path) |>
  dplyr::mutate(
    qualification = com_qualification_rem,
    annee         = as.integer(format(arbres_dateplantation, "%Y")),
    ar            = suppressWarnings(as.integer(gsub("er$", "", com_arrondissement))),
    stade         = dplyr::recode(arbres_stadedeveloppement,
                                  "J" = "Jeune", "A" = "Adulte", "M" = "Mature",
                                  .missing = "Non renseigné")
  )

n_tot <- nrow(rem)
arr_sf <- arrondissements_sf()
pts_sf <- rem |>
  dplyr::mutate(geometry = wkb2sfc(geom_x_y)) |>
  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())
pal_qual <- c(Paysager = "#2f6f4f", Botanique = "#7a5a2b",
              Symbolique = "#8a4fae", Historique = "#c0392b")

tree_card <- function(row) {
  # Single line, no embedded newlines/indentation: this gets cat()-ed into a
  # results="asis" chunk, and pandoc treats 4+ leading spaces on a line as
  # an indented markdown code block -- which silently HTML-escapes the tags.
  paste0(
    '<div style="display:flex;gap:.9rem;margin-bottom:1.2rem;align-items:flex-start">',
    '<img src="', row$com_url_photo1, '" alt="" loading="lazy" ',
    'style="width:150px;height:150px;object-fit:cover;border-radius:.4rem;flex:0 0 auto">',
    '<div><b>', row$com_nom_usuel, '</b> — ', row$com_site, '<br>',
    '<span style="color:#888;font-size:.85rem">planté vers ',
    ifelse(is.na(row$annee), "date inconnue", row$annee), '</span><br>',
    row$com_descriptif, ' ',
    '<a href="', row$com_url_pdf, '" target="_blank">fiche PDF ↗</a>',
    '</div></div>'
  )
}

Chaque année, la Ville de Paris classe « remarquables » des arbres qui se distinguent par leur ampleur ou leur esthétique (valeur paysagère), leur rareté botanique, leur valeur historique ou symbolique. Le jeu de données géolocalise les 185 arbres ainsi classés, avec pour chacun une fiche PDF, une photo, un résumé et un descriptif de l’essence.

Code
rem |>
  dplyr::transmute(
    `Nom` = com_nom_usuel, Site = com_site, Arrondissement = com_arrondissement,
    `Année` = annee, Qualification = qualification,
    `Circonf. (cm)` = arbres_circonferenceencm, `Hauteur (m)` = arbres_hauteurenm
  ) |>
  dplyr::slice_sample(n = 8) |>
  gt::gt() |>
  gt::sub_missing(missing_text = "—") |>
  gt::tab_header(title = "8 arbres remarquables tirés au hasard") |>
  gt::tab_options(table.width = "100%")
8 arbres remarquables tirés au hasard
Nom Site Arrondissement Année Qualification Circonf. (cm) Hauteur (m)
Orme champêtre Place Saint-Gervais 4 1700 Historique 200 12
Mûrier commun Jardin de l'Ecole Normale Supérieure 5 1860 Historique 216 10
Cèdre bleu du Liban Square Debussy 16 1700 Paysager 225 6
Hêtre pleureur Bois de Boulogne. Parc de Bagatelle 16 1868 Paysager 240 16
Plaqueminier lotier Square des Batignolles 17 1700 Botanique 155 13
Hêtres pleureurs Square du Clos Feuquières 15 1973 Paysager 140 11
Platane commun Parc Montsouris 14 1700 Paysager 390 26
Platane commun Square des Batignolles 17 1850 Paysager 604 34

Où sont-ils

Code
cnt <- rem |> 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 = "rocket", direction = -1, na.value = "grey92", name = "Arbres\nremarquables") +
  labs(title = "Arbres remarquables par arrondissement",
       subtitle = "Le 16ᵉ (bois de Boulogne inclus) et le 12ᵉ (bois de Vincennes inclus) dominent largement") +
  theme_carte

Carte interactive

Chaque point = un arbre, avec sa photo. Couleur = catégorie de classement.

Code
pal <- leaflet::colorFactor(unname(pal_qual), domain = names(pal_qual))

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 = 5, stroke = FALSE, fillOpacity = 0.85,
    fillColor = ~pal_qual[qualification],
    label = ~sprintf("%s — %s", com_nom_usuel, com_site),
    popup = ~sprintf(
      "<b>%s</b><br>%s<br><img src='%s' width='160' style='border-radius:.3rem;margin:.3rem 0'><br>%s<br><a href='%s' target='_blank'>fiche PDF ↗</a>",
      com_nom_usuel, com_site, com_url_photo1, com_resume, com_url_pdf)
  ) |>
  leaflet::addLegend("bottomright", pal = pal, values = ~qualification,
                     title = "Qualification", opacity = 0.9)

Ce qui rend un arbre remarquable

Code
rem |>
  dplyr::count(qualification, sort = TRUE) |>
  dplyr::mutate(qualification = forcats::fct_reorder(qualification, n)) |>
  ggplot(aes(n, qualification, fill = qualification)) +
  geom_col(width = 0.65) +
  geom_text(aes(label = n), hjust = -0.3, size = 3.5) +
  scale_fill_manual(values = pal_qual, guide = "none") +
  scale_x_continuous(expand = expansion(mult = c(0, 0.12))) +
  labs(title = "Motif de classement",
       subtitle = "La grande majorité le sont pour leur valeur paysagère (ampleur, silhouette)",
       x = NULL, y = NULL) +
  theme_barres

Code
rem |>
  dplyr::count(com_domanialite, sort = TRUE) |>
  dplyr::mutate(com_domanialite = forcats::fct_reorder(com_domanialite, n)) |>
  ggplot(aes(n, com_domanialite)) +
  geom_col(fill = "#3b6f8a", width = 0.65) +
  geom_text(aes(label = n), hjust = -0.3, size = 3.5) +
  scale_x_continuous(expand = expansion(mult = c(0, 0.12))) +
  labs(title = "Par type d'espace",
       subtitle = "Surtout dans les jardins et les deux bois",
       x = NULL, y = NULL) +
  theme_barres

Code
rem |>
  dplyr::filter(!is.na(arbres_genre)) |>
  dplyr::count(arbres_genre, sort = TRUE) |>
  head(10) |>
  dplyr::mutate(arbres_genre = forcats::fct_reorder(arbres_genre, n)) |>
  ggplot(aes(n, arbres_genre)) +
  geom_col(fill = "#2f6f4f", width = 0.7) +
  geom_text(aes(label = n), hjust = -0.3, size = 3.5) +
  scale_x_continuous(expand = expansion(mult = c(0, 0.12))) +
  labs(title = "Genres les plus représentés",
       subtitle = "Le platane, souvent planté en alignement, domine aussi chez les arbres remarquables",
       x = NULL, y = NULL) +
  theme_barres

Quelques records

Code
plus_vieux <- rem |> dplyr::arrange(annee) |> dplyr::slice(1)
plus_large <- rem |> dplyr::arrange(dplyr::desc(arbres_circonferenceencm)) |> dplyr::slice(1)
plus_haut  <- rem |> dplyr::arrange(dplyr::desc(arbres_hauteurenm)) |> dplyr::slice(1)
cat(sprintf(
  "\n- **Le plus ancien** : %s, %s — planté vers **%d**, sous le règne d'Henri IV.\n- **Le plus large** : %s, %s — **%.0f cm** de circonférence.\n- **Le plus haut** : %s, %s — **%.0f m**.\n",
  plus_vieux$com_nom_usuel, plus_vieux$com_site, plus_vieux$annee,
  plus_large$com_nom_usuel, plus_large$com_site, plus_large$arbres_circonferenceencm,
  plus_haut$com_nom_usuel, plus_haut$com_site, plus_haut$arbres_hauteurenm))
  • Le plus ancien : Robinier faux-acacia, Square René Viviani — planté vers 1602, sous le règne d’Henri IV.
  • Le plus large : Platane commun, Parc des Buttes Chaumont — 740 cm de circonférence.
  • Le plus haut : Platane commun, Bois de Boulogne. Route du lac Inférieur — 45 m.

Les 5 arbres classés pour leur valeur historique

Code
rem |>
  dplyr::filter(qualification == "Historique") |>
  dplyr::arrange(annee) |>
  dplyr::rowwise() |>
  dplyr::group_split() |>
  purrr::walk(~ cat(tree_card(.x)))
Robinier faux-acacia — Square René Viviani
planté vers 1602
Originaire des États-Unis, le Robinier faux-acacia appartient à la famille des Fabacées. Introduit et planté en 1601 par Jean Robin, auquel il doit son nom, cet arbre est le plus vieux de Paris. L’arbre originel, âgé de plus de 400 ans, est devenu plusieurs arbres soudés au sein d’un tronc vestige et dont les racines aériennes se développent à l’intérieur du tronc d’origine. Les jeunes arbres issus de sa souche et de ses racines ont été conservés afin d’assurer son avenir. fiche PDF ↗
Orme champêtre — Place Saint-Gervais
planté vers 1700
L’orme appartient à la famille des Ulmacées. Cet orme a été planté en 1935 sur la place Saint-Gervais où, depuis le Moyen-Âge, on se donnait rendez-vous pour solder ses dettes et régler les affaires. Jusqu’aux années soixante-dix, cette essence était fréquente en ville. Depuis plusieurs décennies, la maladie de la graphiose de l’orme éradique l’espèce commune. Pour maintenir l’orme à Paris, les sujets malades sont remplacés par des variétés sélectionnées pour leur résistance. fiche PDF ↗
Platanes communs — Jardin des Champs Elysées
planté vers 1700
Essence typique de la famille des Platanacées, le platane commun se caractérise par une écorce marbrée et des feuilles palmées semblables à l’érable plane. Plantés en 1900, ces deux sujets majestueux sont contemporains de la création du Grand et du Petit Palais. Leur port rayonnant est fidèle aux caractéristiques ornementales et esthétiques de l’essence. Leur ampleur souligne l’échelle monumentale et la dimension historique des lieux. fiche PDF ↗
Platanes communs — Jardin des Champs Elysées
planté vers 1700
Essence typique de la famille des Platanacées, le platane commun se caractérise par une écorce marbrée et des feuilles palmées semblables à l’érable plane. Plantés en 1900, ces deux sujets majestueux sont contemporains de la création du Grand et du Petit Palais. Leur port rayonnant est fidèle aux caractéristiques ornementales et esthétiques de l’essence. Leur ampleur souligne l’échelle monumentale et la dimension historique des lieux. fiche PDF ↗
Mûrier commun — Jardin de l’Ecole Normale Supérieure
planté vers 1860
En 1860, Louis Pasteur aurait fait planter ce Mûrier dans le cadre de ses études sur la biologie du ver à soie. fiche PDF ↗

Tous les arbres remarquables

Code
rem |>
  dplyr::arrange(dplyr::desc(annee)) |>
  dplyr::transmute(
    Photo = sprintf('<img src="%s" width="48" height="48" style="object-fit:cover;border-radius:.25rem">', com_url_photo1),
    Nom = com_nom_usuel, Site = com_site, Arrondissement = com_arrondissement,
    `Année` = annee, Qualification = qualification,
    Fiche = sprintf('<a href="%s" target="_blank">PDF ↗</a>', com_url_pdf)
  ) |>
  reactable::reactable(
    searchable = TRUE,
    filterable = TRUE,
    pagination = TRUE,
    defaultPageSize = 20,
    showPageSizeOptions = TRUE,
    pageSizeOptions = c(10, 20, 50, 185),
    compact = TRUE,
    resizable = TRUE,
    highlight = TRUE,
    wrap = TRUE,
    defaultColDef = reactable::colDef(
      align = "left",
      headerStyle = list(fontWeight = "bold"),
      style = list(whiteSpace = "normal", wordBreak = "break-word")
    ),
    columns = list(
      Photo = reactable::colDef(html = TRUE, sortable = FALSE, filterable = FALSE, width = 60),
      Nom   = reactable::colDef(minWidth = 160),
      Site  = reactable::colDef(minWidth = 200),
      Arrondissement = reactable::colDef(minWidth = 70, maxWidth = 110),
      `Année` = reactable::colDef(minWidth = 70, maxWidth = 90, align = "right"),
      Qualification = reactable::colDef(minWidth = 100, maxWidth = 130),
      Fiche = reactable::colDef(html = TRUE, sortable = FALSE, filterable = FALSE, minWidth = 60, maxWidth = 80)
    )
  )

Source & données

Code
tibble::tibble(
  ` ` = c("Jeu de données", "Producteur", "Licence", "Fichier", "Mise à jour", "Observations"),
  `  ` = c(
    "[Les arbres remarquables](https://opendata.paris.fr/explore/dataset/arbresremarquablesparis/information/)",
    "Direction des Espaces Verts et de l'Environnement (DEVE) — Ville de Paris",
    "Open Database License (ODbL)",
    sprintf("`data/paris/arbresremarquablesparis.parquet` (%s ko) + `arrondissements.parquet`",
            round(file.size(rem_path) / 1024)),
    format(as.Date(file.mtime(rem_path)), "%d %B %Y"),
    sprintf("%d arbres, plantés entre %d et %d", n_tot, min(rem$annee, na.rm = TRUE), max(rem$annee, na.rm = TRUE))
  )
) |>
  gt::gt() |> gt::fmt_markdown(columns = `  `) |>
  gt::tab_options(table.width = "100%", column_labels.hidden = TRUE)
Jeu de données Les arbres remarquables
Producteur Direction des Espaces Verts et de l’Environnement (DEVE) — Ville de Paris
Licence Open Database License (ODbL)
Fichier data/paris/arbresremarquablesparis.parquet (53 ko) + arrondissements.parquet
Mise à jour 04 septembre 2026
Observations 185 arbres, plantés entre 1602 et 2022