猿创征文|GISER开发者必备高能武器库

前言

       不知道现在技术全力,GISER的比例大概是多少?GIS这个领域在IT中占比比较小,从业者估计更少。但随着现在国家大力推广国家新基建,比如实景中国的建设,智慧城市的建立等等。许多的目光又聚集到了GIS这个领域,面对新需求的提出,还有物联网、大数据、人工智能的加持,对GIS开发者的技能提出了更高的要求。不仅仅是使用软件出一张图,更多的场景是去处理数据,进行数据挖掘,寻找隐藏的知识脉络。比如,使用高清的卫星遥感影像做农作物识别,国土空间用途管制,农田的非粮化检测,水体污染检测,农村违法建房监测等等。

       GIS时代已经来临,潮头蜂拥而来,GIS开发者要勇立潮头,做时代的弄潮儿。新时期,智慧城市,数字孪生、元宇宙,新技术不断涌现,万物互联,物联网,大数据的加持,对gis从业者提出了更高的要求。本文从数据处理、数据获取及存储、数据可视化等方面对涉及到的软件进行分享,欢迎同行进行交流指正。

 一、数据处理篇

       数据是一切信息系统的基础,怎么对这些数据进行高效的处理,是gis需要掌握的技能。这里将从软硬件方面介绍一些日常工作中用的比较多的gis数据处理软硬件。

1、ArcGIS

        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的使用场景,但是它是一个收费软件,同时它是国外的产品,在现在国产化,自主化的要求下,我们寻找其它的解决办法。比如开源产品,或者自主研发。

2、QGIS

      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软件的主要特点有:

  1. 支持多种GIS数据文件格式。通过GDAL/OGR扩展可以支持多达几十种数据格式.
  2. 支持POSTGIS数据库。
  3. 支持从WMS、WFS服务器中获取数据
  4. 集成了Grass的部分功能。
  5. 支持对GIS数据的基本操作,如属性的编辑修改等。
  6. 支持创建地图。
  7. 通过插件的形式支持功能的扩展

 3、GeoTools

       上述两个都是桌面端软件,在软件中提供了封装的功能,使用者只需要使用就可以完成相应的功能。功能封装的另一个问题是,如果想要扩展或者封装,几乎是不可能的。由此,如果你想自己定义程序的逻辑和业务规则,那又该怎么办呢?可以采取自由扩展的方式来进行开发。比如GeoTools 。GeoTools 是一个开源的 Java GIS 工具包,可利用它来开发符合标准的地理信息系统。GeoTools 提供了 OGC (Open Geospatial Consortium) 规范的一个实现来作为他们的开发。GeoTools 被许多项目使用,包括 Web 服务,命令行工具和桌面应用程序。

 geotools功能列表:

  1.  定义关键空间概念和数据结构的接

  2. 干净的数据访问 API,支持功能访问,事务支持和线程之间的锁

  3. 无状态的低内存渲染器,在服务器端环境中特别有用

  4. 使用 XML 模式绑定到 GML 内容的强大模式辅助解析技术

  5. GeoTools 插件:开放式插件系统,可让您教授库其他格

  6. GeoTools 扩展,提供使用核心库的空间设施构建的其他功能。 

      关于geotools,我的个人博客中有一些入门示例和相关介绍,GeoTools之入门简介干货!使用Geotools解析shap数据实例。感兴趣的朋友可以选择的进行阅读。

4、GDAL

      一般情况下,使用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数据的获取来源以及管理软件。不管您是从事科研的同学还是工作的朋友,从这些专业正规的网站获取数据,不迷路,不会有任何奉献。

1、天地图 

       天地图集成了来自国家、省、市(县)各级测绘地理信息部门,以及相关政府部门、企事业单位 、社会团体、公众的地理信息公共服务资源,向各类用户提供权威、标准、统一的在线地理信息综合服务 。它是“数字中国”的重要组成部分。天地图的目的在于促进地理信息资源共享和高效利用,提高测绘地理信息公共服务能力和水平,改进测绘地理信息成果的服务方式,更好地满足国家信息化建设的需要,为社会公众的工作和生活提供方便。

  

      在成果目录可以进入到全国地理信息资源目录服务系统,如下图:

  

  

2、国家气象科学数据中心:http://data.cma.cn/

       国家气象科学数据中心提供了较多的气象数据和地面监测数据,比如降水、温度等数据,数据类型较多,登录后下载就可以,操作简便。

 

 

       这些数据都是来源于国家中心的,对于进行科学研究非常有用,如果要发表科研论文,一般只需要在数据来源那进行一个说明即可。

3、PostGIS空间数据库

       当我们拿到空间数据后,如何对这些数据进行管理,这就需要使用空间数据库。空间数据是关系型数据库的扩展,可以使用常见的SQL进行空间数据的录入、查询、删除,但提供了多种的空间分析函数。PostgreSQL 是一种对象-关系型数据库管理系统(ORDBMS),也是功能最强大、特性最丰富和最复杂的自由软件数据库系统。它起源于伯克利的数据库功能最强大、特性最丰富和最复杂的研究计划,是最重要的开源数据库产品开发项目之一, 有着非常广泛的用户。

      PostGIS提供非常多的空间处理函数,

       下面是一个空间包含的函数定义,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可以开发很多富有想象力的功能应用。

三、数据可视化

       空间数据可视化是复杂、海量空间数据及地理信息直观展现、多维分析、深度挖掘与扩展应用的重要手段,是多学科交叉的理论、方法和新技术。采用图形图像图表、符号颜色纹理、光照渲染透明,以及动画视频等多种表现形式,对空间数据及其变化进行二维、三维的直观表达和动态展现,不仅可增强人们对多维数据的视觉感知能力,而且有助于分析复杂空间数据的内在关联和隐含信息,探索获取其空间分布与变化规律。

1、LeafLet.js 二维数据可视化利器

       时空数据静态可视化,一般是以二维地图上叠加可以描述时间变化的要素,来描述时空属性数据与空间范围内的变化特征。这些用于表达时空属性数据的要素可以通过不同的符号、注记、标绘符号、统计图表等多种方式来表达,也可以将多个时间的专题地图同时展示进行对比。在二维数据展示方面,可以使用Leaflet.js。

        Leaflet 是领先的用于移动友好交互式地图的开源 JavaScript 库。仅仅重约 39KB 的 JS,它拥有大多数开发者所需要的所有地图功能。Leaflet 在设计时考虑到了简单性、性能和可用性。它可以在所有主要的桌面和移动平台上高效地工作,可以通过大量的插件进行扩展,拥有一个漂亮的、易于使用的、记录良好的 API,以及一个简单的、可读的源代码。使用Leaflet可以实现很多有意思的功能,比如动态风场、动态路线展示。

 2、Cesium.js 三维可视化高手

       Cesium隶属于AGI公司,该公司一直致力于时空数据业务。Cesium原意是化学元素铯,铯是制造原子钟的关键元素,通过命名强调了Cesium产品专注于基于时空数据的实时可视化应用。 AGI的英文全称为Analytical Graphics Incorporation,三位创始人曾在通用公司宇航部的供职工程师,提供STK(System/Satellite Toolkit Kit)和Cesium两款产品。经过多年来在时空数据的积累,AGI公司逐渐掌握了大量3D可视化技术,也感受到各行各业对海量3D数据的强烈需求,因此于2012年创建了cesiumjs开源项目,围绕Cesium生态圈打造了一套安全可靠易扩展且平台独立的企业级解决方案。

       如果您在建设实景三维系统,需要对倾斜数据,点云数据等等进行综合展示,就可以选择这款开源的成熟组件,来帮助你快速出应用结果。

3、Mars3D 国产基础应用扩展者

  Mars3D三维可视化平台 是火星科技 (opens new window)研发的一款基于 WebGL 技术实现的三维客户端开发平台,基于优化提升与B/S架构设计,支持多行业扩展的轻量级高效能GIS开发平台,能够免安装、无插件地在浏览器中高效运行,并可快速接入与使用多种GIS数据和三维模型,呈现三维空间的可视化,完成平台在不同行业的灵活应用。

        Mars3D平台可用于构建无插件、跨操作系统、 跨浏览器的三维 GIS 应用程序。平台使用 WebGL 来进行硬件加速图形化,跨平台、跨浏览器来实现真正的动态大数据三维可视化。通过 Mars3D产品可快速实现浏览器和移动端上美观、流畅的三维地图呈现与空间分析。

       针对与国内的资源比较受限,而且大多数开发者对英文的掌握能力有限,Mars3D 有完整的中文开发文档,非常全面的介绍了Cesium的相关知识,同时提供了Cesium的丰富案例还提供源码。通过学习其开放的学习资源,可以掌握Cesium的相关开发知识。

 

 四、总结及行业展望

       展望未来,我们可以先看看gis的技术目前是可以用在那些产业上。

  1. 资源管理:主要应用于农业和林业领域,解决农业和林业领域各种资源的分布、分级、统计、制图等问题。
  2. 资源配置:GIS在这类应用中的目标是保证资源的最合理配置和发挥最大效益。往近处说就是这几年疫情期间,城市中的各种公用设施、救灾减灾中物资的分配、全国范围内能源保障、粮食供应等到机构的在各地的配置等都是资源配置问题。
  3. 城市规划和管理:空间规划是GIS的一个重要应用领域,城市规划和管理是其中的主要内容。例如,在大规模城市基础设施建设中如何保证绿地的比例和合理分布、如何保证学校、公共设施、运动场所、服务设施等能够有最大的服务面(城市资源配置问题)等。
  4. 应急响应:在发生洪水、战争、核事故等重大自然或人为灾害时,如何安排最佳的人员撤离路线、并配备相应的运输和保障设施的问题。
  5. 地学研究与应用:地形分析、流域分析、土地利用研究、经济地理研究、空间决策支持、空间统计分析、制图等都可以借助地理信息系统工具完成。
  6. 商业与市场:商业设施的建立充分考虑其市场潜力。例如大型商场的建立如果不考虑其他商场的分布、待建区周围居民区的分布和人数,建成之后就可能无法达到预期的市场和服务面。有时甚至商场销售的品种和市场定位都必须与待建区的人口结构(年龄构成、性别构成、文化水平)、消费水平等结合起来考虑。地理信息系统的空间分析和数据库功能可以解决这些问题。房地产开发和销售过程中也可以利用GIS功能进行决策和分析。
  7. 基础设施管理:城市的地上地下基础设施(电信、自来水、道路交通、天然气管线、排污设施、电力设施等)广泛分布于城市的各个角落、且这些设施明显具有地理参照特征的。它们的管理、统计、汇总都可以借助GIS完成,而且可以大大提高工作效率。
  8. 网络分析:建立交通网络、地下管线网络等的计算机模型,研究交通流量、进行交通规则、处理地下管线突发事件(爆管、断路)等应急处理。警务和医疗救护的路径优选、车辆导航等也是GIS网络分析应用的实例。
  9. 可视化应用:以数字地形模型为基础,建立城市、区域、或大型建筑工程、着名风景名胜区的三维可视化模型,实现多角度浏览,可广泛应用于宣传、城市和区域规划、大型工程管理和仿真、旅游等领域。

       这就是本次分享的主要内容,本文从数据处理、数据管理、数据可视化、GIS行业展望四个方面简单介绍了GISER在日常工作中高频使用的软件。GIS开发是一个多学科融合的学科,这里从计算机科学的角度给出了这些常用软件的相关介绍。本文作者在GIS领域也是一个初学者,很多知识仅学得一点皮毛,很多观点和研究都停留在项目工程中,但是对GIS的未来充满了信心。

      文章中许多截图来源于相关的官方网站,关于GIS的建设和技术研究,欢迎朋友和前辈批评指正,多多交流学习。

猜你喜欢

转载自blog.csdn.net/yelangkingwuzuhu/article/details/127828078