pysal.lib.weights.
fuzzy_contiguity
(gdf, tolerance=0.005, buffering=False, drop=True)[源代码]¶模糊邻接空间权重
参数: |
|
---|---|
返回: |
|
笔记
这就放宽了特征集合违反平面强制条件的情况下相邻邻居的概念。它处理此类集合中存在的三种类型的条件,这些条件在使用常规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}