初次接触GIS的朋友,常常弄不清数据源(Data Source)和图层(Layer)的区别与联系,导致在数据处理和分发时出现一些问题,例如:辛辛苦苦做出了一幅漂亮的地图,为什么再次打开数据时,地图又变回丑陋的样子?怎么才能把工作成果分发给同事,让他打开数据时效果跟我本机一模一样?
回答这些问题,我们需要从数据源的基本概念说起。
本文从数据源和图层的区别与联系、打开数据源管理器、数据源管理器界面介绍和QGIS支持打开的数据源类型等方面,整体上初步介绍数据源相关知识。后续将陆续推出文章,详细介绍不同数据源的创建、打开、管理等内容。
01
数据源与图层
数据源(Data Source)顾名思义指的是数据的来源,是数据的物理存储方式,具体表现为硬盘上的一个个数据文件或者数据库中一张张表。QGIS中的数据源主要指的是各种不同类型地理空间数据的文件、数据库或网络数据服务。同时,QGIS也兼具处理非空间数据即纯属性数据的能力。
图层(Layer)不保存数据本身,通常用于定义空间数据在地图窗口中的显示方式,是地理空间数据的可视化表达。图层通过与具体的数据源关联,采用符号和标签等制图元素将数据绘制在地图中。
多个图层叠加得到内容丰富的地图。
图片来源:https://blog.csdn.net/dsac1/article/details/78027574
通俗来说,数据源是存储在计算机硬盘上的一个个文件,图层是数据的表达方式,是QGIS为了图形漂亮而给数据设置地图符号、颜色、线型、填充等。打开数据文件,设置美观的样式将数据显示在地图窗口中,就叫做地图。
在QGIS中,数据源一般显示在【浏览】面板中,【图层】面板列出了当前地图窗口所绘制的图层。
同一份数据可以用不同的样式绘制在地图窗口中。在【图层】面板中,右键点击图层,点击【创建图层副本】,即可为同一数据创建不同图层副本。
当图层复制完成时,地图窗口的上方将提示该副本使用了同一数据源:
分别设置两个图层的样式,可以看到到相同数据源的两个图层叠加的效果。这是一个常用的作图技巧,通常用来突出显示研究区域边界。
02
打开数据源
在QGIS中,打开数据源有以下方式:
点击菜单【图层】->【添加图层】,根据数据源类型选择对应的子菜单:
根据数据源类型,点击【图层管理】工具栏上对应的按钮:
点击【数据源管理】工具栏上的【打开数据源管理器】按钮,然后切换到对应的标签页:
实际上,以上方式均打开了同一个界面:【数据源管理器】对话框。
03
数据源管理器界面介绍
【数据源管理器】是QGIS默认的加载数据工具,它以风格一致的方式提供了打开矢量数据、栅格数据、网孔数据、数据库数据和网络数据的操作界面。
【数据源管理器】界面分为两部分:左边是数据源类型标签页,右边是对应数据源类型的参数设置区域。
点击左侧的数据源类型,即可切换到对应的标签页,右边区域显示不同的设置选项,完成设置后点击下方的【添加】按钮即可将对应的数据添加到【图层】面板,具有几何图形的数据将同时在地图窗口显示空间图形。
浏览标签页
【数据源管理器】左侧最上方是【浏览】标签页。实际上该标签页是将主界面的【浏览】面板内嵌到【数据源管理器】中,两者的功能与操作方式完全相同:点击展开各个节点,可以查看图层文件、工程文件、Python脚本、模型文件等QGIS资源,拖拽或者双击将打开文件,如果是空间数据的文件,则显示在地图窗口中。
(关于【浏览】面板的操作,请参考:连载| 7 浏览面板(Browser Panel)实用技巧)
文件型数据源
切换到矢量和栅格标签页,指定数据存储的路径,即可打开文件型矢量数据和栅格数据。
作为开源软件生态的一部分,QGIS对数据文件的支持是构建在OGR/GDAL开源库的基础上,因此对数据的读写能力也依赖于这些开源库所提供的数据引擎。
- 矢量数据:支持 GeoPackage, GML, GeoJSON, GPX, KML, 分隔文本、ESRI格式(Shapefile,OpenFileGDB、FileGDB等)、MapInfo格式(TAB、MIF)、MicroStation 格式、AutoCAD DWG/DXF、GRASS等。(打开网页:https://gdal.org/drivers/vector/index.html 了解更多的矢量数据格式支持情况。)
栅格数据:GeoTIFF, JPEG, ASCII Gridded XYZ, MBTiles, R or Idrisi rasters, GDAL Virtual, SRTM, Sentinel Data, ERDAS IMAGINE, ArcInfo Binary Grid, ArcInfo ASCII Grid等。(打开网址:https://gdal.org/drivers/raster/index.html 可查看完整栅格数据支持列表。
网孔(mesh layer)数据源
网孔数据是一种非结构化的网格数据,由顶点(vertices)、边(edges)和表面(faces)组成,常用于模拟分析结果,如大气运动、流水淹没、污染物扩散等。
在【数据源管理器】中,切换到 网孔标签页,可以看到打开网孔数据的界面。QGIS通过MDAL提供网孔数据的支持,MDAL是一个开源库,github地址为:https://github.com/lutraconsulting/MDAL。
网孔数据支持如下格式:
NetCDF:常用格式,多用于科学研究领域。
GRIB:一般用在气象领域。
XMDF:如TUFLOW 模型的输出结果模拟。
DAT:多种水流动力学模型包的数据输出格式,如:BASEMENT, HYDRO_AS-2D, TUFLOW。
3Di:3Di模型包所使用的数据格式。
分隔文本文件
文本文件包括txt、csv、dat、wkt等文件格式,使用分隔文本文件可以将带有空间位置信息的文本文件导入到QGIS,并还原其空间图形,显示在地图窗口中。
数据库
由于文件型数据源在存储能力、性能、安全性、数据共享方面存在一些列问题,在大型项目中,GIS数据一般用数据库来存储和管理。
QGIS支持PostgreSQL/PostGIS, SQLite/SpatiaLite, Oracle, DB2、MSSQL Spatial, MySQL等数据库。
网络数据源
网络地图和数据服务通常可以提供优质的底图和数据来源,叠加自己的业务数据快速得到分析结果。
QGIS支持打开的网络地图和数据服务包括:WM(T)S, WFS, WCS, CSW, XYZ tiles, ArcGIS services等。
QGIS格式数据源
QGIS自定义的数据格式包括:QML文件、虚拟数据源和内存数据源等。
04
小结
QGIS丰富的数据支持能力,可以满足一般的工作和学习需要,对于一些特殊的数据格式和数据存储需求,有能力的朋友可以通过编写插件或者修改底层代码实现,这也是开源软件的优点之一。
在使用QGIS管理数据的过程中,需要特别注意因数据源类型不同导致数据的组织方式不同问题,例如,MapInfo的TAB格式和AutoCAD的DXF格式允许在一个图层存储点、线、面等几何图形,而QGIS中一个图层只存储一种几何图形。这种差异导致数据导入以后存储发生变化,可能需要重新梳理图层内容,或者评估QGIS是否是解决当前问题的最佳选择。
版权声明
本文欢迎转载,转载时请注明出处。