【QGIS数据篇】QGIS 3.40 栅格计算器经典实用公式全集
【QGIS数据篇】QGIS 3.40 栅格计算器经典实用公式全集
QGIS作为一款强大的开源GIS软件,栅格计算器功能是其数据处理和分析的重要利器。它支持基于栅格数据的数学运算、逻辑判断、条件筛选、指数计算等多种操作,极大方便了地理空间分析。
本文将为大家系统整理QGIS 3.40版本栅格计算器中最实用的公式,覆盖从基础运算到常用环境指数的计算,助你快速掌握栅格数据的高级处理技巧!
目录
- 【QGIS数据篇】QGIS 3.40 栅格计算器经典实用公式全集
- 1. 栅格计算器基础
- 2. 数学运算类公式
- 3. 逻辑判断与条件筛选
- 4. 栅格重分类公式
- 5. 环境与遥感常用指数计算
- 6. 统计与面积计算
- 7. 多栅格组合运算示例
- 8. 常见错误及排查技巧
- 总结
1. 栅格计算器基础
栅格计算器允许你基于栅格图层的波段(Band)或单波段数据,使用数学和逻辑表达式进行计算。表达式中可以用波段名(如“layer@1”)或图层名代替。
示例:
"DEM@1" > 1000
筛选高程大于1000米的区域。
2. 数学运算类公式
- 加法:
"layer1@1" + "layer2@1"
- 减法:
"layer1@1" - "layer2@1"
- 乘法:
"layer1@1" * 2
- 除法:
"layer1@1" / "layer2@1"
- 取对数(以e为底):
log("layer1@1")
- 取绝对值:
abs("layer1@1")
- 开方:
sqrt("layer1@1")
3. 逻辑判断与条件筛选
- 条件判断(if语句):
QGIS栅格计算器不直接支持if语句,但可以用条件表达式:
("layer1@1" > 100) * "layer1@1" + ("layer1@1" <= 100) * 0
表示:当值大于100时保留原值,否则赋值为0。
- 多条件筛选:
(("layer1@1" > 50) AND ("layer2@1" < 100)) * 1 + (NOT (("layer1@1" > 50) AND ("layer2@1" < 100))) * 0
4. 栅格重分类公式
- 重分类为1和0(阈值分割):
("layer1@1" >= 500) * 1 + ("layer1@1" < 500) * 0
- 多级重分类示例:
("layer1@1" < 100) * 1 + (("layer1@1" >= 100) AND ("layer1@1" < 500)) * 2 + ("layer1@1" >= 500) * 3
5. 环境与遥感常用指数计算
- NDVI(归一化植被指数):
假设红波段为“red@1”,近红外波段为“nir@1”,公式为:
("nir@1" - "red@1") / ("nir@1" + "red@1")
- NDWI(水体指数):
("green@1" - "nir@1") / ("green@1" + "nir@1")
- 土壤调整植被指数(SAVI):
L一般取0.5:
(("nir@1" - "red@1") / ("nir@1" + "red@1" + 0.5)) * (1 + 0.5)
6. 统计与面积计算
- 计算某条件覆盖区域的面积(需要配合栅格像元面积):
先重分类为1/0,然后用统计工具计算像元数,乘以单个像元面积。
7. 多栅格组合运算示例
- 坡度加权NDVI综合评价:
("ndvi@1" * 0.7) + ("slope@1" * 0.3)
- 多指标复合风险指数:
("flood@1" * 0.5) + ("landuse@1" * 0.3) + ("pop_density@1" * 0.2)
8. 常见错误及排查技巧
- 波段引用错误,请确保波段名称和图层名称对应正确
- 除零错误,表达式中应避免除数为零,例如用条件筛选过滤
- 计算结果为空,检查是否有无效值或栅格范围不匹配
- 运算速度慢,可尝试裁剪数据或降低分辨率
总结
栅格计算器是QGIS中极其强大的工具,通过熟练掌握和灵活运用本文中的经典公式,能让你在环境分析、土地利用、遥感影像处理等多个领域高效工作。建议读者结合自己的数据多加练习,灵活编写适合项目的表达式。
如果你喜欢这篇【QGIS数据篇】,欢迎点赞、收藏和转发,也欢迎留言告诉我你想了解的其他QGIS技巧!