空间参考系统与WKT解析
空间参考系统与WKT解析
1、为什么要空间参考系统?
空间参考系统,也称为坐标系统。在GIS中为地理数据定位的基准,假设给你一个坐标(442281.875,4422651.589)。如果不给你空间参考系统,你可能根本不知道这个点在哪,是在欧洲还是在我们中国。这样就会给GIS应用带来困难。因此说没有空间参考的地理数据都是没有实际意义的。如果我告诉你他的空间参考系统是WGS84坐标系下的UTM50带的投影坐标系,那么你可能经过一些推算可以知道这是在北京。这里的推算就是用到了投影坐标反算,也就是由投影坐标系的平面坐标转换到地理坐标的经纬度。好了,现在大概应该知道空间参考系统的重要性了吧。
2、空间参考系统的类型
在GIS中,我们经常听到WGS84、高斯-克吕格。那么是否真正弄清楚这些名词的含义了?在这里说的WGS84是一种基准面,它的参考椭球体是国际大地测量与地球物理联合会第17届大会大地测量常数推荐值,其基本参数如下:
长半径:a=6378137±2(m);
地球引力和地球质量的乘积:GM=3986005×108m3s-2±0.6×108m3s-2;
正常化二阶带谐系数:C20=-484.16685×10-6±1.3×10-9;
地球重力场二阶带球谐系数:J2=108263×10-8
地球自转角速度:ω=7292115×10-11rads-1±0.150×10-11rads-1
扁率f=0.003352810664
那么高斯-克吕格又是什么呢?它是一种地图投影,在此投影下的坐标系一般都是用平面笛卡尔坐标表示,坐标度量的单位是米、英尺之类的。GIS相关专业的学生在本科阶段,我想老师们都会给你们布置一个作业:编程实现高斯克吕格投影正解与反解计算。
在GIS的应用中,普遍应用的空间参考系统有如下几种:
|
地心坐标系 |
地心坐标系是以地球质心为原点建立的空间直角坐标系,以x,y,z表示 或者以椭球体的中心和此质心重合建立的大地坐标系,大地坐标系一般是用B,L,H表示的 |
|
地理坐标系 |
以椭球体为基础建立的坐标系,用经纬度度量坐标 |
|
投影坐标系 |
在特定椭球体基础之上经过地图投影建立的平面坐标系。 |
3、空间参考系统的表示方法
在GIS应用中,经常会遇到空间参考系的表示问题,如果不同系统中的同一个空间参考系统使用了不同的代码或者名称的话,就会给不同系统之间的互操作带来困难。为了统一空间参考系统的表示,openGIS定义了用WKT,也就是孰知文本来表示空间参考系统。另外欧洲是由勘探组织定义了一套标准,它通常以以下三种形式发布:
lEPSG Registry:我们可以通过http://www.epsg-registry.org/访问和查询。
EPSG 数据库:通过关系数据库的形式发布,可以通过http://www.epsg.org/下载。
SQL脚本:以SQL脚本的方式发布,通过脚本的方式创建EPSG数据集。
3、1WKT表示方法
现在主要讲解WKT表示方法。
WKT主要就是用文本的方法表示空间参考系统,下面这些语句就是定义空间参考系统的字句。
<coordinate system> = <horz cs> | <geocentric cs> | <vert cs> | <compd cs>
| <fitted cs> | <local cs>
<horz cs> = <geographic cs> | <projected cs>
<projected cs> = PROJCS["<name>", <geographic cs>, <projection>,
{<parameter>,}* <linear unit> {,<twin axes>}{,<authority>}]
<projection> = PROJECTION["<name>" {,<authority>}]
<geographic cs> = GEOGCS["<name>", <datum>, <prime meridian>, <angular
unit> {,<twin axes>} {,<authority>}]
<datum> = DATUM["<name>", <spheroid> {,<to wgs84>} {,<authority>}]
<spheroid> = SPHEROID["<name>", <semi-major axis>, <inverse flattening>
{,<authority>}]
<semi-major axis> = <number>
<inverse flattening> = <number>
<prime meridian> = PRIMEM["<name>", <longitude> {,<authority>}]
<longitude> = <number>
<angular unit> = <unit>
<linear unit> = <unit>
<unit> = UNIT["<name>", <conversion factor> {,<authority>}]
<conversion factor> = <number>
<geocentric cs> = GEOCCS["<name>", <datum>, <prime meridian>, <linear unit> {,<axis>,
<axis>, <axis>} {,<authority>}]
<authority> = AUTHORITY["<name>", "<code>"]
<vert cs> = VERT_CS["<name>", <vert datum>, <linear unit>, {<axis>,}
{,<authority>}]
<vert datum> = VERT_DATUM["<name>", <datum type> {,<authority>}]
<datum type> = <number>
<compd cs> = COMPD_CS["<name>", <head cs>, <tail cs> {,<authority>}]
<head cs> = <coordinate system>
<tail cs> = <coordinate system>
<twin axes> = <axis>, <axis>
<axis> = AXIS["<name>", NORTH | SOUTH | EAST | WEST | UP | DOWN | OTHER]
<to wgs84s> = TOWGS84[<seven param>]
<seven param> = <dx>, <dy>, <dz>, <ex>, <ey>, <ez>, <ppm>
<dx> = <number>
<dy> = <number>
<dz> = <number>
<ex> = <number>
<ey> = <number>
<ez> = <number>
<ppm> = <number>
<fitted cs> = FITTED_CS["<name>", <to base>, <base cs>]
<to base> = <math transform>
<base cs> = <coordinate system>
<local cs> = LOCAL_CS["<name>", <local datum>, <unit>, <axis>,
{,<axis>}* {,<authority>}]
<local datum> = LOCAL_DATUM["<name>", <datum type> {,<authority>}]
3、2 WKT主要关键字解析
上面列举了一些WKT的定义字句,这样看我们可能不知道是什么意思。下面就解析WKT中的主要关键字。
n AUTHORITY
这个关键字是可选的,表示外部权威的空间参考系统的编码
n AXIS
这个关键字主要指定空间参考系统的坐标轴方向,如果没有指定,就使用默认的,默认的指定方向如下:
地理坐标系统: AXIS[“Lon”,EAST],AXIS[“Lat”,NORTH]
投影坐标系统: AXIS[“X”,EAST],AXIS[“Y”,NORTH]
地心坐标系统: AXIS[“X”,OTHER],AXIS[“Y”,EAST],AXIS[“Z”,NORTH]
n COMPD_CS
用于指定一个符合的参考系统,符合参考系统一般由两个坐标系统指定。例如一个3D坐标系统可以由一个水平坐标系统和一个垂直坐标系统复合而成。
n DATUM
用于指定一个水平基准面。
n GEOCCS
用于指定一个地心坐标系,是一个3D坐标系,X轴的正方向是从地球质心指向赤道和本初子午线的交点,Z轴指向北极方向,Y轴正方向是从地球质心到赤道与东经90度经线的交点。
n GEOGCS
用于指定基于经纬度的坐标系统。注意:并不是所有的地理坐标系统都用度来表示单位。
n LOCAL_CS
用于指定一个本地的坐标系统。一些坐标系统经常用于CAD系统中
n PARAMETER
投影转换的参数及其值。
n PRIMEM
用于指定经度度量的本初子午线。
n PROJCS
用于指定一个投影坐标系。
n PROJECTION
用于指定从地理坐标到投影坐标转换的参数。
n SPHEROID
定义一个椭球体,椭球体是地球表面的近似。Spheroid和ellipsoid是同义词。Spheroid一般用于WKT中;而ellipsoid在任何地方使用,都是椭球体的意思。
n TOWGS84
用于指示Bursa Wolf变换的七个参数。这七个参数可以近似的从一个基准面到WGS基准面的变换。Bursa Wolf变换只能用于空间直角坐标系之间的变换。
n UNIT
用于指定测量使用的单位。在地理坐标系下使用角度。在垂直坐标系下使用线性单位,如米等。
n VERT_DATUM
用于指定垂直基准面或者高程测量的方法。
n VERT_CS
用于指定一个垂直坐标系统。
3、3 WKT表示方法举例
如果使用的是地理坐标系,那么使用GEOGCS关键字;如果使用投影坐标系那么要使用PROJCS关键字,投影坐标系必须是基于一个地理坐标系定义的;如果是高程坐标系,那么使用VERT_CS关键字。
下面是一个投影坐标系的WKT字符串,表示的是WGS84坐标系下UTM50带投影下的坐标系,是不是很拗口。
PROJCS[
"WGS 84 / UTM zone 50N",
GEOGCS["WGS 84",
DATUM["WGS_1984",SPHEROID["WGS84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",117],
PARAMETER["scale_factor",0.9996],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
UNIT["metre",1,AUTHORITY["EPSG","9001"]],
AUTHORITY["EPSG","32650"]]
从上面的字符串中我们可以看出一些参数的意思。表示的是一个投影坐标系统,基于的地理坐标系统是WGS84,基准面是WGS_1984,椭球体是WGS84坐标系所依赖的椭球体,6378137表示的长半轴,298.257223563是扁率的倒数,起始经线是本初子午线,地理坐标系使用单位是度,0.0174532925199433代表一度所代表多少弧度。
PROJECTION["Transverse_Mercator"]表示是投影方法通用墨卡托投影,
"latitude_of_origin",0表示纬度的起点是0度,也就是赤道,
"central_meridian",117表示投影带的中央经线是东经117度,
"scale_factor",0.9996表示中央经线的长度比是0.9996,因为UTM投影是通用横轴等角割圆柱投影,
"false_easting",500000表示坐标纵轴向西移动500km,
"false_northing",0表示横轴没有平移。
以下是一个地理坐标系统的WKT字符串,它表示的就是WGS84坐标系。
GEOGCS
["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4326"]
]
4、后记
空间坐标系统的WKT表示作为GIS业界互操作的一个规范确实起到了很大的作用。各大GIS厂商以及开源GIS软件类库也都是用WKT作为空间参考系统表示的规范,这样对GIS行业的发展起到了推动作用,也在一定程度上推进了空间数据共享。如果本文中有什么不对的地方,欢迎批评指正,我们共同探讨。
空间参考系统与WKT解析的更多相关文章
- ArcGIS for qml -关于空间参考如何选择设置
作者: 狐狸家的鱼 Github: 八至 版权声明:如需转载请获取授权和联系作者 1.关于空间参考 空间参考可以通过众所周知的ID(WKID) - 整数值来引用. 官网指南中也有对此的专门说明 htt ...
- C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入
C# 嵌入dll 在很多时候我们在生成C#exe文件时,如果在工程里调用了dll文件时,那么如果不加以处理的话在生成的exe文件运行时需要连同这个dll一起转移,相比于一个单独干净的exe,这种形 ...
- GIS中的空间参考
GIS一般都是研究的基于地球的某个区域,例如一个国家.省或市的情况,既然地球上都有经纬度来标识,那么直接用经纬度来标识物体的位置不可以吗?但如果应用不一样,在实际中选择的空间参考系也是不一样的.例如我 ...
- GIS空间参考及坐标转换
空间参考(Spatial Reference)是 GIS 数据的骨骼框架,能够将我们的数据定位到相应的位置,为地图中的每一点提供准确的坐标. 在同一个地图上显示的地图数据的空间参考必须是一致的,如果两 ...
- 《gis空间分析及应用案例解析》培训总结
<gis空间分析及应用案例解析>培训总结 来源:常德水情 作者:唐校准 发布日期:2014-01-02 2013年12月2630日由中国科学院计算技术研究所教育中心组织的< ...
- C#系统缓存全解析(转载)
C#系统缓存全解析 对各种缓存的应用场景和方法做了很详尽的解读,这里推荐一下 转载地址:http://blog.csdn.net/wyxhd2008/article/details/8076105
- ArcGIS Engine开发之旅09--几何对象和空间参考
原文:ArcGIS Engine开发之旅09--几何对象和空间参考 1.Geometry Geometry 是 GIS 中使用最为广泛的对象集之一,用户在创建.删除.编辑和进行地理分析的时候,就是处 ...
- ARCGIS切图:TPK文件的空间参考为地理坐标系
先来吐槽一下,之前习惯了百度地图API,所以一直习惯直接将经纬度点添加到地图上进行显示,目前使用ARCGIS RUNTIME FOR ANDROID进行开发,在地图上加点需要原始点的坐标为投影坐标系, ...
- Openlayer3之空间参考扩展
Openlayers默认了两种空间参考,一个是EPSG4326,一个是EPSG3857,其它的空间参考需要进行扩展才能使用.所以我们初始化时进行了如下操作: 1.将配置数据库中所有的空间参考读取出来, ...
随机推荐
- QTableWidget排序问题
今天写代码,发现Qt4中QTableWidget显示查询结果数据时存在一个问题,具体原因不知道是用法不对还是QTableWidget本身存在的bug.现象如下: 1. 查询,能正常显示查询结 ...
- jQuery 简单滑动轮播图效果
一般页面简单轮播图效果用jQuery制作更加简单.我们来看看以下效果是如何来进行制作的. 其html结构下所示: <div id="box"> < ...
- USACO 2005 January Gold The Wedding Juicer
题目 题目链接,我只在poj上找到了题目,usaco居然上不去. 大意就是说有一些\(1\times 1\times 1\)的小方块堆在一起,问最多能装多少水. 我们在一次测试中出了这题,由于我写水题 ...
- 瑞蓝RL-NDVM-A16网络视频解码器 视频上墙解决方案专家--数字视频解码矩阵
瑞蓝网络数字视频解码矩阵(简称RL-NDVM)是依据第三代开放式网络视频监控系统的实际需求,专为视频上墙显示而研制的一款新型数字解码上墙设备.RL-NDVM解码矩阵是集解码器和HDMI/DVI/VGA ...
- Swift - 通过设置视图的transform属性实现动画
设置视图对象的transform属性,可以实现各种动画效果. 1,移动 指在同一平面内,将控件按照某个直线方向平移一定的距离. 1 2 3 4 5 //每次都从当前位置平移 self.imageVie ...
- 开源数据库连接池之C3P0
本篇介绍几种开源数据库连接池,同时重点讲述如何使用C3P0数据库连接池. 之前的博客已经重点讲述了使用数据库连接池的好处,即是将多次创建连接转变为一次创建而使用长连接模式.这样能减少数据库创建连接的消 ...
- 关于android的nfc问题
最近在研究android的nfc问题 首先再网上有很多关于android nfc 读写的问题,但是大多数都是关于Mifare Classic类型卡的读写,我百试不得骑解,于是自己写了一些程序供大家参考 ...
- hdu 4691 Front compression (后缀数组)
hdu 4691 Front compression 题意:很简单的,就是给一个字符串,然后给出n个区间,输出两个ans,一个是所有区间的长度和,另一个是区间i跟区间i-1的最长公共前缀的长度的数值的 ...
- Microsoft office PPT 2007 保存时速度慢(整理自网上)
问题描述: XP sp3上运行PPT2007,当需要保存文件时,发现竟然需要近1分钟才能保存完毕,其间可能会出现“瘟都死沙漏”来提示你正在保存. 这简直慢到过分慢到无法容忍,一开始以为是ppt文件过大 ...
- PHP移动互联网开发笔记(5)——文件的上传下载
原文地址:http://www.php100.com/html/php/rumen/2014/0326/6706.html 一.文件的上传 1.client设置: (1).在 标签中将enctype和 ...