GIS数据的四个分层:探索地图数据的奥秘
开篇:大家好,欢迎来到我的个人博客!在这个现代科技飞速发展的时代,我们与地图的互动越来越频繁。而地图背后隐藏着一个神秘的世界——GIS数据的四个分层。地图层让我们直观地了解地理空间信息,数据层提供基础地理数据支持,要素层描述了具体地理要素,而几何属性层则定义了地理要素的形状。这四个层级相辅相成,构建了我们所见的各种地图类型。接下来,我将深入探索每个分层的奥秘,并分享一些有趣的案例和应用。让我们一起揭开地图背后的秘密,探索GIS数据的无限可能吧!
1.概念理解
要深入了解GIS数据,我们首先需要了解它的四个分层:
地图层、数据层、要素层和几何属性层。见下图:
四层模型
如何理解:父层均为子层的容器,一层包含一层,类似于大鱼吃小鱼:
举例
术语:
地理数据 = 空间数据 + 非空间数据
空间数据:即几何数据,描述坐标、形状的数据;也叫空间信息。例如:形状、坐标
非空间数据:即属性数据,描述与空间位置无关的一类数据。这类数据的特点是,如果脱离了地理位置也有它本身自己的含义
下面从GIS数据的两大类型(矢量、栅格)来详细讲解。
2.矢量数据的分层
2.1几何属性层
这是矢量数据的最底层,有两个类别:几何层或者属性层。信息可以分化成两个种属:几何的,属性的。
- 我们说表征位置信息的坐标数据(或者多个坐标构成的线、面),叫几何数据。
- 除了几何数据,都叫属性数据。
所以 地理数据=几何数据+属性数据
下面以一个geojson数据为例:
几何层:
主要由两类构成,type(类型)和coordinates(坐标)
type有以下类型:点(Point)、线(Line)、多边形(Polygon)、多点(MultiPoint)、多线(MultiLineString)、多面(MultiPolygon)、集合(GeometryCollection)。这些几何类型可以用于表示和描述地理要素的空间形状和位置。通过将这些不同类型的几何对象结合到要素(Features)中,可以构建丰富的地理数据集,并进行各种地理分析和处理。
coordinates即一个个由经纬度组成的数组,在GIS中用于表示地理要素在地球表面上的位置。
属性层:
"properties"翻译过来就是属性的意思(别的数据格式可能叫“attributes”)。上图可以看出,properties是一个对象,有key和value,前面key为属性名,后面的value为属性值。在GIS软件属性表中即为如下结果:
2.2要素层
要素层很简单。 先下定义:一个要素表示一个地理实体,一个要素有其自己的几何数据和属性数据。
不难看到,properties和geometry键都是"features"这个数组的某个元素下的子键,这里的某个元素,就是要素。 也即,{"type": “Feature”, ...}就是一个"feature",一个要素。由于有了几何和属性的分割,一个要素当然可以有n个属性,一个要素的几何也可以是n个点/线/面构成的复杂几何图形。
2.3数据层
n个具有共同类型和数量属性的"feature"(即每一个feature的"properties"的子键名称一致,类型一致),加上一些元数据(坐标系信息,四至等,每种数据格式不太一样),构成一个矢量数据。
一个个features要素、name、crs坐标信息所组成的FeatureCollection(要素集合)可以存在一个文件(或者容器)里,我们把这个容器所在的级别,叫做“数据层”。
例如一个json文件,一份shp文件,即是一个“数据层”的实现。
注意:数据层不等同于图层,把一个矢量数据(geojson/shp/xml等)放到GIS客户端软件中,一定能看到它的样子,软件会给我们画出来,它这个时候,叫做“图层”。因为数据和图层分担着各自不同的任务,图层负责渲染、显示数据,数据被图层引用。一个数据是可以被多个图层引用的。
2.4地图层
地图层用于表示和管理地理数据的可视化呈现。在地图中,地理数据被组织成不同的图层,每个图层对应一份数据集,并且可以根据需要进行排列顺序、符号化和设计。
具体来说,地图层包括以下几个要素:
- 数据集(Data Set):每个图层引用一份地理数据集,比如矢量数据、栅格数据或栅格切片数据。这些数据集可能包含各种地理要素,如点、线、面等,并且可以包含相关属性信息。
- 图层类型(Layer Type):根据数据集的类型和内容,图层可以分为不同的类型,如矢量图层、栅格图层、图像图层等。每种类型的图层都有不同的属性和功能,以适应不同的地理数据展示和分析需求。
- 排列顺序(Layer Ordering):地图中的图层可以按照需要进行排列顺序,决定了它们在地图上的叠放次序。通过调整图层的顺序,可以控制不同图层之间的覆盖关系,确保地图显示的准确性和清晰性。
- 符号化(Symbolization):每个图层可以使用不同的符号和样式来表示地理要素的特征和属性。符号化可以包括颜色、线型、填充样式、大小等,用于突出显示地理数据的不同方面。
通过组织地理数据为不同的图层,并进行排列顺序、符号化和设计,地图层能够有效展示地理信息,支持地理数据分析和交互操作。它为用户提供了一种直观的方式来浏览、查询和理解地理空间关系,从而促进更好的地理决策和规划。
3.栅格数据的分层
3.1位置/属性
在栅格中,它由一个规则的网格组成,每个网格单元都具有位置和属性信息。几何图形所代表的空间数据被像元的中心坐标值代替了,该像元的像元值即属性值。这里的中心坐标值即矢量的coordinates,像元值即properties。
位置(Position):栅格数据的位置是通过行号和列号来表示的。栅格网格被分为若干个等大小的单元,每个单元都有唯一的行号和列号来标识其位置。例如,一个栅格数据可以是一个n行m列的矩阵,每个单元格都有一个对应的行号和列号。
属性(Attribute):栅格数据的属性是指在每个栅格单元中所包含的特定值或属性信息。这些属性可以表示各种地理现象,如高程、温度、土地类型等。每个栅格单元都对应一个属性值,用于描述该位置上的特征。
多波段则能实现“同一个像元坐标”“n个像元值”,并且每个像元值独立,不受整数或者浮点数影响。
3.2像元层
像元(Pixel)是栅格数据中的基本单位,它具有像元分辨率、像元中心坐标和像元值等主要数据。
- 像元分辨率(Pixel Resolution):像元分辨率表示栅格数据中每个像元代表的地理空间范围大小。分辨率决定了栅格数据的精度和表达能力。较高的像元分辨率意味着每个像元代表的地理区域更小,数据更详细。通常以长度单位来表示,如米/像素、千米/像素等。
- 像元中心坐标(Pixel Center Coordinate):像元中心坐标表示每个像元在地理坐标系统中的位置。通常使用经纬度或投影坐标来标识像元的位置。像元中心坐标通过一对坐标值(经度、纬度或X、Y坐标)来表示每个像元在地球表面的具体位置。
- 像元值(Pixel Value):像元值是栅格数据中每个像元所代表的属性值或特征值。像元值可以表示各种地理现象,如高程、温度、植被类型等。不同类型的栅格数据具有不同的像元值定义和解释方式,例如,在DEM栅格数据中,像元值表示对应位置的海拔高度。
像元层并不像矢量中的要素层表意那么直接,因为单像元表达的地理实体不如一个要素强。但是,多个像元是可以做到一个要素的表达效果的。 比如,在DEM栅格数据中,一个像元可以概括表达这个像元面积这么大的地方的海拔高度。多个连片的像元可以构成一块地区的地形。
但是,和要素层的核心要义是一样的,像元层和要素层都能表达地理实体,把像元的三大主要数据孤立讨论,是不能表达地理实体的。
3.3数据层
数据层和矢量数据的数据层类似,为n个呈矩阵排列的像元构成的图像。 栅格数据层由一层或多层栅格数据叠加而成。这些栅格数据可以代表不同的地理现象或属性,如高程、温度、植被指数等。每个栅格数据集都具有统一的像元分辨率和像元中心坐标,在空间上保持一致性。
3.4地图层
在栅格数据中,每个地图层由一个或多个栅格数据集组成。每个栅格数据集都代表了一种特定的地理现象或属性。例如,DEM(Digital Elevation Model)栅格数据集可以用于表示地形高度,影像栅格数据集可以用于表示地物的光学特征。
地图层的符号化是为了将栅格数据以图形的形式展示出来,使其具有可视化的效果。符号化的方式包括颜色填充、颜色渐变、等级划分等,用来反映栅格数据的属性值和特征。符号化可以帮助我们观察和分析地理现象,从而更好地理解地理空间的分布和关系。
4.以Openlayers代码实例来介绍
在openlayers中,地图层对应的就是Map,用于创建地图、管理地图图层,并提供用户交互等功能。
Map 对象通常由多个数据层叠加而成,每个数据层都可以渲染不同的地理数据。OpenLayers 中支持多种类型的数据层,包括矢量图层、栅格图层、动态图层和 WMS 图层等。用户可以根据需要选择不同类型的数据层进行叠加。
在 OpenLayers 中,数据层(Data Layer)对应的是 ol.layer。ol.layer 是 OpenLayers 中用于表示地图上的图层的类。它可以用于显示不同类型的地图数据,包括矢量数据、栅格数据、瓦片数据等。
ol.layer 类可以通过 ol.source 对象来指定地图数据的来源。ol.source 是 OpenLayers 中用于表示地图数据源的类。它定义了获取地图数据的方式,可以是从静态数据文件加载,也可以是从 Web 服务获取动态数据。
通常情况下,我们需要创建一个 ol.source 对象,并将其作为参数传递给 ol.layer 的构造函数,以指定该图层的数据源。例如,如果我们要创建一个矢量图层,可以使用 ol.source.Vector 类来定义数据源,然后将其传递给 ol.layer.Vector 类的构造函数。
要素层对应ol.Feature,表示一个特定的地理要素,如点、线、面等,它包含了几何要素以及它们的属性信息。我们可以创建一个或多个 ol.Feature 对象,并将其添加到 ol.layer.Vector 实例中,从而创建一个矢量要素图层。
看打印出来的结果:
feaeture类是包含geometry的。要素层通过将几何要素和属性数据进行关联,使得我们能够更加灵活和方便地进行查询和分析。
几何层代表着地理要素的几何形状。正是凭借几何层,地图上的点、线、面才能够被精确地表示和渲染出来。
这四个分层在GIS中相互交织、相互配合,共同构建了一个完整的地理信息系统。地图层为我们提供了可视化的界面,数据层提供了丰富的地理数据,要素层帮助我们组织和管理地理要素,而几何层则负责表示地理要素的形态。只有深入理解这四个分层的概念,并灵活运用它们,我们才能更好地利用GIS技术进行地理分析、规划和决策。
希望通过这篇文章,您对GIS数据的地图层、数据层、要素层和几何层有了更深入的理解。无论是从事地理信息相关工作,还是对地理信息感兴趣,了解这些概念都将为您进一步探索地理信息世界提供有力支持。让我们一同走进GIS,发现地理空间的奥秘!