Link some points to their centroids in a grid segmentation
Relie des points aux centroides des carreaux auxquels ces points appartiennent (dans un découpage de l'espace en grille carroyée)
Arguments
- pts
: points (
df
ofsf
object)- iCellSize
:
Size of the square cells (meters)
Taille des côtés des carreaux (mètres)
- offset
(numeric vector of size 2)
Offset for a grid non centered on the geographical referential origin
Décalage si utilisation d'une grille non centrée sur l'origine du référentiel géographique
- names_coords
:
Names of the latitude-longitude variables (character vector)
Noms des variables de latitude-longitude (vecteur character)
- names_centro
Names of the latitude-longitude variables for added centroids (character vector)
Noms des variables de latitude-longitude pour les centroïdes ajoutés (vecteur character)
- add
(boolean)
If TRUE : returns pts + centroids coordinates
Si TRUE : retourne pts + les coordonnées des centroïdes
Value
pts
table with additional centroids coordinatesx_centro
andy_centro
(df
ofsf
object)Table
pts
avec les coordonnées des centroïdesx_centro
andy_centro
(objetdf
ofsf
)
Details
Works with sf points but only with coordinates in meters (and not degrees !). Do not use sf points with GPS coordinates for example.
Examples
pts <- data.frame(
x = c(656913.1 , 348296.3 , 842276.3 , 716750.0 , 667418.2),
y = c(6855995 , 6788073 , 6385680 , 7003984 , 6585793),
val = 1:5)
btb_add_centroids(pts, 100, names_centro = c("centroX", "centroY"))
#> x y val centroX centroY
#> 1 656913.1 6855995 1 656950 6855950
#> 2 348296.3 6788073 2 348250 6788050
#> 3 842276.3 6385680 3 842250 6385650
#> 4 716750.0 7003984 4 716750 7003950
#> 5 667418.2 6585793 5 667450 6585750
btb_add_centroids(pts, 100, offset = c(50, 50), names_centro = c("centroX", "centroY"))
#> x y val centroX centroY
#> 1 656913.1 6855995 1 656900 6856000
#> 2 348296.3 6788073 2 348300 6788100
#> 3 842276.3 6385680 3 842300 6385700
#> 4 716750.0 7003984 4 716800 7004000
#> 5 667418.2 6585793 5 667400 6585800
pts2 <- sf::st_as_sf(pts, coords = c("x","y"), crs = 2154)
btb_add_centroids(pts2, 50)
#> Simple feature collection with 5 features and 5 fields
#> Geometry type: POINT
#> Dimension: XY
#> Bounding box: xmin: 348296.3 ymin: 6385680 xmax: 842276.3 ymax: 7003984
#> Projected CRS: RGF93 / Lambert-93
#> val X Y x_centro y_centro geometry
#> 1 1 656913.1 6855995 656925 6855975 POINT (656913.1 6855995)
#> 2 2 348296.3 6788073 348275 6788075 POINT (348296.3 6788073)
#> 3 3 842276.3 6385680 842275 6385675 POINT (842276.3 6385680)
#> 4 4 716750.0 7003984 716775 7003975 POINT (716750 7003984)
#> 5 5 667418.2 6585793 667425 6585775 POINT (667418.2 6585793)