Qgis中进行Shp和Excel属性连接实现百强县公共预算空间分析

news2024/11/21 0:14:08

前言

        在之前的博文中,将2022的全国百强县一般公共预算收入的数据下载到了本地,博客原文地址:一种使用Java的快速将Web中表格转换成Excel的方法。对于不关注时空位置关系的一般分析,到此也就基本够用了。但是,如果站在全国的视野去观察分析这些全国百强县的时空分布关系,就十分有必要增加一个空间的维度,以此来作为空间分析的基础。

        本文就是在此背景下,重点讲解如何对一个包含区县信息的excel表格,再结合对应的空间shp数据,将普通的二维表格融合空间shp数据,实现二维数据的空间化,给决策者一种地理尺度上的分布认知,更好的做好经济服务支撑。文中将重点介绍如何使用Qgis软件进行两者的融合,最后基于融合的结果进行制图,得到一个直观的结果。

一、数据准备

        在进行系统融合之前,需要准备的两份数据,第一是从网上下载的2022全国百强县一般公共预算收入榜的excel文件。数据列表如下(说明:在全国百强县中,区县名称重复的不对,因此不考虑使用市名称进行二次过滤):

序号列名例子
1县级地区昆山市
2所属省江苏
3一般公共预算收入(亿元)430.18

         上述是一份excel二维表格数据,为了进行空间分析,因此还需要一份空间数据,这里使用审图号为:2019中国地图-审图号GS(2019)1822号的一份全国区县数据。

序号

参数名

1

名称

县(等积投影)

2路径F:\XXX\2019中国地图-审图号GS(2019)1822号\县(等积投影).shp
3

存储

ESRI Shapefile

4编码

GBK

5

几何图形

Polygon (MultiPolygon)

6

坐标参照系(CRS)

Krasovsky_1940_Albers - 投影

7

单位

8

要素数目

2,901

         这里需要牢记属性表中的NAME字段,因为后续将会采用NAME作为数据关联的关键字段。

对上述数据进行简单符号化和标注以后,可以看到如下的图件。

 二、映射关系建立

        通过仔细对比观察Excel和Shp数据,两份数据通过excel表中的县级地区和Shp数据中的Name字段进行映射关联。它的数学表达如下:

        设R是n元关系,S是m元关系,A是R的属性,B是S的属性,A和B的值域具有相同的数据类型,θ∈{=, ≠, >, <, ≤, ≥}。R和S的连接操作定义为:

这里写图片描述

         其中,r[A]表示元组r在属性A上的值,s[B]表示元组s在属性B上的值。我们称A和B是连接属性。这里的链接应采用等值链接的模式,即Inner Join。翻译成数据库的语句大致就是:Select A.* from TableA A join TableB B on A.xxx = B.xxx。上述理论知识是数据能够建立连接的理论基础。

三、Excel数据导入到Qgis中

        为了方便后续的处理,我们将Excel同样到Qgis平台中。由于Excel是不带空间坐标的,因此无法进行空间位置的展示,只有属性信息展示。在Qgis可以打开Excel的属性表进行属性表信息查看。

         在这里可以打开excel的属性,Field3字段与Shp表中的Name字段是有对应关系的。这个要牢记,后续操作会用到。

四、空间数据挂接

         在上述成果之上,我们进行实际的空间数据挂接。操作步骤如下:

        第一步、鼠标单击县(等积投影),打开属性面板。如下图所示:

         第二步、点击连接按钮,弹出如下对话框:

         第三步、点击新的连接,在新的连接窗口中进行属性的关联和配置。在这里,连接图层注意选择为打开的Excel图层,连接字段选择Field3,目标字段为Name字段。完成后,点击OK即可。

         经过上述步骤即可完成属性的挂接,在关闭窗口点击Apply按钮之后,再次打开属性表发现。原来的属性表中已经挂接上了新的属性,后面增加就是。详情如下图所示:

         此时,这几个挂接的字段还不是最终的字段,需要导出要素后自动生成一份新的数据后属性生效,参考坐标系我们修改成4326的。

 五、百强县数据过滤

        细心的小伙伴发现,经过挂接后,因为我们是将excel数据挂接到了shp中,excel只有100条数据,而shp中有2901条,有2801条不是我们要的,因此我们要将这部分数据从库中过滤掉。我们打开属性表,发现百强县的挂接字段均有值,因此只需要将值不为空的数据过滤出来即可。

         我们发现挂接的属性名字不太友好,我们可以修改成英文或者其他的想要的属性名。

          鼠标右键点击数据,选择过滤,弹出如下对话框,在查询构建器中进行属性的过滤,通过前面的规则说明,对于ggys不是null的数据就是我们需要的,因此我们需要执行的过滤SQL就是

"ggys" is not null

         点击测试,可以进行查询结果的验证,通过点击可以得到以下结果:

         这就是全国百强县的数据,可以将得到的数据导出到外部作为下一步制图的基础数据。

六、地图制图

        为了更好的进行空间展示,通过不同的一般性公共预算收入来区分展示,从空间和值域的设置上直观看到不同的区县的收入信息。需要我们根据公共预算收入的值进行制图。具体步骤如下:        

        第一步、符号化,点击需要符号化的图层,选择分类方式进行符号化。

         第二步、标注。对区县信息进行空间标注,让读者看起来更直观。

         最终得到的效果图(基于省份进行分类)如下所示:

         除了按照省份进行分类外,还可以根据不同的收入类型进行分类展示。这里采用渐进分类方式:

 总结

        以上就是本文的主要内容,本文重点讲解如何对一个包含区县信息的excel表格,再结合对应的空间shp数据,将普通的二维表格融合空间shp数据,实现二维数据的空间化,给决策者一种地理尺度上的分布认知,更好的做好经济服务支撑。文中将重点介绍如何使用Qgis软件进行两者的融合,最后基于融合的结果进行制图,得到一个直观的结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/632764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言函数初阶(1)

目录 1. 函数是什么 2. 库函数 3. 自定义函数 4. 函数参数 5. 函数调用 6. 函数的嵌套调用和链式访问 7. 函数的声明和定义 8. 函数递归 今天我们讲解前6个部分&#xff0c;下一个博客我们讲解后2个部分&#xff0c;因为后两个部分难度较大&#xff0c;讲解起来要花一点…

Vue中如何进行错误处理

Vue中如何进行错误处理 在Vue应用程序中&#xff0c;错误处理是必不可少的。错误可能发生在各种地方&#xff0c;例如网络请求、组件生命周期钩子函数、计算属性、方法等等。如果我们不正确地处理这些错误&#xff0c;可能会导致应用程序崩溃或无法正常工作。在本文中&#xf…

chatgpt赋能python:Python怎么反向切片

Python怎么反向切片 在Python中&#xff0c;切片是一种用于从序列中选取子序列的方法。正向切片从序列的第一个元素开始选取&#xff0c;而反向切片则从序列的最后一个元素开始选取。本文将介绍Python中如何使用反向切片。 什么是切片 在Python中&#xff0c;切片是一种操作…

IP协议的特性总结

目录 1. 地址管理 1.1 动态分配 1.2 NAT(网络地址转换)机制 1.3 IP地址的组成 1.4 IP地址网络号和主机号的划分 1.4.1 IP地址分类(ABCDE类) 1.4.2 子网掩码 1.5 特殊的IP地址 2. 路径规划 3. IP协议报文格式 3.1 分包 3.2 组包 1. 地址管理 IP地址在之前跟大家简单…

mfc读取obj格式文件初步

3dmax做一个box&#xff1b; 导出为cube1.obj&#xff1b; 记事本打开看一下该obj文件&#xff1b; # 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware # File Created: 10.06.2023 23:16:04mtllib cube1.mtl# # object Box001 #v -41.2323 0.0000 31.8849 v -4…

chatgpt赋能python:Python如何反向排序

Python如何反向排序 在Python中&#xff0c;排序是一项常见的任务。通常情况下&#xff0c;我们想对一组数据按照升序进行排序。但有时候&#xff0c;我们需要对这些数据进行反向排序&#xff0c;也就是按照降序进行排序。那么&#xff0c;Python该如何实现反向排序呢&#xf…

chatgpt赋能python:Python如何取出int内的个位数

Python如何取出int内的个位数 Python已经成为全球范围内最受欢迎的编程语言之一&#xff0c;它具有简单易学&#xff0c;可读性高和可扩展性等特点&#xff0c;因此它被广泛应用于数据科学、人工智能、网络编程、物联网和Web开发等领域。在Python编程中&#xff0c;有时需要从…

第七十天学习记录:高等数学:微分(宋浩板书)

微分的定义 基本微分公式与法则 复合函数的微分 微分的几何意义 微分在近似计算中应用 sin(xy) sin(x)cos(y) cos(x)sin(y)可以用三角形的几何图形来进行证明。 假设在一个单位圆上&#xff0c;点A(x,y)的坐标为(x,y)&#xff0c;点B(x’, y’)的坐标为(x’, y’)。则以两点…

44--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-支付宝二次封装、支付成功页面以及后台设计

一、支付宝支付介绍 需求:购买课程,付款 现在主流支付有支付宝支付、微信支持、银联支付 申请使用支付宝支付,需要有商户号(用户把钱付款到你的商户号中) 收手续费商户号要申请,需要有公司的营业执照(不需要营业执照也可以申请–》笔记)我们开发,需要商户号,公钥,…

Spring的数据访问哲学

目录 设计思路 了解Spring的数据访问异常体系 数据访问模板化 设计思路 Spring的目标之一就是允许我们在开发应用程序时&#xff0c;能够遵循面向对象(OO)原则中的“针对接口编程”Spring对数据访问的支持也不例外像很多应用程序一样&#xff0c;Spittr应用需要从某种类型的…

chatgpt赋能python:Python中使用Numpy获取数组元素的方法

Python中使用Numpy获取数组元素的方法 作为一种高级数据处理和科学计算库&#xff0c;numpy在python中被广泛使用。对于从事科研数据处理工作的工程师和研究人员来说&#xff0c;numpy已经成为必须要掌握的工具之一。 本文将讨论如何在Python中使用Numpy获取数组元素。我们将…

理解分布式锁的实现过程

背景&#xff1a;分布式锁在后端开发者会用到&#xff0c;它有哪些特点呢&#xff1f; 在分布式系统中&#xff0c;一个应用部署在多台机器当中&#xff0c;在某些场景下&#xff0c; 为了保证数据一致性&#xff0c;要求在同一时刻&#xff0c;同一任务只在一个节点上运行&am…

【计算机网络复习】第七章 物理层

物理层的位置和基本功能 u 网络体系结构的最底层&#xff0c;实现真正的数据传输 u 将二进制数据编码或调制成信号&#xff0c;发送到传输介质(传输媒体)&#xff1b; u 从传输介质接收信号&#xff0c;转换成二进制数据 物理层的主要功能 u 规定了与传输介质的接口的特…

chatgpt赋能python:判断Python中的字符类型

判断Python中的字符类型 在Python编程中&#xff0c;有时我们需要判断一个字符的类型。Python提供了几种方法来判断字符类型。本文将介绍这些方法并提供示例代码。 1. 使用内置函数ord() ord()函数可以返回一个字符的Unicode编码。使用这个方法我们可以判断一个字符是否是数…

【LGR-142-Div.4】洛谷入门赛 #13 考后分析与题解

洛谷入门赛 #Round 13 比赛分析与总结T1 魔方魔方题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示数据规模与约定 分析AC代码注意 T2 教学楼教学楼题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示样例…

尚硅谷甄选--更新中

文章目录 搭建后台管理系统模板项目初始化2.1.1环境准备2.1.2初始化项目2.2项目配置一、eslint配置1.1vue3环境代码校验插件1.2修改.eslintrc.cjs配置文件1.3.eslintignore忽略文件1.4运行脚本 二、配置**prettier**2.1安装依赖包2.2.prettierrc.json添加规则2.3.prettierignor…

Shell编程条件语句(if、case)

目录 一、Shell条件语句 1.条件表达式测试 2.文件测试 3.整数值比较 4.字符串比较 5.逻辑测试 二、if 条件语句&#xff08;串行执行&#xff09; &#xff08;1&#xff09;单分支结构 &#xff08;2&#xff09;双分支结构 &#xff08;3&#xff09;多分支结构 三…

C语言之数据在内存中的存储习题讲解

上个博客我们讲到了整型家族,对于整型家族来说有有符号和无符号之分 short signed short unsigned short int signed int unsigned int char在VS环境上其实是signed char unsigned char 对于有符号的char来说,把二进制位序列中的最高位当成符号位 对于无符号的char来…

【计算机组成原理与体系结构】控制器

目录 一、CPU的功能与基本结构 二、指令周期的数据流 三、数据通路 四、硬布线控制器 五、微程序控制器 六、微指令 一、CPU的功能与基本结构 运算器基本结构 控制器基本结构 CPU的基本结构 二、指令周期的数据流 取址周期 间址周期 中断周期 指令周期流程 三、数据通路 …

微信云开发

微信云数据库 快速开始&#xff1a;小程序/小游戏 | 微信开放文档 (qq.com) 首先微信云开发需要一个真实小程序的 AppID&#xff0c;而不能使用测试号。 然后点击这个开通云开发 云的环境大概是这样的 首先我们要初始化 否则会像这样&#xff0c;报错 写在app.js的 onLaunc…