Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Geospatial Geopandas geom_几乎等于方法给出了错误的输出_Geospatial_Geopandas - Fatal编程技术网

Geospatial Geopandas geom_几乎等于方法给出了错误的输出

Geospatial Geopandas geom_几乎等于方法给出了错误的输出,geospatial,geopandas,Geospatial,Geopandas,我有两个地理数据帧 地理框架1 MULTILINESTRING((-0.87131 52.25771, -0.87144 52.25763, -0.87126 52.25756, -0.87146 52.25747, -0.87159 52.25756)) MULTILINESTRING((-0.87180 52.25758, -0.87167 52.25760, -0.87160 52.25767, -0.87148 52.25769, -0.87141 52.25774)) MULTILIN

我有两个地理数据帧

地理框架1

MULTILINESTRING((-0.87131 52.25771, -0.87144 52.25763, -0.87126 52.25756, -0.87146 52.25747, -0.87159 52.25756))
MULTILINESTRING((-0.87180 52.25758, -0.87167 52.25760, -0.87160 52.25767, -0.87148 52.25769, -0.87141 52.25774))
MULTILINESTRING((-0.87190 52.25757, -0.87185 52.25767, -0.87171 52.25775, -0.87151 52.25777, -0.87151 52.25777))
地理框架2

MULTILINESTRING((-0.87131 52.25771, -0.87144 52.25763, -0.87126 52.25756, -0.87146 52.25747, -0.87159 52.25756))
MULTILINESTRING((-0.87190 52.25757, -0.87185 52.25767, -0.87171 52.25775, -0.87151 52.25777, -0.87151 52.25777))
在开始之前,从几何角度看,这两个集合完全相等。为了检查“geom_几乎等于”方法,我从geoframe2中删除了一个linestring并执行了该方法

features_equal = geoframe1.loc[geoframe1.geom_almost_equals(geoframe2, decimal=5)]
结果应该只给出两个实际上相等的几何体。 但我得到的结果只有1个几何体

**MULTILINESTRING((-0.87190 52.25757, -0.87185 52.25767, -0.87171 52.25775, -0.87151 52.25777, -0.87151 52.25777))**
这怎么会发生? 是否有任何内部处理导致错误操作?
请在这方面提供帮助。

从GitHub复制我的答案

geoframe1.geom_几乎等于(geoframe2,十进制=5)
按行工作。它将对齐两个地理序列,并检查每行的几何图形是否几乎相等

在您的情况下,第一个与第一个检查,第一个为
True
,因为两者相等。Second与Second进行检查,Second为
False
,因为它们不同。第三个检查
None


因此,您有
[True,False,False]
,它自然返回一行。

谢谢martinfleis。到目前为止,我一直认为geoframe1的每一行都会将自己与geoframe2的所有行进行比较(就像嵌套的for循环),geopandas中是否有这样一个函数可以检查实际的几何相等性,而不是行?