APP下载

基于Matlab的空间分析

2012-11-27胡圣武

地理空间信息 2012年2期
关键词:插值法等高线插值

胡圣武

(河南理工大学测绘学院,河南焦作454000)

基于Matlab的空间分析

胡圣武

(河南理工大学测绘学院,河南焦作454000)

空间分析被认为是地理信息系统区别于一般信息系统、CAD或电子地图系统的主要功能特征,也是评价一个地理信息系统的主要指标。从介绍Matlab强大的数值计算功能和数据可视化功能着手,分析了Matlab在空间分析方面的技术应用,重点研究了Matlab在空间数据分析中插值法的应用以及空间数据的三维表达。

Matlab;空间分析;插值分析;三维表达

空间分析是GIS的核心和重要功能之一,GIS具有强大的空间分析功能,是区别计算机制图系统和数据库管理系统的显著特征之一[1]。空间分析使 GIS不仅体现在地图制图上,用户还可以通过与系统交互而将地理数据经过分析转换为对自己有用的信息。同时,利用空间分析技术,对原始数据模型进行观察和实验,用户可以获得新的经验和知识,并以此为空间行为的决策依据。空间分析对空间信息的提取和传输,已使GIS成为区别于一般信息系统的主要功能特征,也是评价GIS功能强弱的重要指标之一。可为用户提供灵活解决各类专门问题的有效工具。随着空间分析技术的不断发展,GIS也将从一般的空间事务处理向空间决策支持方向迈进[2]。

1 Matlab理论

Matlab是由美国Mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,代表了当今国际科学计算软件的先进水平。

Matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用Matlab来解算问题要比用C、FORTRAN等语言完成相同的事情简捷得多,并且Matlab也吸收了像Maple等软件的优点,使Matlab成为一个强大的数学软件。

1.1 Matlab的特点

Matlab的特点比较多,其主要特点为[3]:①友好的工作平台和编程环境;②简单易用的程序语言;③强大的科学计算机数据处理能力;④出色的图形处理功能;⑤应用广泛的模块集合工具箱;⑥实用的程序接口和发布平台;⑦应用软件开发(包括用户界面)。

1.2 Matlab用于空间分析的优点

1)强大的空间模型成图能力。Matlab能够将计算的结果以二维、三维乃至四维的图形表现出来,并且可以通过对图形线性、立面、色彩、渲染、光线、视角等特性的处理,把计算结果表现得淋漓尽致。

2)强大的图像处理能力。图像处理工具包是由一系列支持图像处理操作的函数组成的,所支持的图像处理操作有:几何操作、区域操作和块操作,线性滤波和滤波器设计,变换(DCT变换),图像分析和增强,二值图像操作等。

Matlab不但提供非常方便的绘图功能和强大的图形图像处理能力,而且提供了增强的交互处理能力。颜色映射、线形、标记、颜色、图例、坐标轴、多窗口制图根据用户要求都可以定制;三维图形可以缩放、旋转和改变视角[4]。

3)丰富的库函数。工具箱“toolbox”是Matlab扩展自身功能的开放式的开发模式。map和image是Matlab提供的2个与GIS密切相关的工具箱。

2 基于Matlab的空间插值分析

本文重点研究了二维插值空间分析方法,在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况,下面给出了 4种插值方法,在分析成图效果后,可以更好地使用这几种插值方法。

2.1 数据准备

要在某山区方圆大约27 000 m2的范围内修一条公路,从山下经过一个居民区,然后通向一个矿区。横向纵向区域分别每隔400 m测量一次,得到一些点的高程,需要用Matlab做出地貌图和等高线,进行空间分析,表1为空间数据表[5]。

表1 空间数据表

2.2 Matlab的实现

Matlab实现首先需要规定数据的输入

然后在Matlab中键入:

>>mesh(x,y,z);得到网格图(见图1)

>>surf(x,y,z);得到曲面图(见图2)

图1 网格图

图2 曲面图

等高线在 GIS领域中有着很重要的地位,Matlab强大的数学分析功能使等高线的形成变得简单,contour语句可以很快地形成等高线(如图3所示)。在Matlab中键入:

>>contour(x,y,z); %形成等高线

图3 等高线图

2.3 4种插值方法的演示比较

以上数据演示了空间数据在Matlab的实现,但对于空间插值的演示,可以通过interp2命令绘图比较插值的4种方法在效果上的差异。interp2(x,y,z,xi,yi,method)可以对粗糙的表面插值光滑,Method有4种方法:

1)‘nearest’:最近点插值法,它根据已知两点间的插值点和这两点间位置的远近进行插值。

2)‘linear’:线性插值法,它把相邻的数据点用直线相连,按所生成的直线进行插值。

3)‘spline’:样条插值法,它用已知数据求出样条函数后,按照样条函数进行插值。

4)‘cubic’:立方插值法,它根据已知数据求出立方数据立方函数后,按照立方函数进行插值。

对图2进行插值处理,我们分别按照4种方式进行(结果如图4所示),命令如下:

图4 4种效果图的比较

由图4不难看出,插值后的图像要比插值前图像表面光滑得多,但比较上面4个插值效果图可以发现,立方插值法和样条插值法生成的图形确实要比双线性插值法和最近点插值法图形效果好得多。在应用中,可以根据不同的插值方法的优劣以及对插值结果的要求,选择不同的插值方法。

3 基于Matlab的三维数据表达

Matlab不仅具有强大的数值计算功能,还可以利用二维和三维绘图功能,将运算结果可视化,将杂乱的数据通过图形表示,从中观察出其内在关系,图形命令格式简单,可以使用不同的线性、色彩、数据点标记和标注等来修饰图形。许多GIS都提供专业的三维分析功能,但使用和支持开发功能很弱[6,7]。在Matlab中分析三维数据,不但提供很多现成的函数,而且其灵活运用矩阵运算的方法,可以实现许多其他软件无法实现的功能[7,8]。

3.1 三维图的生成

Matlab提供函数peaks来生成高斯分布的数据。首先生成原始数据,并绘制数据图形,其中用到了函数surf,绘制的图形如图5所示。

“meshc(x,y,z)”生成具有基本等高线的网格图,“meshz(x,y,z)”生成带有基准面的网格图。输入以下命令,可以得到如图6所示的带基本等高线和如图7所示的带基准面的平面网格图。

>>meshc(x,y,z);%绘制带基本等高线的网格图

>>meshz(x,y,z); %绘制带基准平面的网格图

图5 三维高斯分布的原始空间数据图

图6 带基本等高线的网格图

3.2 梯度图的生成

在Matlab中产生梯度箭头的函数是quiver(X,Y, U,V),它输出的参量X,Y是数据点的坐标,U和V是相应数据点处的想x,y偏导数值,quiver最后绘制出的梯度向量箭头就是根据函数gradient求得的偏导数求得的,生成梯度图如图8所示。

图7 带基准平面的网格图

图8 梯度图

键入命令为:

利用Matlab来实现空间模型,不仅使空间模型的成图、转换、空间分析变得可行又简单,而且能更加清晰地表达成果。

[1] 邬伦,刘瑜,张晶,等.地理信息系统:原理、方法和应用[M].北京:科学出版社,2005

[2] 王劲峰,廖一兰,刘鑫.空间数据分析教程[M].北京:科学出版社,2010

[3] DuaneHanselman,Bruce Littlefield著,朱仁峰译.精通Matlab7 [M].北京:清华大学出版社,2006

[4] 曾文华,钭春红.Matlab在地理信息系统中的应用[J].计算机应用,2002,22(5):91-93

[5] 崔利,武文波.测绘领域中Matlab的应用[J].辽宁工程技术大学学报,2005,24(Sl):47-49

[6] 杨驰.GIS空间分析建模构想[J].测绘通报,2006,11:22-25

[7] 黄光东,管建和,李响,等.基于Matlab平台的插值法技术实现与应用[J].电脑编程技巧与维护,2006,2:30-32

[8] 田雨,卢秀山,独知行,等.GIS空间分析实验中的Matlab应用[J].地理空间信息,2009,7(1):11-13

Research on Spatial Analysis Based on Matlab

by HU Shengwu

Spatial analysis of GIS is seen as different from the General Information System,CAD or electronic map the major features of the system.It is a key indicator of geographical information system evaluation.This paper described the powerful numerical computing matlab functions and data visualization capabilities,analyzed the matlab in GIS and geographic information systems analysis techniques in space applications,focused on the matlab interpolation in the data analysis application,and spatial data 3D expression.

Matlab,spatial analysis,interpolation analysis,3D expression

2011-08-22

项目来源:国家自然科学基金资助项目(40474003)。

P208

B

1672-4623(2012)02-0022-03

胡圣武,博士,副教授,现主要从事GIS基础理论和图像处理技术研究。

猜你喜欢

插值法等高线插值
地形图的阅读
《计算方法》关于插值法的教学方法研讨
《计算方法》关于插值法的教学方法研讨
一种基于Fréchet距离的断裂等高线内插算法
基于Sinc插值与相关谱的纵横波速度比扫描方法
“等高线地形图的判读”专题测试
顾及局部特性的自适应3D矢量场反距离权重插值法
一种改进FFT多谱线插值谐波分析方法
基于四项最低旁瓣Nuttall窗的插值FFT谐波分析
Newton插值法在光伏发电最大功率跟踪中的应用