如何从大型shapefile计算多边形的面积

时间:2019-07-14 11:26:40

标签: r gis geospatial shapefile

摘要:

我正在尝试计算R中大量多边形的面积。我读了几篇有关如何进行此操作的文章(Example #1Example #2),但问题是我我的shapefile太大(1.7gb),无法导入。由于无法导入文件,因此无法计算多边形的面积。

扩展说明:

我实际上是在尝试计算澳大利亚维多利亚州的房地产面积。多边形代表这些属性。我从simplified models 1 and 2下载了整个维多利亚州的VicMaps的Spatial Datamart。 但是,鉴于shapefile的大小,我不得不将搜索范围缩小到一个地方政府区域(LGA),然后计算出多边形区域(仅用于测试)。 shapefile为15.5MB。

library(raster)
x <- shapefile("D:/Downloads/SDM616230/ll_gda94/shape/lga_polygon/ballarat/VMPROP/PROPERTY_PRIMARY_APPROVED.shp")
crs(x)
x$area_sqkm <- area(x) / 1000000

这行之有效,但鉴于维多利亚州有许多地方政府协议,这并不是解决我的问题的实际解决方案,我计划最终在昆士兰州和新南威尔士州采用相同的流程。

但是,尝试加载较大的shapefile无效,并导致以下错误代码“错误:内存耗尽(达到限制?)。”

我尝试使用readShapePoly,readogr,st_read和read_sf将大型shapefile放入R,但它们不起作用。我认为文件太大。我尝试在read_sf中使用选择查询,以减小我正在读取的文件的大小,但这也不起作用。我已经在线阅读了我应该设法将shapefile分割成我需要减小大小的数据的信息-但我不知道该怎么做。

希望您能提供帮助。

1 个答案:

答案 0 :(得分:0)

显然,该文件太大,无法容纳一个盒子。我认为当时的选择是

1)将文件分割成较小的文件,一个接一个地处理。见

https://gis.stackexchange.com/questions/195508/split-a-shapefile-into-smaller-files-on-linux-command-line

2)使用一些dbms或数据仓库来执行此操作,它们会自动进行此类批处理。