PROJ.4学习——坐标系转换

PROJ.4学习——坐标系转换

前言

   PROJ可以做任从最简单的投影到许多参考数据非常复杂的转换。PROJ最初是作为地图投影工具开发的,但随着时间的推移,它已经发展成为一个强大的通用坐标转换引擎,可以同时进行大规模地图投影和高精密度的坐标转换。

  在PROJ中,有两个用于大地测量转换的框架,proj框架和cs2cs框架。第一个是PROJ中用于进行大地测量转换的原始且有限的框架,第二个是一个新添加的框架,旨在成为一个更完整的转换框架。

  在描述这两个框架的细节之前,让我们首先注意到,大多数大地测量转换的情况都可以表示为一系列基本操作,一个操作的输出是下一个操作的输入。例如,当从UTM区域32,基准ED50,到UTM区域32,基准ETRS89时,在最简单的情况下,必须经历5个步骤:

    • 1. 将UTM坐标反投影到地理坐标
    • 2. 将地理坐标转换为3D笛卡尔地心坐标
    • 3. 应用Helmert转换,从ED50转换到ETRS89
    • 4. 从笛卡尔坐标转换回地理坐标
    • 5. 最后将地理坐标投影到UTM 32区平面坐标
# ED50 / UTM zone 32N
<23032> +proj=utm +zone=32 +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +units=m +no_defs  <>

# ETRS89 / UTM zone 32N
<25832> +proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>

 

通过管道转换

  PROJ框架在做投影,坐标系转换时,其操作风格类似于Linux Shell命令。管道框架是通过一个特殊的投影实现的,该投影以用户提供的一系列基础操作作为参数,并将这些操作串联在一起,以实现所需要的完成转换。

  此外,一些基本的大地测量操作,包括Helmert转换、一般的高阶多项式位移和Molodensky模型转换,都可以作为管道的一部分。 (详见下面:基于方程式方法的坐标系转换) 

  Molodensky变换直接从一个基准面的大地坐标转换到另一个基准面的大地坐标,而Helmert变换(通常更准确)则从3D笛卡尔坐标转换到3D笛卡尔坐标。

  因此,当使用Helmert变换时,通常需要做一个从大地坐标到笛卡尔坐标的初始转换,以及反过来的最终转换,以得到期望的结果。幸运的是,这个三步复合变换具有吸引人的特性,即每一步只依赖于前一步的输出。

  因此,我们可以构建一个geodetic-to-geodetic Helmert转换,通过捆绑在一起的输出和输入,3个步骤为:geodetic-to-cartesian→Helmert→cartesian-to-geodetic。

  管道驱动程序通过这种链式转换实现,该实现非常紧凑,每一步只包含一个伪投影,称之为:pipeline。它以基本的投影字符串作为参数。

  所有的管道(伪投影转换)均由基础的转换构成,所有这些转换均提供了框架,用于为广泛的大地测量任务构建高精度的解决方案。

  基于前言中的 案例,我们看看使用PROJ是如何实现 geodetic → Cartesian → Helmert → geodetic(大地坐标 → 秒迪卡 → 赫尔默特变换 → 大地坐标,即2-4步)的。  

proj=pipeline
step proj=cart ellps=intl
step proj=helmert convention=coordinate_frame
     x&
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值