PROJ坐标系转换库使用

PROJ坐标系转换库使用

基本工具使用

  • proj:用于同一参考椭球下,不同投影平面坐标系的转换;
  • cs2cs:支持proj的功能,支持可自定义坐标系对的转换;支持不同参考椭球的转换;
  • geod:提供测地线计算功能;
  • gie:提供回归测试功能;
  • cct:提供4D坐标框架变换,比如ITRF93 到 ITRF2000;
  • projinfo:地理对象和坐标操作查询;

常用操作

wkt转换PROJ字符串:projinfo -o PROJ <WKT字符串>
不同椭球框架坐标转换1:cs2cs <PROJ坐标定义字符串> +to <PROJ坐标定义字符串>
不同椭球框架坐标转换2:cs2cs <PROJ坐标定义字符串> +to +init= epsg:id
查看PROJ库支持的投影方法:cs2cs -lp
查看PROJ库支持的椭球框架:cs2cs -le
查看PROJ库支持的单位:cs2cs -lu

PROJ库逆变换选项:+inv
例子:
正变换:echo 17.7562015132 45.3935192042 133.12 2017.8 | cct +proj=cart +ellps=GRS80
逆变换:echo 4272922.1553 1368283.0597 4518261.3501 2017.8000 | cct +proj=cart +inv +ellps=GRS80

PROJ字符串示例定义(以CGCS2000 100度4分 带为例)
+proj=tmerc +a=6378137 +rf=298.257222101 +pm=greenwich +x_0=500000 +y_0=0 +lon_0=100d4’E +lat_0=0d +k_0=1.0 +units=m +type=crs +no_defs

PROJ库变换坐标说明
大地坐标:longitude, latitude, elevation above ellipsoid, Time
平面坐标(投影坐标或者地心笛卡尔积坐标):X, Y, Z, Time
例子:
17.7562015132 45.3935192042 133.12 2017.8

PROJ库Coordinate operations

  1. Projections:Projections map the spherical 3D space to a flat 2D space. e.g. +proj=tmerc
  2. Conversions:Two coordinate reference systems are based on the same datum.e.g. +proj=cart
  3. Transformations: Two coordinate reference systems are based on different datums. e.g. +proj=helmert
  4. The pipeline operator: Construct complex operations by daisy-chaining operations in a sequential pipeline.
  5. Computation of coordinate operations between two CRS.

关于管线操作的一个例子:
z坐标不变入栈–>独立投影坐标系–>对应参考椭球的经纬度–>对应参考椭球的空间笛卡尔积直角坐标–>helmert变换–>目标参考椭球的空间笛卡尔积直角坐标–>目标参考椭球的经纬度–>z坐标不变出栈:
echo 511043.4090 2447343.3775 1355.5670 |
cct_d +proj=pipeline
+step +proj=push +v_3
+step +proj=tmerc +a=6379337 +rf=298.257222101 +lat_0=0 +lon_0=100d5’E +pm=greenwich +k_0=1 +x_0=500000 +y_0=0 +units=m +inv
+step +proj=cart +a=6379337 +rf=298.257222101
+step +proj=helmert +convention=coordinate_frame +x=-2.5262567418394610 +y=14.1393339168280363 +z=5.6394467041827738 +rx=0.0000002411877815 +ry=-0.0000004558374787 +rz=-0.0000002064078050 +s=-190.5268222026811884
+step +proj=cart +a=6378137 +rf=298.257222101 +inv
+step +proj=pop +v_3

开发使用

常见问题解决:

  1. Cannot find proj.db
    解决: 设置PROJ_LIB环境变量。比如,PROJ_LIB=G:/Proj/Share/
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值