3 Données
3.1 Statistiques globales
Pour la partie s’interessant aux statistiques globales, nous basons nos exercices sur une réalité simulée d’une valeur de carbone dans un parcelle agricole. Ce champ a été simulé en utilisant des techniques géostastitques.
L’objet correspond à un tableau comportant 3 colonnes.
les coordonnées avec s1 et s2
les valeurs simulées sim1
Chaque coordonnée correspond au centre d’un pixel
## s1 s2 sim1
## 1 0.5 0.5 7.184881
## 2 1.5 0.5 7.366762
## 3 2.5 0.5 7.417718
## 4 3.5 0.5 7.305573
## 5 4.5 0.5 7.373427
## 6 5.5 0.5 7.161203
Il est donc facile de transformer le tableau en une grille de type SpatialPixelsDataframe. Pour cela, on passe par une structure de type SpatialPointDataframe dans un premier temps.
ce format ancien est nécessaire pour le package spcosa. Il faudra changer de format des raster selon les packages. C’est notament le cas pour tmap qui ne lit que du terra
champSP <- champ
# transformer en un vecteur de points
coordinates(champSP) <- c('s1','s2')
# transformer en raster
gridded(champSP) <- TRUEVoici la structure de l’objet de type sp.
# structure de l'objet
str(champSP)## Formal class 'SpatialPixelsDataFrame' [package "sp"] with 7 slots
## ..@ data :'data.frame': 10000 obs. of 1 variable:
## .. ..$ sim1: num [1:10000] 7.18 7.37 7.42 7.31 7.37 ...
## ..@ coords.nrs : num(0)
## ..@ grid :Formal class 'GridTopology' [package "sp"] with 3 slots
## .. .. ..@ cellcentre.offset: Named num [1:2] 0.5 0.5
## .. .. .. ..- attr(*, "names")= chr [1:2] "s1" "s2"
## .. .. ..@ cellsize : Named num [1:2] 1 1
## .. .. .. ..- attr(*, "names")= chr [1:2] "s1" "s2"
## .. .. ..@ cells.dim : Named int [1:2] 100 100
## .. .. .. ..- attr(*, "names")= chr [1:2] "s1" "s2"
## ..@ grid.index : int [1:10000] 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 ...
## ..@ coords : num [1:10000, 1:2] 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 ...
## .. ..- attr(*, "dimnames")=List of 2
## .. .. ..$ : NULL
## .. .. ..$ : chr [1:2] "s1" "s2"
## ..@ bbox : num [1:2, 1:2] 0 0 100 100
## .. ..- attr(*, "dimnames")=List of 2
## .. .. ..$ : chr [1:2] "s1" "s2"
## .. .. ..$ : chr [1:2] "min" "max"
## ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slot
## .. .. ..@ projargs: chr NA
Il est assez simple de faire une carte avec le package tmap mais il faut transformer le raster dans le format du package terra comme ceci
champSP.terra <- rast(champSP)
tm_shape(champSP.terra) +
tm_raster() +
tm_layout(legend.outside = TRUE)
Figure 3.1: Notre réalité: un champ aléatoire simulé avec un variogramme de type exponentiel
L’histogramme de la propriété ressemble à ceci:
ggplot(champ,
aes(x=sim1)) +
geom_histogram(bins = 50)
Figure 3.2: Histogramme de la population
La moyenne vraie de la population vaut ainsi
Moy = mean(champ$sim1)
Moy## [1] 5.298602
3.2 Cartographie
Pour illuster les différents plans possible pour la cartographie, nous prenons de jeus de données en exemple
3.2.1 Contour d’une parcelle
le contour d’une parcelle est fourni par le package spcosa. Sa forme est complexe et permet de bien illustrer les caractéristiques des plans d’échantillonnage proposés.
shpFarmsum.sf <- read_sf(dsn = system.file("maps",
package = "spcosa"),
layer = "farmsum")
shpFarmsum <- as(shpFarmsum.sf, "Spatial") # conversion sp
tm_shape(shpFarmsum) +
tm_borders()
Figure 3.3: Contour d’une parcelle agricole
3.2.2 Covariables rasters en Australie
Un ensemble de 5 rasters sont disponibles pour une parcelle située en Australie dans un zone viticole appelée ‘Hunter vallée’.
- Altitude
- l’orientation de la pente
- pente
- indice de topographie
- l’indice de végétation normalisé
#Read data with coordinates and other attributes of fine grid (discretization of study area)
grdHunterValley <- readRDS(file="data/grdHunterValley.RDS")
grdHunterValley2 <- grdHunterValley
coordinates(grdHunterValley2) <- c('Easting','Northing')
gridded(grdHunterValley2) <- TRUE
tm_shape( rast(grdHunterValley2) ) +
tm_raster(
col = c("elevation_m","slope_deg","cti","ndvi")
) +
tm_layout(legend.outside = TRUE)
Figure 3.4: Covariables raster en Australie