Gibt es eine einfache Möglichkeit, ein Raster nach dem Zufallsprinzip abzutasten, sodass die Ausgabe des Prozesses ein Raster ist?
Ich verwende ein Beispiel, das ich in der r-sig-geo
Liste gefunden habe und ich habe auch die sampleRandom
Funktion im raster
Paket ausprobiert . Beide Ansätze führen zu einer Ausgabe, bei der ich nicht sicher bin, wie sie in ein Raster umgewandelt werden soll. Nachdem ich nach mehreren Kombinationen von "SpatialPointsDataFrame-Raster" gesucht hatte, konnte ich keinen Ansatz finden.
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)
Wenn ich renne r.test
bekomme ich die Ausgabe:
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
Damit die folgende Zeile, die versucht, ein Raster zu schreiben, die Nachricht erzeugt:
# write out as ascii file
writeRaster(r.test, filename="test1.ASC", datatype="ascii", overwrite=TRUE)
Error: hasValues(x) is not TRUE
Mein Hauptziel ist es, nach dem Sampling eine Art Raster zu erzeugen. Ich bin auch in Ordnung, wenn ich nur die Werte in meinem Raster ändere (ich bin mir einfach nicht sicher, wie ich das machen soll).
r[r "condition"]
. Wenn Sie also den gesamten Wert des100
zu erstellenden Rasters festlegen möchten , können1
Sie schreibenr[r == 100] <- 1
. Danke @whuber - extrem nützliches Beispiel!Sie können die
sampleRandom
Funktion verwenden:quelle