分享
 
 
 

二维拓扑关系分析与实践(3)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

第二章 确定性区域间拓扑关系的分析与实现

确定区域拓扑关系又由于输入数据类型的不同分为:栅格区域层次拓扑关系模型,矢量区域层次拓扑关系模型(蛋黄模型)。首先研究栅格数据问题。

第一节 栅格区域层次拓扑关系

1.1栅格数据结构

栅格数据的概念:

栅格数据:栅格数据结构实际就是像元阵列,每个像元由行列确定它的位置。由于栅格结构是按一定的规则排列的,所表示的实体位置很容易隐含在网络文件的存储结构中,且行列坐标可以很容易地转为其它坐标系下的坐标。在网络文件中每个代码本身明确地代表了实体的属性或属性的编码。

栅格数据的优点:

在栅格数据结构中,点实体表示为一个像元;线实体则表示为在一定方向上连接成串的相邻像元集合;面实体由聚集在一起的相邻像元结合表示。这种数据结构很适合计算机处理,因为行列像元阵列非常容易存储、维护和显示。

栅格数据的缺点:

用栅格数据表示的地表是不连续的,是量化和近似离散的数据,是地表一定面积内(像元地面分辨率范围内)地理数据的近似性,如平均值、主成分值或按某种规则在像元内提取的值等;另一方面,栅格数据的比例尺就是栅格大小与地表相应单元大小之比。像元大小相对于所表示的面积较大时,对长度、面积等的度量有较大影响,这种影响还与计算长度、面积的方法有关。

1.2栅格数据的取值方法:

栅格数据的取得,可在专题地图上均匀地划分网格(相当于将一透明方格纸覆盖在地图上),每一单位格子覆盖部分的属性数据便成为图中各点的值,最后形成栅格数字地图文件。

中心点法:用处于栅格中心处的地物类型或现象特性决定栅格代码。

面积占优法:以占栅格最大的地物类型或现象特征决定栅格代码。

长度占优法:当覆盖的格网过中心部位时,横线占据该格中的大部分长度的属性值定为该栅格的代码。

重要性法:根据栅格内不同地物的重要性,选取最主要的地物类型决定相应的栅格单元代码。对于特别重要的地理实体,其所在的区域尽管面积很小或不在中心,也采取保留的原则。

为了逼近原始数据精度,除了采用上述几种取值方法外,还可以采用缩小单个栅格单元的面积,增加栅格单元总数的方法,这样行列数也相应增加,每个栅格单元可代表更细小的地物类型,然而增加栅格个数、提高精度的同时也带来了一个严重的问题,那就是数据量的大幅度增加,数据冗余严重。

本论文并不对数据采样进行更具体的操作,程序中所使用的数据全都是经过处理的标准数值数据(每一个值都有其确定的含义)。

1.3分明栅格区域拓扑关系RCC5

为分明栅格区域时,即每个栅格单元的取值仅为Y(属于)或N(不属于),三个谓词的取值范围为
两个布尔值,
的定义分别如下:

1.3.1下面开始程序的设计:

在开发语言上,我是用最常用的C++语言,完全可以实现要求的全部功能。

编译器,选择GCC(可移植性强,功能强劲)

选择编程风格,风格决定了将来程序的扩展性,可维护性。所以我选择了面向对象编程风格。

以类作为基础先实现RCC5,再通过继承扩展到RCC8。

现在我将选择一种方式巧妙的求出三原谓词P,C和I ,这是实现RCC判断的基础。

算法设计

栅格数据的拓扑关系判断主要是网格单元关系的判断,所以整体设计思想是以网格单元判断开始的。由于程序录入文件的时间远高于程序处理的时间,所以为了提高效率,将把处理尽量集中在录入过程中。

v100.h

/* 实现 分明栅格 RCC-5 关系 判定*/

class ClearGrid

{

public:

/*

使用四位 数据 分别 第1位: Grid1 占用位 为1表示占用 第2位:Grid2占用位

第3位:表示此栅格 是否被使用判断位 第4位 : 1和2位都为1 置位 表示此栅格相交

*/

bitset<4> g[UPPER][UPPER];

bool P,C,I;

public:

ClearGrid();

void RelateJudge();

void Print();

~ClearGrid(){}

};

栅格数据由于占用空间较大,又由于是确定栅格,状态较少,所以本程序采用了位存储方式

#define UPPER 10 这是本程序定义的栅格数据大小,在实际计算中根据需要更改。

bitset<4> g[UPPER][UPPER];

本来使用bitset<2>就已经可以满足存储要求了,可是我发现这样需要对整个数据结构扫描3次,才能判断出三原谓词P,C和I ,运行效率低,而如果使用一位状态位bitset<3>则在一遍扫描中需要对整个栅格进行一遍扫描,时间效率有所降低。因为在判断过程中对于没有被占用的位是不需要判断的。这样我设计了两个状态位,很好的提高了时间效率。对于大数据量的程序设计,时间效率应是主要的。

实现过程

利用类的特点,在ClearGrid();函数中实现数据录入和数据格式转化,并完成状态位的设置。

在RelateJudge();函数中完成对三原谓词P,C和I 的判断实现RCC算法。

实现效果

先使用Gcc编译成可执行文件;本程序v100.exe;使用cywin 键入 ”./v100 < in.input”;

in.input 为输入文件,输出结果显示RCC5的一种情况 如EQ 。

本程序使用字符界面。

此时三个谓词共有8种可能的组合,如规定

,根据约定
,则显然
,根据此约束条件,可以将8种组合减少为5种可能成立的情形,对应于分明栅格区域间的RCC5关系,对应关系如表。

EQ

PPI

PP

PO

不符合约束条件

DR

T

T

T

T

F

F

F

F

T

T

F

F

T

T

F

F

T

F

T

F

T

F

T

F

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有