不知道现在技术全力,GISER的比例大概是多少?GIS这个领域在IT中占比比较小,从业者估计更少。但随着现在国家大力推广国家新基建,比如实景中国的建设,智慧城市的建立等等。许多的目光又聚集到了GIS这个领域,面对新需求的提出,还有物联网、大数据、人工智能的加持,对GIS开发者的技能提出了更高的要求。不仅仅是使用软件出一张图,更多的场景是去处理数据,进行数据挖掘,寻找隐藏的知识脉络。比如,使用高清的卫星遥感影像做农作物识别,国土空间用途管制,农田的非粮化检测,水体污染检测,农村违法建房监测等等。
GIS时代已经来临,潮头蜂拥而来,GIS开发者要勇立潮头,做时代的弄潮儿。新时期,智慧城市,数字孪生、元宇宙,新技术不断涌现,万物互联,物联网,大数据的加持,对gis从业者提出了更高的要求。本文从数据处理、数据获取及存储、数据可视化等方面对涉及到的软件进行分享,欢迎同行进行交流指正。
数据是一切信息系统的基础,怎么对这些数据进行高效的处理,是gis需要掌握的技能。这里将从软硬件方面介绍一些日常工作中用的比较多的gis数据处理软硬件。
ArcGIS产品线为用户提供一个可伸缩的,全面的GIS平台。ArcObjects包含了许多的可编程组件,从细粒度的对象(例如单个的几何对象)到粗粒度的对象(例如与现有ArcMap文档交互的地图对象)涉及面极广,这些对象为开发者集成了全面的GIS功能。
以ArcGIS 的桌面端软件为例,ArcGIS 桌面端有丰富的组件来进行相应的模块。 对于那些利用GIS信息进行编辑,设计的GIS专业人士来说,桌面GIS占有主导地位。GIS专业人士使用标准桌面作为工具来设计,共享,管理和发布地理信息。ArcGIS Desktop是一个集成了众多高级GIS应用的软件套件,它包含了一套带有用户界面组件的Windows桌面应用(如ArcMap、ArcCatalogTM,ArcTooboxTM以及ArcGlobe)。ArcGIS Desktop具有三种功能级别――ArcReader,ArcView,ArcEditorTM和ArcInfoTM,都可以使用各自软件包中包含的ArcGIS Desktop开发包进行客户化和扩展。
虽然arcgis的功能非常丰富,基本能涵盖所有gis的使用场景,但是它是一个收费软件,同时它是国外的产品,在现在国产化,自主化的要求下,我们寻找其它的解决办法。比如开源产品,或者自主研发。
QGIS(原称Quantum GIS)是一个自由软件的桌面GIS软件。它提供数据的显示、编辑和分析功能。QGIS是一个用户界面友好的桌面地理信息系统,可运行在Linux、Unix、Mac OSX和Windows等平台之上。QGIS是基于Qt,使用C++开发的一个用户界面友好、跨平台的开源版桌面地理信息系统。 QGIS项目开始于2002年 5月,是基于跨平台的图形工具Qt软件包,采用C++ 语言开发的一个GIS软件。目前的开发非常活跃,当前(2014年)的最新版本是QGIS 2.4 版。QGIS源码采用 GNU General Public License协议对外发布。qgis的常用功能和arcgis几乎是一致的。arcgis能做的,qgis基本上也能实现你的需求。只是它支持的数据格式可能少一些,所以在一些场景下面,比如arcgis的专有格式等,就需要进行认真评估了。
QGIS软件的主要特点有:
上述两个都是桌面端软件,在软件中提供了封装的功能,使用者只需要使用就可以完成相应的功能。功能封装的另一个问题是,如果想要扩展或者封装,几乎是不可能的。由此,如果你想自己定义程序的逻辑和业务规则,那又该怎么办呢?可以采取自由扩展的方式来进行开发。比如GeoTools 。GeoTools 是一个开源的 Java GIS 工具包,可利用它来开发符合标准的地理信息系统。GeoTools 提供了 OGC (Open Geospatial Consortium) 规范的一个实现来作为他们的开发。GeoTools 被许多项目使用,包括 Web 服务,命令行工具和桌面应用程序。
geotools功能列表:
定义关键空间概念和数据结构的接
干净的数据访问 API,支持功能访问,事务支持和线程之间的锁
无状态的低内存渲染器,在服务器端环境中特别有用
使用 XML 模式绑定到 GML 内容的强大模式辅助解析技术
GeoTools 插件:开放式插件系统,可让您教授库其他格
GeoTools 扩展,提供使用核心库的空间设施构建的其他功能。
关于geotools,我的个人博客中有一些入门示例和相关介绍,GeoTools之入门简介、干货!使用Geotools解析shap数据实例。感兴趣的朋友可以选择的进行阅读。
一般情况下,使用geotools能满足常规的业务需求了,但如果您有更负责的需求,比如需要投影转换,多种矢量数据、栅格数据的读取,还有不同的格式,这种情况下,geotools的处理能力就有一些捉襟见肘了,此时需要使用另外一个库,gdal来进行帮助升级战斗力。
GDAL(Geospatial Data Abstraction Library)是一个X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。OGR是GDAL项目的一个分支,提供对矢量数据的支持。有很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI的ARCGIS 9.3,Google Earth和跨平台的GRASS GIS系统、开源世界的GDAL。利用GDAL/OGR库,可以使基于Linux的地理空间数据管理系统提供对矢量和栅格文件数据的支持。
文稿有限,在本人的博文中对gdal进行了相关的介绍,可以参考gis利器之Gdal(一)、windows下gdal的java开发环境搭建、gis利器之Gdal(二)shp数据读取、gis利器之Gdal(三)gdb数据读取。感兴趣的小伙伴可以参阅。
GIS空间数据的来源有很多,可以通过传统的测绘部门的基础测绘,还有卫星遥感数据,现在还有无人机雷达数据等等,非常多。这些数据可以从那些渠道获取呢?本小节将重点说明GIS数据的获取来源以及管理软件。不管您是从事科研的同学还是工作的朋友,从这些专业正规的网站获取数据,不迷路,不会有任何奉献。
天地图集成了来自国家、省、市(县)各级测绘地理信息部门,以及相关政府部门、企事业单位 、社会团体、公众的地理信息公共服务资源,向各类用户提供权威、标准、统一的在线地理信息综合服务 。它是“数字中国”的重要组成部分。天地图的目的在于促进地理信息资源共享和高效利用,提高测绘地理信息公共服务能力和水平,改进测绘地理信息成果的服务方式,更好地满足国家信息化建设的需要,为社会公众的工作和生活提供方便。
在成果目录可以进入到全国地理信息资源目录服务系统,如下图:
国家气象科学数据中心提供了较多的气象数据和地面监测数据,比如降水、温度等数据,数据类型较多,登录后下载就可以,操作简便。
这些数据都是来源于国家中心的,对于进行科学研究非常有用,如果要发表科研论文,一般只需要在数据来源那进行一个说明即可。
当我们拿到空间数据后,如何对这些数据进行管理,这就需要使用空间数据库。空间数据是关系型数据库的扩展,可以使用常见的SQL进行空间数据的录入、查询、删除,但提供了多种的空间分析函数。PostgreSQL 是一种对象-关系型数据库管理系统(ORDBMS),也是功能最强大、特性最丰富和最复杂的自由软件数据库系统。它起源于伯克利的数据库功能最强大、特性最丰富和最复杂的研究计划,是最重要的开源数据库产品开发项目之一, 有着非常广泛的用户。
下面是一个空间包含的函数定义,PostGIS内置了许多的功能函数助力空间函数计算:
CREATE OR REPLACE FUNCTION "public"."_st_contains"("geom1" "public"."geometry", "geom2" "public"."geometry")
RETURNS "pg_catalog"."bool" AS '$libdir/postgis-3', 'contains'
LANGUAGE c IMMUTABLE STRICT
COST 10000
PostGIS这款空间数据库工具,一定值得拥有,基于PostGIS可以开发很多富有想象力的功能应用。
空间数据可视化是复杂、海量空间数据及地理信息直观展现、多维分析、深度挖掘与扩展应用的重要手段,是多学科交叉的理论、方法和新技术。采用图形图像图表、符号颜色纹理、光照渲染透明,以及动画视频等多种表现形式,对空间数据及其变化进行二维、三维的直观表达和动态展现,不仅可增强人们对多维数据的视觉感知能力,而且有助于分析复杂空间数据的内在关联和隐含信息,探索获取其空间分布与变化规律。
时空数据静态可视化,一般是以二维地图上叠加可以描述时间变化的要素,来描述时空属性数据与空间范围内的变化特征。这些用于表达时空属性数据的要素可以通过不同的符号、注记、标绘符号、统计图表等多种方式来表达,也可以将多个时间的专题地图同时展示进行对比。在二维数据展示方面,可以使用Leaflet.js。
Leaflet 是领先的用于移动友好交互式地图的开源 JavaScript 库。仅仅重约 39KB 的 JS,它拥有大多数开发者所需要的所有地图功能。Leaflet 在设计时考虑到了简单性、性能和可用性。它可以在所有主要的桌面和移动平台上高效地工作,可以通过大量的插件进行扩展,拥有一个漂亮的、易于使用的、记录良好的 API,以及一个简单的、可读的源代码。使用Leaflet可以实现很多有意思的功能,比如动态风场、动态路线展示。
Cesium隶属于AGI公司,该公司一直致力于时空数据业务。Cesium原意是化学元素铯,铯是制造原子钟的关键元素,通过命名强调了Cesium产品专注于基于时空数据的实时可视化应用。 AGI的英文全称为Analytical Graphics Incorporation,三位创始人曾在通用公司宇航部的供职工程师,提供STK(System/Satellite Toolkit Kit)和Cesium两款产品。经过多年来在时空数据的积累,AGI公司逐渐掌握了大量3D可视化技术,也感受到各行各业对海量3D数据的强烈需求,因此于2012年创建了cesiumjs开源项目,围绕Cesium生态圈打造了一套安全可靠易扩展且平台独立的企业级解决方案。
如果您在建设实景三维系统,需要对倾斜数据,点云数据等等进行综合展示,就可以选择这款开源的成熟组件,来帮助你快速出应用结果。
Mars3D三维可视化平台
是火星科技 (opens new window)研发的一款基于 WebGL 技术实现的三维客户端开发平台,基于优化提升与B/S架构设计,支持多行业扩展的轻量级高效能GIS开发平台,能够免安装、无插件地在浏览器中高效运行,并可快速接入与使用多种GIS数据和三维模型,呈现三维空间的可视化,完成平台在不同行业的灵活应用。
Mars3D平台可用于构建无插件、跨操作系统、 跨浏览器的三维 GIS 应用程序。平台使用 WebGL 来进行硬件加速图形化,跨平台、跨浏览器来实现真正的动态大数据三维可视化。通过 Mars3D产品可快速实现浏览器和移动端上美观、流畅的三维地图呈现与空间分析。
针对与国内的资源比较受限,而且大多数开发者对英文的掌握能力有限,Mars3D 有完整的中文开发文档,非常全面的介绍了Cesium的相关知识,同时提供了Cesium的丰富案例还提供源码。通过学习其开放的学习资源,可以掌握Cesium的相关开发知识。
展望未来,我们可以先看看gis的技术目前是可以用在那些产业上。
这就是本次分享的主要内容,本文从数据处理、数据管理、数据可视化、GIS行业展望四个方面简单介绍了GISER在日常工作中高频使用的软件。GIS开发是一个多学科融合的学科,这里从计算机科学的角度给出了这些常用软件的相关介绍。本文作者在GIS领域也是一个初学者,很多知识仅学得一点皮毛,很多观点和研究都停留在项目工程中,但是对GIS的未来充满了信心。
文章中许多截图来源于相关的官方网站,关于GIS的建设和技术研究,欢迎朋友和前辈批评指正,多多交流学习。