проблемы с выводом шейп-файла - фиона

Я использую Fiona для написания шейп-файла, содержащего геометрию округов Конгресса США по переписи населения и переписных участков с некоторыми вычисленными атрибутами. К сожалению, мой файл выводится пустым. Я могу видеть записи в QGIS, но не геометрию.

В своем коде я беру изящные многоугольники, считанные из шейп-файлов переписи, вычисляю свойства и передаю многоугольники с соответствующими атрибутами в файловый редактор fiona.

# schema for the file
myschema = {
'geometry':'Polygon',
'properties':{'is boundary':'int','id':'str', 'district':'int'}
}

with fiona.open(name,'w',crs=from_epsg(4326), driver='ESRI Shapefile', schema=myschema) as output:
...
self.w.write({
                        'geometry':mapping(sg.asShape(self.subunit)),
                        'properties':{'is boundary':int(is_boundary), 'id':str(self.sid), 'district':0},
                        })

self.w - это ссылка на вывод после того, как он был передан объекту, а self.subunit - это геометрия pysal многоугольника, которую я преобразовываю в shapely, чтобы записать ее в свой шейп-файл. У кого-нибудь были проблемы с написанием этого шейп-файла с помощью fiona, и знает ли моя проблема?


person Alejandro Velez    schedule 30.01.2018    source источник


Ответы (2)


Прежде всего: я рекомендую вам задавать такие вопросы в стеке ГИС: https://gis.stackexchange.com

Во-вторых: я не могу комментировать, поэтому отвечаю здесь

Убедитесь, что на выходе

sg.asShape(self.subunit)

дает объект правильной геометрии. Если вы его распечатаете, что будет на выходе?

person ImanolUr    schedule 19.02.2018

Шейп-файл должен быть явно закрытым (outfile.close()).

В принципе, открытие файла с помощью оператора with должно позаботиться о закрытии, но поскольку вы упоминаете, что записываете его как ссылку после передачи его объекту, это может быть проблемой в любом случае.

person Skippy le Grand Gourou    schedule 12.03.2020