用自由/开源软件构建一个SDI
文章

用自由/开源软件构建一个SDI

空间数据基础设施(SDI)旨在协调用户与数据、元数据、软件和计算服务的提供,为使用地理空间数据提供一个高效和灵活的环境。在企业环境中,SDI的开发构成了组织中GIS部门或小组的基础。开放地理空间联盟(OGC)为SDI的各种元素提供了许多标准。在本文中,我们将回顾由FOSSGIS(地理信息系统的免费和开源软件)社区提供的用于开发符合OGC标准的空间数据基础设施(SDI)的软件选项。这将为以后的文章提供基础,在以后的文章中,我们将深入研究下面描述的一些单独的项目。

让我们从基础开始我们盛大的FOSSGIS SDI之旅空间数据仓库.在GIS Pro的上一版中,我们采访了PostGIS联合创始人Paul Ramsey,了解了PostGIS和PostgreSQL。对于企业中矢量数据的存储,PostGIS是一个很好的选择。它可以在所有主流平台(Windows、Linux、MacOS)上运行,并为矢量数据提供企业级的数据存储,能够提供多个并发用户并托管这些大型数据集。PostGIS既支持OGC简单特征规范中的特征表示,也支持真正的拓扑表示。它还支持表示真实曲线。虽然PostGIS也能够存储栅格数据,但更常见的是使用传统的基于文件系统的方法来存储栅格数据。为基于文件存储,值得注意的是,GDAL库的命令行工具允许光栅数据的各种转换服务,包括允许从源光栅数据生成分层瓷砖马赛克(TMS)存储。

一旦建立了数据存储,下一个要考虑的问题是如何使用符合标准的元数据对数据进行注释和发布元数据目录.这被称为SDI的目录服务。通常,SDI应该使用基于ISO的机构标准(如INSPIRE、ISO 11515等)发布数据,这些标准由网络目录服务(CSW)标准提供。这里的旗舰产品是GeoNetwork,它提供工具来管理地理空间数据源的元数据,搜索该元数据,并使用网络地图查看器浏览相关数据集。PyCSW(与GeoNetwork一起,为OGC CSW标准提供了参考实现)是一个用于发布和管理与CSW兼容的元数据的库。GeoNode和CKAN等平台提供空间数据存储服务,PyCSW提供目录服务,形成空间内容管理系统,或盒装SDI。

在目录中发现数据后,有必要将用户引导到数据本身。控件提供此功能空间数据服务SDI组件。GeoServer、Mapserver和QGIS Server都是FOSSGIS数据发布引擎的很好的例子。这些空间数据服务器通过一些基于标准的协议使存储在空间数据存储库中的数据可用:用于提供矢量特征数据的web特征服务(WFS),用于提供栅格覆盖的web覆盖服务(WCS),以及用于发布一个或多个数据集的可立即消费的地图渲染的web地图服务。

当合并或导入数据集时,SDI环境中的用户经常需要在不同数据源之间转换和操作数据格式、投影和映射同义词属性。在FOSSGIS世界中,Proj4是提供坐标参考系统的关键项目转换服务并被许多流行的GIS工具如GDAL和QGIS所使用。GDAL(通用数据访问库)提供了读取和写入各种各样的光栅和矢量数据格式(通过它的OGR子系统)的能力。它也被各种商业GIS应用程序使用。

许多SDI实现者也会考虑部署基于网络的处理服务通过Web处理服务(WPS)标准。WPS可以将资源密集型任务从用户的桌面转移到服务器上。此外,它还提供了一种方法,可以在“数据附近”进行处理,而不是要求用户在本地检索大型数据集来进行分析。FOSSGIS社区为WPS提供了一些很好的选项:Zoo和PyWPS就是很好的例子。

有了上述要素,剩下的一个关键要素就是利用SDI通过桌面和基于web的方式向用户提供GIS服务GIS应用程序

对于桌面用户,有许多成熟的、功能丰富的GIS应用程序。GRASS GIS是最古老的GIS项目之一,无论是商业项目还是其他项目(超过30年)。GRASS仍在积极开发中,其开发人员已确保该应用程序与其丰富的分析工具、拓扑数据模型和大量其他特性保持相关性。gvSIG和QGIS,虽然比GRASS更新,但都是成熟的应用程序,也提供移动应用程序作为子项目。它们提供了比GRASS更现代的界面。QGIS和gvSIG的社区版可以与GRASS接口,利用其分析能力。还有许多其他的FOSSGIS桌面GIS应用程序值得探索:uDIG和Orfeo Toolbox (OTB)就是很好的例子。uDIG专注于成为一个伟大的OGC web服务客户端。OTB是一个非常强大的遥感应用程序。这些项目的本质是开源软件,这意味着您的桌面GIS选择不需要是孤注一注的事情。 Projects like QGIS also act as a front end to OTB, GRASS and SAGA, giving you a ‘best of all worlds’ approach.

当用户需要发现和通过浏览器访问SDI,FOSSGIS社区已经开发了许多有用的应用程序。可能最著名的是javascript库OpenLayers和Leaflet。前者为创建功能丰富的web应用程序提供了一套极其通用的功能。另一方面,Leaflet渴望成为一个非常轻量级的Javascript GIS浏览器,可以根据需要通过插件进行扩展。这两个都是你自己构建的工具包,尽管有很多已经准备好运行web应用程序来服务于许多不同的用例。

在几乎所有的情况下,OGC Web服务是这些应用程序和应用程序之间数据交换的基础,因此,如果您还没有这样做,那么如果您打算构建一个SDI,那么熟悉各种OGC标准是值得的。FOSSGIS开发人员倾向于避免使用专有格式和协议,因为它们难以互操作——SDI应该尽可能方便不同组件之间的数据交换,同时也使向外部世界开放服务变得容易。开放标准(如OGC发布的那些标准)在促进这一点上走了很长的路。

所以,考虑到上面的旋风之旅,你可能会想“还缺少什么”?在提供的工具和应用程序矩阵中仍然有漏洞OSGeo(上述大多数应用的伞形项目)。当你开始进入垂直市场时,这些漏洞是最明显的。越是专业化的领域(如采矿、土木工程、自然资源管理),你就越不可能将模式、应用程序和数据整合到你的SDI中。也就是说,在放弃使用基于FOSSGIS的堆栈的想法之前,做一些研究总是值得的——您很可能会找到非常适合您的需求的东西。在垂直市场不能很好地适应的情况下,许多用户使用众多的FOSSGIS工具来“构建他们自己的”应用程序,并且在一个特定的领域中看到许多组织联合起来资助开源工具的开发以支持他们的需求是很常见的。

如果你有兴趣了解更多可用的选项,参加年度FOSSGIS用户会议是值得的——今年的会议将于8月底在达累斯萨拉姆举行(http://2018.foss4g.org),或浏览网页上的项目http://osgeo.org

本文发表在2018年6月GIS Professional杂志上

关于作者

Tim Sutton是Kartoza Pty Ltd的QGIS项目主席和总监。本文代表他的个人观点和意见,而不是他的雇主(Kartoza Pty Ltd)或QGIS项目(http://qgis.org).

让你的收件箱更有趣。添加一些地理。

了解测绘行业的最新动态、发展和技术进步。

免费注册

紧跟地理空间产业的发展

我们鼓励你订阅我们的每周通讯。订阅者还可以收到我们双月刊的电子版。

最新文章

Baidu