8.3. 数据检索及表格分析

数据检索及表格分析可能只是单纯地针对属性数据(“全部区域的人口总和是多少?”),也可能是单纯依据空间拓扑关系(“河北省与那些省份相邻?”),但更多、更有意义的情况是将空间数据与属性联合起来实施检索分析(“某图斑周边有哪些地类为水浇地的图斑?”),换言之,检索条件可以是属性、空间拓扑限制或者是前二者的结合。检索分析的结果可能只是向用户提供一个统计结果;或者是将结果作为一个新的属性域添加到属性数据库中,还可能生成一个新的数据层。

8.3.1. 属性统计分析

单纯对属性数据库的统计分析包括单属性统计、单属性函数变换、双属性分类统计、双属性数学运算等等。

单属性统计是对属性数据库中的某个字段,统计总和、最大值、最小值及平均值,给出字段值落在各个区间内或等于各个离散值的记录数,并据此绘制各类统计图(折线、直方、立体直方、饼图、立体饼图等)。这一功能在GIS中的使用是相当频繁的。如城市管网系统中,用户常常提出诸如“管网总长是多少?”、“管径大于300的管段有多少?”、“各类材质的管段分别有多少?”等问题,这些都可以通过单属性统计来获得答案。

单属性函数变换是对选定的初等函数,将属性字段作为函数自变量,将字段值依次带入初等函数,得到变换结果。系统常常是让用户在属性数据库中选择一个已有字段或在属性数据库中扩充一个字段来存放运算结果。用来作计算的函数可以有很多,如幂函数、指数函数、对数函数、三角函数、反三角函数等等。很多函数对变量域有限制(如对数函数中真值要大于零),系统应允许指定缺省值,当变量非法时将结果设置为此缺省值。

双属性分类统计除了要选择分类字段,并划分出各类范围外,还需要指定统计字段和统计方式。统计方式分计数方式和累计方式,其中计数方式是累计各类图元数,而累计方式则是将每一类的累计字段值相加。

以土地详查为例,假定现有某一数据层是一个县的全部图斑(区数据),图斑属性中有权属号(记录图斑所属县、乡、村)、面积、地类等字段,现要统计各村图斑总面积,就可以将图斑属性中的“权属号”作为分类字段,“面积”作为统计字段,统计方式是累计方式;如果要统计各村每类用地的数目,则要将“地类”作为统计字段,采用计数方式来统计。

8.3.2. 布尔逻辑查询

使用布尔逻辑的规则对属性以及空间特性进行运算操作来检索数据使GIS在检索功能方面具有了极大的灵活性,因为它允许用户按属性数据、空间特性形成任意的组合条件来查询数据。布尔逻辑的运算有和(AND)、或(OR)、异或(XOR)、非(NOT)等。

例如,在地下管网信息系统中假设集合A是埋深小于三米的煤气管道,集合B是长度大于300米的煤气管道。那么,逻辑运算A AND B 就检索出埋深小于3米且长度大于300米的所有煤气管;A OR B 则检索出埋深小于3米及长度大于300米的所有煤气管;A XOR B检索出所有埋深小于3米及长度大于300米的所有煤气管,但不包括两条件同时满足的那些:A AND NOT B 则检索出埋深小于3米但长度小于或等于300米的所有煤气管。

8.3.3. 空间数据库查询语言

不同系统使用不同的查询方式,这就导致应用上的很多麻烦,因此人们一直在寻找适用于GIS的通用查询语言,并致力于建立相应标准。

GIS中的查询首先是数据库的查询, SQL(Structured Query Language )作为关系型数据库的标准查询语言,因为它的非过程化描述和简洁性而备受青睐,为许多GIS所采用。

SQL语句的基本结构如下:

SELECT <属性名> FROM <属性表> WHERE <条件>

空间数据库是一种特殊的数据库,它与普通数据库的最大不同在于包含空间概念,而标准SQL语言不支持空间概念,目前多数GIS系统对此的解决方案是在SQL的基础上扩展空间概念描述、空间函数或空间操作,如增加WITHIN算子(SELECT <目标> WITHIN <区域>),但目前的效果尚不太理想。

也有一些实验性的GIS系统使用自然语言(受限的)来作为查询接口,虽然存在很大困难,这种方式仍是很有吸引力和应用前景的。

8.3.4. 重分类,边界消除与合并

重分类、边界消除与合并(Reclassify, dissolve and merge)常常用在区域(多边形)数据的操作中。它们用来根据属性聚合区域。下图是一个例子。我们希望从一个数据层中得到土壤类型分布图,原始数据层中的多边形是根据更细的类别来划分的(每一个多边形中土壤类型和植被类型完全一致,见图8-11(a))。

image1

(a)                              (b)                           (c)

图8-11      重分类、边界消除与合并

(用大写字母表示土壤类型的分类,小写字母表示植被类型的分类)

为了达到目的,我们实施以下步骤:

   1. 按照土壤类型这个属性项对原始数据层重分类。见图8-11(b)。

   2.如果两相邻多边形具有相同土壤类型,则删除它们间的分界弧段,这就是边界消除。

   3. 重建拓扑,将没有分界弧段的相邻多边形合成一个。见图8-11(c)。