如何在不使用arcpy的情况下处理python中不受支持的fiona类型?

时间:2019-02-05 13:20:55

标签: python gis arcgis arcpy fiona

我正在使用.gdb文件中包含来自ArcGIS的GIS数据的项目。我想为此使用fiona / geopandas并将数据与一些机器学习库一起使用。某些图层包含不受支持的类型,此处https://github.com/Toblerity/Fiona/blob/master/fiona/_geometry.pyx中提到。

更具体地讲,在打开图层并对其进行索引之后,出现UnsupportedGeometryTypeError:11。有些索引具有有效的类型,而有些则没有。

示例:

with fiona.open('path.gdb', layer='layername') as layer:
  print(layer[4]) # works
  print(layer[5]) # don't work, UnsupportedGeometryTypeError: 11

当前,我正在Mac上工作,但如果可以解决问题,则可以切换到Linux发行版。我更喜欢使用免费库并避免arcpy,因为我需要一个许可证,例如ArcGIS Server。

有什么想法可以使用这些格式吗?也许其他驱动程序或另一个库?谢谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用GDAL/OGR python库。它很有可能支持fgdb中的所有几何类型。

如果不是这种情况,则最好的选择是将专有格式(Esri)的FileGeodatabase(fgdb)转换为PostGreSQL / PostGIS等开放格式。

您可以使用命令行工具ogr2ogr进行转换。