PROJ¶
简介¶
PROJ是一个通用的坐标转换软件,它将地理空间坐标从一个坐标系转换为另一个坐标系。这包括地图投影和大地坐标变换。
PROJ包含命令行应用程序,可以方便地从文本文件或直接从用户输入转换坐标。除了命令行实用程序之外,PROJ还提供了相关的API。API允许开发人员在自己的软件中使用PROJ的功能,而不必自己实现类似的功能。
可用的版本¶
版本 |
平台 |
构建方式 |
模块名 |
---|---|---|---|
7.2.1 |
spack |
proj/7.2.1-gcc-11.2.0 思源一号 |
|
7.2.1 |
spack |
proj/7.2.1-gcc-11.2.0 pi 2.0 |
使用教程¶
坐标转换由PROJ术语中所称的"proj-strings"来定义。proj-string描述任何转换,不管它有多么简单或复杂。 在本文的示例中,我们将通过示例介绍proj-strings的参数含义。
如下所示为坐标转换的典型操作:
坐标系转投影空间¶
proj-strings保存给定坐标转换的参数
+proj=merc +lat_ts=56.5 +ellps=GRS80
#+proj=merc 表示:将坐标系作为墨卡托投影
#+ellps=GRS80 表示:椭球体GRS80(椭球体名称、坐标系)
#+lat_ts=56.5 有效纬度范围Latitude of true scale
上述坐标参数所代表的含义为大地坐标被转换成投影空间,在GRS80椭球面上,用Mercator投影,其纬度为北纬56.5度。
操作如下:
输入类型为 +ellps=GRS80,默认按照 +ellps=GRS80 的默认中经线 和 默认维度0 作为参考点,输出墨卡托投影
>srun -p 64c512g -N 1 -n 6 --pty /bin/bash
>module load proj gcc
>proj +proj=merc +lat_ts=56.5 +ellps=GRS80
>55.2 12.2 #输入参数
>3399483.80 752085.60 #得到 55.2 12.2 维度、经度转换为米的数据
坐标系转换¶
PROJ中的cs2cs程序可将一个坐标参考系统转换到另一个坐标参考系统,下述cs2cs操作的示例内容为将上面输出的墨卡托坐标转换为UTM
# cs2cs 表示坐标系转坐标系
# +proj=merc +lat_ts=56.5 +ellps=GRS80 表示:源投影定义,而源投影定义的输入参数为merc(墨卡托)类型参数,即米
# +to 表示:源投影定义转目标投影定义的分隔符
# +proj=utm +zone=32 表示:目标投影定义
>srun -p 64c512g -N 1 -n 6 --pty /bin/bash
>module load proj gcc
>cs2cs +proj=merc +lat_ts=56.5 +ellps=GRS80 +to +proj=utm +zone=32
>3399483.80 752085.60 #输入参数
>6103992.36 1924052.47 0.00 #输出结果
使用下面的命令可以将大地坐标直接转换为UTM
#+proj=latlon +lat_ts=56.5 +ellps=GRS80 表示:源投影定义,使用GRS80坐标系,而源投影定义的输入参数为latlon(经纬度)类型参数
#+to 表示:源投影定义转目标投影定义的分隔符
#+proj=utm +zone=32 表示:目标投影定义
>srun -p 64c512g -N 1 -n 6 --pty /bin/bash
>module load proj gcc
>cs2cs +proj=latlon +lat_ts=56.5 +ellps=GRS80 +to +proj=utm +zone=32
55.2 12.2 #输入参数
6103992.35 1924052.46 0.00 #输出结果
最后更新:
2024 年 10 月 14 日