ArcGIS中基于网格实现可视化

news2024/11/15 7:46:06

1

数据来源介绍

土地利用数据、高程数据、植被指数数据均来源于中国科学院资源环境科学与数据中心(https://www.resdc.cn/)。

2

数据预处理

我们从中国科学院资源环境科学与数据中心官网上下载下来的土地利用栅格数据是整型的,我们可以利用栅格重分类工具来将它变为浮点型。

在这里我们发现,土地利用栅格数据里的像元被赋值为一些不连贯的数,我们通过官网上的相关介绍得知其所包含的含义:

我们根据表格内容统一将数据分为“耕地、林地、草地、水域、建设用地和未利用地”六类。

我们利用重分类工具以一级类型编号将它分为六类。

打开重分级后的栅格数据属性表,添加一个字段名称为“TDLY”的字段,并设置字段类型为文本型。

右键工具栏空白处,添加编辑器工具,并使其处于编辑状态。

键入土地利用类型。

3

往期回顾

前两篇文章我们简单介绍了一些有关生态风险指数计算的指数指标,有景观破碎度指数、景观分离度指数、景观优势度指数、景观干扰度指数、景观脆弱都指数和景观损失度指数。它们的计算公式如下:

景观破碎度指数:

景观分离度指数:

景观优势度指数:

景观干扰度指数:

景观损失度指数:

在这些式子中:a、b、c分别为、、的权重,且a+b+c=1,为景观类型i的斑块数,为总的斑块数,为景观类型i的总面积,为景观总面积;为景观类型相对密度,景观类型相对盖度;景观脆弱度指数。根据相关参考文献及专家意见,对a、b和c三个指标分别赋以0.5、0.3和0.2的权值,考虑到研究区的地域及景观特点,对未利用地单独赋以0.2、0.3和0.5的权值。

计算景观脆弱度指数时我们是将研究区景观类型的脆弱性分为6级,从高到低排列依次为:未利用地、水域、耕地、草地、林地、建设用地,再进行归一化处理后得到各景观类型的脆弱度指数的,当时我们是利用反正切函数来实现数据的归一化,即:

其中的pi我们上期解释过,在Excel表中既是π。

今天我们需要基于网格实现可视化,所以我们将上期介绍的景观生态风险指数公式简单改动一下:

该式中,

为第k个生态小区的生态风险指数,为第k个生态小区的第i类景观的面积,为第k个生态小区的景观总面积,为第i类景观的景观损失度指数。

4

指数计算并实现可视化

1. 将各类用地单独提取

利用按属性提取工具将六类用地类型单独提取出来作为单独的图层。点击右边中间的小图标可以设置属性。

2. 创建生态小区

为了将生态风险指数空间化,在考虑研究区范围和工作量大小的基础上,我们利用创建渔网工具将贵州省划分为5km*5km的生态小区。

3. 栅格转矢量面

利用栅格转面工具将贵州省土地利用栅格数据按TDLY字段转化为矢量面数据。这里我们选择不勾选简化面,否子转化出来的矢量面数据和之前单独提取出来的各类用地位置会有些出入。

4. 提取生态小区

利用裁剪工具将生态小区多余的部分裁掉。这里可能会有人有个疑问就是为什么不用按位置选择并提取生态小区呢,其实主要是因为那样做的话贵州省边缘的大部分生态小区会有很大的面积没有用地类型,不考虑进去的话会造成很大的误差。

5. 统计各生态小区内各类用地类型面积

我们利用以表格显示分区统计工具依次统计之前单独提取出来的各类用地栅格数据在各生态小区内的各类用地面积。

介于统计类型下拉菜单栏中没有统计AREA选项,所以我们统计类型选择ALL,统计完成后再利用删除字段工具将分区统计得到的表格中多余的字段删除。这里可能就有人会问统计类型下拉菜单栏中没有统计AREA选项,我怎么知道最后统计的表格中会有AREA字段呢,别问,问就是经验。

利用添加连接工具将六类景观的面积统计表连接到生态小区的属性表中。至于为什么不右键图层进行连接而用工具箱里的添加连接工具来连接,答案在最后,这里先卖个关子。

将链接过来的字段保存在属性表中除了将数据导出为一个新的图层以外,还有一个办法就是在属性表中新建一个相同的字段,再利用字段计算器将连接过来的字段内容赋值到新建立的字段中。

由于连接过来的字段中有很多空值,赋值到新字段中也同样如此,在后续的计算中空值会影响运算,这里我们利用字段计算器将空值全部替换为1,不替换为0是因为在公式中各类景观在生态小区里的面积有做分母的时候,替换为0无法计算。

需要注意在用Python语句时里面的标点符号均为英文符号,另外还有一点就是Python语言和其它程序设计语言(如 Java、C 语言)采用大括号“{}”分隔代码块不同,Python采用代码缩进和冒号(:)来区分代码块之间的层次。Python中实现对代码的缩进,可以使用空格或者Tab键实现。但无论是手动敲空格,还是使用Tab键,通常情况下都是采用4个空格长度作为一个缩进量,其实2个也行(默认情况下,一个Tab键就表示4个空格)。

在字段计算器中输入代码换行不会自动缩进,所以大家在输入代码时一定注意缩进。

1. def updateValue(value):  2.if value==None:     3. return'0'   4.else: return value 5.updateValue(!水域_AREA!)

6.统计各生态小区内各类用地类型图斑数量

利用标识工具将用地类型矢量面数据中跨小区的各类景观图斑按各小区进行分割。

利用多部件至单部件工具将各生态小区内的各类景观图斑打散,避免两个图斑为一个要素。

利用要素转点工具将景观矢量面图层转化为点图层,用于统计各生态小区图斑个数。

利用筛选工具将景观矢量点图层按不同用地类型分割成六个景观矢量点图层。

利用空间连接工具统计各类景观图斑数量即点的数量。

再次利用添加连接工具将统计的各类景观图斑数量连接到生态小区图层中。

最后再次添加字段并赋值,用同样的方法将空值替换为0。

整理所得生态小区属性表如下:

接下来我们将基于该属性表进行计算。

7.指数计算并实现可视化

将统计好的数据导入到Excel中进行计算。

计算完成后右键生态小区图层进行连接,并进行可视化。

5

技术路线总结

这是在模型构建器中一边做一边整理的技术路线图,也是之前为什么使用添加连接工具而不右键图层进行连接的原因。下面这个附件是构建的模型文件,有需要的可以添加到自己电脑中使用。(文末有下载链接)

6

成果展示

如图显示颜色越红的地方生态风险越高。

树谷资料库资源大全(2月9日更新)

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

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

相关文章

高低温真空磁场探针台T8-EM4的技术指标

锦正茂高低温真空磁场探针台探针台配备4个(可选6个或8个)拥有高精度位移的探针臂,同时配有高精度电子显微镜,便于微小样品的观察操作。探针可通过直流或者低频交流信号,用来测试芯片、晶圆片、封装器件等,广…

火眼审阅 | 基于NLP和OCR识别技术赋能合同审阅

合同作为确定权利义务的法律文件,贯穿企业内外部活动的所有环节,可见合同数据之于企业是非常重要的数据资产。 合同管理是企业营业中的重要部分,其中合同审核是企业法务的基本工作之一。而对于所有的法务人员一直存在一个问题:合…

Java读取mysql导入的文件时中文字段出现�??的乱码如何解决

今天在写程序时遇到了一个乱码问题,困扰了好久,事情是这样的, 在Mapper层编写了查询语句,然后服务处调用,结果控制器返回一堆乱码 然后查看数据源头处: 由重新更改解码的字符集,在数据库中是正…

算法总结c++

文章目录基本概念时间复杂度空间复杂度基本结构1. 数组前缀和差分数组快慢指针(索引)左右指针(索引)盛水容器三数之和最长回文子串2. 链表双指针删除链表的倒数第 n 个结点翻转链表递归将两个升序链表合并为一个新的 升序 链表链表翻转3. 散列表twoSum无…

Camtasia2023最新版本新功能及快捷键教程

使用Camtasia,您可以毫不费力地在计算机的显示器上录制专业的活动视频。除了录制视频外,Camtasia还允许您从外部源将高清视频导入到录制中。Camtasia的独特之处在于它可以创建包含可单击链接的交互式视频,以生成适用于教室或工作场所的动态视…

UDS诊断之DTC码构成

DTC(Diagnostic Trouble Code)表示诊断故障码(全局唯一),是故障类型的"身份ID";用于汽车故障时对故障部位及原因的排查。 格式如下: 其中,DTCHighByte、DTCMiddleByte这两个字节表示故障内码&…

nvm控制node版本

安装 nvm 1、下载 nvm 官网安装包: github 选择 nvm-setup.exe 下载 2、安装 1、选择 nvm 安装目录(可自定义) 2、选择 node 安装目录(如有安装过,可以选择以前安装目录,可 cdm 输入 where node 查看原nod…

嵌入式Qt 开发一个音乐播放器

上篇文章:RK3568源码编译与交叉编译环境搭建,进行了OK3568开发板软件开发环境搭建,通过编译RK3568的源码,可以得到Qt开发的交叉编译相关工具。 本篇,就来在搭建好的软件开发中,进行Qt软件的开发测试。由于…

package-lock.json,深度内容

前言 看完本文,你将从整体了解依赖版本锁定原理,package-lock.json 或 yarn.lock 的重要性。首先要从最近接连出现两起有关 npm 安装 package.json 中依赖包,由于依赖包版本更新 bug 造成项目出错问题说起。 事件一:新版本依赖包…

JavaScript 二叉树

文章目录前言一、何为 树1.根节点2.外&内部节点3.子树4.深度5.高度二、二叉树 & 二叉搜索树1.二叉搜索树插入值2.遍历二叉搜索树I.中序遍历II.先序遍历III.后序遍历3.查找节点4.移除节点总结前言 同前面说到的散列表结构, 树也是一种非顺序数据结构, 对于存储需要快速…

【浅学Nginx】Nginx安装和基础使用

Nginx安装和基础使用1. Nginx是什么2. Nginx的安装3. Nginx的目录结构4. Nginx的配置文件结构5. Nginx的具体应用5.1 部署静态资源5.2 反向代理5.3 负载均衡1. Nginx是什么 Nginx是一个轻量级的 web服务器 / 反向代理服务器及电子邮件(IMAP/POP3)代理服…

kettle开发-Day37-SQ索引优化

前言:在上一个生产项目中,有个单表数据超249G了,里面存储的数据时间跨度就1年左右,那为啥会出现这种情况呢?数据来源为,一个生产基地所有电表的每分钟读数,一个基地大概500个电表左右&#xff0…

【C++】---Stack和Queue的用法及其模拟实现

文章目录Stack最小栈栈的弹出压入序列逆波兰表达式求值用栈实现队列模拟实现queue用队列实现栈模拟实现Stack stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。它的使用和之前学习的ve…

KDZD880 智能蓄电池放电测试仪

一、产品概述 智能蓄电池放电测试仪主要用于电信、移动、联通、电力直流行业的后备电源铅酸蓄电池的放电测试,具备蓄电池快速容量测试、在线监测及容量核对测试三大功能于一体的产品,集成化程度高、体积小巧、功能完善。 该设备是针对整组 12V-600V 蓄…

JavaScript高级程序设计读书分享之3章——3.4数据类型

JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 ECMAScript 有 6 种简单数据类型(也称为原始类型):Undefined、Null、Boolean、Number、String 和 Symbol(es6新增)。 还有一种复杂数据类型叫…

vim编辑器和gcc/g++编译器和gdb调试器和make/makefile自动化构建工具的使用

vim的三种模式(其实有好多模式 )(1).命令模式(2).插入模式(3).底行模式vim的基本操作vim的命令模式的基本操作vim的插入模式的基本操作vim的底行模式的基本操作vim的配置gcc和g相关操作(1&#…

XCP实战系列介绍11-几个常用的XCP命令解析

本文框架 1.概述2. 常用命令解析2.1 CONNECT连接(0xFF)2.2 SHORT_UPLOAD 命令(0xF4)2.2 SET_MTA (0xF6)2.3 MOVE命令(0x19)2.4 GET_CAL_PAGE(0xEA)2.5 SET_CAL_PAGE(0xEB)2.6 DOWNLOAD(0xF0)1.概述 在文章《看了就会的XCP协议介绍》中详细介绍了XCP的协议,在《XCP实战系列介绍…

Python面试——装饰器

知识链接: 装饰器 装饰器可调用的对象,其参数是被装饰的函数。装饰器可能会处理被装饰的函数然后把它返回,或者将其替换成另外一个函数或者可调用对象。 装饰器有两大特性: 能把被装饰的函数替换成其他函数(在元编程…

面试腾讯测试岗后感想,真的很后悔这5年一直都干的是基础测试....

前两天,我的一个朋友去大厂面试,跟我聊天时说:输的很彻底… 我问她:什么情况?她说:很后悔这5年来一直都干的是功能测试… 相信许多测试人也跟我朋友一样,从事了软件测试很多年,却依…

树莓派用默认账号和密码登录不上怎么办;修改树莓派的密码

目录 一、重置树莓派的默认账号和密码 二、修改树莓派的密码 三、超级用户和普通用户的切换 一、重置树莓派的默认账号和密码 在SD卡中根目录建立文件userconf 在userconf中输入如下内容: pi:$6$/4.VdYgDm7RJ0qM1$FwXCeQgDKkqrOU3RIRuDSKpauAbBvP11msq9X58c8Q…