4. 坐标转换原理与工具

在环境GIS项目中,坐标统一的核心难点往往不在“换一个坐标系名称”,而在于两个空间参考之间究竟差了什么。差的是平面位置、高程,还是椭球基准本身?只有把差异拆解清楚,才能选对模型、设对参数、验对结果。本节围绕四参数、七参数两类常用转换模型,说明基准面转换的基本方法,并给出在ArcGIS、QGIS与Proj中落地执行的流程与参数设置要点。

一、四参数与七参数:差在“平面”还是“空间”

四参数模型用于同一椭球基准下的平面坐标转换,常见于地方独立坐标系与国家坐标系之间的换算。它包含两个平移量(ΔX、ΔY)、一个旋转角(θ)和一个尺度因子(k),数学形式为:

X₂ = ΔX + k·(X₁·cosθ − Y₁·sinθ)
Y₂ = ΔY + k·(X₁·sinθ + Y₁·cosθ)

注意旋转角的正负号约定:上式采用逆时针为正的数学约定,若软件采用顺时针为正,则sin项符号相反,配置时必须与参数来源保持一致,否则会出现“旋转方向反了”的系统性偏差。四参数只处理平面,高程需另行处理,且要求源与目标使用同一椭球,跨基准时不能直接套用。

七参数模型(布尔莎模型)用于两个不同椭球基准之间的三维空间直角坐标转换,包含三个平移量(ΔX、ΔY、ΔZ)、三个旋转角(εX、εY、εZ)和一个尺度因子(m,常以ppm表示)。其矩阵形式为:

[X₂]   [ΔX]         [ 1   −εZ   εY ] [X₁]
[Y₂] = [ΔY] + (1+m)· [ εZ   1   −εX ] [Y₁]
[Z₂]   [ΔZ]         [−εY   εX   1  ] [Z₁]

七参数作用在空间直角坐标(X、Y、Z)上,而不是经纬度或平面坐标。因此实际流程是:大地坐标→空间直角坐标→七参数转换→目标空间直角坐标→目标大地坐标→投影平面坐标。旋转角通常以角秒为单位、尺度以ppm为单位,量级很小,但对大范围数据仍会产生米级影响,不能随意置零。

判断选型:源与目标椭球相同、只做平面换算,用四参数;跨椭球基准(如北京54→CGCS2000、西安80→WGS84),必须用七参数或格网改正模型;只做投影换带、不改基准,则既不需要四参数也不需要七参数,直接重投影即可。
坐标转换模型选择与执行链路 源数据与目标参考 椭球基准是否相同? 相同 不同 四参数(平面) ΔX、ΔY、θ、k 平面坐标 → 平移/旋转/缩放 → 目标平面坐标 高程需单独处理 七参数(三维) ΔX、ΔY、ΔZ、εX、εY、εZ、m 大地坐标 → 空间直角坐标 → 七参数 → 目标大地坐标 再投影到目标平面 目标投影(换带/换投影参数) 中央经线、假东、比例因子 控制点检核(残差判读) 平面残差 ≤ 0.05 m、高程残差 ≤ 0.10 m 视为可用 超限则检查参数来源、单位与旋转符号约定 常见误用 · 跨基准直接套四参数 · 七参数作用在经纬度上 · 旋转角单位混用(度/秒) · 尺度因子漏乘 1+m

二、基准面转换:参数从哪来、怎么验

七参数不是凭空设定的,它来自公共控制点。做法是:选取至少3个(工程上建议6个以上、分布均匀)同时具有源基准与目标基准坐标的控制点,先统一换算为空间直角坐标,再用最小二乘求解七个参数。控制点应覆盖项目区四周而非集中一角,否则外推区域误差会迅速放大。求解后必须用未参与解算的检核点做独立验证,观察残差是否在项目精度要求内。

除七参数外,基准面转换还有两类常见方式:一是三参数(仅平移),适用于小范围、精度要求不高的场景;二是格网改正模型,如NTv2格网,它以格网文件逐点给出基准差异,通常比单一七参数更贴合局部变形,在QGIS和Proj中通过格网文件直接调用。环境项目若涉及跨市域、长条带状区域(如流域、输水管线),优先考虑格网模型或分区参数。

三、ArcGIS中的操作流程与参数设置

在ArcGIS Pro中,转换通过“投影”工具(Project)或“创建自定义地理(坐标)变换”工具完成。关键步骤是:

  1. 打开“创建自定义地理(坐标)变换”,变换类型选择 七参数(Coordinate Frame / Position Vector)。两者旋转符号相反,必须与参数提供方确认采用哪一种,选错会导致旋转方向整体反向。
  2. 依次填入 ΔX、ΔY、ΔZ(米),εX、εY、εZ(角秒),尺度因子(ppm)。若参数以“1+m”形式给出,需换算为ppm填入。
  3. 保存为自定义变换后,在“投影”工具的地理变换下拉框中选择它,再执行投影。

需要注意,ArcGIS的“投影”工具只做坐标系定义与投影换算,不会自动应用基准转换,必须显式指定地理变换;若下拉框为空,说明系统未内置该基准对,需自行创建。四参数在ArcGIS中通常以“自定义投影坐标系+仿射变换”或通过“空间校正”工具实现,后者更适合对矢量数据做平移旋转缩放。

四、QGIS与Proj中的操作流程与参数设置

QGIS底层使用Proj,自定义转换在“设置→自定义坐标参考系”中通过Proj字符串定义。七参数的Proj写法为:

+proj=pipeline
+step +proj=cart +ellps=krass
+step +proj=helmert +x=-120.5 +y=52.3 +z=-88.7
      +rx=1.2 +ry=-0.8 +rz=2.1 +s=3.5 +convention=position_vector
+step +proj=cart +ellps=GRS80 +inv

其中 +convention=position_vector 与 coordinate_frame 对应两套旋转符号约定,必须与参数来源一致;+s 为ppm。四参数则可用 +proj=affine 或 +proj=tmerc 配合 +x_0/+y_0/+k/+lon_0 表达。定义完成后,在图层属性中指定该自定义CRS,或用“重投影图层”工具输出。QGIS还支持在项目属性中设置“基准转换”,对整幅工程统一生效。

无论用哪个软件,转换后都应做同一件事:把已知控制点导入转换结果,量取与目标坐标的差值。平面残差在5 cm内、高程在10 cm内可认为参数可用;若某点残差明显偏大,先排查该点是否本身有误,再考虑分区建模。切勿只看“转换成功”提示就交付数据。

五、参数配置检查清单

检查项正确做法常见错误
模型选择同椭球用四参数,跨椭球用七参数或格网跨基准套四参数
作用对象七参数作用于空间直角坐标直接对经纬度加减
旋转约定与参数来源统一(Position Vector / Coordinate Frame)符号反向
单位平移米、旋转角秒、尺度ppm度与角秒混用
检核独立控制点残差判读只看转换是否报错

把上述流程走通,坐标转换就从“点一下按钮”变成可解释、可复核的工程动作:先判断基准差异,再选模型,再核对参数约定,最后用控制点残差说话。这也是环境GIS数据纠偏能够稳定复现的前提。