r - 如何保存具有多个几何形状的简单特征?
问题描述
我想使用sf
R 中的包将我的数据组织为一个简单的特征对象,该包具有几个几何列,例如一个多边形、它的质心和它的缓冲区,它们都共享相同的属性。
我很难将这样的对象保存到磁盘。例如,如果我尝试将其另存为 shapefile,这就是我得到的st_write()
:
Error in clean_columns(as.data.frame(obj), factorsAsCharacter) :
list columns are only allowed with raw vector contents
Warning:
1: In abbreviate_shapefile_names(obj) :
Field names abbreviated for ESRI Shapefile driver
2: In clean_columns(as.data.frame(obj), factorsAsCharacter) :
Dropping column(s) nghbrhd,landscp of class(es) sfc_POLYGON;sfc,sfc_POLYGON;sfc
当然,我可以将其拆分为多个对象,每个对象都有一个几何图形和所有属性,但我发现将所有数据都放在一个文件中更混乱且容易出错。
我怎样才能(最好)保存这样的对象?
解决方案
通过保存对象时,sf::st_write()
您必须尊重输出对象的上下文;两种流行的文件格式 - ESRI Shapefile / *.shp和OGC GeoPackage / *.gpkg - 每个保存的 shapefile 只允许一个几何图形。
这是输出文件格式的一项功能,而不是错误。
如果您的工作流程需要保存具有多个几何形状的对象,请考虑 R 特定格式saveRDS()
,或者如果需要与其他空间工具进行交换,其中一种格式允许每个对象具有多个几何形状 - PostgreSQL / PostGIS数据库是我在这种情况下使用的。
推荐阅读
- javascript - 我无法安装节点模块
- django - 我得到了这个错误 AttributeError: module 'django.contrib.gis.db.models' has no attribute 'GeoManager'
- javascript - 在使用 addEventListener 时遇到初学者 dom 操作练习的问题
- web-services - 从 Elastic Beanstalk 执行时,Google Places API 附近搜索返回不同的结果
- javascript - 节点js中的按钮按下事件
- excel - 是什么扼杀了我的表现——删除重复项或行删除循环?备择方案?
- javascript - 由于夏令时时区,getDate() 给出错误的日期
- python - 在字典中对 Vader 情绪分析结果进行排序
- python - 在 Pandas 中按条件选择列范围
- java - Java 命令与 spring-boot:run 命令