问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

地图代数、栅格计算器和使用运算符

创作时间:
作者:
@小白创作中心

地图代数、栅格计算器和使用运算符

引用
CSDN
1.
https://m.blog.csdn.net/qq_35582643/article/details/143288926

地图代数允许您从栅格和矢量图层组合、修改和创建新的信息层。由像素组成的栅格图层在这种情况下尤其重要,因为它们表示连续信息,例如卫星图像、高程图和其他地理数据。

地图代数被理解为一组技术和程序,通过对栅格格式的一个或多个图层进行操作,使我们能够获取派生信息,通常以新数据图层的形式。

Víctor Olaya,摘自他的《地理信息系统》一书

栅格计算器

栅格计算器是一种 GIS 工具,可让您对栅格数据图层执行数学和逻辑运算。通过此工具,用户可以将公式和运算符应用于栅格单元格以生成新的数据集。此功能对于空间分析至关重要,因为它可以快速有效地转换和分析信息。

QGIS栅格计算器使用简单的语法对栅格图层进行计算。允许用户应用数学运算、函数和逻辑运算符来创建新的栅格图层。

要在表达式中使用栅格图层,我们必须在对话框的左侧面板中双击它或在表达式框中键入图层的名称。栅格图层名称必须用双引号括起来,例如“raster_layer_name”。

栅格 计算器是一种工具,允许您对栅格中存在的像素 值执行数学运算 ,这对于转换和操作所述数据非常有用。这些操作的结果以 GDAL 库支持的格式显示在新的栅格图层中 。

我们可以将 光栅计算器分为 三个部分:

光栅带。 它包含 QGIS 界面中加载的所有栅格图层,可用于对其进行计算。

结果层。 我们定义输出层的地方。此外,我们可以指示计算区域的范围来确定输出层的分辨率。

运营商。包含可添加到工具表达式框的所有运算符。它具有数学运算符 和 三角函数。

栅格计算器运算符和函数

算术运算符

我们可以使用加法(+)、减法(-)、乘法(*)和除法(/)等基本算术运算符来执行栅格图层的计算。例如,要添加两个栅格图层,我们可以编写:“raster_layer1”+“raster_layer2”

我们可以使用括号来控制表达式中的运算顺序。例如:

( “raster_layer1” * 2 ) – “raster_layer2”

逻辑运算符

栅格计算器支持逻辑运算符,例如:

大于 (>)。

小于 (<)。

等于(=)。

大于或等于 (>=)。

小于或等于 (<=)。

与 (<>) 不同。

例如,这对于识别满足特定标准的区域很有用。例如:

“光栅_图层1” > “光栅_图层2”

条件运算符

我们可以使用“IF”语句来创建条件表达式。语法是:

IF (条件、value_if_true、value_if_false )

例如,要创建一个栅格图层,其中如果“raster_layer1”大于“raster_layer2”,则每个像素的值为 1,否则为 0,表达式将为:

IF ( “raster_layer1” > “raster_layer2”, 1 , 0 )

如果我们需要组合多个条件,我们可以使用 AND、OR 和 NOT 运算符。例如,要创建一个输出栅格图层,其中如果“raster_layer 1”大于 10 并且“raster_layer2”小于 20,则每个像素的值为 1,否则为 0,表达式将为:

IF (( “raster_layer1” > 10 ) AND ( “raster_layer2” < 20 ) , 1 , 0 )

数学函数

光栅计算器支持各种数学函数,例如:

sin():栅格像素值的正弦(以弧度为单位)。

cos():栅格像素值的余弦(以弧度为单位)。

tan():栅格像素值的正切(以弧度为单位)。

sqrt():栅格像素值的平方根。

log() – 栅格像素值的自然对数。

exp():栅格像素值的指数。

例如,要计算栅格图层像素值的平方根,语句为:

sqrt ( “raster_layer1” )

细胞统计功能

这些函数允许您跨多个栅格图层计算每个像元的统计数据:

stat_min() – 每个像元指定栅格图层的最小值。

stat_max() – 每个像元指定栅格图层的最大值。

stat_mean() – 每个像元指定栅格图层的平均值。

stat_sum() – 每个像元指定栅格图层的总和。

要使用这些函数,我们必须指定栅格图层,并在括号内用逗号分隔。例如,要计算每个像元三个栅格图层的平均值,表达式将为:

stat_mean (“raster_layer1” ,“raster_layer2” ,“raster_layer3” )

布尔函数

您可以使用布尔函数(例如 AND、OR 和 NOT)来组合多个条件。例如,要创建一个栅格图层,其中如果“raster_layer1”大于 10 并且“raster_layer2”小于 20,则每个像素的值为 1,否则为 0,表达式将为:

IF (( “raster_layer1” > 10 ) AND ( “raster_layer2” < 20 ) , 1 , 0 )

请记住,语法区分大小写,因此我们需要确保对层、函数和运算符名称使用正确的大小写。

在执行栅格计算之前,我们必须始终测试表达式以检测错误。如果表达式有任何错误,QGIS会在对话框窗口中显示一条消息,以便在运行计算之前纠正问题。

例如,要使用 QGIS 栅格计算器将多个栅格图层合并为单个图层,我们可以使用像 stat_mean()、stat_sum()、stat_min() 或 stat_max() 这样的像元统计函数。功能的选择取决于所需的组合结果。

例如,要计算每个像元的多个栅格图层的平均值,我们将使用 stat_mean() 函数:

stat_mean (“raster_layer1” ,“raster_layer2” ,“raster_layer3” ,... )

结论

地图代数和栅格计算器是空间分析中的强大工具,有助于在城市规划、环境管理和农业等各个领域做出明智的决策。通过使用运算符操作栅格数据,分析人员可以提取有价值的信息并呈现支持其结论的视觉结果。这些技术与 GIS 的集成继续彻底改变我们理解和管理世界的方式。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号