首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Fiona模块在Python中编写geopackage属性数据

使用Fiona模块在Python中编写geopackage属性数据
EN

Stack Overflow用户
提问于 2020-05-07 14:06:37
回答 1查看 702关注 0票数 0

我对fiona模块几乎没有经验(从今天开始!)我有一个名为building.gpkg的地理包,它有一个名为'id‘的字段,在生产时该字段为空。

我正在尝试使用fiona模块编写一个python脚本,根据SQL Server中存储的另一个表中可用的ID填充其ID。

虽然我已经成功地通过fiona导入并读取了bldg.gpkg,但我正在努力将数据写入id列:

以下是示例代码:

代码语言:javascript
复制
import fiona
bldg_gpkg = 'building.gpkg'

with fiona.open(bldg_gpkg, 'w') as c:
    for i in range(max_id, len(list(c))+max_id):
        c.next()['properties']['id'] = i

这是我得到的错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python3\lib\site-packages\fiona\env.py", line 407, in wrapper
    return f(*args, **kwargs)
  File "C:\Program Files\Python3\lib\site-packages\fiona\__init__.py", line 265, in open
    c = Collection(path, mode, crs=crs, driver=driver, schema=this_schema,
  File "C:\Program Files\Python3\lib\site-packages\fiona\collection.py", line 126, in __init__
    raise DriverError("no driver")
fiona.errors.DriverError: no driver

我在fiona模块中的collection.py和drvsupport.py中查找,发现GPKG驱动已经安装并支持,是不是我遗漏了什么?还是写作方法有误?

我在Windows 10上运行Python 3.8.1。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-05-08 00:39:29

这也是GIS的新手,但我认为您需要使用具有写入功能的fiona驱动程序。

我相信fiona默认使用OpenFileGDB驱动程序,它只具有读取功能。

运行fiona.supported_drivers查看您的安装中支持哪些驱动程序,以及它们具有哪些读写功能。

试试这个:

代码语言:javascript
复制
with fiona.open(bldg_gpkg, 'w',
    driver='GPKG',
    schema=schema,
    crs=crs) as c:

您需要提供数据的模式,以及作为python字典的crs。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61651003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档