Проблемы с выводом шейп-файла - Фиона
Я использую Фиона, чтобы написать шейп-файл, содержащий геометрию округов Конгресса США и переписных участков с некоторыми вычисленными атрибутами. К сожалению, мой файл выводится пустым. Я могу видеть записи в QGIS, но не геометрию.
В своем коде я беру стройные полигоны, считанные из шейп-файлов переписи, вычисляю свойства и передаю полигонам соответствующие атрибуты в fiona filewriter.
# 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, чтобы записать ее в свой shape-файл. У кого-нибудь были проблемы с написанием этого шейп-файла с помощью fiona и знаете, где может быть моя проблема?
1 ответ
Прежде всего: я рекомендую вам задать такие вопросы в стеке ГИС: https://gis.stackexchange.com/
Второе: я не могу комментировать, поэтому я отвечаю здесь
Будьте уверены, что на выходе
sg.asShape(self.subunit)
дает правильную геометрию объекта. Если вы печатаете это, что вывод?
Шейп-файл должен быть явно закрыт (outfile.close()
).
В принципе, открытие файла с with
Оператор должен позаботиться о закрытии, но, поскольку вы упомянули, что написали его как ссылку после передачи его объекту, это может быть проблемой в любом случае.