第五章 空间查询与空间分析
本章概述:GIS不仅仅是一个地理数据的存贮系统,它还提供了丰富的数据查询功能。更重要的,GIS有自己的复杂而科学的空间分析模型和工具,使得我们可以通过GIS的空间分析功能,获取隐藏在GIS数据之中的信息和关系。地理信息系统集成了多学科的最新技术,如关系数据库管理、高效图形算法、插值、区划和网络分析,为空间分析提供了强大的工具,使得过去复杂困难的高级空间分析任务变得简单易行。本章将介绍GIS数据查询的基本知识和常用的GIS空间分析模型及其算法。
§5.1 空间数据的查询
本节将介绍空间数据查询的含义及图形查询、属性查询、混合查询、模糊查询等几种主要的查询方式,以及如何根据需求来控制查询结果的显示方式。
§5.2 空间数据的统计分析
讲述空间数据统计分析中基本统计量的计算和常用统计数据的分类分级算法。
§5.3 数字高程模型分析
讲述基于数字高程模型的信息提取、坡度分析、坡面分析、剖面分析和通视性分析、并介绍具体的算法。
§5.4 空间数据的叠置分析
空间叠置分析是GIS提取空间隐含信息的重要手段之一,本课介绍基于栅格和基于矢量数据结构的叠置分析方法,包括矢量数据的点、线、面两两叠置和栅格数据的单层和多层叠置分析。
§5.5 空间数据的缓冲区分析
缓冲区分析是解决空间实体邻接度问题的有效方法,本课介绍基于栅格和基于矢量数据结构的缓冲区生成算法。
§5.6 泰森多边形分析
泰森多边形对于GIS的空间划分、插值等具有重要意义,本节介绍泰森多边形、Delaulay三角形的定义、特性及生成算法。
§5.7 空间数据的网络分析
网络是以图论为工具模拟现实信息流通的通道,并解决路径优化、资源配给等运筹问题,网络分析具有重要的实际意义。本课讲述网络图论基础、路径分析及网络定位及分配模型。
§5.8 空间距离的量算
空间距离量算是许多空间分析的基础,在此介绍点、线、面实体之间的距离量算
§5.9 空间分析模型
讲述空间分析模型的概念、GIS常用的空间统计分析模型、对应的详细算法及模型库。
您可能还想看前贴【GIS原理学习(一)】【GIS原理学习(二)】【GIS原理学习(三)】【GIS原理学习(四)】【GIS原理学习(五)】【GIS原理学习(六)】【GIS原理学习(七)】【GIS原理学习(八)】【GIS原理学习(九)】【GIS原理学习(十)】【GIS原理学习(十一)】【GIS原理学习(十二)】【GIS原理学习(十三)】【GIS原理学习(十四)】【GIS原理学习(十五)】【GIS原理学习(十六)】【GIS原理学习(十七)】【GIS原理学习(十八)】【GIS原理学习(十九)】【GIS原理学习(二十)】【GIS原理学习(二十一)】【GIS原理学习(二十二)】【GIS原理学习(二十三)】【GIS原理学习(二十四)】【GIS原理学习(二十五)】【GIS原理学习(二十六)】【GIS原理学习(二十七)】【GIS原理学习(二十八)】【GIS原理学习(二十九)】【GIS原理学习(三十)】【GIS原理学习(三十一)】【GIS原理学习(三十二)】
§5.8 空间距离量算
距离量算是各种GIS空间分析的定量基础,根据地理实体类型的不同,空间距离量算可分为以下几类:
一、点/点距离计算
(一)、平面距离与角度:描述二维空间中两点的距离和矢量夹角。(公式)
设有平面上的两点P1(x1,y1)与P2(x2,y2),则两点之间的平面距离为:
|P1P2|=
矢量P2到P1之间的夹角为:

(二)、空间直线距离:描述三维空间中两个点的直线距离。(公式)
设空间两点为P1(x1,y1,z1)与P2(x2,y2,z2),则两点之间的空间直线距离为:
|P1P2|= 
(三)、球面距离:描述地球表面上两点间的球面距离。(公式)
在航空与航海等情况中,作业范围较大,大圆线则是球面上两点之间的最短距离。给定球面两点A(ψ1, λ1)和B(ψ2,λ2),如图5-8-1所示,圆弧长为:

图5-8-1 球面距离
Cos(S)=Sinψ1*Sinψ2+Cosψ1*Cosψ2*Cos(λ2-λ1)
S=ArcCos(Sinψ1*Sinψ2+Cosψ1*Cosψ2* Cos(λ2-λ1))
两点之间的球面距离为:
L=R*S*π/1800
二、点/线距离计算
(一)、点/线段最短距离:描述点到线段的最短距离。(公式)
如图5-8-2所示,设线段P1P2位于横坐标轴,端点为P1和P2。要计算点p到线段P1P2的距离。
通过两端点P1和P2,与线段P1P2垂直的直线将平面区域划分为A1、A2、A3。则点p到线段l的最短距离的计算方法为:
(二)、点/线段垂直距离:描述点到线段所在直线的距离。(公式)
设有A、B两点组成的直线l为ax+by+c=0,则点P(X,Y)到直线l的距离计算式为:
distance(P,l)=|aX+bY+c|/ 
(三)、点/线段平均距离:描述点到线段两个端点距离的平均值。(公式)
点/线段平均距离d(p,l)等于点p与直线段两个端点pa和pb的距离值的平均值。即:
d(p,l)=(d(p,pa)+d(p,pb))/2
(四)、点/线段最大距离:描述点到线段两个端点距离中的的最大值。(公式)
点/线段最大距离dmax(p,l)等于点p与直线段两个端点pa和pb的距离中的最大者。即:
dmax(p,l)=max(d(p,pa),d(p,pb))
三、点/面距离计算
(一)、点/面最短距离:描述点到面的最短距离(公式)
点p到面An的最短距离肯定在面的边界上,因此点面最短距离为:
dmin(p,An)=min{dmin(p,li),i=1,……,n}
(二)、点/面最大距离:描述点到面的最大距离(公式)
点/面最大距离为:
dmax(p,An)=max{dmax(p,li),i=1,……,n}
(三)、点/面平均距离计算:描述点到面的平均距离(公式)
点到面的平均距离计算比较复杂,Atsuyuki Okabe,Harvey H.Miller(1996)将多边形划分为三角形,按照下式计算点到面的平均距离。
其中,|Ti|表示三角形的面积。davg(p,Ti)表示点p到Ti的平均距离。
该方法在时间复杂度上非常大,首先必须将多边形剖分为三角形,按照积分的方法计算点到每个三角形的平均距离,然后才能得出点到面的平均距离。为了高效求取点到平面的平均距离,必须在面目标内寻找一点,转换为点/点距离的计算。传统方法将点/面距离近似表示为点到质心的距离。但对于凹多边形,可在多边形内求取一内点,将点到面的距离近似表示为点到该内点的距离。
四、线/线距离计算
(一)、线/线最短、最大距离:描述两条线之间的最短距离和最大距离(公式)
相交线之间的最短距离为零,否则,设有两线段l1和l2,端点分别为(p1s,p1e)与(p2s,p2e)。则线/线之间的最短距离和最大距离为(Atsuyuki Okabe,Harvey H.Miller,1996):
dmin(l1,l2)=min{dmin(p1s,l2),dmin(p1e,l2),dmin(p2s,l1),dmin(p2e,l1)}
dmax(l1,l2)=max{dmax(p1s,l2),dmax(p1e,l2),dmax(p2s,l1),dmax(p2e,l1)}
(二)、线/线平均距离计算描述两条线之间的平均距离(公式)
假设线段l1位于X轴,{(x,0)|a≤x≤b}。l2位于直线Y=kX上,{(X,Y)|c≤X≤d,kc≤Y≤kd}。对于l2上的任意一点P(X,Y),P到l1的平均距离
,其中
在l2上,每间隔dX取点,则取样点总数n=(d-c)/dX。从而线段l2到l1的平均距离为:
davg(l2,l1)=(davg(p1,l1)+ davg(p2,l1)+……+ davg(pn,l1))/n