0

我正在使用 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},
                        })

self.w 是在传递给对象后对输出的引用,而 self.subunit 是一个 pysal 多边形几何,我将其转换为 shapely 以便将其写入我的 shapefile。有没有人在使用 fiona 编写这个 shapefile 时遇到问题并知道我的问题可能出在哪里?

4

2 回答 2

0

首先:我建议您在 GIS 堆栈中提出这类问题:https ://gis.stackexchange.com

第二:我不能评论,所以我在这里回答

确保输出

sg.asShape(self.subunit)

给出一个合适的几何对象。如果打印它,输出是什么?

于 2018-02-19T12:50:39.430 回答
0

shapefile 需要显式关闭( outfile.close())。

原则上,使用语句打开文件with应该注意关闭,但是由于您提到在将其传递给对象后将其作为引用写入,所以无论如何这可能是问题所在。

于 2020-03-12T12:27:31.533 回答