我对fiona模块几乎没有经验(从今天开始!)我有一个名为building.gpkg的地理包,它有一个名为'id‘的字段,在生产时该字段为空。
我正在尝试使用fiona模块编写一个python脚本,根据SQL Server中存储的另一个表中可用的ID填充其ID。
虽然我已经成功地通过fiona导入并读取了bldg.gpkg,但我正在努力将数据写入id列:
以下是示例代码:
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这是我得到的错误:
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。
谢谢
发布于 2020-05-08 00:39:29
这也是GIS的新手,但我认为您需要使用具有写入功能的fiona驱动程序。
我相信fiona默认使用OpenFileGDB驱动程序,它只具有读取功能。
运行fiona.supported_drivers查看您的安装中支持哪些驱动程序,以及它们具有哪些读写功能。
试试这个:
with fiona.open(bldg_gpkg, 'w',
driver='GPKG',
schema=schema,
crs=crs) as c:您需要提供数据的模式,以及作为python字典的crs。
https://stackoverflow.com/questions/61651003
复制相似问题