You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅通过QGIS界面及栅格计算器实现差值判断重分类的方法咨询

QGIS栅格计算器实现指定需求的解决方案

仅通过QGIS自带的栅格计算器功能可完全实现该需求,之前的写法失效是因为存在栅格运算的逻辑误区。

问题原因

栅格运算的默认规则是:只要有一个参与运算的像元为NoData,整个算术运算的结果直接返回NoData。你尝试的raster_A@1 - raster_B@1逻辑,在raster_B对应位置为NoData时,计算结果直接是NoData,后续和raster_A@1的相等判断永远为假,因此无法得到预期结果。

正确实现方案

QGIS栅格计算器内置了is_no_data()函数专门用于判断像元是否为无值,搭配if()条件函数即可实现需求:

单逻辑实现(仅提取A有值、B无值区域,赋值99,其余为NoData)

直接使用如下表达式:

if(is_no_data(raster_B@1) AND NOT is_no_data(raster_A@1), 99, no_data())

双逻辑实现(同时处理A有B无赋99、B有A无赋-99,其余为NoData)

嵌套if判断即可:

if(
  is_no_data(raster_B@1) AND NOT is_no_data(raster_A@1),
  99,
  if(
    is_no_data(raster_A@1) AND NOT is_no_data(raster_B@1),
    -99,
    no_data()
  )
)

注意事项

  • 运算前请确保两个输入栅格的投影、分辨率、行列数、空间范围完全一致,避免栅格计算器默认取交集导致有效像元丢失
  • 输出栅格时可选择整型数据类型(如Int16)存储结果,节省存储空间

内容的提问来源于stack exchange,提问作者Overlord84

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:57:03