GT R

Objet

L’objet de ce cours est de faire des géotraitements avec R et markdown.

Utilisation du script 2 dans le modèle de projet disponible sur github https://github.com/beababa/modeleProjet

Mais cette fois ci,

  • créer le script2.Rmd

  • utiliser l’autocomplétion en tapant les commandes.

De plus, nous allons utiliser une nouvelle libraire : happign

Une librairie très simple d’utilisation qui permet de récupérer les données ign.

librairie happign

Pour mémoire, faire le point sur

  • les librairies et leur installation

Autre référence incontournable :

  • Géotraitements avec R à partir de la cheat sheet de la librairie sf

La donnée

Liste définitive des communes

Note

EXO 1 = Recopier et commenter les étapes avec le #

Code
commune <- read.csv("data/framaCalcCours9.csv")
# Lecture du fichier
commune <- commune  [, c(3)]
commune <- unique(commune)
commune <- commune[-c(34:35)]

Récupération des géométries

Quelle méthode avons nous utiliser en cours pour récupérer les géométries ?

Examiner la simplicité de la syntaxe de la librairie.

Code
library(sf)
Linking to GEOS 3.13.1, GDAL 3.11.4, PROJ 9.7.0; sf_use_s2() is TRUE
Code
library(happign)
Please make sure you have an internet connection.
Use happign::get_last_news() to display latest geoservice news.

Attachement du package : 'happign'
L'objet suivant est masqué depuis 'package:base':

    within
Code
bondy <- get_apicarto_cadastre("93010", type = "commune")
tot <- get_apicarto_cadastre(commune, type = "commune")
⠙ iterating 1 done (0.37/s) | 2.7s
iterating ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■  100% | ETA:  0s
Code
st_write(tot, "data/projet.gpkg", "commune", delete_layer = T)
Deleting layer `commune' using driver `GPKG'
Writing layer `commune' to data source `data/projet.gpkg' using driver `GPKG'
Writing 33 features with 5 fields and geometry type Multi Polygon.

Cela fonctionne également pour les rasters

Récupérer une orthophoto

Note

EXO 2 : En adaptant le code, couper aux carreaux manquants de sa commune.

La donnée carreau manquant est dans le fichier cours10.gpkg

Code
r <- get_wms_raster(bondy,
               layer = "ORTHOIMAGERY.ORTHOPHOTOS",
               res = 10,
               crs = 2154,
               rgb = TRUE,
               filename = "data/bondy.tif",
               overwrite = FALSE,
               verbose = TRUE)
Using cached file: C:\Users\bmaranget\L6ECSIG\data\bondy.tif
Code
library(terra)
terra 1.8.93

Attachement du package : 'terra'
L'objet suivant est masqué depuis 'package:happign':

    relate
Code
r <- rast("data/bondy.tif")
plot(r)

GT raster : Découpage de raster

On reprend l’idée d’examiner les carreaux absents

Code
car <- st_read("data/cours5.gpkg", "carreau_manquant", quiet=T)
carBondy <- car [car$code == 93010,]
plot(carBondy$geom)

Code
cr <- crop(r, carBondy, mask = T)
plot(cr)

Observer un seul carreau

Code
carBondy <- st_cast(carBondy,"POLYGON")
carBondy <- carBondy [1,]
cr <- crop(r, carBondy, mask = T)
plot(cr)

Que dire de la qualité de l’orthophoto ?

GT vecteur : Centroides et tampons

Note

EXO 3 = Trouver la fonction pour le centroide et les tampons sur la cheasheet de la librairie sf et le faire à partir du centroide de votre commune.

Isochrones

Code
pt <- st_centroid(bondy)
longlat <- unlist(pt$geometry )

Malheureusement, le get_isochrone de happign ne fonctionne pas.

Code
iso <- get_isochrone(pt, time = 15, profile = "pedestrian", source = "pgr")

Utiliser rgeoservices

Code
library(rgeoservices)
iso <- gs_get_isochrone(
  longitude = longlat [1],
  latitude = longlat [2],
  cost_value = 15,
  profile = "pedestrian",
  direction = "departure",
  time_unit = "minute"
)
plot(iso)