ArcGIS:栅格计算器的运算符和函数详解

news2024/9/28 7:21:38

01 栅格计算器在哪?

02 运算符说明

栅格计算器的表达式书写与Python语法一致(由于其为解释型语言并且语言简洁优美,因此简单上手),这里主要简单说明各个运算符即可使用栅格计算器构建地图代数表达式以输出要求的栅格图像。

首先我们先来了解一下算术运算符。

2.1 +(加)

(或许你会看到+左右两侧均有空格,这是python推荐的写法,但是并不强制,它可以使表达式更为优美简洁,我很喜欢Python)

2.2 -(减)

2.3 *(乘)

2.4 \(除)

接着我们来看一下关系运算符。

2.5 ==(相等)

其它>(大于) 、<(小于)、 >=(大于等于)、 <=(小于等于)、!=(不等于)均为类似用法,这里不再赘述。

接下来我们来看一下逻辑运算符

2.6 &(布尔与)

等价于数学中的取交集;

2.7 |(布尔或)

等价于数学中的取并集

2.8 ^(布尔异或)

2.9 ~(布尔非)

类似数学中的取逆,但是样本空间为{真, 假}.

03 函数

3.1 Con(condition, num1, num2)

实际为If函数,意为对每一个像元进行If判断,如果满足条件condition,那么赋值为num1,否则赋值为num2.

可以进行嵌套,例如,对某一DEM栅格图像dem.tif,我们想要对其进行属性值按照分类标准(<200的像元赋值为1,>= 200 但是 <500的像元赋值为2, 其它赋值为3)进行重新赋值(当然你也可以使用重分类进行)。那么表达式为:

Con("dem.tif" < 200, 1, Con("dem.tif" < 500, 2, 3))
# 或许你会这么写
Con("dem.tif" < 200, 1, Con(200 =< "dem.tif" < 500, 2, 3))
# 恭喜你python支持链式比较(当然你也可以使用& |都行),确实可以200 =< "dem.tif" < 500,
#但是明显不需要,因为已经第二个IF判断了,肯定是>= 200了;

3.2 Pick(Raster.tif, [num1, num2, num3...])

实际就是提取栅格图像中属性值为num1,num2, num3等的像元,其它没有被提取的像元设置为Nodata。

例如,我们现在有一幅土地利用图(栅格数据结构),其中属性值为1的像元表示城镇,属性值为5的像元表示为乡村,当然还有一些其它属性值也表示一些地物。那么我的需求即使将城镇和乡村的像元提取出来,实际底层执行的是:对逐个像元进行判断,若该像元的属性值在列表[num1, num2, num3...]中,那么该像元属性值不变,若是像元属性值不在列表中,那么该像元值设置为Nodata。

3.3 SetNull(condition, raster.tif/num)

其表示将满足条件consition的像元设置为Nodata,不满足条件的像元设置为raster.tif栅格图像(一般为condition条件中的图像意为不满足条件的属性值不变)对应的栅格属性值或者设置为值num。

例如,我们通过DEM栅格图像dem.tif寻找地形平坦的区域(认为高程小于200的均满足要求),为了后续其它空间分析的方便,这里需要将dem.tif进行栅格计算(当然你用重分类等操作也是可以的),那么我们可以写表达式为:

SetNull("dem.tif" >= 200, "dem.tif")
# 表示>=200的像元值设置为Nodata,其它设置为dem.tif对应的栅格像元值即不变

3.4 Float(raster.tif)和Int(raster.tif)

有时候栅格图像中的栅格属性值的数据类型不满足我们的计算要求,那么我们需要对其进行类型转换。

Float()是将栅格图像中的像元值类型转化为浮点型(当然,raster.tif * 1.0也是可以得到浮点数的raster.tif)

Int()是将栅格图像中的像元值类型转化为整型。

未完待续,如今后碰到其它函数在行补充。


如果有问题,欢迎一起探讨.

<p>炒茄子<p>

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

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

相关文章

给力|这是一个专业的开源快速开发框架!

在低代码开发市场&#xff0c;专业的开源快速开发框架可以助力企业提升办公协作效率&#xff0c;实现提质增效的办公自动化的发展目标。 流辰信息低代码技术开发平台服务商&#xff0c;拥有丰富的技术经验和案例合作经验&#xff0c;针对不同的客户需求&#xff0c;提供个性化、…

Docker-数据卷之Dockerfile

dockerfile相当于一个脚本通过该脚本可以生成一个自定义的镜像Dockerfile命令:注意&#xff1a;Dockerfile中的指令必须都是大写#基础镜像&#xff0c;一切从这儿开始构建 FROM #镜像是谁写的&#xff0c;姓名邮箱 MAINTAINER #镜像构建时候需要运行的命令 RUN #步骤&#xff1…

Nginx 文件名逻辑漏洞(CVE-2013-4547)

注意&#xff1a;仅用于技术讨论&#xff0c;切勿用于其他用途&#xff0c;一切后果与本人无关&#xff01;&#xff01;&#xff01; 个人博客地址&#xff1a;HJW个人博客 理论基础&#xff1a; 建议提前学习nginx的原理&#xff1a;Nginx服务漏洞详解 - 知乎 漏洞原理&a…

【项目实战】如何使用Postman调用WebSocket程序

一、背景说明 项目中需要使用WebSocket进行通信&#xff0c;开发完了WebSocket接口&#xff0c;总得测试吧&#xff0c;以下是Postman调用WebSocket程序的方法。 二、注意事项 2.1 为啥选Postman&#xff1f; 最近都在用ApiFox做接口调用&#xff0c;但是目前版本的ApiFox&…

新库上线 | CnOpenData注册会计师及事务所数据

注册会计师及事务所数据 一、数据简介 注册会计师是指取得注册会计师证书并在会计师事务所执业的人员&#xff0c;从事审计、咨询、税务等相关业务。事务所是指依法在中国境内设立&#xff0c;由中国公民组成&#xff0c;具有独立法人资格&#xff0c;接受投资者和其他利害关系…

Python之webmagic爬虫优点与使用

一、webmagic的优点它更偏向于java的语法&#xff0c;对于熟悉java的工程师来说学习成本较低提供多种选择器&#xff0c;如css选择器、xpath、正则等有一个模块pipeline&#xff1a;可通过简单地配置&#xff0c;可以将爬虫抽取到的信息&#xff0c;持久化到文件、数据库等。二…

git 提交 多人开发避免冲突

代码正常提交 git add . git commit -m ‘备注信息’ git status 查看本地提交状态 git pull 拉取代码 git push origin master 指定远程仓库名和分支名 ‘’ 如果多人开发 A和B 提交避免冲突 B拉取代码修改内容直接提交后 A也修改了内容在git add / git commit / git pull / g…

新品发布 | 单细胞转录组学

单细胞转录组学测序(Single cell RNA-seq)&#xff1a;是对单个细胞的转录组进行研究的一项技术&#xff0c;其原理是将分离的单个细胞中微量的mRNA通过扩增后再进行高通量测序&#xff0c;主要用于研究异质性细胞的独特表型和生物学功能&#xff0c;有助于发现新的稀有细胞类型…

【JavaSE系列】 第九节 —— 多态那些事儿

文章目录 前言 一、多态的概念 二、向上转型和向下转型 2.1 向上转型 2.2 什么是向上转型 2.3 三种常见的向上转型 2.3.1 直接赋值 2.3.2 作为方法的参数 2.3.3 作为方法的返回值 2.4 向下转型&#xff08;这个了解即可&#xff09; 三、方法重写 3.1 方法重写的…

启动golang项目编译的exe可执行文件获取windows管理员权限(UAC)

背景&#xff1a; go代码启动以后里面涉及到修改ip地址等操作&#xff0c;需要管理员权限。打包好的exe文件双击执行默认是没有管理员权限的&#xff0c;那么修改ip就会提示需要管理员权限。 解决方法1&#xff1a;右键以管理员权限运行exe文件 解决方法2&#xff1a;编译exe…

前端jQuery ajax请求,后端node.js使用cors跨域

前言 跨域&#xff0c;一句话介绍&#xff1a; 你要请求的URL地址与当前的URL地址&#xff0c;协议不同、域名不同、端口不同时&#xff0c;就是跨域。 步入正题 前端&#xff0c;jQuery ajax请求 $.ajax({async: false,method: post,//URl和端口与后台匹配好&#xff0c;当…

点云分割预研

文章目录激光雷达点云分割1.点云分割主流方案&#xff08;模型角度&#xff09;1.1 (a) 基于RGB-D图像1.2 (d) 基于点云1.3 (b) 基于投影图像1.4 (b) 基于投影图像 - SqueezeSeg/RangeNet1.4. 球映射2 点云分割主流方案&#xff08;部署角度&#xff09;3 点云分割常用指标4 点…

MySQL 02 :三层结构、备份删除数据库

MySQL 02 &#xff1a;数据库三层结构-破除MySQL神秘 请添加图片描述 通过golang操作MySQL 创建删除数据库 备份恢复数据库 第一次需要配置环境&#xff0c;否则会报错 报错&#xff1a;mysqldump: Got error: 1045: Access denied for user ‘root’‘localhost’ (using …

HDLBits: 在线学习 SystemVerilog(二十三)-Problem 158-162(找BUG)

HDLBits: 在线学习 SystemVerilog&#xff08;二十三&#xff09;-Problem 158-162&#xff08;找BUG&#xff09;HDLBits 是一组小型电路设计习题集&#xff0c;使用 Verilog/SystemVerilog 硬件描述语言 (HDL) 练习数字硬件设计~网址如下&#xff1a;https://hdlbits.01xz.ne…

【LeetCode】《LeetCode 101》第二章:最易懂的贪心算法

文章目录2.1 算法解释2.2 分配问题455. 分发饼干 &#xff08;简单&#xff09;135. 分发糖果 &#xff08;困难&#xff09;2.3 区间问题435. 无重叠区间&#xff08;中等&#xff09;2.4 练习605. 种花问题&#xff08;简单&#xff09;452. 用最少数量的箭引爆气球&#xff…

FFmpeg介绍及入门知识

1、简介 FFmpeg是一套由c语言编写的&#xff0c;可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序,自身采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案&#xff0c;包含了非常先进的音频/视频编解码库libavcodec&#xf…

【Unity Android Platform:关于Android权限来源(安卓)如何查找】

Android权限来源 问题描述&#xff1a;当项目接入的插件逐渐变多&#xff0c;不仅仅是AndroidManifest会影响Android Permission的个数&#xff0c;甚至有些API也会影响最终的权限个数&#xff0c;例如下图所示&#xff1a; 当国内权限问题涉及到一些安全隐私问题时&#xff0…

构造函数与普通函数,显式原型与隐式原型,原型与原型链

原型与原型链1 学前先了解一些概念1.1 构造函数和普通函数的区别1.1.1 调用方式1.1.2 函数中this的指向不同1.1.3 写法不同1.2 问题明确2 原型与原型链2.1 原型2.2 显式原型与隐式原型2.3 原型链3 原型链环形结构1 学前先了解一些概念 1.1 构造函数和普通函数的区别 构造函数…

全流程基于最新导则下的生态环境影响评价技术方法及图件制作与案例

目录 专题一、生态环境影响评价框架及流程 专题二、基于遥感解译的土地利用现状图的编制 专题三、生物多样性测定及R语言分析 专题四、植被类型及植被覆盖度图的编制 专题五、生物量与净初级生产力测定&#xff1a;实测及模型 专题六、生态系统类型及服务价值评估 专题七…

MOT学习笔记 — 行人检测及行人跟踪数据集总结

1. 行人红外数据集总结 &#xff08;1&#xff09;OSU Thermal Pedestrian Database 下载链接&#xff1a;http://vcipl-okstate.org/pbvs/bench/Data/01/download.html &#xff08;2&#xff09;IRIS Thermal/Visible Face Database 下载链接&#xff1a;http://vcipl-o…