[R-sig-Geo] Writing a byte image

Ned Horning horning at amnh.org
Thu Feb 26 15:15:29 CET 2009


What is the recommended way to output a large byte GeoTiff image one 
line at a time? I am creating large double and integer images using 
writeRaster to create a GeoTiff file. I've been converting these to a 
byte data type outside of R but it would be nice to R to output a byte 
GeoTiff directly. I see there is a "type" flag for writeGDAL but I 
haven't been able to tell if I can use that for line-by-line writing.

This is what I'm using now (thanks to feedback from Robert Hijmans and 
possible unnecessary complications by me):
--
# Set output image properties
predrast <- setRaster(spot)
filename(predrast) <- outImage
nameVec <- colnames(trainvals)
cname <- nameVec[2]
for (n in 2:numbands) {
  cname <- c(cname, nameVec[n+1])
}
# Use the randomForest object to predict land cover type based on the input
# image one line at a time
for (r in 1:nrow(spot)) {
  spot <- readRow(spot, r)
  rowvals <- values(spot, names=TRUE)
  colnames(rowvals) <- cname
  pred <- predict(randfor, rowvals)
  pred <- as.numeric(pred)
  predrast <- setValues(predrast, pred, r)
  predrast <- writeRaster(predrast, format='GTiff', overwrite=TRUE)
}
--

Ned



More information about the R-sig-Geo mailing list