프로세스의 출력이 래스터가되도록 래스터를 무작위로 샘플링하는 간단한 방법이 있습니까?
r-sig-geo
목록 에서 찾은 예제를 사용하고 sampleRandom
있으며 raster
패키지 의 기능 도 시도했습니다 . 이 두 가지 접근 방식은 모두 래스터로 변환하는 방법을 확실하지 않은 결과를 생성합니다. "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)
실행할 때 r.test
출력을 얻습니다.
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
따라서 래스터를 작성하려고 시도하는 다음 행이 메시지를 생성합니다.
# write out as ascii file
writeRaster(r.test, filename="test1.ASC", datatype="ascii", overwrite=TRUE)
Error: hasValues(x) is not TRUE
저의 주요 목표는 샘플링 과정 후에 어떤 종류의 래스터를 만드는 것입니다. 또한 래스터 내에서 값을 변경하는 것만으로도 좋습니다 (어떻게 해야할지 모르겠습니다).