ArcGIS中栅格计算器常用函数的使用

news2025/1/19 3:26:40

先看下目录

一、 ArcGlS中栅格计算器简介

栅格计算器位置及界面布局

二、 ArcGIS棚格计算器中Con()函数的使用

(一) Con()函数的用法

(二) ArcGIS 案例操作

三、 ArcGIS栅格计算器中Pick()函数的使用

(一) Pick()函数的用法

(二) ArcGIS 案例操作

一、ArcGlS中栅格计算器简介

栅格计算是栅格数数据空间分析中数据处理和分析中最为常用的方法,应用非常广泛,能够解决各种类型的问题,尤其重要的是,它是建立复杂的应用数学模型的基本模块。ArcGIS提供了非常友好的图形化栅格计算器,利用栅格计算器,不仅可以方便的完成基于数学运算符的栅格运算,以及基于数学函数的栅格运算,而且它还支持直接调用ArcGIS自带的栅格数据空间分析函数,并且可以方便的实现多条语句的同时输入和运行。

栅格计算器位置及界面布局

Spatial Analyst tools → Map Algebra → Raster Calculator

栅格计算器界面如图,主题包括五部分:

1. ArcGIS加载的栅格;

2. 运算符号;

3. 相关计算函数;

4. 输入表达式框;

5. 输出路径。

栅格计算器的运算对象是栅格,可以把他看作一个“数字”对象。

二、ArcGIS棚格计算器中Con()函数的使用

(一)Con()函数的用法

Con函数是比较重要,用的比较多的函数,因为我们经常会遇到条件分支语句。其表达式如下:

1. Con(A,B,C)

包括三个元,A为条件语句;B为条件语句为真时执行的操作;C为条件语句为假时执行的操作。若“真(语句)”或“假(语句)”存在缺失,则对应栅格单元的值赋值为空(NoData)。三处语句均可以是表达式、布尔语句、值、嵌套条件语句,具体运用可根据实际需要灵活组合。

类似于if-else语句。

1.Con(in_conditional_raster,in_true_raster_or_constant,{in_false_raster_or_constant},{where_clause})

其中:in_conditional_raster表示输入栅格,可以是整型或浮点型;in_true_raster_or_constant其值作为输出像元值的输入,可为整型或浮点型栅格,或为常数值;in_false_raster_or_constant其值作为输出像元值的输入,可为整型或浮点型栅格,或为常数值;where_clause决定输入像元为真或假的逻辑表达式,表达式遵循SQL表达式的一般格式。where_clause 的一个示例为"VALUE > 100"。

当然,还可以嵌套操作,即实现:if-elseif-else。

1. Con(A,B,Con(C,D,E))

相当于

1. if A:

2.     B  

3. elif C:  

4.     D  

5. else:  

6.     E  

(二)ArcGIS 案例操作

下图为从某地图网站获取的实时交通状况,存在RGB三个波段,看以看到主要包括三种拥堵状况,红色代表十分拥堵,黄色代表一般拥堵,绿色代表不拥堵。将其转为一个波段,分别用1,2,3数值代表不拥堵、一般拥堵和十分拥堵。

通过识别发现,红色对应的三个波段值为:R-G-B 239-1-1;黄色对应的三个波段值为:R-G-B 255-234-1319;绿色对应的三个波段值为:R-G-B 3-234-179

红色:

黄色:

绿色:

则用栅格计算器进行处理的表达式为:

Con(("Band_1_CompositeBands.tif" == 3) & ("Band_2_CompositeBands.tif" == 234) & ("Band_3_CompositeBands.tif" == 179),1,Con(("Band_1_CompositeBands.tif" == 255) & ("Band_2_CompositeBands.tif" == 234) & ("Band_3_CompositeBands.tif" == 131),2,Con(("Band_1_CompositeBands.tif" ==239 ) & ("Band_2_CompositeBands.tif" == 1) & ("Band_3_CompositeBands.tif" == 1),3,0)))

结果如图:

三、ArcGIS栅格计算器中Pick()函数的使用

(一)Pick()函数的用法

含义:位置栅格数据的值用于确定要从输入栅格列表中的哪一个栅格获取输出像元值。

1. Pick(in_position_raster,in_rasters_or_constants) 

其中:in_position_raster用于输出值的栅格位置的输入栅格,输入可以是整型,也可以是浮点型栅格;in_rasters_or_constants表示将从中选择输出值的输入的列表,输入可以是整型栅格或浮点型栅格,也可使用数字作为输入。

(二)ArcGIS 案例操作

下图是对某地数字高程模型进行重分类后的影像,一共分为了五级。

在栅格计算器中输入如下公式:

1. Pick("DEM_Reclass",[1,2,3])

得到如下结果:

经过对比我们发现,该公式是把原图层的1,2,3色块区域提取出来。

而4,5色块区域则显示为无数据。

这个公式也是很简单的对吧,我们接下来是这提取一下4和5色块区域。

那我们接下来就在栅格计算器中输入如下公式试一下:

1. Pick("DEM_Reclass",[4,5])

得到如下结果:

再次经过对比我们发现,新生成的图层并不是把原图层的4,5色块区域提取出来,而是将原图层的1,2色块区域提取出来并赋值为4和5。

之前我们说过,除了可以使用数字进行输出意外,还可以使用栅格进行输出,如下图所示为所选地区的两张数字高程模型。

我们来看一下在栅格计算器中输入如下公式是什么效果:

1. Pick("DEM_Reclass",[“DEM1”])

经过对比我们发现结果为原图层与该地区数字高程模型在原图层1色块区域取了一个交集。

来源:GIS前沿

树谷资料库资源大全(1月6日更新)

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

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

相关文章

Linux 上面安装 RocektMQ 安装

下载 RocketMQ 我下载的版本是:4.9.3 下载地址 Apache Downloads 环境说明 Linux64 位系统JDK1.8 (64位) 安装步骤 第一步:传入文件到 Linux 服务器 先将下载好的包传到 linux 服务器上面去 这里我传入的路径是在 /usr/local 第二步&#xff1a…

【Pan-sharpening:主要是调节参数】

Pan-sharpening based on multi-objective decision for multi-band remote sensing images (Pan-sharpening基于多目标决策的多波段遥感图像) Pan-sharpening细节注射适用于融合多光谱图像(MS)与其相应的全色(PAN)图像产生合成图像。理论上&#xff0c…

怎么图片压缩?这几个压缩小技巧值得一试

我们在朋友圈或者其它的社交平台上,发布一些照片或者图片的时候,经常会遇到由于图片过大而无法发送的情况,这时候,我们只需要将图片进行压缩就可以解决这个问题了,那么你们知道图片如何压缩大小吗?下面我整…

ANSYS apdl软件学习指令(建立三维模型)

目的:记录常用的三维建模指令 软件版本:ANSYS2022 以角点坐标建立长方体指令 BLC4, XCORNER, YCORNER, WIDTH, HEIGHT, DEPTHblc4指令是建立长方体最常用的指令之一,其中XCORNER, YCORNER是指当前坐标系中需要绘制长方体的起点,…

ThinkPHP6 配置使用Redis

安装Redis 如果未安装redis,请先安装redis,文档可参考: - windows安装redis - linux安装redis 安装predis 项目中需要使用predis来连接和操作redis,我们用composer来安装和加载它。 项目目录命令行执行: compose…

北大硕士LeetCode算法专题课--链表相关问题

算法面试相关专题: 北大硕士LeetCode算法专题课-字符串相关问题_ 北大硕士LeetCode算法专题课-数组相关问题_ 北大硕士LeetCode算法专题课-基础算法查找_ 北大硕士LeetCode算法专题课-基础算法之排序_ 北大硕士LeetCode算法专题课---算法复杂度介绍_ 北大硕士…

荧光定量PCR检测法的原理和应用领域

一、荧光定量PCR原理 在PCR扩增反应体系中加入荧光基团就是荧光定量PCR(Real-time PCR),通过对扩增反应中每一个循环产物荧光信号的实时检测,最后通过标准曲线对未知模板进行定量分析的方法。 以探针法荧光定量PCR为例:PCR扩增时…

STM32G0开发笔记-Platformio+libopencm3-EEPROM M24C02使用

使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为EEPROM M24C02的使用方法。 1 新建项目 建立eeprom项目 在PIO的Home页面新建项目,项目名称eeprom,选择开发板为 MonkeyPi_STM32_G070RB,开发框架选择libopencm3&am…

loss盘点: GIoU loss (拆 PaddleDetection 轮子)

1. GIoU 计算 关于 GIoU 的实现,可直接参看原文给出的网站: https://giou.stanford.edu/ GIoU∣A∩B∣∣A∪B∣−∣C∖(A∪B)∣∣C∣IoU−∣C∖(A∪B)∣∣C∣GIoU \frac { |A \ \cap \ B | } { |A \ \cup \ B | } - \frac { | C \setminus (A \ \cup \…

Spring MVC 总结

Spring MVC Spring MVC 是 javaWeb 的开发模块,是一个架构模式,是整个 javaWeb 开发领域 最重要的一个技术。 Spring MVC 文档 Spring MVC 是 Spring 体系的 轻量级Web MVC框架。Spring MVC 的核心 Controller 控制器,用于处理请求&#xff…

C语言入门(五)——深入理解函数

return 语句 增量式开发 递归 return 语句 之前我们一直在main函数中使用return语句,现在是时候全面深入地学习一下。在有返回值地函数中,return语句的作用是提供整个函数的返回值,并结束当前函数返回到调用它的地方。在没有返回值的函数中…

vue修改el-input样式,样式穿透

vue–element的form表单中修改el-input样式 在使用 element ui 组件过程中,我最近碰到了新的问题。 初始的界面效果是这样的: 这个效果真的不怎么好看,我想把输入框的背景色变浅,变得透明。于是我在代码中添加 .el-input{backgro…

Polygon生态

1. 引言 当前区块链存在不可能三角问题: 1)去中心化2)可扩展性3)安全性 当前单一链仅能兼顾不可能三角中的2个维度,而无法做到三者兼顾。 区块链中的主要角色有: 1)共识层——负责对包含在…

python基础篇之数字类型(上)

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页:lqj_本人的博客_CSDN博客-微信小程序,前端,vue领域博主lqj_本人擅长微信小程序,前端,vue,等方面的知识https://blog.csdn.net/lbcyllqj?spm1000.2115.3001.5343 哔哩哔哩欢迎关注&…

【NI Multisim 14.0原理图设计基础——元器件属性设置】

目录 序言 一、属性编辑 二、元器件属性设置 🍉 1.“标签”选项卡 🍉2.“显示”选项卡 🍉 3.“值”选项卡 🍉 4.“故障”选项卡 🍉5.“管脚”选项卡 🍉 6.“变体”选项卡 🍉 7.“用户字…

正则表达式查漏补缺(包括es9的新方法)

一、创建正则 1、方法创建正则 // let regnew RegExp("a","ig")//检查字符串中是否包含a // let str"a" // console.log(reg.test("As"))i是忽略大小写 g是全局匹配,不会只返回一个 2、字面量创建正则 // let reg/a|c/…

挂载本地光盘

一、挂载本地光盘到/mnt 使用mount模块 二.配置YUM源 (1)使用yum_repository模块 (2) 控制端主机编辑配置文件使用synchronize模块发送到受控主机 (3) 使用file模块创建一个base.repo文件,并…

HarmonyOS鸿蒙学习笔记(17)获取屏幕宽高等属性

ohos.display组件使用获取屏幕属性的三种方法getDefaultDisplay(callback: AsyncCallback<Display>)的用法getDefaultDisplay()的用法getAllDisplay(callback: AsyncCallback<Array<Display>>)的用法参考资料ohos.display屏幕属性提供管理显示设备的一些基础…

linux 设备树简析

1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. 设备树的来源 在 Linux 中&#xff0c;每个设备驱动&#xff0c;管理一组设备数据&#xff0c;类似面向对象编程中类和其实例对象的关系。一段时…

VMware-【Linux】centos7 /boot磁盘扩容

我的/boot当时安装的时候只分了不到200MB现在不够了所以扩容下这是我学习的文章&#xff0c;细节说明了很多地方还有一些坑&#xff1a;https://blog.51cto.com/u_15801765/5697187开始操作前&#xff0c;可以先用命令 df -hl 记录一下你现在/boot 剩余磁盘空间。到文章最后面我…