在R中使用fasterize写入光栅

在R中使用fasterize写入光栅,r,raster,sf,rasterize,R,Raster,Sf,Rasterize,我最近一直在使用fasterize软件包将sf多边形转换为光栅: 当我处理大文件时,最好是直接写入磁盘而不是内存。例如,与其这样做,不如: fasterize(多边形文件、光栅模板、字段='value') 我会这样做: fasterize(多边形文件、光栅模板、字段='value',文件='output.tif') 这似乎是不可能的。有人对如何做到这一点有什么建议吗 谢谢。您考虑过R“Gdautils”库吗 gdal_rasterize()函数执行与fasterize相同的操作,但将光栅对象输

我最近一直在使用fasterize软件包将sf多边形转换为光栅:

当我处理大文件时,最好是直接写入磁盘而不是内存。例如,与其这样做,不如:

fasterize(多边形文件、光栅模板、字段='value')

我会这样做:

fasterize(多边形文件、光栅模板、字段='value',文件='output.tif')

这似乎是不可能的。有人对如何做到这一点有什么建议吗

谢谢。

您考虑过R“Gdautils”库吗

gdal_rasterize()函数执行与fasterize相同的操作,但将光栅对象输出到文件。根据我的经验,gdalUtils实际上比光栅更快,即使在使用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)