在R中使用fasterize写入光栅
我最近一直在使用fasterize软件包将sf多边形转换为光栅: 当我处理大文件时,最好是直接写入磁盘而不是内存。例如,与其这样做,不如: fasterize(多边形文件、光栅模板、字段='value') 我会这样做: fasterize(多边形文件、光栅模板、字段='value',文件='output.tif') 这似乎是不可能的。有人对如何做到这一点有什么建议吗 谢谢。您考虑过R“Gdautils”库吗 gdal_rasterize()函数执行与fasterize相同的操作,但将光栅对象输出到文件。根据我的经验,gdalUtils实际上比光栅更快,即使在使用fasterize时也是如此 下面是他们文档中的示例在R中使用fasterize写入光栅,r,raster,sf,rasterize,R,Raster,Sf,Rasterize,我最近一直在使用fasterize软件包将sf多边形转换为光栅: 当我处理大文件时,最好是直接写入磁盘而不是内存。例如,与其这样做,不如: fasterize(多边形文件、光栅模板、字段='value') 我会这样做: fasterize(多边形文件、光栅模板、字段='value',文件='output.tif') 这似乎是不可能的。有人对如何做到这一点有什么建议吗 谢谢。您考虑过R“Gdautils”库吗 gdal_rasterize()函数执行与fasterize相同的操作,但将光栅对象输
gdal_setInstallation()
valid_install <- !is.null(getOption("gdalUtils_gdalPath"))
if(require(raster) && require(rgdal) && valid_install)
{
# Example from the original gdal_rasterize documentation:
# gdal_rasterize -b 1 -b 2 -b 3 -burn 255 -burn 0
# -burn 0 -l tahoe_highrez_training tahoe_highrez_training.shp tempfile.tif
dst_filename_original <- system.file("external/tahoe_highrez.tif", package="gdalUtils")
# Back up the file, since we are going to burn stuff into it.
dst_filename <- paste(tempfile(),".tif",sep="")
file.copy(dst_filename_original,dst_filename,overwrite=TRUE)
#Before plot:
plotRGB(brick(dst_filename))
src_dataset <- system.file("external/tahoe_highrez_training.shp", package="gdalUtils")
tahoe_burned <- gdal_rasterize(src_dataset,dst_filename,
b=c(1,2,3),
burn=c(0,255,0),
l="tahoe_highrez_training",
verbose=TRUE,
output_Raster=TRUE)
#After plot:
plotRGB(brick(dst_filename))
}
关键是指定output\u graster=TRUE
我希望这能回答你的问题
gdal_rasterize(src_dataset,dst_filename,
b=c(1,2,3),
burn=c(0,255,0),
l="tahoe_highrez_training",
verbose=TRUE,
output_Raster=TRUE)