在geodataframe中分配新几何体时出现错误



我在尝试在geodataframe中传递一个新的几何图形时遇到了一些问题。

我的原始geodataframe几何形状是LINESTRING Z,我确实将其转换为LINESTRING,但我不能传递新的几何形状。

我代码:

for i in range(len(SHP)):
l = SHP.at[i, "geometry"]
a = shapely.ops.transform(lambda x, y, z=None: (x, y), l).wkt
SHP.at[i, "geometry"] = a

我得到:值应该是一个BaseGeometry或None,得到LINESTRING

我也试过了:

for i in range(len(SHP)):
l = SHP.at[i, "geometry"]
a = shapely.ops.transform(lambda x, y, z=None: (x, y), l).wkt
SHP.at[i, "newgeometry"] = a
SHP = SHP.set_geometry(SHP["newgeometry"])

得到:输入必须是有效的几何对象LINESTRING

我不知道我做错了什么。

我已经解决了这个问题:

df = SHP.set_geometry(
SHP.geometry.map(
lambda linestring: shapely.ops.transform(lambda x, y, *_: (x, y), linestring)
))

最新更新