首页 > 解决方案 > 如何将 rasterize() 代码转换为 R 中的 gdal_rasterize() 以根据每个单元格中的计数栅格化 OSM 数据源的点层?

问题描述

有一个.osm数据源,我想根据每个单元格内的点数进行栅格化。我可以通过首先将.osm文件读入一个sf对象然后使用该raster::rasterize()函数来做到这一点。但是,正如在 R 中的 Geocomputation 中所述,它很慢。

似乎gdalUtils::gdal_rasterize()可以使用 来获得更快的速度,我无法弄清楚如何为gdalUtils::gdal_rasterize().

raster::rasterize(x = input_sf, y = raster_template, field = 1, fun = "count")

到目前为止,我已经尝试执行这样的命令,它只创建了一个没有任何数据的空栅格。

gdalUtils::gdal_rasterize(src_datasource = "xxx.osm",
                      l = "points",
                      dst_filename = "xxx.tif",
                      a = "osm_id",
                      te = c(xmin, ymin, xmax, ymax),
                      tr = c(50, 50),
                      verbose = T)

我应该利用这个sql论点吗?我阅读了有关OGR SQL 此处的文档,但没有掌握任何有用的建议。如何通过gdalUtils::gdal_rasterize()实用程序执行相同的计数操作或任何其他空间操作?

标签: rrastergdalr-rasterrasterizing

解决方案


推荐阅读