sf: manipulation d’objets spatiaux
- Lisez le shapefile arrondissements (téléchargeable ici)
arrondissements=st_read("data/adr_voie_lieu.shp/adr_voie_lieu.adrarrond.shp")
## Reading layer `adr_voie_lieu.adrarrond' from data source `C:\Users\lvaudor\Desktop\tmap\data\adr_voie_lieu.shp\adr_voie_lieu.adrarrond.shp' using driver `ESRI Shapefile'
## Simple feature collection with 9 features and 6 fields
## geometry type: POLYGON
## dimension: XY
## bbox: xmin: 4.771796 ymin: 45.70737 xmax: 4.898374 ymax: 45.80829
## epsg (SRID): 4326
## proj4string: +proj=longlat +datum=WGS84 +no_defs
- Calculez les aires des arrondissements
st_area(arrondissements)
## Units: [m^2]
## [1] 3363397 2937869 9626046 7525409 6670074 3771845 1513772 6374998 6191397
- Classez la table d’attributs
arrondissements
par aire décroissante
arrondissements= arrondissements %>%
mutate(area=st_area(arrondissements)) %>%
arrange(desc(area))
- Lisez la table lyon_equipements (disponible ici), transformez-la en objet sf
lyon_equipements=read_csv("https://raw.githubusercontent.com/lvaudor/lyon_equipements/master/lyon_equipements.csv") %>%
st_as_sf(coords=c("lon","lat")) %>%
st_set_crs(4326)
- Réunissez les polygones des arrondissements en un seul polygone délimitant la ville de Lyon
lyon=st_union(arrondissements)
- Réalisez une jointure spatiale de
lyon_equipements
et arrondissements
lyon_equipements=st_join(lyon_equipements,arrondissements)
- Gardez dans
lyon_equipements
uniquement les équipements qui sont effectivement situés dans la ville de Lyon.
lyon_equipements=filter(lyon_equipements,!is.na(nomreduit))
tmap: création de cartes
- Montrez les équipements sur une carte
tmap_mode("view")
tm_shape(lyon_equipements)+
tm_squares()
- Rajoutez les polygones des arrondissements
tm_shape(lyon_equipements)+
tm_squares()+
tm_shape(arrondissements)+
tm_borders(col="blue")
- Calculez le nombre total d’équipements pour chaque arrondissement. Vous pourrez pour ce faire considérer
lyon_equipements
comme une simple table (st_drop_geometry()
).
effectifs_arrondissement=lyon_equipements %>%
st_drop_geometry() %>%
group_by(nomreduit) %>%
summarise(ntot=n())
- Réalisez une jointure (non spatiale) pour disposer du nombre d’équipements total pour chaque arrondissements.
arrondissements=left_join(arrondissements,effectifs_arrondissement,by="nomreduit")
- Calculez
nrel
, le nombre d’équipements par km2 pour chaque arrondissement (vous pouvez utiliser units::set_units()
pour convertir l’aire à l’unité de votre choix)
arrondissements=arrondissements %>%
mutate(area=units::set_units(area,km^2)) %>%
mutate(nrel=ntot/area)
- Réalisez une carte montrant la densité d’équipements pour les différents arrondissements
tm_shape(arrondissements)+
tm_polygons(col="nrel")
- Calculez le nombre d’équipements de chaque type pour chaque arrondissement.
effectifs_type_arrondissement=lyon_equipements %>%
st_drop_geometry() %>%
group_by(nomreduit,type) %>%
summarise(n=n())
- Réalisez une jointure (non spatiale) pour disposer du nombre d’équipements de chaque type pour chaque arrondissement.
arrondissements=left_join(arrondissements,effectifs_type_arrondissement,by=c("nomreduit"))
- Calculez
nreltype
le nombre d’équipements d’un type ramené au nombre total d’équipements de chaque arrondissement.
arrondissements=arrondissements %>%
mutate(nreltype=n/ntot)
- Montrez sur une carte la densité d’équipements de type “petite_enfance” pour les arrondissements de Lyon
tm_shape(arrondissements %>% filter(type=="petite_enfance"))+
tm_polygons(col="nreltype")