1

使用 fiona,我正在尝试基于溶解字段溶解具有数百甚至数千个几何图形的图层。因此,具有相同溶解字段值的几何图形将对它们执行一元联合函数以保持几何图形相同但仅在图层中显示为一个记录。

输入有一个类型为“MultiPolygon”的几何图形。输出的几何被设置为输入的几何,所以仍然是'MultiPolygon'。我认为问题出在哪里,当联合完成时,它将多多边形几何转换为单个多边形几何,因此在将其写入输出时会给出以下错误代码:

fiona.errors.GeometryTypeValidationError:记录的几何类型与集合架构的几何类型不匹配:'Polygon'!= u'MultiPolygon'

我不确定如何将输出的几何图形更改为 Polygon,因为由于数据中所有不同的溶解字段值,最终输出将是 MultiPolygon。

我是新手,所以我希望我能清楚地解释这个问题。如果您有任何澄清问题,请告诉我。

这是使用 Python 2.7.14,MSC v.1500 32 位 GDAL/OGR 版本 202400

使用 fiona.open(inGDB, layer= 'FISH') 作为输入:

meta = input.meta
with fiona.open(outGDB, 'w', layer= 'fish_dissolved', **meta) as output:

    e = sorted(input, key=lambda k: k['properties'][dissolve_field])

    for key, group in itertools.groupby(e, key=lambda x: x['properties'][dissolve_field]):
        properties, geom = zip(*[(feature['properties'], shape(feature['geometry'])) for feature in group])

        output.write({'geometry': mapping(unary_union(geom)), 'properties': properties[0]})

输入.close() 输出.close()

fiona.errors.GeometryTypeValidationError:记录的几何类型与集合架构的几何类型不匹配:'Polygon'!= u'MultiPolygon'

4

0 回答 0