PROFIT - Analyse des relations entre carreaux et IRIS

Author
Affiliation

Nicolas Roelandt

library(dplyr) # data handling
library(archive) # read 7z files
library(sf) # read and work with geospatial data
library(tools) # checksum and filepath tooling
library(targets)

emprise <- targets::tar_read(area)

Préparation des données

Téléchargement des données

targets::tar_load(iris)
targets::tar_load(carreaux)

Extraction des archives et lecture des données

Nantes Métropole

emprise
Geometry set for 1 feature 
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 328183.3 ymin: 6677203 xmax: 370832.9 ymax: 6704770
Projected CRS: RGF93 v1 / Lambert-93

Extraction des IRIS

iris
Simple feature collection with 265 features and 7 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 321611.2 ymin: 6668908 xmax: 374966.8 ymax: 6709337
Projected CRS: RGF93 v1 / Lambert-93
First 10 features:
                     cleabs code_insee               nom_commune iris code_iris
1  IRIS____0000000441430101      44143                      Rezé 0101 441430101
2  IRIS____0000000441620104      44162            Saint-Herblain 0104 441620104
3  IRIS____0000000442150104      44215                    Vertou 0104 442150104
4  IRIS____0000000440200106      44020                Bouguenais 0106 440200106
5  IRIS____0000000441720106      44172     Sainte-Luce-sur-Loire 0106 441720106
6  IRIS____0000000440260106      44026                 Carquefou 0106 440260106
7  IRIS____0000000441900109      44190 Saint-Sébastien-sur-Loire 0109 441900109
8  IRIS____0000000440350109      44035     La Chapelle-sur-Erdre 0109 440350109
9  IRIS____0000000440350110      44035     La Chapelle-sur-Erdre 0110 440350110
10 IRIS____0000000441140112      44114                   Orvault 0112 441140112
                             nom_iris type_iris                      geometrie
1          Z.A. Atout Sud-Trentemoult         A MULTIPOLYGON (((352148.7 66...
2               Les Lions-Angevinière         A MULTIPOLYGON (((350495.4 66...
3       Z.A. Parc Industriel Vertonne         A MULTIPOLYGON (((359493.3 66...
4                   Centre Économique         A MULTIPOLYGON (((349635.8 66...
5             Z.A. RN 23-Maison Neuve         A MULTIPOLYGON (((360284.7 66...
6  Zone Industrielle Nantes Carquefou         A MULTIPOLYGON (((359284.8 66...
7                         Z.A. Auchan         A MULTIPOLYGON (((359702.4 66...
8                   Z.A. Erdre Active         A MULTIPOLYGON (((355895.9 66...
9        Z.A. Newton-Ampère-Babinière         A MULTIPOLYGON (((355800.1 66...
10                     Z.A. Grand Val         A MULTIPOLYGON (((352575.2 66...

Extraction des carreaux

carreaux
Simple feature collection with 6786 features and 34 fields
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: 331852.8 ymin: 6678178 xmax: 370588.3 ymax: 6704359
Projected CRS: RGF93 v1 / Lambert-93
First 10 features:
                       idcar_200m                       idcar_1km
1  CRS3035RES200mN2734400E3454000 CRS3035RES1000mN2734000E3454000
2  CRS3035RES200mN2734600E3453800 CRS3035RES1000mN2734000E3453000
3  CRS3035RES200mN2734600E3454400 CRS3035RES1000mN2734000E3454000
4  CRS3035RES200mN2734600E3455000 CRS3035RES1000mN2734000E3455000
5  CRS3035RES200mN2734800E3453800 CRS3035RES1000mN2734000E3453000
6  CRS3035RES200mN2734800E3454000 CRS3035RES1000mN2734000E3454000
7  CRS3035RES200mN2734800E3454200 CRS3035RES1000mN2734000E3454000
8  CRS3035RES200mN2734800E3454400 CRS3035RES1000mN2734000E3454000
9  CRS3035RES200mN2734800E3454800 CRS3035RES1000mN2734000E3454000
10 CRS3035RES200mN2734800E3455000 CRS3035RES1000mN2734000E3455000
                         idcar_nat i_est_200 i_est_1km   lcog_geo ind men
1  CRS3035RES1000mN2734000E3454000         1         0 4403744215   1 0.4
2  CRS3035RES2000mN2734000E3452000         1         0 4421544037   5 2.1
3  CRS3035RES1000mN2734000E3454000         1         0 4403744215  10 3.7
4  CRS3035RES1000mN2734000E3455000         1         0 4403744215  12 4.7
5  CRS3035RES2000mN2734000E3452000         1         0      44215  19 7.9
6  CRS3035RES1000mN2734000E3454000         1         0      44215  21 7.8
7  CRS3035RES1000mN2734000E3454000         1         0 4421544037   9 3.3
8  CRS3035RES1000mN2734000E3454000         1         0 4421544037  18 6.7
9  CRS3035RES1000mN2734000E3454000         1         0      44215   9 3.3
10 CRS3035RES1000mN2734000E3455000         1         0 4421544037  18 7.0
   men_pauv men_1ind men_5ind men_prop men_fmp  ind_snv men_surf men_coll
1       0.0      0.1      0.0      0.3     0.0  25506.6     38.2      0.0
2       0.1      0.5      0.2      1.8     0.2 116848.4    231.8      0.0
3       0.2      0.8      0.5      3.2     0.2 255066.4    382.0      0.1
4       0.3      1.0      0.3      3.8     0.3 326135.4    512.2      0.0
5       0.5      1.9      0.9      7.0     0.9 444024.0    881.0      0.0
6       0.5      1.8      1.0      6.7     0.5 535639.4    802.3      0.3
7       0.2      0.8      0.4      2.9     0.2 229559.7    343.8      0.1
8       0.4      1.5      0.8      5.7     0.4 459119.5    687.7      0.3
9       0.2      0.8      0.4      2.9     0.2 229559.7    343.8      0.1
10      0.4      1.5      0.4      5.6     0.4 489203.2    768.4      0.0
   men_mais log_av45 log_45_70 log_70_90 log_ap90 log_inc log_soc ind_0_3
1       0.4      0.2       0.0       0.1      0.1       0       0     0.1
2       2.1      0.4       0.0       0.8      0.9       0       0     0.0
3       3.6      1.5       0.1       1.1      1.0       0       0     0.6
4       4.7      2.0       0.2       1.2      1.3       0       0     0.3
5       7.9      1.4       0.0       3.2      3.3       0       0     0.0
6       7.5      3.2       0.3       2.2      2.1       0       0     1.3
7       3.2      1.4       0.1       0.9      0.9       0       0     0.5
8       6.4      2.7       0.3       1.9      1.8       0       0     1.1
9       3.2      1.4       0.1       0.9      0.9       0       0     0.5
10      7.0      3.0       0.3       1.8      1.9       0       0     0.4
   ind_4_5 ind_6_10 ind_11_17 ind_18_24 ind_25_39 ind_40_54 ind_55_64 ind_65_79
1      0.0      0.1       0.1       0.0       0.2       0.2       0.2       0.1
2      0.0      0.1       0.6       0.6       0.2       1.3       1.0       0.9
3      0.2      1.2       0.8       0.5       2.2       1.7       1.6       1.0
4      0.0      1.0       1.5       1.0       1.5       3.5       0.5       1.5
5      0.0      0.5       2.3       2.3       0.9       5.1       3.7       3.3
6      0.3      2.5       1.7       1.0       4.6       3.7       3.3       2.1
7      0.1      1.1       0.8       0.4       2.0       1.6       1.4       0.9
8      0.3      2.2       1.5       0.8       3.9       3.1       2.9       1.8
9      0.1      1.1       0.8       0.4       2.0       1.6       1.4       0.9
10     0.0      1.5       2.2       1.5       2.4       5.2       0.8       2.2
   ind_80p ind_inc                           geom
1      0.0       0 POLYGON ((361439.9 6678178,...
2      0.3       0 POLYGON ((361222.1 6678357,...
3      0.2       0 POLYGON ((361819.7 6678416,...
4      1.2       0 POLYGON ((362417.3 6678475,...
5      0.9       0 POLYGON ((361203.5 6678556,...
6      0.5       0 POLYGON ((361402.7 6678575,...
7      0.2       0 POLYGON ((361601.9 6678595,...
8      0.4       0 POLYGON ((361801.1 6678615,...
9      0.2       0 POLYGON ((362199.5 6678654,...
10     1.8       0 POLYGON ((362398.6 6678673,...

Cartographie

plot(sf::st_geometry(iris), border = "red", lwd = 2)
plot(sf::st_geometry(carreaux), border = "blue", col = "blue", add = TRUE)
Figure 1: Superposition carroyage et IRIS

Nombre de carreaux contenus par IRIS

nbre_carreaux_par_iris <- iris |> 
    sf::st_join(carreaux) |> sf::st_drop_geometry() |> 
    dplyr::group_by(code_iris) |> dplyr::tally(name = "Carreaux", sort =  TRUE)

nbre_carreaux_par_iris |> dplyr::group_by(Carreaux) |> 
                      dplyr::count(name = "Nombre", sort = TRUE) |> knitr::kable()
Table 1: Nombre de carreaux par IRIS
Carreaux Nombre
23 12
19 11
1 10
16 9
18 9
20 9
22 8
11 7
17 7
24 7
25 7
31 7
36 7
13 6
14 6
21 6
26 6
12 5
15 5
10 4
27 4
28 4
30 4
34 4
39 4
48 4
5 3
8 3
9 3
29 3
32 3
33 3
41 3
45 3
3 2
4 2
6 2
35 2
38 2
40 2
44 2
49 2
51 2
52 2
55 2
58 2
86 2
138 2
151 2
2 1
7 1
37 1
43 1
46 1
54 1
59 1
60 1
65 1
68 1
69 1
71 1
73 1
74 1
80 1
81 1
82 1
84 1
89 1
90 1
94 1
95 1
98 1
104 1
105 1
109 1
115 1
126 1
132 1
133 1
139 1
154 1
160 1
169 1
171 1
190 1
220 1
222 1
312 1
hist(nbre_carreaux_par_iris$Carreaux, main ="Répartition du nombre de carreaux intersectés par IRIS", xlab ="Nombre de carreau") 
Figure 2: Nombre de carreaux par IRIS

Nombre de carreaux intégralement contenus

Table 2
carreaux_contenus <- carreaux |> sf::st_join(iris, join = st_within)

Sur 6786 carreaux inclus dans la zone d’étude, 4197 ne font partie que d’un seul IRIS, 2589 font partie de plusieurs IRIS.

carreaux_contenus <- carreaux_contenus |> sf::st_drop_geometry() |> 
    dplyr::mutate(
  contenu = dplyr::case_when(
    is.na(cleabs) ~ "Plusieurs IRIS",
    .default = "IRIS unique"
  )
  ) 
dplyr::glimpse(carreaux_contenus)
Rows: 6,786
Columns: 42
$ idcar_200m  <chr> "CRS3035RES200mN2734400E3454000", "CRS3035RES200mN2734600E…
$ idcar_1km   <chr> "CRS3035RES1000mN2734000E3454000", "CRS3035RES1000mN273400…
$ idcar_nat   <chr> "CRS3035RES1000mN2734000E3454000", "CRS3035RES2000mN273400…
$ i_est_200   <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1…
$ i_est_1km   <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ lcog_geo    <chr> "4403744215", "4421544037", "4403744215", "4403744215", "4…
$ ind         <dbl> 1.0, 5.0, 10.0, 12.0, 19.0, 21.0, 9.0, 18.0, 9.0, 18.0, 11…
$ men         <dbl> 0.4, 2.1, 3.7, 4.7, 7.9, 7.8, 3.3, 6.7, 3.3, 7.0, 5.2, 12.…
$ men_pauv    <dbl> 0.0, 0.1, 0.2, 0.3, 0.5, 0.5, 0.2, 0.4, 0.2, 0.4, 0.9, 0.0…
$ men_1ind    <dbl> 0.1, 0.5, 0.8, 1.0, 1.9, 1.8, 0.8, 1.5, 0.8, 1.5, 1.7, 2.0…
$ men_5ind    <dbl> 0.0, 0.2, 0.5, 0.3, 0.9, 1.0, 0.4, 0.8, 0.4, 0.4, 0.3, 1.0…
$ men_prop    <dbl> 0.3, 1.8, 3.2, 3.8, 7.0, 6.7, 2.9, 5.7, 2.9, 5.6, 3.2, 11.…
$ men_fmp     <dbl> 0.0, 0.2, 0.2, 0.3, 0.9, 0.5, 0.2, 0.4, 0.2, 0.4, 0.3, 0.0…
$ ind_snv     <dbl> 25506.6, 116848.4, 255066.4, 326135.4, 444024.0, 535639.4,…
$ men_surf    <dbl> 38.2, 231.8, 382.0, 512.2, 881.0, 802.3, 343.8, 687.7, 343…
$ men_coll    <dbl> 0.0, 0.0, 0.1, 0.0, 0.0, 0.3, 0.1, 0.3, 0.1, 0.0, 0.0, 0.0…
$ men_mais    <dbl> 0.4, 2.1, 3.6, 4.7, 7.9, 7.5, 3.2, 6.4, 3.2, 7.0, 5.2, 12.…
$ log_av45    <dbl> 0.2, 0.4, 1.5, 2.0, 1.4, 3.2, 1.4, 2.7, 1.4, 3.0, 0.9, 3.0…
$ log_45_70   <dbl> 0.0, 0.0, 0.1, 0.2, 0.0, 0.3, 0.1, 0.3, 0.1, 0.3, 0.6, 0.0…
$ log_70_90   <dbl> 0.1, 0.8, 1.1, 1.2, 3.2, 2.2, 0.9, 1.9, 0.9, 1.8, 2.3, 4.0…
$ log_ap90    <dbl> 0.1, 0.9, 1.0, 1.3, 3.3, 2.1, 0.9, 1.8, 0.9, 1.9, 1.4, 5.0…
$ log_inc     <dbl> 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0…
$ log_soc     <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ ind_0_3     <dbl> 0.1, 0.0, 0.6, 0.3, 0.0, 1.3, 0.5, 1.1, 0.5, 0.4, 0.0, 1.0…
$ ind_4_5     <dbl> 0.0, 0.0, 0.2, 0.0, 0.0, 0.3, 0.1, 0.3, 0.1, 0.0, 0.3, 0.0…
$ ind_6_10    <dbl> 0.1, 0.1, 1.2, 1.0, 0.5, 2.5, 1.1, 2.2, 1.1, 1.5, 0.6, 1.0…
$ ind_11_17   <dbl> 0.1, 0.6, 0.8, 1.5, 2.3, 1.7, 0.8, 1.5, 0.8, 2.2, 0.9, 1.0…
$ ind_18_24   <dbl> 0.0, 0.6, 0.5, 1.0, 2.3, 1.0, 0.4, 0.8, 0.4, 1.5, 0.9, 4.0…
$ ind_25_39   <dbl> 0.2, 0.2, 2.2, 1.5, 0.9, 4.6, 2.0, 3.9, 2.0, 2.4, 0.9, 3.0…
$ ind_40_54   <dbl> 0.2, 1.3, 1.7, 3.5, 5.1, 3.7, 1.6, 3.1, 1.6, 5.2, 1.4, 10.…
$ ind_55_64   <dbl> 0.2, 1.0, 1.6, 0.5, 3.7, 3.3, 1.4, 2.9, 1.4, 0.8, 2.9, 5.0…
$ ind_65_79   <dbl> 0.1, 0.9, 1.0, 1.5, 3.3, 2.1, 0.9, 1.8, 0.9, 2.2, 2.0, 4.0…
$ ind_80p     <dbl> 0.0, 0.3, 0.2, 1.2, 0.9, 0.5, 0.2, 0.4, 0.2, 1.8, 1.1, 1.0…
$ ind_inc     <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ cleabs      <chr> NA, NA, NA, NA, "IRIS____0000000442150107", "IRIS____00000…
$ code_insee  <chr> NA, NA, NA, NA, "44215", "44215", NA, NA, "44215", NA, "44…
$ nom_commune <chr> NA, NA, NA, NA, "Vertou", "Vertou", NA, NA, "Vertou", NA, …
$ iris        <chr> NA, NA, NA, NA, "0107", "0107", NA, NA, "0107", NA, "0107"…
$ code_iris   <chr> NA, NA, NA, NA, "442150107", "442150107", NA, NA, "4421501…
$ nom_iris    <chr> NA, NA, NA, NA, "Portillon-Pégers-Reigners", "Portillon-Pé…
$ type_iris   <chr> NA, NA, NA, NA, "H", "H", NA, NA, "H", NA, "H", "H", "H", …
$ contenu     <chr> "Plusieurs IRIS", "Plusieurs IRIS", "Plusieurs IRIS", "Plu…
carreaux_contenus |> 
  # Transformation en table de fréquence
  dplyr::select(contenu) |> unlist() |> 
  as_tibble() |> 
  count(value, name = "Individus") |> 
  mutate(Pourcentage = round(Individus / sum(Individus),2)) |>
  knitr::kable()
Table 3: Carreaux contenus dans un seul IRIS
value Individus Pourcentage
IRIS unique 4197 0.62
Plusieurs IRIS 2589 0.38

Chevauchement des carreaux par les IRIS

Répartition du nombre de chevauchement des carreaux par des IRIS distincts.

chevauchement <- carreaux |> 
    sf::st_join(iris) |> sf::st_drop_geometry() |> 
    dplyr::group_by(idcar_200m) |> dplyr::tally(name = "Chevauchements", sort =  TRUE)

chevauchement |> dplyr::group_by(Chevauchements) |> 
             dplyr::count(name = "Nombre") |> knitr::kable()
Table 4: Nombre de chevauchements d’IRIS pour chaque carreau
Chevauchements Nombre
1 4197
2 2128
3 393
4 63
5 5
hist(chevauchement$Chevauchements,
     main = "Nombre de chevauchement d'IRIS par carreau",
     xlab = "Nombre de chevauchement"
    )
Figure 3: Nombre de chevauchement d’IRIS par carreau

Chevauchement Carreaux / IRIS

surface_carreau <- mean(st_area(carreaux))
surface_carreau
39930.15 [m^2]
inter_carreaux_iris <- sf::st_intersection(carreaux, iris) |> dplyr::select(idcar_200m,cleabs)
inter_carreaux_iris
Simple feature collection with 9909 features and 2 fields
Geometry type: GEOMETRY
Dimension:     XY
Bounding box:  xmin: 331852.8 ymin: 6678178 xmax: 370588.3 ymax: 6704359
Projected CRS: RGF93 v1 / Lambert-93
First 10 features:
                         idcar_200m                   cleabs
2165 CRS3035RES200mN2743600E3447800 IRIS____0000000441430101
2166 CRS3035RES200mN2743600E3448000 IRIS____0000000441430101
2167 CRS3035RES200mN2743600E3448200 IRIS____0000000441430101
2168 CRS3035RES200mN2743600E3449200 IRIS____0000000441430101
2227 CRS3035RES200mN2743800E3446400 IRIS____0000000441430101
2228 CRS3035RES200mN2743800E3446600 IRIS____0000000441430101
2229 CRS3035RES200mN2743800E3446800 IRIS____0000000441430101
2230 CRS3035RES200mN2743800E3448800 IRIS____0000000441430101
2291 CRS3035RES200mN2744000E3446400 IRIS____0000000441430101
2292 CRS3035RES200mN2744000E3446600 IRIS____0000000441430101
                               geom
2165 POLYGON ((354588.4 6686924,...
2166 POLYGON ((354588.4 6686924,...
2167 POLYGON ((354787.6 6686943,...
2168 POLYGON ((355783.7 6687042,...
2227 POLYGON ((352976.1 6686965,...
2228 POLYGON ((353175.3 6686985,...
2229 POLYGON ((353374.5 6687004,...
2230 POLYGON ((355366.6 6687201,...
2291 POLYGON ((352957.5 6687164,...
2292 POLYGON ((353156.7 6687183,...

Exemples

Chevauchements simples

selection <- carreaux |> dplyr::left_join(carreaux_contenus) |> filter(is.na(cleabs)) |> head()
plot(st_geometry(selection))
plot(st_geometry(iris), add=TRUE)
plot(st_geometry(selection), add= TRUE, border = "blue")

Chevauchements multiples

selection <- carreaux |> dplyr::left_join(chevauchement) |> dplyr::filter(Chevauchements == 5)
plot(st_geometry(selection))
plot(st_geometry(iris), add=TRUE)
plot(st_geometry(selection), add= TRUE, border = "blue")

Taux de chevauchement

carreaux_parts <- inter_carreaux_iris |>
    dplyr::anti_join(carreaux_contenus ) # remove fully integrated carreaux

carreaux_parts <- carreaux_parts |> dplyr::mutate(
     surface = sf::st_area(carreaux_parts),
     couverture = round(units::drop_units(sf::st_area(carreaux_parts)/ surface_carreau),2)
    )
summary(carreaux_parts$couverture)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.0000  0.1200  0.4100  0.4533  0.7900  1.0000 
hist(carreaux_parts$couverture, main = 'Taux de couverture des carreaux par les IRIS', xlab = "Pourcentage de couverture")

Taux de chevauchement sans les valeurs extrêmes

carreaux_morceaux <- carreaux_parts |> dplyr::filter(couverture > 0 & couverture < 1)
dplyr::glimpse(carreaux_morceaux)
Rows: 5,208
Columns: 5
$ idcar_200m <chr> "CRS3035RES200mN2743600E3448000", "CRS3035RES200mN2743600E3…
$ cleabs     <chr> "IRIS____0000000441430101", "IRIS____0000000441430101", "IR…
$ geom       <POLYGON [m]> POLYGON ((354588.4 6686924,..., POLYGON ((354787.6 …
$ surface    [m^2] 7601.662 [m^2], 16900.990 [m^2], 7729.556 [m^2], 32792.241 …
$ couverture <dbl> 0.19, 0.42, 0.19, 0.82, 0.43, 0.96, 0.11, 0.78, 0.13, 0.07,…
summary(carreaux_morceaux$couverture)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.0100  0.1400  0.4300  0.4608  0.7725  0.9900 
hist(carreaux_morceaux$couverture)
Figure 4: Répartition des taux de couverture par un IRIS des carreaux

Carreaux hors IRIS

carreaux_isoles <- carreaux_parts |> dplyr::filter(couverture == 0)
dplyr::glimpse(carreaux_isoles)
Rows: 315
Columns: 5
$ idcar_200m <chr> "CRS3035RES200mN2743600E3447800", "CRS3035RES200mN2744200E3…
$ cleabs     <chr> "IRIS____0000000441430101", "IRIS____0000000441430101", "IR…
$ geom       <GEOMETRY [m]> POLYGON ((354588.4 6686924,..., POLYGON ((355745.8…
$ surface    [m^2] 0.1212462 [m^2], 128.1159051 [m^2], 85.2865239 [m^2], 13.86…
$ couverture <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
plot(st_geometry(carreaux_isoles))
plot(st_geometry(iris), add = TRUE)
plot(st_geometry(carreaux_isoles), add= TRUE, col = "blue", border = "blue")
Figure 5: Carreaux totalement hors d’un IRIS

Carreaux couverts à 100 %

carreaux_inclus <- carreaux_parts |> dplyr::filter(couverture == 1)
dplyr::glimpse(carreaux_inclus)
Rows: 189
Columns: 5
$ idcar_200m <chr> "CRS3035RES200mN2750400E3456000", "CRS3035RES200mN2742200E3…
$ cleabs     <chr> "IRIS____0000000441720106", "IRIS____0000000441900109", "IR…
$ geom       <POLYGON [m]> POLYGON ((361922.6 6694462,..., POLYGON ((360894.3 …
$ surface    [m^2] 39928.30 [m^2], 39926.61 [m^2], 39782.50 [m^2], 39782.05 [m…
$ couverture <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
plot(st_geometry(carreaux_inclus))
plot(st_geometry(iris), add=TRUE)
plot(st_geometry(carreaux_inclus), add= TRUE, border = "blue")
Figure 6: Carreaux entiers entièrement inclus dans un IRIS

Appendix

Reproductibility

Data sources

  • IRIS Grande Echelle : https://data.geopf.fr/telechargement/download/IRIS-GE/IRIS-GE_3-0__GPKG_LAMB93_D044_2025-01-01/IRIS-GE_3-0__GPKG_LAMB93_D044_2025-01-01.7z
  • Données carroyées : https://www.insee.fr/fr/statistiques/fichier/7655475/Filosofi2019_carreaux_200m_gpkg.zip
  • Communes de Nantes Métropole : https://data.nantesmetropole.fr/api/explore/v2.1/catalog/datasets/244400404_communes-nantes-metropole/exports/fgb?lang=fr&timezone=Europe%2FBerlin

Code source

Source code is available in the Gustave Eiffel university’s forge : https://gitlab.univ-eiffel.fr/ame/splott/profit-analyse-des-relations-entre-carreaux-et-iris/

Environnement

xfun::session_info()
R version 4.5.1 (2025-06-13)
Platform: x86_64-pc-linux-gnu
Running under: Manjaro Linux

Locale:
  LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
  LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
  LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
  LC_PAPER=en_US.UTF-8       LC_NAME=C                 
  LC_ADDRESS=C               LC_TELEPHONE=C            
  LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

Package version:
  archive_1.1.12     backports_1.5.0    base64enc_0.1.3    base64url_1.4     
  bslib_0.9.0        cachem_1.1.0       callr_3.7.6        class_7.3-23      
  classInt_0.4-11    cli_3.6.5          codetools_0.2-20   compiler_4.5.1    
  cpp11_0.5.2        data.table_1.17.8  DBI_1.2.3          digest_0.6.37     
  dplyr_1.1.4        e1071_1.7-16       evaluate_1.0.4     fastmap_1.2.0     
  fontawesome_0.5.3  fs_1.6.6           generics_0.1.4     glue_1.8.0        
  graphics_4.5.1     grDevices_4.5.1    grid_4.5.1         highr_0.11        
  htmltools_0.5.8.1  igraph_2.1.4       jquerylib_0.1.4    jsonlite_2.0.0    
  KernSmooth_2.23-26 knitr_1.50         lattice_0.22.7     lifecycle_1.0.4   
  magrittr_2.0.3     MASS_7.3.65        Matrix_1.7.3       memoise_2.0.1     
  methods_4.5.1      mime_0.13          pillar_1.11.0      pkgconfig_2.0.3   
  prettyunits_1.2.0  processx_3.8.6     proxy_0.4-27       ps_1.9.1          
  R6_2.6.1           rappdirs_0.3.3     Rcpp_1.1.0         rlang_1.1.6       
  rmarkdown_2.29     s2_1.1.9           sass_0.4.10        secretbase_1.0.5  
  sf_1.0-21          stats_4.5.1        targets_1.11.3     tibble_3.3.0      
  tidyselect_1.2.1   tinytex_0.57       tools_4.5.1        units_0.8-7       
  utf8_1.2.6         utils_4.5.1        vctrs_0.6.5        withr_3.0.2       
  wk_0.9.4           xfun_0.52          yaml_2.3.10