2 votes

Fonction pour retourner les valeurs (velox raster)

J'utilise la nouvelle fonction velox extract pour accélérer l'extraction de données matricielles par des fichiers de forme.

L'ancienne fonction d'extraction du paquet raster retournait par défaut une liste de valeurs de cellules, par exemple lorsque vous utilisez le format ci-dessous :

val.list <- raster::extract(raster, shapefile)

Le nouveau paquet velox requiert un argument fun= et je n'arrive pas à lui faire retourner les valeurs :

vx.raster <- velox(raster)
vx.vals <- vx.raster$extract(shapefile, fun=??????)

I have tried:
fun=values (returns error Error during wrapup: unable to find an inherited method for function 'values' for signature 'numeric'
fun=function(x){values(x)} (same error as above)

J'arrive à faire fonctionner fun=sum, fun=mean sans problème. Mais qu'en est-il des valeurs ? Est-ce que je rate quelque chose d'évident à propos d'un tableau numérique et du retour d'une liste de valeurs (ce qui me semble être le cas le plus probable) ?

Merci !

1voto

hunzikp Points 131

La version de développement de velox (sur github) permet désormais de renvoyer des valeurs matricielles "brutes" à partir d'un fichier de type VeloxRaster_extract requête. Il suffit de définir le fun argument pour NULL .

Voici un exemple :

library(devtools)
install_github('hunzikp/velox')
library(velox)

## Make VeloxRaster with two bands
set.seed(0)
mat1 <- matrix(rnorm(100), 10, 10)
mat2 <- matrix(rnorm(100), 10, 10)
vx <- velox(list(mat1, mat2), extent=c(0,1,0,1), res=c(0.1,0.1),
        crs="+proj=longlat +datum=WGS84 +no_defs")

## Make SpatialPolygons
library(sp)
library(rgeos)
coord <- cbind(0.5, 0.5)
spoint <- SpatialPoints(coords=coord)
spols <- gBuffer(spgeom=spoint, width=0.5)

## Extract
vx$extract(sp=spols, fun=NULL)$buffer
#             [,1]        [,2]
# [1,]  1.27242932  0.04658030
# [2,]  0.41464143 -1.13038578
# [3,] -1.53995004  0.57671878
#  etc....

0voto

Dominika Points 1

Essayez simplement cet extrait

vx.raster$crop(shapefile).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X