3. 农业空间数据坐标系与投影转换

在QGIS里处理农业空间数据,坐标系问题几乎是最容易“埋雷”的环节。很多学员第一次遇到“地块面积算出来比实际大很多”或“两个图层叠不到一起”,根源往往不是数据错了,而是坐标系选错或没有统一。本节围绕地理坐标系与投影坐标系的区别、如何为农业数据选择合适坐标系、重投影与动态投影的设置,以及面积计算中的投影陷阱展开。

一、地理坐标系与投影坐标系:两种“描述位置”的方式

地理坐标系(GCS)用经纬度描述地球表面位置,单位是度。它把地球抽象成一个椭球体(如CGCS2000、WGS 84),坐标值范围是经度-180°~180°、纬度-90°~90°。地理坐标系的优点是全球统一、便于存储和交换,缺点是“度”不是长度单位,直接用它计算面积或距离会得到无意义的结果——因为1度经度在赤道约111公里,在纬度40°处只有约85公里。

投影坐标系(PCS)则是把椭球面通过数学变换“摊平”到平面上,单位是米(或千米)。它由“地理坐标系+投影方法+投影参数”共同定义,例如CGCS2000 / 3-degree Gauss-Kruger zone 39,表示基于CGCS2000椭球、采用3度带高斯-克吕格投影、第39带(中央经线117°E)。投影坐标系下坐标是平面直角坐标,可以直接算长度、面积,是农业地块量算的正确选择。

判断一个图层是哪种坐标系,最直接的方法是在QGIS图层属性中查看“坐标参照系(CRS)”:单位显示为“度”的是地理坐标系,显示为“米”的是投影坐标系。

二、农业数据如何选择合适坐标系

选择坐标系的核心原则是:存储可以用地理坐标系,量算必须用投影坐标系,且投影要匹配研究区位置和面积精度要求。

对于我国农业数据,常见选择如下:

  • 全国或大区域数据:可用CGCS2000地理坐标系存储,量算时按区域选择Albers等面积投影(如中国Albers,中央经线105°E,双标准纬线25°N和47°N),等面积投影能保证面积比例不失真。
  • 省级或县域数据:优先使用CGCS2000 3度带高斯-克吕格投影,按研究区所在带号选择。例如华北平原某县位于东经115°~116°,属于39带(中央经线117°E),应选CGCS2000 / 3-degree Gauss-Kruger zone 39。
  • 小范围高精度地块:若地块面积只有几亩到几十亩,且离中央经线较远,高斯投影的长度变形会累积。此时可考虑以研究区中心经线自定义横轴墨卡托投影,或直接使用当地国土部门要求的坐标系。

需要特别提醒:高斯-克吕格投影是等角投影,长度和面积在中央经线附近变形最小,离中央经线越远变形越大。3度带在带边缘的最大长度变形约1/10000,对一般农业面积统计可接受;但若做精准农业地块核算,应确认数据是否落在带边缘。

农业数据坐标系选择与面积量算路径 地理坐标系(GCS) 单位:度(°) CGCS2000 / WGS 84 适合:存储、交换、定位 不适合:直接算面积/长度 投影转换(重投影) QGIS:图层右键 → 导出 → 要素另存为 → 指定CRS 或 处理工具箱:重投影图层 输出:新文件,坐标已变换 投影坐标系(PCS) 单位:米(m) CGCS2000 3度带 / Albers 适合:面积、长度、缓冲 ✔ 农业量算的正确选择 按研究区范围选择投影(示例参数) 全国 / 大区域 中国Albers等面积投影 中央经线 105°E 标准纬线 25°N / 47°N 面积比例不失真 适合耕地统计、面积汇总 省 / 县域 CGCS2000 3度带高斯投影 按经度选带号 例:115°~116°E → 39带 中央经线117°E附近变形小 适合地块边界、权属数据 小范围高精度地块 自定义横轴墨卡托 以研究区中心经线为中央经线 或采用当地国土要求坐标系 避免带边缘长度变形累积 适合精准农业、地块核算

三、重投影与动态投影:两种不同的“统一坐标系”手段

QGIS里有两个容易混淆的概念:重投影(Reproject)和动态投影(On-the-fly Projection)。

重投影是真正修改数据的坐标值,生成一个新文件。操作路径:图层右键 → 导出 → 要素另存为,在“坐标参照系”中选择目标CRS,保存为新Shapefile或GeoPackage。也可以用处理工具箱中的“重投影图层”算法批量处理。重投影后,新文件的坐标值已经变成米制平面坐标,面积字段计算才可靠。

动态投影则是QGIS项目层面的一种显示机制:项目属性中设置一个项目CRS,所有加入的图层无论自身是什么CRS,都会被实时转换到项目CRS下显示。它不修改原始数据,只影响显示和临时量算。开启方式:项目 → 属性 → CRS,勾选“启用动态投影”。

动态投影下用“识别要素”工具查看的坐标和面积,是转换到项目CRS后的临时结果,不会写回数据。若要把面积写入属性表,必须先对图层重投影,再用字段计算器计算。

四、地块面积计算中的投影问题与实操

假设有一个示例场景:某合作社有一批地块面数据,原始CRS为WGS 84地理坐标系,需要统计各地块面积(亩)。直接在地理坐标系下用字段计算器执行 $area,得到的是“平方度”,数值极小且无物理意义,这是最常见的错误。

正确流程如下(示例参数,实际以数据所在位置为准):

  1. 确认地块所在经度范围,假设为东经114.5°~115.5°,属于3度带第38带(中央经线114°E)与39带交界附近,需根据主要范围选带。
  2. 使用“重投影图层”将地块面重投影为 CGCS2000 / 3-degree Gauss-Kruger zone 38(EPSG:4544,示例)。
  3. 打开重投影后图层的属性表,进入字段计算器,新建字段“面积_m2”,表达式填 $area,输出单位为平方米。
  4. 再新建字段“面积_亩”,表达式填 "面积_m2" / 666.6667,得到亩数。
  5. 用“识别要素”抽查几个地块,与已知控制面积或实地测量值对比,偏差应在合理范围内(一般农业地块统计允许1%~3%的投影与数字化误差)。

如果发现面积系统性偏大或偏小,优先检查:是否误用了地理坐标系、是否选错带号导致离中央经线过远、数据本身是否存在拓扑重叠。对于跨带的大区域数据,不要强行用一个3度带投影,应改用Albers等面积投影统一量算。

实用判断口诀:存数据看GCS,算面积看PCS;重投影改数据,动态投影只改显示;带号选错面积偏,等面积投影保比例。

最后补充一个工程习惯:在QGIS项目开始时,先根据研究区确定项目CRS(通常选投影坐标系),再导入数据并统一重投影,避免后期混用。对农业数据而言,坐标系不是可有可无的元数据,而是决定面积、缓冲、叠加分析结果是否可信的基础参数。