我正在使用Fiona编写一个shapefile,其中包含美国人口普查、国会选区和人口普查区域的几何图形,以及一些计算属性。不幸的是,我的文件输出为空。我可以在QGIS中看到记录,但不能看到几何图形。
在我的代码中,我从人口普查shapefile中读取形状良好的多边形,计算属性,并将具有相关属性的多边形提供给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},
})W是将其传递给对象后对输出的引用,而self.subunit是一个pysal多边形几何图形,我将其转换为shapely,以便将其写入shapefile。有没有人在使用fiona编写shapefile时遇到了问题,并且知道我的问题出在哪里?
发布于 2018-02-19 20:50:39
首先,我建议您在GIS堆栈中提出以下类型的问题:https://gis.stackexchange.com
第二:我不能评论,所以我在这里回答
请确保输出
sg.asShape(self.subunit)给出了一个合适的几何对象。如果打印出来,输出是什么?
发布于 2020-03-12 20:27:32
shapefile需要是explicitely closed (outfile.close())。
原则上,使用with语句打开文件应该负责关闭,但由于您提到在将其传递给对象后将其作为引用编写,因此这可能是问题所在。
https://stackoverflow.com/questions/48512590
复制相似问题