告别ArcGIS!用QGIS 3.10的‘采样’工具,5分钟搞定坐标点提取栅格值

张开发
2026/5/5 10:39:24 15 分钟阅读
告别ArcGIS!用QGIS 3.10的‘采样’工具,5分钟搞定坐标点提取栅格值
告别ArcGIS用QGIS 3.10的‘采样’工具5分钟搞定坐标点提取栅格值在GIS数据处理中经常需要从栅格图层中提取特定坐标点的像元值。传统上许多用户习惯使用ArcGIS的值提取至点功能来完成这项任务。然而对于追求高效、轻量且零成本解决方案的用户来说QGIS 3.10提供的栅格分析-采样工具提供了一个完美的替代方案。与ArcGIS相比QGIS不仅完全免费开源而且在处理这类基础GIS操作时表现出色。本文将详细介绍如何利用QGIS的采样工具在短短5分钟内完成坐标点栅格值提取的全过程包括数据准备、操作步骤、常见问题解决以及一些提升效率的小技巧。1. 为什么选择QGIS替代ArcGIS进行栅格值提取对于GIS专业人员和学生而言软件选择往往需要在功能、成本和易用性之间取得平衡。ArcGIS虽然是行业标准但其高昂的授权费用和相对沉重的系统资源占用使得许多用户开始寻找替代方案。QGIS作为开源GIS软件的佼佼者在3.10版本中对栅格分析功能进行了显著优化。其采样工具不仅能够实现与ArcGIS值提取至点相同的功能还具有以下优势零成本完全免费无需担心授权问题轻量化对硬件要求较低适合各种配置的电脑跨平台支持Windows、macOS和Linux系统插件生态丰富的插件可扩展核心功能社区支持活跃的用户社区提供大量学习资源和问题解决方案提示对于长期使用ArcGIS的用户QGIS的界面布局可能需要短暂适应期但基本操作逻辑相似转换成本很低。2. 数据准备确保分析顺利进行在开始提取栅格值之前正确的数据准备是成功的关键。与任何GIS分析一样数据质量直接影响结果的准确性。2.1 所需数据类型进行栅格值提取需要两类基本数据矢量点数据包含需要提取值的坐标点可以是单个点如特定位置采样点点集合如监测站点网络其他矢量数据转换而来的点栅格数据包含需要提取的属性值常见类型包括遥感影像如Landsat、Sentinel等数字高程模型DEM各类专题栅格图温度、降水等2.2 数据检查要点在导入数据到QGIS前建议进行以下检查检查项目重要性常见问题坐标系统一致性高矢量点和栅格使用不同坐标系会导致提取错误栅格覆盖范围中点数据超出栅格范围将无法提取值数据完整性高损坏的栅格文件可能导致工具失败属性表结构低确保点数据有唯一标识字段便于后续分析# 示例使用Python检查栅格和矢量数据的坐标系是否一致 import gdal import ogr # 打开栅格文件 raster gdal.Open(raster.tif) raster_srs raster.GetProjection() # 打开矢量文件 vector ogr.Open(points.shp) layer vector.GetLayer() vector_srs layer.GetSpatialRef() print(f栅格坐标系: {raster_srs}) print(f矢量坐标系: {vector_srs}) print(f坐标系一致: {raster_srs vector_srs.ExportToWkt()})注意如果发现坐标系不一致可以在QGIS中使用投影工具对于矢量或栅格-投影-变形工具对于栅格进行转换确保两者匹配。3. 分步指南使用QGIS采样工具提取栅格值掌握了数据准备的要领后让我们进入实际操作环节。QGIS的采样工具设计直观只需几个简单步骤即可完成提取。3.1 定位并打开采样工具在QGIS 3.10中采样工具位于处理工具箱中。以下是访问路径点击顶部菜单栏中的处理选择工具箱或直接按CtrlAltT快捷键在搜索框中输入采样或导航至栅格分析为栅格值取样3.2 参数设置与执行打开采样工具后会出现一个参数设置对话框。关键参数包括输入点图层选择包含坐标点的矢量图层栅格图层选择要提取值的栅格数据输出列名前缀可选默认为rvalue可自定义输出点图层指定结果保存路径和文件名推荐设置技巧勾选加载到项目完成后选项自动加载结果对于大型栅格可先使用栅格-提取-按范围裁剪栅格缩小处理范围如果只需要特定波段的值可先用栅格-提取-波段子集预处理3.3 验证提取结果工具运行完成后新生成的点图层将包含提取的栅格值。建议进行以下验证右键点击结果图层选择属性表查看提取的值使用识别要素工具工具栏上的i图标点击几个点查看属性将结果与原始栅格值对比在栅格图层上使用值工具插件查看特定位置的值确保采样点位置准确可放大检查# 使用QGIS命令行验证栅格值需安装qgis_process qgis_process run native:rastersampling --INPUT_POINTSpoints.shp --RASTERraster.tif --OUTPUTresult.shp4. 常见问题与高级技巧即使是简单的栅格值提取在实际操作中也可能遇到各种问题。本节将分享常见问题的解决方案和一些提升效率的高级技巧。4.1 常见错误及解决方法问题现象可能原因解决方案工具运行失败数据路径包含中文/特殊字符使用纯英文路径和文件名提取值为NULL点不在栅格范围内检查并调整点位置或栅格范围值明显错误坐标系不匹配统一栅格和矢量的坐标系处理速度慢栅格文件过大裁剪栅格或使用金字塔优化4.2 提升效率的技巧对于需要频繁进行栅格值提取的用户以下技巧可以显著提升工作效率批量处理使用处理模型设计器创建自动化流程或编写Python脚本处理多个文件内存图层对于中间结果使用临时内存图层加快处理速度字段计算直接在属性表中使用表达式基于提取值进行计算样式预设保存常用样式快速可视化不同范围的栅格值高级应用示例提取时间序列栅格值如果需要从多个时间点的栅格中提取同一组点的值可以创建包含所有栅格图层的项目使用处理模型设计器构建批量处理模型添加迭代栅格图层功能自动处理每个栅格最后合并结果或输出到单一表格# 示例Python脚本批量提取多个栅格的值 from qgis.core import * import processing # 设置栅格和点图层路径 rasters [jan.tif, feb.tif, mar.tif] points monitoring_sites.shp # 循环处理每个栅格 for raster in rasters: # 设置参数 params { INPUT: points, RASTER: raster, COLUMN_PREFIX: os.path.splitext(raster)[0] _, OUTPUT: memory: } # 执行采样 result processing.run(qgis:rastersampling, params) # 保存结果 QgsVectorFileWriter.writeAsVectorFormat( result[OUTPUT], fsampled_{os.path.splitext(raster)[0]}.shp, UTF-8, result[OUTPUT].crs(), ESRI Shapefile )在实际项目中我发现将QGIS的采样工具与Python脚本结合使用可以处理各种复杂的栅格值提取需求。例如最近在一个环境监测项目中我们使用这种方法从10年的月度温度栅格中提取了50个监测站点的数据整个过程完全自动化大大减少了人工操作的时间和潜在错误。

更多文章