Python遥感开发之CGCS2000转换WGS84地理坐标系
前言:主要借助pyproj实现从CGCS2000高斯-克吕格3度带(EPSG:4547)转换到WGS84地理坐标系(EPSG:4326)。
1 CGC2000坐标系介绍
2000国家大地坐标系的原点为包括海洋和大气的整个地球的质量中心;2000国家大地坐标系的Z轴由原点指向历元2000.0的地球参考极的方向,该历元的指向由国际时间局给定的历元为1984.0的初始指向推算,定向的时间演化保证相对于地壳不产生残余的全球旋转,X轴由原点指向格林尼治参考子午线与地球赤道面(历元2000.0)的交点,Y轴与Z轴、X轴构成右手正交坐标系。采用广义相对论意义下的尺度。
详细介绍请看《百度百科》
2 WGS84地理坐标系介绍
WGS-84坐标系(World Geodetic System一1984 Coordinate System)是一种国际上采用的地心坐标系。坐标原点为地球质心,其地心空间直角坐标系的Z轴指向BIH (国际时间服务机构)1984.0定义的协议地球极(CTP)方向,X轴指向BIH 1984.0的零子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系,称为1984年世界大地坐标系统。
详见《百度百科》
3 代码实现CGCS2000转换WGS84地理坐标系
代码中的经纬度是随机生成的,没有任何含义。
from pyproj import Transformer
if __name__ == '__main__':
x_y_list = [[613120,4836359],[326942,4136486]]
# 初始化转换器,指定从CGCS2000高斯-克吕格3度带(EPSG:4547)转换到WGS84地理坐标系(EPSG:4326)
transformer = Transformer.from_crs("EPSG:4547", "EPSG:4326", always_xy=True)
for x_y in x_y_list:
# 进行转换
lon, lat = transformer.transform(x_y[0], x_y[1])
print(f"CGCS2000: 经度 = {x_y[0]}, 纬度 = {x_y[1]}")
print(f"WGS84坐标: 经度 = {lon}, 纬度 = {lat}")