Python与开源GIS:在PROJ.4中了解基准面与椭球体

使用proj命令查看椭球体参数

proj 命令是对经纬度进行投影的,即将经纬度坐标转换为地理坐标。当然也可以将地理坐标转换为经纬度坐标。在终端下输入:

$ proj
Rel. 4.7.1, 23 September 2009
usage: proj [ -beEfiIlormsStTvVwW [args] ] [ +opts[=arg] ] [ files ]

会显示出proj程序的用法。包括参数设置,可选项,和输入文件。

显示参数

我们可以使用下边的命令来显示在 proj 里的内置的有关地图投影的参数。显示投影类型:

$ proj -l | wc -l
126
$ proj -l
aea: Albers Equal Area
aeqd: Azimuthal Equidistant
... ... ...
wintri: Winkel Tripel

在 Debian Wheezy中,一共有投影类型126个。为缩减篇幅,只列出部分投影。其中第一个就是中国常用的阿尔波斯投影。

PROJ.4支持许多长度单位,可以通过参数 -lu,看到支持的单位:

[style=MyBash]
$  proj -lu | wc -l
21
$ proj -lu
         km 1000.                Kilometer
          m 1.                   Meter
        ... ...                  ...
     ind-ch 20.11669506          Indian Chain

同样的,还有参数 -le,显示支持的椭球体(ellipsoid)信息,以及各个椭球体向WGS 84椭球体的转换参数。

$ proj -le | wc -l
42
$ proj -le
    MERIT a=6378137.0      rf=298.257       MERIT 1983
    SGS85 a=6378136.0      rf=298.257       Soviet Geodetic System 85
    ... ... ...
   sphere a=6370997.0      b=6370997.0      Normal Sphere (r=6370997)

注意最后一个,这是一个球,而不是椭球。

参数 -ld ,显示Proj4支持的基准面(Datum)信息。

$proj -ld
__datum_id__ __ellipse___ __definition/comments______________________________
       WGS84 WGS84        towgs84=0,0,0
      GGRS87 GRS80        towgs84=-199.87,74.79,246.62
                          Greek_Geodetic_Reference_System_1987
      ... ... ...
      OSGB36 airy         towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894
                          Airy 1830

可以看到,WGS84是目前最常用的椭球体,其他椭球体的定义,都是相对WGS84的参数而定义的(towgs84)