Как бороться с неподдерживаемыми типами фиона в python без использования arcpy?

Я работаю над проектом с данными ГИС из ArcGIS в файле.gdb. Я хотел использовать fiona / геопанду для этого и использовать данные с некоторыми библиотеками машинного обучения. Некоторые слои содержат неподдерживаемые типы, упомянутые здесь 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 ответ

Вы можете попробовать библиотеку Python GDAL/OGR. Есть хорошие шансы, что он поддерживает все типы геометрии, которые есть в вашей fgdb.

Если это не так, лучшим вариантом будет преобразование вашей FileGeodatabase (fgdb), которая является проприетарным форматом (Esri), в открытый формат, такой как PostGreSQL/ PostGIS.

Вы можете использовать инструмент командной строки ogr2ogr для выполнения преобразования.

Другие вопросы по тегам