如何利用数学(如用面积、距离等)建立空间数据和非空间数据之间的关系?对于空间统计而言,空间权重矩阵是一种有效的表达空间关系的方式。因此,它是用量化的方法表示了数据之间的“空间结构”。
关于如何进行要素间实际交互方式的概念化,ESRI举出的例子:
如果要测量森林中某种特定种类的种子繁殖树种的聚类,使用某种形式的反距离可能最适合。但是,如果要评估某一地区通勤者的地理分布,行程时间和行程成本可能是更好的选择。
空间权重矩阵是N*N的表,N为数据集中的要素数量。因此给定行列组合后,其对应的值即为权重。这种空间关系的权重矩阵在许多空间统计工具里都有用,比如空间自相关、热点分析、聚类和异常值分析等。
arcgis中的SWM使用稀疏矩阵存储,因此只存非零部分。实际情况,每个要素一般只跟其他某几个要素发生关系。
工具名字:Generate Spatial Weights Matrix (Spatial Statistics),工具界面如图:
具体权重的使用,以热点分析为例,几个主要的步骤如下:
integrate = arcpy.Integrate_management("911Copied.shp #", "500 Feet") ce = arcpy.CollectEvents_stats("911Copied.shp", "911Count.shp", "Count", "#")
重点是需要生成feature class,并且确保这个feature class有一个唯一id字段。
af = arcpy.AddField_management("911Count.shp", "MyID", "LONG", "#", "#", "#", "#","NON_NULLABLE", "NON_REQUIRED", "#", "911Count.shp") cf = arcpy.CalculateField_management("911Count.shp", "MyID", "[FID]", "VB")
swm = arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID","euclidean6Neighs.swm","K_NEAREST_NEIGHBORS","#", "#", "#", 6,"NO_STANDARDIZATION")
hs = arcpy.HotSpots_stats("911Count.shp", "ICOUNT", "911HotSpots.shp","GET_SPATIAL_WEIGHTS_FROM_FILE","EUCLIDEAN_DISTANCE", "NONE","#", "#", "euclidean6Neighs.swm","NO_FDR")