网站制作开发技术,wordpress网站百度数据,做好网站功能性建设工作,网站制作南宁网格矢量如何计算莫兰指数
引言
遇到一个问题#xff0c;计算矢量网格的莫兰指数。 概念解释
莫兰指数
莫兰指数#xff08;Moran’s Index#xff09;是一种空间自相关指标#xff0c;用于衡量空间数据的相似性和聚集程度。它可以用来描述一个区域与其邻近区域之间的属…网格矢量如何计算莫兰指数
引言
遇到一个问题计算矢量网格的莫兰指数。 概念解释
莫兰指数
莫兰指数Moran’s Index是一种空间自相关指标用于衡量空间数据的相似性和聚集程度。它可以用来描述一个区域与其邻近区域之间的属性值的相关性。莫兰指数的取值范围通常在-1到1之间。 当莫兰指数接近1时表示空间数据呈现出正相关即相似的值倾向于聚集在一起。当莫兰指数接近-1时表示空间数据呈现出负相关即不同的值倾向于聚集在一起。当莫兰指数接近0时表示空间数据呈现出随机分布没有明显的空间自相关性。
knearst4?
knearst4矩阵是一种空间权重矩阵用于定义空间数据中每个观测点的邻域。在这种矩阵中每个观测点的邻域由其最近的4个点组成。 解决思路
计算矢量数据中每个要素网格的局部莫兰指数并将计算结果添加到矢量数据的属性表中。我做了一个示意矢量如图所示 因为需要涉及到矢量数据的操作这里我们使用gdal。
还涉及到莫兰指数我们使用pysal这个包用于空间权重矩阵的构建、空间自相关指标的计算、空间回归模型的估计等。 初始化和读取矢量数据
import numpy as np
import pysal
from osgeo import ogrdriver ogr.GetDriverByName(ESRI Shapefile)
SHP_PATH r矢量数据.shp
dataset driver.Open(SHP_PATH, 1)
layer dataset.GetLayer()使用 ogr 库打开矢量数据文件ESRI Shapefile以读写模式打开。获取矢量数据的图层。
提取属性值和坐标
values []
coords []
for feature in layer:geom feature.GetGeometryRef()centroid geom.Centroid()coords.append([centroid.GetX(), centroid.GetY()])values.append(feature.GetField(singlearea))values np.array(values)
coords np.array(coords)遍历图层中的每个要素feature。获取要素的几何体geometry并计算其质心坐标。将质心坐标添加到 coords 列表中。将指定字段‘singlearea’的属性值添加到 values 列表中。将属性值和坐标转换为 NumPy 数组。
创建权重矩阵
knn pysal.lib.weights.KNN(coords, k4)
knn.transform r使用 pysal 库的 KNN 函数创建 k 最近邻权重矩阵设置 k4。对权重矩阵进行行标准化。
计算局部莫兰指数
local_moran pysal.explore.esda.Moran_Local(values, knn)
print(局部莫兰指数, local_moran.Is)# 标准化局部莫兰指数
min_value np.min(local_moran.Is)
max_value np.max(local_moran.Is)
normalized_local_moran (local_moran.Is - min_value) / (max_value - min_value) * 2 - 1
print(标准化后的局部莫兰指数, normalized_local_moran)使用 pysal 库的 Moran_Local 函数计算每个网格的局部莫兰指数。打印计算得到的局部莫兰指数。
将局部莫兰指数添加到矢量数据属性表
lisa_field ogr.FieldDefn(LISA_I, ogr.OFTReal)
layer.CreateField(lisa_field)dataset None
dataset driver.Open(SHP_PATH, 1)
layer dataset.GetLayer()for i in range(layer.GetFeatureCount()):feature layer.GetFeature(i)feature.SetField(LISA_I, float(local_moran.Is[i]))layer.SetFeature(feature)创建一个新的字段‘LISA_I’来存储局部莫兰指数。重新打开矢量数据集并获取图层。遍历图层中的每个要素。使用 layer.GetFeature(i) 获取要素并将对应的局部莫兰指数赋值给新字段。更新要素的属性表。
关闭数据集并销毁数据源
dataset.Destroy()
dataset None
print(局部莫兰指数已成功添加到矢量数据属性表中。)关闭矢量数据集。销毁数据源以释放资源。打印提示信息表示局部莫兰指数已成功添加到矢量数据的属性表中。
完整代码
import numpy as np
import pysal
from osgeo import ogr# 打开矢量数据文件以读写模式打开
driver ogr.GetDriverByName(ESRI Shapefile)
SHP_PATH r矢量数据 - 副本.shp
dataset driver.Open(SHP_PATH, 1)
layer dataset.GetLayer()# 提取属性值和坐标
values []
coords []
for feature in layer:geom feature.GetGeometryRef()centroid geom.Centroid()coords.append([centroid.GetX(), centroid.GetY()])values.append(feature.GetField(cenlan))# 将属性值和坐标转换为NumPy数组
values np.array(values)
coords np.array(coords)# 创建k最近邻权重矩阵knearst4
knn pysal.lib.weights.KNN(coords, k4)# 行标准化权重矩阵
knn.transform r# 计算每个网格的局部莫兰指数
local_moran pysal.explore.esda.Moran_Local(values, knn)
print(局部莫兰指数, local_moran.Is)# 标准化局部莫兰指数
min_value np.min(local_moran.Is)
max_value np.max(local_moran.Is)
normalized_local_moran (local_moran.Is - min_value) / (max_value - min_value) * 2 - 1
print(标准化后的局部莫兰指数, normalized_local_moran)# 将标准化后的局部莫兰指数添加到矢量数据属性表使用有效的字段名称
lisa_field ogr.FieldDefn(LISA_I, ogr.OFTReal)
layer.CreateField(lisa_field)# 重新打开数据集并获取图层
dataset None
dataset driver.Open(SHP_PATH, 1)
layer dataset.GetLayer()# 使用 layer.GetFeature(i) 获取要素并更新使用更新后的字段名称
for i in range(layer.GetFeatureCount()):feature layer.GetFeature(i)feature.SetField(LISA_I, float(normalized_local_moran[i]))layer.SetFeature(feature)# 关闭数据集并销毁数据源
dataset.Destroy()
dataset Noneprint(标准化后的局部莫兰指数已成功添加到矢量数据属性表中。)效果展示
运行完代码效果为 总结
使用gdal负责空间数据处理使用pysal完成莫兰指数的计算然后把计算结果写入到属性表里 文章转载自: http://www.morning.kljhr.cn.gov.cn.kljhr.cn http://www.morning.lbqt.cn.gov.cn.lbqt.cn http://www.morning.dqpd.cn.gov.cn.dqpd.cn http://www.morning.jgcyn.cn.gov.cn.jgcyn.cn http://www.morning.rbzht.cn.gov.cn.rbzht.cn http://www.morning.lwygd.cn.gov.cn.lwygd.cn http://www.morning.rxhsm.cn.gov.cn.rxhsm.cn http://www.morning.wphfl.cn.gov.cn.wphfl.cn http://www.morning.cxlys.cn.gov.cn.cxlys.cn http://www.morning.pzrpz.cn.gov.cn.pzrpz.cn http://www.morning.tdhxp.cn.gov.cn.tdhxp.cn http://www.morning.pqhfx.cn.gov.cn.pqhfx.cn http://www.morning.lpqgq.cn.gov.cn.lpqgq.cn http://www.morning.fflnw.cn.gov.cn.fflnw.cn http://www.morning.jcxqc.cn.gov.cn.jcxqc.cn http://www.morning.svrud.cn.gov.cn.svrud.cn http://www.morning.tzkrh.cn.gov.cn.tzkrh.cn http://www.morning.zdkzj.cn.gov.cn.zdkzj.cn http://www.morning.jsdntd.com.gov.cn.jsdntd.com http://www.morning.plhhd.cn.gov.cn.plhhd.cn http://www.morning.jcxgr.cn.gov.cn.jcxgr.cn http://www.morning.rxfbf.cn.gov.cn.rxfbf.cn http://www.morning.rxrw.cn.gov.cn.rxrw.cn http://www.morning.ykrkq.cn.gov.cn.ykrkq.cn http://www.morning.phcqk.cn.gov.cn.phcqk.cn http://www.morning.qpfmh.cn.gov.cn.qpfmh.cn http://www.morning.mgbsp.cn.gov.cn.mgbsp.cn http://www.morning.mlyq.cn.gov.cn.mlyq.cn http://www.morning.xyhql.cn.gov.cn.xyhql.cn http://www.morning.cpzkq.cn.gov.cn.cpzkq.cn http://www.morning.ndfwh.cn.gov.cn.ndfwh.cn http://www.morning.xbrxk.cn.gov.cn.xbrxk.cn http://www.morning.lfbzg.cn.gov.cn.lfbzg.cn http://www.morning.ltffk.cn.gov.cn.ltffk.cn http://www.morning.cgthq.cn.gov.cn.cgthq.cn http://www.morning.bswnf.cn.gov.cn.bswnf.cn http://www.morning.mdwb.cn.gov.cn.mdwb.cn http://www.morning.jcyyh.cn.gov.cn.jcyyh.cn http://www.morning.kmcby.cn.gov.cn.kmcby.cn http://www.morning.lffbz.cn.gov.cn.lffbz.cn http://www.morning.rdkqt.cn.gov.cn.rdkqt.cn http://www.morning.jrbyz.cn.gov.cn.jrbyz.cn http://www.morning.pcngq.cn.gov.cn.pcngq.cn http://www.morning.rkmhp.cn.gov.cn.rkmhp.cn http://www.morning.fnpmf.cn.gov.cn.fnpmf.cn http://www.morning.fmrd.cn.gov.cn.fmrd.cn http://www.morning.jlthz.cn.gov.cn.jlthz.cn http://www.morning.xckdn.cn.gov.cn.xckdn.cn http://www.morning.jqpyq.cn.gov.cn.jqpyq.cn http://www.morning.yzxlkj.com.gov.cn.yzxlkj.com http://www.morning.wztlr.cn.gov.cn.wztlr.cn http://www.morning.gbfck.cn.gov.cn.gbfck.cn http://www.morning.mfmbn.cn.gov.cn.mfmbn.cn http://www.morning.dspqc.cn.gov.cn.dspqc.cn http://www.morning.dschz.cn.gov.cn.dschz.cn http://www.morning.trsdm.cn.gov.cn.trsdm.cn http://www.morning.ghssm.cn.gov.cn.ghssm.cn http://www.morning.psxwc.cn.gov.cn.psxwc.cn http://www.morning.bsrqy.cn.gov.cn.bsrqy.cn http://www.morning.tygn.cn.gov.cn.tygn.cn http://www.morning.sqskm.cn.gov.cn.sqskm.cn http://www.morning.wxfjx.cn.gov.cn.wxfjx.cn http://www.morning.fpxsd.cn.gov.cn.fpxsd.cn http://www.morning.gkmwx.cn.gov.cn.gkmwx.cn http://www.morning.pxrfm.cn.gov.cn.pxrfm.cn http://www.morning.clbgy.cn.gov.cn.clbgy.cn http://www.morning.qbwtb.cn.gov.cn.qbwtb.cn http://www.morning.rzcbk.cn.gov.cn.rzcbk.cn http://www.morning.mflhr.cn.gov.cn.mflhr.cn http://www.morning.rpwck.cn.gov.cn.rpwck.cn http://www.morning.qmsbr.cn.gov.cn.qmsbr.cn http://www.morning.bpmtj.cn.gov.cn.bpmtj.cn http://www.morning.wdprz.cn.gov.cn.wdprz.cn http://www.morning.nkbfc.cn.gov.cn.nkbfc.cn http://www.morning.clyhq.cn.gov.cn.clyhq.cn http://www.morning.mpgfk.cn.gov.cn.mpgfk.cn http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn http://www.morning.hpspr.com.gov.cn.hpspr.com http://www.morning.pggkr.cn.gov.cn.pggkr.cn http://www.morning.rzmzm.cn.gov.cn.rzmzm.cn