【229】Raster Calculator - 栅格计算器

参考:分段函数进行复制,利用语句

参考:ArcGIS栅格计算器 - CSDN

参考:ArcGIS栅格计算器con条件函数使用

参考:ArcGIS栅格计算器 - 电脑玩物

参考:在栅格计算器中构建表达式(官方帮助)


("lyr" = 0) * 1 + ("lyr" > 0) * ("lyr" < 0.783) * (0.6508 - 0.3436 * log10("lyr")) + ("lyr" > 0.783 ) * 0

其中:* 表示赋值,+ 表示连接,个人理解

# 以下实现分段函数
# x<60, y=1
# 60<=x<=120, y=2
# x>120, y=3
("Countries" < 60) * 1 + ("Countries" >= 60) * ("Countries" <= 120) * 2 + ("Countries" > 120) * 3
("Countries" < 60) * 1 + (("Countries" >= 60) & ("Countries" <= 120)) * 2 + ("Countries" > 120) * 3

# 利用条件判断Con可以实现if...elseif...elseif...else的操作
# 只需要在FALSE的参数位置继续增加Con语句即可
Con("Countries" < 60, 1, Con(("Countries" >= 60) & ("Countries" <=120), 2, 3))

# 4个分段
Con("Countries" < 60, 1, Con(("Countries" >= 60) & ("Countries" <=120), 2, Con(("Countries" > 120) & ("Countries" < 180), 3, 4)))

  以下是可在栅格计算器工具中执行的“地图代数”表达式的若干示例。在这些表达式中,栅格图层名称被包含在引号内,例如 "dist"。 

# 以下形式实现将大于200的赋值为1,其他为0的操作
# 前面两个利用条件判断,若True=1
"elev" > 200
("elev" > 200)
Con("elev",1, 0, "Value > 200")
Con("elev > 200",1, 0)

# 也可以将两个图层进行合并计算
("pop" > 150) & ("dist" > 10)

# 进行复杂的公式运算
(("reclass_rd_dist" * 3) + ("reclass_landuse" * 2) + "reclass_elev") /6.0
("Band4" - "Band3") / Float("Band4" + "Band3")

# 以下两种形式均能实现将值大于20的赋值为2,其他为3的操作
Con("elev",2, 3, "Value > 20")
Con("elev > 20",2, 3)

# 将 Null 替换为 0
Con(IsNull("elev"),0, "elev")

# True对应两个图层象元相加,否则为99
Con(("landuse1" == 1) & ("landuse2" == 5), "landuse1" + "landuse2", 99)

Con(Raster('elev') != 0,'elev')

(Con('elev', 'elev', "", "elev_feet <> 0")) + Raster("tree_height")

Con("inRas" < 45,1, Con(("inRas" >= 45) & ("inRas" < 47),2, Con(("inRas" >= 47)&("inRas" < 49),3, Con("inRas" >= 49,4))))

 


相关函数说明:

序号类名称 

功能说明

 语法 & 举例
01 sa.Con 

====<<<< Description >>>>====

针对输入栅格的每个输入像元执行 if/else 条件评估。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

sa.Con (in_conditional_raster, in_true_raster_or_constant, {in_false_raster_or_constant}, {where_clause})
----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  in_conditional_raster:表示所需条件结果为真或假的输入栅格。
◈  in_true_raster_or_constant条件为真时,其值作为输出像元值的输入。
◈  in_false_raster_or_constant:条件为假时,其值作为输出像元值的输入。
◈  where_clause:决定输入像元为真或假的逻辑表达式。表达式遵循 SQL 表达式的一般格式。where_clause 的一个示例为 "VALUE > 100"。

  
# 直接将结果添加到 ArcMap,名称为 outCon
>>> outCon = arcpy.sa.Con("rastercalc4", 2, 1, "VALUE < 100")
# 按照默认形式命名
>>> arcpy.sa.Con("rastercalc4", 42, 1, "VALUE < 100")

 

 02sa.Pick  

====<<<< Description >>>>====

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

====<<<< Syntax >>>>====

sa.Pick (in_position_raster, in_rasters_or_constants)
----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  in_position_raster:定义要用于输出值的栅格位置的输入栅格。
◈  in_rasters_or_constants将从中选择输出值的输入的列表。

  
# 按照一行一行计算位置
# InRas1 的第1个象元是1,因此获取列表中第1个栅格的第1个象元1
# InRas1 的第4个象元是2,因此获取列表中第2个栅格的第4个象元NoData
# InRas1 的第9个象元是NoData,结果为NoData
# InRas1 的第12个象元是3,已经超出列表长度,象元为NoData
OutRas = Pick(InRas1, [InRas2, InRas3])
      
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Raster Calculator栅格计算器)是ArcGIS软件中的一个工具,它可以用来对栅格数据进行各种数学和逻辑运算。使用Raster Calculator,你可以对一个或多个栅格图层进行加、减、乘、除等运算,也可以进行逻辑运算如逻辑与、逻辑或、逻辑非等。 以下是使用Raster Calculator的一般步骤: 1. 在ArcGIS软件中,打开你的工作项目,并确保你已经加载了需要进行计算的栅格图层。 2. 在ArcGIS主菜单中,选择 "Spatial Analyst"(空间分析)工具箱。如果没有显示该工具箱,你可能需要先启用Spatial Analyst扩展。 3. 在Spatial Analyst工具箱中,展开 "Map Algebra"(地图代数)子菜单,找到并打开 "Raster Calculator"(栅格计算器)工具。 4. 在Raster Calculator对话框中,输入适当的表达式。表达式应基于栅格图层的名称和运算符进行构建。例如,"Raster1 + Raster2" 表示将Raster1和Raster2两个栅格图层进行相加。 5. 可以通过单击 "Add Raster" 按钮来添加更多的栅格图层到表达式中,并继续构建你的计算公式。 6. 确认表达式无误后,选择输出栅格图层的存储位置和名称。 7. 点击 "OK" 开始执行栅格计算器操作。 请注意,表达式中的栅格图层应具有相同的空间参考和像元大小,否则可能需要进行预处理以确保数据一致性。 使用Raster Calculator可以进行更复杂的计算,包括条件语句、逻辑运算和函数调用等。你可以参考ArcGIS的帮助文档或在线资源,以了解更多关于Raster Calculator的详细使用方法和示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值