PROJ

简介

PROJ 是一款通用坐标转换软件,可将地理空间坐标从一个坐标参考系统 (CRS) 转换为另一个坐标参考系统。这包括地图投影以及大地坐标转换。PROJ 是根据X/MIT 开源许可证发布的 PROJ 包含命令行应用程序,可轻松从文本文件或直接从用户输入转换坐标。除了命令行实用程序之外,PROJ 还公开了一个 应用程序编程接口(简称 API)。该 API 允许开发人员在自己的软件中使用 PROJ 的功能,而无需自己实现类似的功能。 PROJ 最初纯粹是一个制图应用程序,允许用户使用多种不同的制图投影将大地坐标转换为投影坐标。多年来,随着需求的日益明显,对基准转换的支持也逐渐融入到 PROJ 中。如今,PROJ 支持一百多种不同的地图投影,并且可以使用除最晦涩的大地测量技术之外的所有技术在基准之间转换坐标。

安装环境

序号

集群

平台

版本

安装方式

1

hpckapok2

cpu

8.1.0

SPACK构建

使用方法

module load /public/software/modules/apps/anaconda3/3-2023.09  #激活Python环境
source activate spack      #加载spack
source /public/software/spack/share/spack/setup-env.sh  #激活spack软件
spack load  proj@8.1.0     #激活proj8.1.0版本

坐标变换由 PROJ 术语中称为“投影字符串”的内容定义。投影字符串描述任何变换,无论其简单或复杂。最简单的情况是大地坐标投影。 proj-strings 保存给定坐标变换的参数,例如:

salloc -N 5 -p cpuXeon6458 -t 60:00 --cpus-per-task=10 #申请节点参数按需求更改
proj +proj=merc +lat_ts=56.5 +ellps=GRS80
>26 74
>1601206.14       6901173.27  #返回参数

PROJ 还捆绑了cs2cs实用程序,该实用程序用于从一个坐标参考系统转换到另一个坐标参考系统。假设我们想将上面的墨卡托坐标转换为 UTM,我们可以使用 cs2cs来实现:

$ echo 1601206.14  6901173.27 | cs2cs +proj=merc +lat_ts=56.5 +ellps=GRS80 +to +proj=utm +zone=32
>1016516.18     8286324.10 0.00  #返回参数

注意+to分隔源和目标投影定义的参数。 如果您恰好知道您正在转换的两个坐标参考系统的 EPSG 标识符,则可以将它们与cs2cs一起使用:

$ echo 56 12 | cs2cs +init=epsg:4326 +to +init=epsg:25832
>231950.54      1920310.71 0.00   #返回参数

参考资料

Contributor:Mr. Yang


最后更新: 2025 年 06 月 30 日