垂距法与道格拉斯-普克法删除冗余顶点效率的比较
- 格式:doc
- 大小:86.50 KB
- 文档页数:5
地理信息系统教程考试复习题1.与其它信息系统相比,地理信息系统的哪些功能是比较独特的?空间分析和统计功能是GIS的一个独立研究领域,它的主要特点是帮助确定地理要素之间新的空间关系,包括拓扑叠加,缓冲区建立,数字地形分析,空间几何分析。
8.GIS近代发展有什么特点?(1)面向对象技术与GIS结合。
(4)Internet与GIS的结合。
(2)真三维GIS与时空GIS。
(5)GIS与专家系统/神经网络的结合。
(3)GIS应用模型的发展。
(6)GIS与虚拟现实技术的结合。
2.GIS的研究对象是什么? 地理实体有什么特点?GIS的研究对象是地理实体,即指自然界现象和社会经济事件中不能再分割的单元。
属性特征:用以描述事物或现象的特性,即用来说的“是什么”。
空间特征:用以描述事物或现象的地理位置及空间相互关系,又称几何特征和拓扑特性。
时间特征:用以描述事物或现象随时间的变化。
3.地理实体数据的特征是什么?请列举出某些类型的空间数据属性数据:描述空间实体的属性特征的数据,也称非几何数据,如类型/等级/名称/状态等;几何数据:描述空间实体的空间特征的数据,也称位置数据,定位数据,即“在哪里”关系数据:描述空间实体的空间关系的数据,如空间实体的邻接、关联、包含等,主要是拓扑关系。
依据空间数据来源的不同分为:地图数据、地形数据、属性数据、元数据、影象数据等;依据表示对象的不同分为:点,线,面、体数据。
4.GIS的数据源有哪些?①地图数据②遥感数据③文本资料④统计资料⑤实测数据⑥多媒体数据⑦已有系统的数据5.请说明分类分级对于属性数据的意义。
分类是将具有共同属性或特征的事物或现象归并在一起,而把不同属性或特征的事物或现象分开的过程。
分级是对事物或现象的数量或特征进行等级的划分,主要包括确定分级数和分级界限。
在属性数据中,有一部分是与几何数据的表示密切有关的,例如,道路的等级、类型等,决定着道路符号的形状、色彩、尺寸等。
1.与其它信息系统相比,地理信息系统的哪些功能是比较独特的 ?空间分析和统计功能是 GIS 的一个独立研究领域,它的主要特点是帮助确定地理要素之间新的空间关系,包括拓扑叠加,缓冲区建立,数字地形分析,空间几何分析。
8.GIS 近代发展有什么特点?(1)面向对象技术与GIS 结合。
(4)Internet 与 GIS 的结合。
(2)真三维GIS 与时空 GIS 。
(5)GIS 与专家系统/神经网络的结合。
(3)GIS 应用模型的发展。
(6)GIS 与虚拟现实技术的结合。
2.GIS 的研究对象是什么? 地理实体有什么特点?GIS 的研究对象是地理实体,即指自然界现象和社会经济事件中不能再分割的单元。
属性特征:用以描述事物或现象的特性,即用来说的“是什么”。
空间特征:用以描述事物或现象的地理位置及空间相互关系,又称几何特征和拓扑特性。
时间特征:用以描述事物或现象随时间的变化。
3.地理实体数据的特征是什么?请列举出某些类型的空间数据属性数据:描述空间实体的属性特征的数据,也称非几何数据,如类型 /等级/ 名称/状态等;几何数据:描述空间实体的空间特征的数据,也称位置数据,定位数据,即“在哪里”关系数据:描述空间实体的空间关系的数据,如空间实体的邻接、关联、包含等,主要是拓扑关系。
依据空间数据来源的不同分为:地图数据、地形数据、属性数据、元数据、影象数据等;依据表示对象的不同分为:点,线,面、体数据。
4.GIS 的数据源有哪些?①地图数据②遥感数据③文本资料④统计资料⑤实测数据⑥多媒体数据⑦已有系统的数据5.请说明分类分级对于属性数据的意义。
分类是将具有共同属性或特征的事物或现象归并在一起,而把不同属性或特征的事物或现象分开的过程。
分级是对事物或现象的数量或特征进行等级的划分,主要包括确定分级数和分级界限。
在属性数据中,有一部分是与几何数据的表示密切有关的,例如,道路的等级、类型等,决定着道路符号的形状、色彩、尺寸等。
第一章地理信息是指有关地理实体的性质、特征和运动状态的表征和一切有用的知识。
基本特征:空间,属性,时序地理数据:各种地理特征和现象间关系的符号化表示,包括空间位置、属性特征、时态特征。
空间数据:以地球表面空间位置为参照的自然、社会、、和人文经济景观数据,可以是图形、图像、文字、表格和数字等。
空间特征是指地理实体的空间位置及其相互关系;属性特征表示地理实体的名称、类型和数量等;时间特征指实体随时间而发生的相关变化。
空间数据特征:空间特征;非结构话特征;空间关系特征;多尺度与多态性;分类编码特征;海量数据特征。
空间查询:空间查询是GIS最基本的功能,包括已知属性查图形,已知图形查属性及多种条件的综合查询。
拓扑叠加:通过将同一地区两个不同图层的特征相叠加,建立新的空间特征,易于进行多条件的查询检索、地图裁剪、地图更新和应用模型分析等。
缓冲区建立:它是研究根据数据库的点、线、面实体,自动建立各种类型要素的缓冲多边形,用以确定不同地理要素的空间接近度或邻近性。
Gis:是在计算机硬、软件系统支持下,对现实世界的研究和变迁的各类空间数据及描述这些空间数据特性的属性进行采集、储存、管理、运算、分析、显示、和描述的技术系统。
组成:硬件,软件,地理数据(空间分析模型,地理空间数据库),人员。
功能:数据采集监测编辑、数据处理、数据存储与组织、空间查询与分析特征:数据的空间定位;空间数据关系处理的复杂性;海量的数据管理能力。
地理信息系统按其内容可以分为三大类:1专题地理信息系统:是具有有限目标和专业特点的地理信息系统;2区域地理信息系统:主要以区域综合研究和全面信息服务为目标;3地理信息系统工具:它是一组具有图形图像数字化、存储管理、查询检索、分析运算和多种输出等地理信息系统基本功能的软件包。
第三章空间数据模型:概念:是关于现实世界中空间实体及其相互间联系的概念。
种类:场模型:用于描述空间中连续分布的现象;要素模型:用于描述各种空间地物;网络模型:可以模拟现实世界中的各种网络。
地理信息系统试卷及答案【篇一:地理信息系统试题答案】t>一.填空题答案:(1)gis中计算机硬件包括:计算机主机、数据输入设备、数据存储设备、数据输出设备。
(2)gis中计算机软件包括:数据输入子系统图形与文本编译子系统、空间数据库管理子系统、空间查询与空间分析子系统、数据输出子系统。
(3)规划工作中空间信息源包括:图件、实地调查资料、统计资料和科研报告、遥感资料、实测资料。
(4)城市与区域空间信息制图的基本结构有:网络结构、等值线结构、网络结构、离散点结构、多边形结构、三维立体结构。
(5)地理数据库结构包括:层次结构、网络结构、关系数据库结构、面向目标模型。
(6)进行数据压缩的方法有:间隔取点法、垂距法和偏角法、道格拉斯——普克法、光栏法。
(7)栅格数据宏运算包括:扩张、侵蚀、加粗、减细、填充。
(8)栅格数据的基本运算包括:栅格图像的平移、两个栅格图像的算术组合、两个栅格图像的逻辑组合。
(9)gis的英文全称是:geographic information system。
(10)地理信息系统按其内容可以分为:专题信息系统、区域信息系统、gis工具。
(11)空间信息的基本特征为:空间定位特征、时间特征、层次性模糊性和不确定性。
(12)布尔逻辑组合包括:或、异或、和、非。
(13)几何数据获取方法主要有:数据结构之间的变换、数据格式之间的变换、矢量栅格数据之间的变换、投影变换、二维和三维几何变换。
(14)外业测量获得、由栅格形式的空间数据转换获得、对各类地图跟踪数字化获得、扫描获得。
(15) gis中的空间分析主要包括:地形分析、网络分析、叠置分析、缓冲区分析、决策分析。
(16)矢量符号的几种基本变换包括:平移变换、比例变换、旋转变换、错位变换。
(17)数据结构:数据结构试制数据库中数据的组织形式,包括抽象的数据结构(概念结构或逻辑结构)和内部存储结构(物理结构)。
其中概念结构不涉及数据的具体程序管理细节二侧重于从概念上描述数据之间的排列和联系;物理结构是为实现某一概念结构而设计的具体的数据存储和管理方式。
170316.道格拉斯-普克算法道格拉斯-普克算法道格拉斯-普克算法 (Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法、迭代适应点算法、分裂与合并算法)是乌尔斯·拉默(Urs Ramer)于1972年以及⼤卫·道格拉斯(David Douglas)和托马斯·普克(Thomas Peucker)于1973年提出的⼀种简化线的⼀种经典算法。
它是通过减少曲线中点的数量,得出⼀条尽可能完整的表达原有曲线的特征的曲线。
⼀般来讲,道格拉斯-普克算法需要⼀个极差D,极差D的值越⼤,证明曲线简化的越多,反之极差越⼩,表⽰简化的越⼩通俗的理解,道格拉斯-普克算法是通过分治策略处理⼀组曲线,⽽极差D则可以理解为⼀个⽐较值,或者可以说是⼀个临界点,通过对垂距⼤于此临界点的点进⾏保留,对⼩于此临界点的点进⾏删除,达到简化曲线的效果算法的基本思路是:对曲线的⾸末点虚连⼀条直线,求此曲线其余所有点到直线的距离(垂距),从中找出最⼤距离值dmax ,⽤d max与限差D相⽐:若d max <D,这条曲线上的中间点全部舍去;若d max ≥D,保留d max 对应的坐标点,并以该点为界,把曲线分为两部分,对这两部分重复使⽤该⽅法,当曲线⽆法分为两部分时结束。
具体步骤如下:(1) 在曲线⾸尾两点间虚连⼀条直线,求出其余各点到该直线的距离。
(2)选其最⼤者与极差D相⽐较,若⼤于极差D,则离该直线距离最⼤的点保留,否则将直线两端点间各点全部舍去。
(3)以保留的点为中⼼,将已知曲线分成两部分处理,重复执⾏第1、2步操作,迭代操作,即仍选该直线距离最⼤者与极差D⽐较,依次取舍,直到⽆点可舍去,最后得到满⾜给定精度限差为D的曲线点坐标具体的实现过程如下图(此图来⾃于⽹络)在计算最⼤距离的时候(垂距),⼀般来讲,我们知道三个点的坐标,两个坐标点形成得直线,求另⼀个坐标点到此直线的距离。
arcmap 简化算法
ArcMap提供了两种简化算法:POINT_REMOVE和
BEND_SIMPLIFY。
POINT_REMOVE是一种用于简化线的便捷算法。
它将保留所有构成线要素的基本形状的关键点而移除其他点。
该算法从使用趋势线连接线要素的各端点开始。
首先测量每个折点到趋势线的垂直距离。
与趋势线的距离小于容差的折点将被删除。
线要素最先在距离趋势线最远的折点处断开,从而构成两条新趋势线。
然后再测量剩余折点到这两条线的垂直距离,整个过程将持续到与趋势线的距离小于容差的所有折点全部被删除为止。
此选项基于道格拉斯和普克(1973)定义的算法。
POINT_REMOVE非常适用于数据压缩和消除冗余细节,但是生成的线可能含有不必要的尖角和尖锋,从而降低该线的制图质量。
如果对于制图质量的要求不高,则可以使用POINT_REMOVE实现相对较少的数据缩减或压缩。
BEND_SIMPLIFY较慢,但通常会生成与原始几何形状更为接近的结果,因此更加美观。
其操作方式为消除面要素边界上不太重要的弯曲。
此方法用于少量的、更为精细的简化。
最小面积参数仅适用于简化的面。
任何在简化过程完成后小于最小面积的面要素都将从输出要素类中移除。
对于一组共享公共边的相邻面,该参数适用于该组面的总面积。
点的输出名称和位置自动从输出的面的名称获得,并以_Pnt
作为后缀。
面输出将包含所有输入字段;点输出不包含任何输入字段。
多部分(Multipart)面可简化为单部分。
处理过程会更快。
GIS算法原理知识点总结算法设计和分析:1、算法设计的原则:正确性:若一个算法本身有缺陷,那么它将不会解决问题;确定性:指每个步骤必须含义明确,对每种可能性都有确定的操作。
清晰性:一个良好的算法,必须思路清晰,结构合理。
2、算法的复杂性包括:时间复杂性和空间复杂性。
3、时间复杂性:用一个与问题相关的整数量来衡量问题的大小,该整数量表示输入数据量的尺度,称为问题的规模。
利用某算法处理一个问题规模为n的输入所需要的时间,称为该算法的时间复杂性。
4、算法的概念:算法是完成特定任务的有限指令集。
所有的算法必须满足下面的标准:◆输入◆输出◆明确性◆有限性◆有效性GIS算法的计算几何基础1、理解矢量的概念:如果一条线段的端点是有次序之分的,我们把这种线段称为有向线段(directed segment)。
如果有向线段p1p2的起点P1在坐标原点,我们可以把它称为矢量P2。
p2p1O5.矢量叉积:计算矢量叉积是直线和线段相关算法的核心部分。
设矢量P = (x1,y1),Q = (x2,y2),则矢量叉积定义为(0,0)、p1、p2和p1p2 所组成的平行四边形的带符号的面积,即P×Q = x1·y2-x2·y1,其结果是个标量。
显然有性质P×Q= -(Q×P)和P×-Q= -(P×Q)。
P X Q>0,则P在Q的顺时针方向;P X Q<0,则P 在Q 的顺逆针方向;P X Q>0,则P Q 共线,但可能同向也可能反向。
6、判断线段的拐向:折线段的拐向判断方法,可以直接由矢量叉积的性质推出,对于有公共端点的线段p0p1和P1P2,通过计算(p2-p0)×(P1-p0)的符号便可以给出折线段的拐向。
理解矢量的概念通过矢量差积的方法就可以判断的拐向了。
7.判断点是否在线段上:设点为Q ,线段为P1 P2:(Q-P1)X(P2-P1)=0且Q在以P1,P2为对角顶点的矩形内。
李建松《GIS原理》复习题2009第一部分地理信息系统的科学和技术基础第一章地理信息系统的科学基础名词:地球系统科学、地球信息科学、地理信息科学、地球空间信息科学第三章地理信息系统概述简答:地理信息系统的定义、特征、构成、发展简史第四章地理信息系统的技术基础填空和判断:数据采集输出、GIS软件的发展第二部分地理空间数据组织与管理第五章地理空间信息基础简答:矢量数据、栅格数据、TIN的结构和特点名词:元数据第六章地理空间数据模型简答:空间索引的类型和用途填空和判断:空间数据的基本特征和描述内容第七章地理空间数据结构计算:无拓扑矢量数据结构、拓扑数据结构、栅格数据Morton码、TIN数据结构第八章地理空间数据库填空简答:间数据库管理系统的管理模式1、空间数据的基本特征是、、2、矢量数据最基本的拓扑关系是关联和邻接,解释关联和邻接的含义3、在网络分析方面矢量数据比栅格数据(方便、不方便)4、在叠置分析方面矢量数据比栅格数据(方便、不方便)5、缓冲区分析用什么数据结构比较方便?6、投影变换时,矢量数据比栅格数据(简单、复杂)7、GIS中有几何数据、属性数据和拓扑数据,哪些适合用数据库表示?哪些适合用数据文件表示?第三部分地理空间数据的获取与处理第九章地理空间数据获取填空和判断:数据源的种类、数据采集的方法第十章空间数据的编辑填空简答:图形数据的编辑、图形数据的几何纠正第十一章空间数据的处理方法填空简答:空间数据的拓扑关系自动生成、空间数据的压缩编码方法、矢量数据和栅格数据的转换计算:栅格数据压缩编码方法第十二章地理空间数据的质量填空简答:GIS数据质量的内容、空间数据的不确定性数字测绘和GIS的数据采集有什么区别?1、用SuperMap对栅格数据矢量化时,什么情况下选用非地球坐标系?2、空间数据的不确定性包含了哪些方面?分别举例说明几何数据和属性数据的不确定性3、如何发现进入GIS中的数据错误4、判断点和多边形的关系有和两种方法A 垂线法B 面积法C 内插法D弧长法E转角法5、仿射变换和相似变换公式的差别,各需要几个已知点?6、X=A0+A1x-B1y Y=B0+B1x+A1y 是变换X=A0+A1x+A2y Y=B0+B1x+B2y 是变换A 拓扑B投影 C 仿射 D 相似7、如何求解以上二式中的A0、A1、A2、B0、B1、B2第四部分空间分析基本原理和方法第十五章空间分析方法填空简答:矢量和栅格数据的叠置分析、缓冲区分析1、举例说明几何图形到属性、属性到图形的双向查询2、空间关系查询包含哪些内容?3、解释:属性数据的离散特征数和集中特征数4、DEM分析有哪几种主要用途?5、空间对象的关系有、、、、五种6、点、线、面之间各有什么关系?如何判断点和线之间的关系?第五部分地理信息系统产品输出及可视化第十六章地理信息系统产品输出填空和判断:地理信息系统产品的输出系统的硬件、地理信息系统产品的类型第十七章空间信息可视化技术方法简答:可视化的技术方法、GIS制作专题地图的类型和方法1、举例说明如何将空间查询、统计和分析的结果可视化表示2、VR有哪几种主要类型和功能?3、简述电子地图和GIS的关系和差别第六部分地理信息系统工程设计与标准化第十八章地理信息系统工程设计简答:GIS工程的系统分析、系统设计、实施、运行和维护的内容第十九章地理信息系统的标准化1、GIS开发的四个阶段为、、、2、快速原型法和结构化生命周期法的主要区别是什么?3、GIS的发展瓶颈是什么?改进途径有哪些?4、在众多的GIS的应用领域中,列举出六个领域。
垂距法与道格拉斯-普克法删除冗余顶点效率的比较
彭认灿,董箭,郑义东,李改肖
(大连舰艇学院海洋测绘工程系,辽宁大连116018)
道格拉斯- 普克法可描述为:将一条曲线首末顶点虚连一条直线,求出其余各顶点到该直线的距离,选其最大者与规定的限差相比较,若小于等于限差,则将直线两端间各点全部删去;若大于限差,则离该直线距离最大的顶点保留,并以此为界,把曲线分为两部分,对这两部分重复使用上述方法,直至最终无法作进一步的压缩为止(见图3)。
道格拉斯2 普克法有一个十分突出的优点,即它是一个整体算法,在一般情况下可保留较大弯曲形态上的特征点。
经道格拉斯-普克法压缩后得到的图形如图4所示。
由于该算法可准确删除小弯曲上的定点,故能从体上有效地保持线要素的形态特征。
正是因为道格拉斯-普克法具有这样突出的优点,所以已经在线要素地自动制图中得到了较广泛的应用。
但道格拉斯- 普克法较垂距法复杂,且通常编程实现时需要采用递归方,有一定的难度。
----------------------------------------------------------转载end
此算法可以在获取手写笔顺的特征点时应用。
C++代码
//=================================================== ==================================================== ==========
double PerpendicularDistance(CPoint Point1, CPoint Point2, CPoint Point)
{
//Area = |(1/2)(x1y2 + x2y3 + x3y1 - x2y1 - x3y2 - x1y3)| *Area of triangle
//Base = v((x1-x2)2+(x1-x2)2) *Base of Triangle*
//Area = .5*Base*H *Solve for height //Height = Area/.5/Base
double area = abs(0.5 * (Point1.x * Point2.y + Point2.x * Point.y + Point.x * Point1.y - Point2.x * Point1.y - Point.x * Point2.y - Point1.x *
Point.y));
double bottom = sqrt(pow(Point1.x - Point2.x, 2) + pow(Point1.y - Point2.y, 2));
double height = area / bottom * 2;
return height;
}
void DouglasPeuckerReduction(vector<CPoint>points, int firstPoint, int lastPoint, double tolerance, list<int> &pointIndexsToKeep)
{
double maxDistance = 0;
int indexFarthest = 0;
for (int index = firstPoint; index < lastPoint; index++)
{
double distance = PerpendicularDistance
(points[firstPoint], points[lastPoint], points[index]);
if (distance > maxDistance)
{
maxDistance = distance;
indexFarthest = index;
}
}
if (maxDistance > tolerance && indexFarthest != 0)
{
//Add the largest point that exceeds the tolerance
pointIndexsToKeep.push_back(indexFarthest);
DouglasPeuckerReduction(points, firstPoint,
indexFarthest, tolerance, pointIndexsToKeep);
DouglasPeuckerReduction(points, indexFarthest,
lastPoint, tolerance, pointIndexsToKeep);
}
}
vector<CPoint> DouglasPeucker(vector<CPoint> &Points, double Tolerance)
{
if (Points.empty() || (Points.size() < 3))
return Points;
int firstPoint = 0;
int lastPoint = Points.size() - 1;
list<int> pointIndexsToKeep ;
//Add the first and last index to the keepers
pointIndexsToKeep.push_back(firstPoint);
pointIndexsToKeep.push_back(lastPoint);
//The first and the last point cannot be the same
while (Points[firstPoint]==(Points[lastPoint]))
{
lastPoint--;
}
DouglasPeuckerReduction(Points, firstPoint, lastPoint,
Tolerance, pointIndexsToKeep);
vector<CPoint> returnPoints ;
pointIndexsToKeep.sort();
list<int>::iterator theIterator;
for( theIterator = pointIndexsToKeep.begin(); theIterator != pointIndexsToKeep.end(); theIterator++ )
{
returnPoints.push_back(Points[*theIterator]);
}
return returnPoints;
}。