J'ai trois objets SpatialPointsDataFrame
qui ne sont en réalité que d'un point chacun. Mon intention est de faire un raster pour chacun d'entre eux avec une extension qui inclut le point, de sorte que toutes les cellules sauf le point soient "NA", donc je peux utiliser la fonction distance()
dans le paquet raster
pour générer un raster couche où la valeur z est la distance à la seule cellule dans laquelle z n'est pas "NA".Problèmes avec la fonction de tramage dans R
Mon code fonctionne sans problème avec le premier des trois objets, mais l'erreur suivante apparaît pour les deux autres:
error in seq.default(zrng[1], zrng[2], length.out = cuts + 2) :
'from' cannot be NA, NaN or infinite
In addition: Warning messages:
1: In asMethod(object) :
complete map seems to be NA's -- no selection was made
2: In min(x) : no non-missing arguments to min; returning Inf
3: In max(x) : no non-missing arguments to max; returning -Inf
Je double et triple vérifié que mes points sont contenus dans la mesure du raster, et je ne peux pas mettre le doigt sur le problème
Voici mon code:
library(raster)
TIM <- data.frame()
TIM[1,1] <- -13.8309
TIM[1,2] <- 28.9942
VEN <- data.frame()
VEN[1,1] <- -15.7886
VEN[1,2] <- 27.8444
MCL <- data.frame()
MCL[1,1] <- -13.5325
MCL[1,2] <- 29.2914
coordinates(TIM) <- ~V1+V2
coordinates(VEN) <- ~V1+V2
coordinates(MCL) <- ~V1+V2
bb2 <- matrix(c(-20, -9.5, 20.5, 31.5), nrow = 2, ncol = 2, byrow = T)
bb2 <- extent(bb2)
r <- raster(nrows = 1217, ncols = 1047)
r <- setExtent(r, bb2, keepres=F)
rMCL <- rasterize(MCL, r)
spplot(rMCL)
#so far so good, but from now on it doesn't work
rVEN <- rasterize(VEN, r)
spplot(rVEN)
rTIM <- rasterize(TIM, r)
spplot(rTIM)
Edit: Je l'ai essayé tourner à un SpatialGridDataF Rame et j'arrive à le tracer mais mon point n'est pas dans l'étendue de la trame, c'est-à-dire que l'intrigue est vide. Code:
rr <- as(rTIM, "SpatialGridDataFrame")
spplot(rr)
#this produces an empty plot
J'ai aussi essayé de traçage dans une trame sans un nombre prédéterminé de colonnes et de lignes, et il fonctionne:
r <- raster()
r <- setExtent(r, bb2, keepres=F)
rTIM <- rasterize(TIM, r)
spplot(rTIM)
# this produces a raster containing my point
Le problème est, je voudrais vraiment besoin de définir la résolution de l'intrigue donc chaque cellule du raster représente environ 1 km carré, ce qui est ce que je reçois avec le nombre de lignes et de colonnes que j'avais précédemment utilisé. Des idées?