pysal.lib.weights.fuzzy_contiguity

pysal.lib.weights.fuzzy_contiguity(gdf, tolerance=0.005, buffering=False, drop=True)[源代码]

模糊邻接空间权重

参数:
gdf:geodataframe
公差:浮动

用于确定缓冲距离的地理数据帧的边界矩形最小边长度的百分比。

缓冲:布尔值

如果为“假”(默认),则只会检测到相交的特征(触摸、包含、内部)。如果为真,则特性将被缓冲,交叉点将基于缓冲特性。

删除:布尔值

如果为真(默认),则从地理数据帧中删除缓冲功能。如果为false,则将缓冲功能添加到地理数据帧。

返回:
W:PySal-W

基于模糊邻接的空间权重。权重是二进制的。

笔记

这就放宽了特征集合违反平面强制条件的情况下相邻邻居的概念。它处理此类集合中存在的三种类型的条件,这些条件在使用常规Pysal连续方法时会导致孤岛。第一个是应共享的附近多边形的边,但对单个多边形单独数字化,生成的边不重合,而是相交的边。第二种情况与第一种情况类似,只有生成的边不相交,而是“闭合”。最后一种情况是当一个多边形“在”第二个多边形内,但没有编码来表示包含多边形中的一个孔时出现。

第二种情况的检测需要设置buffering=true并探索不同的公差值。

缓冲检查假定投影几何坐标。

工具书类

平面执法:http://ibis.geog.ubc.ca/courses/klink/gis.notes/ncgia/u12.html sec12.6

实例

>>> import pysal.lib as lps
>>> import geopandas as gpd
>>> rs = lps.examples.get_path('map_RS_BR.shp')
>>> rs_df = gpd.read_file(rs)
>>> wq = lps.weights.contiguity.Queen.from_dataframe(rs_df)
>>> len(wq.islands)
29
>>> wq[0]
{}
>>> wf = fuzzy_contiguity(rs_df)
>>> wf.islands
[]
>>> wf[0] == dict({239: 1.0, 59: 1.0, 152: 1.0, 23: 1.0, 107: 1.0})
True

需要使用缓冲的示例

>>> import pysal.lib as lps
>>> import geopandas as gpd
>>> from shapely.geometry import Polygon
>>> p0 = Polygon([(0,0), (10,0), (10,10)])
>>> p1 = Polygon([(10,1), (10,2), (15,2)])
>>> p2 = Polygon([(12,2.001), (14, 2.001), (13,10)])
>>> gs = gpd.GeoSeries([p0,p1,p2])
>>> gdf = gpd.GeoDataFrame(geometry=gs)
>>> wf = fuzzy_contiguity(gdf)
>>> wf.islands
[2]
>>> wfb = fuzzy_contiguity(gdf, buffering=True)
>>> wfb.islands
[]
>>> wfb[2]
{1: 1.0}