Existe uma maneira simples de amostrar aleatoriamente uma varredura para que a saída do processo seja uma varredura?
Estou usando um exemplo que encontrei na r-sig-geo
lista e também tentei a sampleRandom
função no raster
pacote. Ambas as abordagens produzem uma saída que não tenho certeza de como transformar em uma varredura. Não consegui encontrar uma abordagem depois de pesquisar várias combinações de "SpatialPointsDataFrame raster".
library(raster)
# read in raster
rasterSource <- 'landsat.TIF'
r <- raster(rasterSource)
# convert to spatial points data frame
r.spgrd<-as(r,"SpatialPointsDataFrame")
# elminate NA values
r.spgrd = r.spgrd[!is.na(r.spgrd[[1]]),]
# sample points
selectedPoints = sample(1:length(r.spgrd[[1]]), 1000)
r.sampled = r.spgrd[selectedPoints,]
# try to make spgrd into a raster
r.test <- raster(r.sampled)
Quando executo r.test
, recebo a saída:
class : RasterLayer
dimensions : 10, 10, 100 (nrow, ncol, ncell)
resolution : 28617, 14766 (x, y)
extent : 1838505, 2124675, 2328685, 2476345 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
values : none
Para que a seguinte linha que tenta escrever uma varredura produza a mensagem:
# write out as ascii file
writeRaster(r.test, filename="test1.ASC", datatype="ascii", overwrite=TRUE)
Error: hasValues(x) is not TRUE
Meu principal objetivo é produzir algum tipo de varredura após o processo de amostragem. Também estou bem em mudar os valores dentro da minha varredura (não sei como fazer isso).
r[r "condition"]
. Então, se você deseja definir todo o valor do raster que estão100
a ser1
você pode escreverr[r == 100] <- 1
. Obrigado @whuber - exemplo extremamente útil!Você pode usar a
sampleRandom
função:fonte