目录
前言
第一天 地理空间数据模型
1、空间参照系统
1)地球椭球体
2)地图投影
2、数据模型
1)栅格数据
2)矢量数据
3)三维数据
3、数据模型标准
1) 地理坐标系编
2) WKT
前言
首先自我介绍一下,笔者算是国内较早的一批GIS专业学生,毕业后一直从事GIS研发工作,至今已十余年了。从最早的C++写底层DLL、到C#开发桌面应用、再到JavaWeb应用、最后到多语言平台开发,见证了GIS行业这十几年的飞速发展,也见证了传统GIS辉煌和没落。
工作的这些年,在研发部门工作期间面试过很多GIS专业毕业生和想转型做GIS的程序员。发现两个有趣的现象:GIS专业学生有相对扎实的GIS理论基础,但在软件开发这块却非常难入门,面向对象、语法、设计模式这些一座座大山一样把这些学生挡在程序员大门之外;另一种情况是想转型的程序员,画画地图调调api是没问题,但一到复杂一点的空间数据处理分析、强GIS关联的业务模块就一筹莫展,GIS就像千层饼一样一捅就破但却步步遇槛。
这些年观察下来,发现GIS专业学生中最终能做开发的少之又少,可以说是凤毛麟角,导致用人单位找不到合适的人,老师不知道怎么教,学生不知道该怎么学。笔者也跟一些学校的老师聊过这个问题,大都认为跟学校的教育体系和市场的需求关系很大(虽然现在很多学校也在做教学体系改革),其实原因很简单,GIS是测绘科学与计算机技术的交叉学课,也就意味着要想做GIS开发,要在大学四年时间里同时入门两门很有挑战性的学科,对大部分同学来说难以做到。在这期间,我也渐渐的萌生了试图用浅显易懂的语言编写GIS开发入门指引的想法,根据自己这些年带新人入门的经验整理心得,编制《21天学通GIS开发》,为想入门GIS开发的学生、想转型的开发者提供参考和帮助。
第一天 地理空间数据模型
此处大家肯定有疑问,不是学GIS开发吗什么不先上代码,helloworld呢处笔者有话要说,GIS是上世纪七八十年代才出现的新学科,而且是测绘科学与计算机技术的交叉学科,在开发过程中有大量的测绘术语和知识(绝不仅仅一张地图那么简单),必须对测绘理论基础有充分的结构性的认识,才能做好GIS开发工作。。
1、空间参照系统
2020年12月8日,中国和尼泊尔共同宣布珠穆朗玛峰最新高程8848.86米。 那么问题来了,这个高度是怎么测量的什么为基准测量的体上来说,这此给珠峰测身高,是一个极其复杂的数据解算平差多方协调后的系统性的测量工程。但有一个核心不变,这个高度肯定是相对的,那么问题又来了,这个相对的基准点在说么地方,是怎么定下来的,且听我慢慢道来。
1)地球椭球体
首先必须明确一个前提,我们所说的位置坐标都是针对我们所在的星球,定位在地球上的位置。有了这个前提,我们就很容易理解地球椭球体的作用,要想准确的知道坐标位置,必须对我们所在的地球有一个在数学上的能够描述的模型。
这个模型我们一般用大地水准面来表达,我们都知道地球是一个不规则的椭球体,同时各个区域的重力还不尽相同,无法用一个数学公式表达。所以聪明的测绘前辈们就假想地球表面全覆盖海水,以这颗“水球”的形状来测量我们地球的三维。
这时候我们就可以根据这个“水球”来作定位了,这时的定位方式是我们常见的经纬度坐标,测绘术语叫大地坐标。
因为人类测量技术的飞速发展,这个“水球”的三维也在不断变化,越来越准确。下边我就给大家介绍四个我们常见的“水球”,它们在不同历史时期不同应用场景里都发挥了重要作用。
就我们国家来说,建国初期测绘水平有限,再加上政治上的考量,我们就直接用了苏联老大哥的椭球体定义,即克拉索夫斯基椭球,这时的水球三维是:长半径为6378245米,短半径为6356863米,扁率为1/298.3。这就是我们GIS开发中会常见到的北京54坐标系。
时间来到了1978年,国内测绘前辈大牛们在当年的全国天文大地 平差会议上,提出了建立我国新的坐标系。原因是以克拉索夫斯基椭球建立的坐标系在计算和定位的过程中,没有采用中国的数据,该系统在中国范围内符合得不好,不能满足当时国内发展的需要。这次采用的水球叫IUG 1975椭球,三维是长半轴6378140、短半轴6356755.2882、扁率1/298.2570。这就是我们GIS开发中会常见到的西安80坐标系。
进入21世纪之后我国经济科技高速发展,特别是空间技术得到了长足的发展。以IUG 1975椭球建立的坐标系出现精度偏低、无法满足空间技术等新技术的要求。2008年我国正式启用了新的坐标系统,即CGCS2000坐标系,三维是长半轴6378137m、短半轴6356752.31414m、扁率1/298.257222101。
此处还得提到一个我们经常会遇到的椭球体WGS84椭球体。大家都知道的GPS卫星定位系统就是用的此椭球体作为定位基准。
2)地图投影
地球椭球体为我们刻画了地球的空间形状,但定位导航都是为生活在地球表面的人类服务的,必须想办法吧三维的球体转换为二维的平面,才能更为人们所接受。为此,历史上的伟人们想了很多办法,主要思路都是将球体投影到不同的可展开的立方体中。
但因为是降维的展示,是永远不可能100%还原三维的空间关系。所以针对各种应用场景提供了不同的投影方式。比如在海上航行的场景里,这时候最重要的是方向要跟三维空间绝对一致,就有了等角投影。在我们给测量土地的时候,面积肯定最重要,所以有了等积投影。还有其他场景上两者都要兼顾,就有了任意投影。
高斯-克吕格投影,作为这些投影中的佼佼者必须郑重介绍一下。
我国大中比例尺地形图一律采用此投影,你就可以想象高斯-克吕格投影在中国的王者地位。投影的主要思路是架设有一个圆柱面横套在地球椭球体外面,然后将与外套圆柱接触的这块宽度为3°或6°跨度的柱面展开。
更形象的说法是剥橘子,把一个橘子皮平均分成120或60份,然后拨开后展开的每一块就是一个条带。120等分的叫3度条带,60等分的叫6度条带。
下面这张图绝对是每个GIS专业的学生都见过的经典图片,中间横向是赤道,上方是6度条带,下方是3度条带,并且可以看到我们国家标准中为每个条带编的 和条带中间那条线的经度(中央经线)。
当然常用的投影还有墨卡托投影、兰伯特投影等,他们也经常在各种地图中使用。有兴趣的同学也可以查阅相关资料了解或者留言交流。
2、数据模型
按照一开始介绍的总体思路,我们有了丈量世界的基本理论和共识之后呢,到这一步就应该考虑怎么吧现实世界地理空间相关的对象,用计算机能够识别的方式记录了。按照计算机的数据存储方式,我们把地理空间数据分为最基础的两类:
1)栅格数据
一个是把空间规则的分成一个个正方形,然后每个栅格记录这个位置的地理实体的状态,一般情况下常见的栅格数据是我们用光学、雷达等电磁波传感设备采集到的图片类数据。
2)矢量数据
矢量数据是用点线面来表达我们的现实世界空间关系,每个点都有在参考坐标系中的坐标位置来定义。常见的矢量数据是用专用测量设备测量或者人工勾画(矢量化)得到的数据。
此处必须提一下4D数据,即DOM(数字正射影像图)、DEM(数字高程模型)、DRG(数字栅格地图)、DLG(数字线划地图)。当前我们只要知道前三个都是栅格数据,最后一个是矢量数据。
3)三维数据
其实是三维数据是一个很大的概念,很多教材并没有把这类数据单独说明。笔者主要考虑当前发展的趋势,三维的数据采集和处理手段已经非常成熟,实景中国建设已经全面开展,现在的GIS系统不上三维已经不好意思称自己是GIS系统。
其实现阶段大部分三维系统都是伪三维。一部分是用无人机采集的倾斜摄影和点云数据,在面模型上贴上图片(纹理)形成,没有做单体化之前只能是看,很难做三维层面的深入分析。另一部分是在将影像与地面高程叠加拉起地形起伏之后的三维场景。
当然做了单体化之后的倾斜摄影和点云数据,以及人工建模的这类基于体模型的三维数据,我个人认为可以叫做真三维,可以根据应用场景基于这些数据做进一步三维分析。
BIM绝对是近期发展的趋势,BIM能够精确的记录表达显示世界各个要素的空间位置、形状、属性、相互关系,基于BIM数据可以对空间对象的全生命周期进行管理。在加上GIS技术、物联 技术我们就可以称之为CIM(城市信息模型)。
当然还有其他如 络拓扑数据、时空模型、线性参考等地理空间数据类型,有兴趣的同学也可以查阅相关资料了解或者留言交流。
3、数据模型标准
共享的前提是得有统一的标准,这个我们不用操心。开放地理空间联盟(OGC)已经为我们考虑到了,OGC是一个由多家公司、机构和大学组成的国际联盟,它们参与开发可用于管理空间数据的各种应用程序的公共概念解决方案。
地理坐标系编 (坐标参考系统的唯一标识SRID)
OGC前后发布了众多关于空间数据的标准(https://www.ogc.org/docs/is),其中WKT-CRS表示空间参照系统的WKT字串描述了空间物体的测地基准、大地水准面、坐标系统及地图投影。 SRID是GIS开发中常见到的坐标系编 :
地理坐标系ID:
4214:GCS_Beijing_1954(北京54)
4326:GCS_WGS_1984(WGS84)
4490:GCS_China_Geodetic_Coordinate_System_2000(CGCS2000坐标系)
4555:GCS_New_Beijing(北京地方坐标系)
4610:GCS_Xian_1980(西安80)
投影坐标系ID及其代表的意义:
2327 Xian_1980_GK_Zone_13(西安80椭球体-高斯克吕格投影-编 为13的6度条带投影)
2339 Xian_1980_GK_CM_81E(西安80椭球体-高斯克吕格投影-中央经线为东经81度的6度条带投影)
2349 Xian_1980_3_Degree_GK_Zone_25(西安80椭球体-高斯克吕格投影-编 为25的3度条带投影)
2370 Xian_1980_3_Degree_GK_CM_75E(西安80椭球体-高斯克吕格投影-中央经线为东经75度的3度条带投影)
2401 Beijing_1954_3_Degree_GK_Zone_25(北京54椭球体-高斯克吕格投影-编 为25的3度条带投影)
2422 Beijing_1954_3_Degree_GK_CM_75E(北京54椭球体-高斯克吕格投影-中央经线为东经75度的3度条带投影)
21413 Beijing_1954_GK_Zone_13(北京54椭球体-高斯克吕格投影-编 为13的6度条带投影)
WKT
OGC还包括了SFS(简单要素标准)和WKT(Well-known text)标准,对各种二维空间对象已经有了非常详尽的约定。WKT/WKB可以表示的几何对象包括:点,线,多边形,TIN及多面体。可以通过几何集合的方式来表示不同维度的几何对象。
这个图是不是很眼熟,不错这其实就是数据库设计中标准的ER图,规定了各种地理空间要素之间的关系和表述标准。
到了这里我们就能大致了解空间位置定位基准、了解地图投影的意义和GIS的常用数据分类和模型,以及其在计算机中的存储规范。在以后的开发过程中会遇到geojson、project等新的问题时,我们很容易能够理解,也就能很快找到解决的办法。
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91563 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!