Có một cách đơn giản để lấy mẫu ngẫu nhiên một raster sao cho đầu ra của quá trình là một raster?
Tôi đang sử dụng một ví dụ mà tôi tìm thấy trong r-sig-geo
danh sách và tôi cũng đã thử sampleRandom
chức năng trong raster
gói. Cả hai cách tiếp cận này đều tạo ra một đầu ra mà tôi không chắc chắn làm thế nào để chuyển đổi thành raster. Tôi đã không thể tìm thấy một cách tiếp cận sau khi tìm kiếm một số kết hợp "rat SpatialPointsDataFrame".
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)
Khi tôi chạy, r.test
tôi nhận được đầu ra:
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
Vì vậy, dòng sau đây cố gắng viết raster tạo ra thông báo:
# write out as ascii file
writeRaster(r.test, filename="test1.ASC", datatype="ascii", overwrite=TRUE)
Error: hasValues(x) is not TRUE
Mục tiêu chính của tôi là sản xuất một số loại raster sau quá trình lấy mẫu. Tôi cũng ổn khi chỉ thay đổi các giá trị trong raster của mình (Tôi chỉ không chắc chắn làm thế nào để làm điều đó).