白话空间统计之二十五:空间权重矩阵(三)在ArcGIS中自定义空间关系-程序员宅基地

技术标签: GIS  数据分析  空间统计  arcgis  空间权重矩阵  自定义空间关系  属性加权  


在空间关系里面,点与点之间的关系是最简单的(要么重合,要么分离),而且实际上真实世界的物理空间里面,是没有点这个东西的……那是一维空间的玩意儿。

从更高层的抽象中对概念进行描述,是科研的重要方法论,所以在空间分析里面,大部分空间实体都被抽象成为了点——仅表示位置,没有大小粗细范围一说。

其实说了这么多年的“空间”分析,这个空间的概念,从狭义上说通常指的是地理空间,然后根据地理学第一定律——“越近越好”,就导致了片面的公式化研究思路:买菜就要去最近的菜市场(尼玛不管价格多贵质量多次),看病就要去最近的医院(尼玛不管是不是putian系)……

这种情况,在计量革命后期,被称之为:



所以,在复杂社会计算提之前,计量领域和空间计量领域就已经开始相互渗透了。这种渗透,在计量经济学领域,最出名的就是“地理加权回归”。

而在空间领域,正好相反,提出了“属性加权”空间分析。其中,以ArcGIS软件中的各种空间统计工具为代表。

ArcGIS的大量空间统计工具,包括方向分布、中心要素、密度等分析工具,都内置了属性加权这个参数,认为属性权重是对空间分析的一个重要的修正。

在空间权重矩阵上,也是如此。

人类社会,是一个巨复杂的系统,2002年诺贝尔经济学奖得主Vernon L. Smith 创立的实验经济学,让偏好这种心理因素成为了微观经济学的主要研究领域。那么与计量经济学一直相爱相杀的空间计量领域,自然也会有很多人来关注这些。

(自然地理学家通常是其他学科领域的专家,比如经济学家……特别在美国,当一个纯粹的自然地理学者,比当一个经济学家无论是社会地位还是经济收入上,都差十万八千里……所以通常计量地理学界的专家都不怎么在乎地理学这个帽子,他们离开了地理学,依然是其他领域的佼佼者。不像人文地理学家,离开了地理学,他们就沦落为二流学者了)

那么在空间权重的设定上,我们怎么来通过“偏好”来进行属性加权呢?

首先我们还是以ArcGIS来举例:

上一节说过,ArcGIS的空间权重矩阵文件可以通过官方的工具,来变成表格:







那么我们需要添加自定义的空间关系的时候,只需要去修改这个表格就可以了,比如我现在做了个领土接壤的空间权重矩阵:



空间权重矩阵表里面的UID是源数据中的唯一标识符,NID表示的是有空间关系的,weight是权重,我这里没有使用行标准化,所以所有的权重都是1。对这个权重矩阵做一个连线(连线的方法,见上一篇文章,大家自己去翻历史消息)之后,就可以看出相应的信息了。

那么,现在我要做两个修改:
1、中国与不丹没有建立外交关系,所以我们觉得,就算领土接壤,也不用设置为相邻,所以先要去掉不丹。
2、中国虽然与韩国和日本没有陆地接壤,但是我们认为在经济上,中国的经济与日韩的联系很大,所以我们要增加这两个国家。

修改的方式如下:

首先,修改导出来的权重表格,对不丹:216-65这条数据进行删除。
然后,增加中国对韩国:216-136以及中国对日本:216-84。
如下:
启动编辑


删除中国对不丹的关系:


增加中国对韩国和日本的关系:


保存之后,还需要做一个很重要的操作,切记切记,就是排序:


注意:这是ArcGIS的一个特性,就是在利用表格重新生成空间权重矩阵的时候,会依次去读取UID,如果不排序的话,会报错。

排序完成之后,会生成一个新的表:


最后利用这个表格,重新生成空间权重矩阵:


利用新生成的空间权重矩阵,进行连线,结果如下:



最后总结一下自定义空间关系的步骤:

1、用原始方式生成默认的空间权重矩阵。
2、将这个矩阵转换为表。
3、编辑表,增减自定义的空间关系。
4、按照唯一标识符进行排序。
5、利用排序好的表,重新生成空间权重矩阵。

打完收工,下一章我们讲讲在R语言里面,如何定义空间权重矩阵和自定义关系。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/allenlu2008/article/details/78094278

智能推荐

JAVA 系统变量之System.getenv()和System.getProperty() 用法-程序员宅基地

文章浏览阅读286次。Java提供了System类的静态方法getenv()和getProperty()用于返回系统相关的变量与属性,getenv方法返回的变量大多于系统相关,getProperty方法返回的变量大多与java程序有关。System.getenv() 方法是获取指定的环境变量的值。System.getenv(String str) 接收参数为任意字符串,当存在指定环境变量时即返回环境变量的值,否..._system.getproperty system.getenv -d

S交换机与NLB服务器直连做网关(增加二层交换机方案和单设备物理链路环回方案)...-程序员宅基地

文章浏览阅读219次。(推荐在V200R003之前版本使用增加二层交换机方案和单设备物理链路环回方案)网络负载均衡NLB(Network Load Balance)是微软在Windows Server上开发的多服务器群集负载均衡特性。对于使用Windows Server的企业来说,实现设备与NLB服务器群集的对接非常重要。本文描述了S系列交换机与NLB服务器群集直连做网关的场景分析和配置过程。背景..._winserver nlb 添加网关

docker虚拟化技术_docker 显卡虚拟化-程序员宅基地

文章浏览阅读330次。docker虚拟化技术概念理解 虚拟化:是一种资源管理技术,将计算机上的各种实体资源进行抽象,重新呈现出来,打破了实体结构之间不可切割的障碍,使用户以更加合理的组态使用资源。比如:一个32G内存2T固态硬盘16G显卡的计算机,用来学习python基础,希望可以同时提供4-5个人独立使用三台计算机,爷爷:1G内存256机械512集显父亲: 2G内存1T机械1G集显儿子..._docker 显卡虚拟化

java游戏开发杂谈 - java是什么_java游戏是什么时代-程序员宅基地

文章浏览阅读9.9k次,点赞9次,收藏12次。java是一门编程语言, 它有三个开发平台:j2ee、j2se、 j2me。(其实android也算一个了) j2ee, 也就是web开发,比如网站、各类管理系统,主要是围绕数据库、网页等进行的开发。j2ee涵盖的技术比较多,除了java语法,还需要掌握html/css/javascript等浏览器前端开发技术、jsp/servlet等服务器开发技术,mysql/oracle/sqlse..._java游戏是什么时代

[小小项目]背单词的程序---1.0_纯C语言_单文件版本_背单词程序设计代码c语言-程序员宅基地

文章浏览阅读2.1k次,点赞18次,收藏56次。实现命令行背单词功能_背单词程序设计代码c语言

RocketMQ入门教程_onsaddr-程序员宅基地

文章浏览阅读2.3w次,点赞12次,收藏82次。RocketMQ简单介绍是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。 Producer、Consumer队列都可以分布式。
 Producer向一些队列轮流发送消息,队列集合称为 Topic,Consumer 如果做广播消费,则一个consumer实例消费这个Topic 对应的所有队列,如果做集群消费,则多个Consumer 实例平均消费这个topic对应的队列集..._onsaddr

随便推点

pandas,numpy学习记录(不断补充)_将array_of_arrays转换为扁平线性的一维数组-程序员宅基地

文章浏览阅读331次。pandas安装:conda install pandas导入pandas包:import pandas as pdimport numpy as npimport matplotlib.pyplot as plt通过传递值列表来创建一个Series,让pandas创建一个默认的整数索引:s = pd.Series([1,3,5,np.nan,6,8])print(..._将array_of_arrays转换为扁平线性的一维数组

081、Weave Scope 多主机监控(2019-04-29 周一)-程序员宅基地

文章浏览阅读182次。参考https://www.cnblogs.com/CloudMan6/p/7674011.htmlWeaveScope除了监控容器,还可以监控DockerHost。点击顶部HOSTS菜单项,地图将显示当前host。与容器类型,点击该host图标将显示host的详细信息host当前的资源使用情况和历史曲线一览无余,除此之外也能很方便的查看..._weavescope版本历史

刷LeetCode(C++)的小心得(持续更新)_刷leetcode str.len-程序员宅基地

文章浏览阅读909次,点赞2次,收藏2次。&引用的用法,只是一个别名 二叉树层次遍历,使用队列 如果要求类似二维数组形式输出,可以使用循环嵌套,利用每次入栈的元素个数来作为第二个循环的次数。如果只是要求输出一维数组的形式,直接使用一个循环输出即可。 if if if 和 if else if else if的区别 pos = rand%(n-i) swap(temp[pos+i], temp[i]) 随机打乱数组..._刷leetcode str.len

部署 Flask 应用到 WSGI 服务器_flask使用wsgi部署-程序员宅基地

文章浏览阅读209次,点赞2次,收藏4次。(可选): 如果你的 Flask 应用需要通过域名来访问,你可能需要配置一个反向代理服务器(如 Nginx 或 Apache)来将客户端的请求转发到 WSGI 服务器。: 首先,你需要选择一个 WSGI 服务器来部署 Flask 应用。: 部署完成后,确保监控服务器的运行状态,并及时处理可能出现的异常情况。: 使用命令行进入到 Flask 应用的根目录,然后执行以下命令启动 WSGI 服务器。的 Python 文件,并编写你的 Flask 应用代码。部署 Flask 应用到 WSGI 服务器需要一些步骤。_flask使用wsgi部署

tensorflow 实现计算混淆矩阵和各类评估指标_tensorflow 混淆矩阵-程序员宅基地

文章浏览阅读6.4k次,点赞3次,收藏15次。一 tf.confusion_matrix(y,pred_y)以二分类为例,混淆矩阵为2*2的矩阵,如果我们真实标签为real=[0,1,1,0,1],预测标签为predict=[0,1,0,1,1]tf.confusion_matrix(real,predict)可以得到一个混淆矩阵如果为one-hot编码则需要使用tf.argmax(y,1) real=tf.argmax..._tensorflow 混淆矩阵

计算机二级选office还是python_计算机二级科目怎么选 哪个最简单-程序员宅基地

文章浏览阅读2k次。计算机二级科目怎么选哪个最简单计算机二级科目怎幺选择呢,哪个比较简单的,下面小编为大家提高计算机二级科目都有什幺怎样选择,仅供大家参考。计算机二级主要分为几类计算机二级考试主要分两类:一类是语言程序设计,(如:C、C++、Python、Java、Visual Basic、WEB);另一类是数据库程序设计(如:Access、MySQL)MS Office难度:★★★价值:★★★★计算机的基础知识,W..._msoffice和python哪个简单