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("referentiel-archeologique-de-paris.qmd")'
knitr:: opts_chunk$ set (echo = TRUE , message = FALSE , warning = FALSE ,
fig.width = 8 , fig.height = 5 , dpi = 150 )
archeo_path <- here:: here ("data" , "paris" , "referentiel-archeologique-de-paris.parquet" )
archeo <- arrow:: read_parquet (archeo_path) |>
dplyr:: mutate (ar = suppressWarnings (as.integer (substr (code_postal, 4 , 5 ))))
n_tot <- nrow (archeo)
arr_sf <- arrondissements_sf ()
pts_sf <- archeo |>
dplyr:: mutate (geometry = wkb2sfc (geo_point_2d)) |>
sf:: st_as_sf (crs = 4326 )
eras <- c (protohistoire = "Protohistoire" , antiquite = "Antiquité" , moyen_age = "Moyen Âge" ,
temps_modernes = "Temps modernes" , epoque_contemporaine = "Époque contemporaine" )
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 ())
Le référentiel archéologique parisien recense les opérations et découvertes archéologiques connues sur le territoire — fouilles, diagnostics, découvertes anciennes ou fortuites — avec, pour chacune, les grandes périodes historiques attestées sur le site. 1811 opérations répertoriées, dont 778 avec des vestiges antiques et 639 avec des vestiges médiévaux .
Code
archeo |>
dplyr:: filter (! is.na (synthese), nchar (synthese) > 30 ) |>
dplyr:: transmute (Adresse = adresse, Nature = nature_operation, Synthèse = stringr:: str_trunc (synthese, 140 )) |>
head (6 ) |>
gt:: gt () |>
gt:: tab_header (title = "6 opérations avec synthèse détaillée" ) |>
gt:: tab_options (table.width = "100%" )
Adresse
Nature
Synthèse
36 rue Geoffroy-Saint-Hilaire
NA
Nouvelles galeries de botanique. Fouilles au droit de la porte de 11 heures n'ont rien donné sur le cours du ru de la Bièvre.
11 avenue des Gobelins
Découverte ancienne
En août-septembre 1962, à l'occasion de l'agrandissement du Prisunic, une surveillance a permis la découverte de trois cuves de pierre re...
218 rue Saint-Jacques
Découverte ancienne
Découverte de vestiges du cardo maximus par Théodore Vacquer à une date indéterminée.
2w rue de Médicis
Découverte ancienne
En 1807, l'achitecte du Sénat Chalgrin mentionne des murs non datés, des tuiles romaines et des fragments de mosaïques. A la même époque,...
31 rue de Tournon
Sauvetage urgent
En octobre 1966, à l'occasion de la construction d'un transformateur d'E.D.F., une surveillance et des relevés ont été effectués. Cette s...
1 rue Coquillière
NA
Un pan de mur a été signalé par l'architecte voyer en 1907, avant la démolition des immeubles pour l'élargissement de la rue. D'après les...
Où sont les sites
Code
pal <- leaflet:: colorFactor ("Set1" , domain = names (eras)[eras != "" ],
levels = c ("antiquite" , "moyen_age" , "temps_modernes" ,
"epoque_contemporaine" , "protohistoire" ))
periode_principale <- function (df) {
dplyr:: case_when (
df$ antiquite == "Oui" ~ "antiquite" ,
df$ moyen_age == "Oui" ~ "moyen_age" ,
df$ temps_modernes == "Oui" ~ "temps_modernes" ,
df$ epoque_contemporaine == "Oui" ~ "epoque_contemporaine" ,
df$ protohistoire == "Oui" ~ "protohistoire" ,
TRUE ~ NA_character_
)
}
pts_sf$ periode <- periode_principale (pts_sf)
leaflet:: leaflet (dplyr:: filter (pts_sf, ! is.na (periode)), 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.75 , fillColor = ~ pal (periode),
label = ~ adresse,
popup = ~ sprintf ("<b>%s</b><br>%s<br>%s" , adresse, nature_operation,
stringr:: str_trunc (dplyr:: coalesce (synthese, "" ), 200 ))
) |>
leaflet:: addLegend ("bottomright" , pal = pal, values = ~ periode, title = "Période la plus ancienne attestée" ,
labels = eras[c ("antiquite" , "moyen_age" , "temps_modernes" , "epoque_contemporaine" , "protohistoire" )],
opacity = 0.9 )
Antiquité concentrée sur l’Île de la Cité et la rive gauche (tracé de Lutèce) ; « période » = la plus ancienne des époques attestées sur le site.
Par arrondissement
Code
cnt <- archeo |> 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 = "cividis" , direction = - 1 , na.value = "grey92" , name = "Opérations" ) +
labs (title = "Opérations archéologiques par arrondissement" ,
subtitle = "Les 4ᵉ et 5ᵉ arrondissements (cœur historique) dominent" ) +
theme_carte
Les périodes attestées
Code
purrr:: imap_dfr (eras, ~ tibble:: tibble (periode = .y, n = sum (archeo[[.x]] == "Oui" , na.rm = TRUE ))) |>
dplyr:: mutate (periode = forcats:: fct_reorder (factor (periode, levels = eras), n)) |>
ggplot (aes (n, periode)) +
geom_col (fill = "#7a5a2b" , width = 0.6 ) +
geom_text (aes (label = n), hjust = - 0.2 , size = 3.2 ) +
scale_x_continuous (expand = expansion (mult = c (0 , 0.12 ))) +
labs (title = "Nombre d'opérations avec vestiges attestés, par période" ,
subtitle = "Aucun vestige préhistorique recensé dans ce référentiel" , x = NULL , y = NULL ) +
theme_barres
Nature des opérations
Code
archeo |>
dplyr:: filter (! is.na (nature_operation)) |>
dplyr:: count (nature_operation, sort = TRUE ) |>
dplyr:: mutate (nature_operation = forcats:: fct_reorder (nature_operation, n)) |>
ggplot (aes (n, nature_operation)) +
geom_col (fill = "#3b6f8a" , width = 0.6 ) +
geom_text (aes (label = n), hjust = - 0.2 , size = 3 ) +
scale_x_continuous (expand = expansion (mult = c (0 , 0.12 ))) +
labs (title = "Type d'opération archéologique" ,
subtitle = "Les « découvertes anciennes » (avant l'archéologie préventive) dominent le référentiel" ,
x = NULL , y = NULL ) +
theme_barres
Toutes les opérations
Code
archeo |>
dplyr:: transmute (Adresse = adresse, Arrondissement = ar, Nature = nature_operation,
Antiquité = antiquite, ` Moyen Âge ` = moyen_age, Date = date_operation) |>
reactable:: reactable (
searchable = TRUE ,
filterable = TRUE ,
pagination = TRUE ,
defaultPageSize = 20 ,
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 (
Adresse = reactable:: colDef (minWidth = 200 ),
Arrondissement = reactable:: colDef (minWidth = 70 , maxWidth = 110 ),
Nature = reactable:: colDef (minWidth = 140 ),
Antiquité = reactable:: colDef (minWidth = 80 , maxWidth = 110 ),
` Moyen Âge ` = reactable:: colDef (minWidth = 80 , maxWidth = 110 ),
Date = reactable:: colDef (minWidth = 90 , maxWidth = 130 )
)
)
Source & données
Code
tibble:: tibble (
` ` = c ("Jeu de données" , "Producteur" , "Licence" , "Fichier" , "Mise à jour" , "Observations" ),
` ` = c (
"[Référentiel archéologique de Paris](https://opendata.paris.fr/explore/dataset/referentiel-archeologique-de-paris/information/)" ,
"Direction des Affaires Culturelles — Ville de Paris" ,
"Open Database License (ODbL)" ,
sprintf ("`data/paris/referentiel-archeologique-de-paris.parquet` (%s ko) + `arrondissements.parquet`" ,
round (file.size (archeo_path) / 1024 )),
format (as.Date (file.mtime (archeo_path)), "%d %B %Y" ),
sprintf ("%d opérations" , n_tot)
)
) |>
gt:: gt () |> gt:: fmt_markdown (columns = ` ` ) |>
gt:: tab_options (table.width = "100%" , column_labels.hidden = TRUE )
Jeu de données
Référentiel archéologique de Paris
Producteur
Direction des Affaires Culturelles — Ville de Paris
Licence
Open Database License (ODbL)
Fichier
data/paris/referentiel-archeologique-de-paris.parquet (832 ko) + arrondissements.parquet
Mise à jour
05 septembre 2026
Observations
1811 opérations