PROJ

简介

PROJ是一个通用的坐标转换软件,它将地理空间坐标从一个坐标系转换为另一个坐标系。这包括地图投影和大地坐标变换。

PROJ包含命令行应用程序,可以方便地从文本文件或直接从用户输入转换坐标。除了命令行实用程序之外,PROJ还提供了相关的API。API允许开发人员在自己的软件中使用PROJ的功能,而不必自己实现类似的功能。

可用的版本

版本

平台

构建方式

模块名

7.2.1

cpu

spack

proj/7.2.1-gcc-11.2.0 思源一号

7.2.1

cpu

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 年 11 月 22 日