logo资料库

一种基于ArcGISEngine的线状图幅接边方法.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
4· · Computer Era No. 2 2008 一种基于 ArcGIS Engine 的线状图幅接边方法 刘庆元, 周 容 (中南大学信息物理工程学院, 湖南 长沙 410083) 摘 要: 针对现有线状图幅接边工具的一些缺陷, 提出了一种兼顾几何关系和属性特征的线状 图 幅 接 边 算 法, 并 利 用 ArcGIS Engine 提供的功能, 以 Microsoft Visual C++ 6.0 为开发环境实现了这一算法。实验证明, 这种方 法 对 一 般 的 线 状图幅接边是有效的。 关键词: 线状; 图幅接边; 属性特征; ArcGIS Engine 0 引言 图 幅 接 边 是 GIS 地 图 数 据 处 理 过 程 中 经 常 会 遇 到 的 一 项 工作。为了便于测绘和管理较大 区域的地图数据, 通 常 将 地 图 按照一定的规则进行分幅处理。使用地图数据时, 如 果 研 究 区 域 分 布 在 两 个 或 多 个 图 幅 之 中 , 就 必 须 进 行 图 幅 接 边 , 将 相 邻 图 幅 中 对 应 的 地 理 要 素 合 并 在 一 起 。 但 是 由 于 数 据 的 精 度 问 题, 相 邻 图 幅 上 的 地 理 要 素 常 常 不 能 够 很 好 地 吻 合 , 这 给 接 边 工作带来了不便。 一 些 GIS 软 件 中 带 有 图 幅 接 边 的 模 块 , 如 ArcGIS 中 的 EdgeMatch。但是, 在现实的数据处理过程中, 这些模块的 功 能 还不能满足要求。首先, 使用这些接边模块时仍然 需 要 较 多 的 人工干预, 比较繁琐; 其次, 大多数的接边模块进行接边 处 理 时 仅仅考虑相邻图幅上地理要素的几何关系, 而没有充 分 利 用 属 性信息, 这在某些情况下, 如进行等高线的接边时, 容 易 造 成 逻 辑错误。 线状图幅的接边是图幅接边工作的重要组成 部 分, 常 用 的 数字线划图( DLG) 图幅接边即属 此类, 上文所提到的等高 线 图 幅接边, 更是一个典型的例子。 当前, 国内已有一些人提出了图幅接边问题 的 解 决 方 案 。 如邓小军等详细分析了等高 线的图幅接边问题, 对各 种 相 邻 图 幅等高线接边误差的形式做了分类[1], 具有一定的代表性。 本 文 提 出 了 一 种 兼 顾 几 何 关 系 和 属 性 特 征 的 线 状 图 幅 自 动 接 边 算 法 ; 利 用 ArcGIS Engine 组 件 所 提 供 的 空 间 操 作 功 能 , 在 Microsoft Visual C++ 6.0 环 境 下 , 实 现 了 这 一 算 法 ; 并 在一个实例的基础上, 讨论了这种方法的有效性。 1 线状图幅接边问题的提出 如图 1 所示, 研究区域跨越 A、B 两相邻图幅。A、B 中各有 一线状地理要素, 它们是同一地物的不同组成部分, 具有相同的属 性特征。在数据精确的情况下, 这两个线状要素应该能够吻合, 但是由于数据的误差, 常常做不到这一点。这时, 就需要采取一些 方法来将两个线状要素接合起来, 形成一个完整的地理要素。 图 1 数据误差造成的接边问题 2 线状图幅自动接边算法 2.1 接边前的数据准备 为 了 算 法 的 有 效 执 行 , 在 进 行 接 边 之 前 , 必 须 对 参 与 接 边 的 图 幅 进 行 处 理 , 以 达 到 两 个 要 求 : 参 与 接 边 的 图 幅 应 该 具 有 相 同 的 地 图 数 学 基 础 , 包 括 相 同 的 比 例 尺 , 相 同 的 投 影 坐 标 系 及高程基准; 参与接边的图幅属性数据必须准确。 如 果 数 据 不 能满足这两个要求, 接边算法是无法顺利进行的。 2.2 线状图幅自动接边算法的流程 ⑴ 搜索参与接边的对象 让相邻图幅上所有的地理要素参与接边是不必要的, 这将 严重增加算法的复杂度。为提高效率, 算法首先搜索相邻图幅上 参与接边的地理要素。搜索的方法如下: 给定一个阈值 d1, 以这 个阈值为大小, 求取图幅接边线的双侧缓冲区; 凡是与这个缓冲 区相交的线状要素, 分别记录在两个集合里( 两个图幅各一个) , 参与下一步的接边; 未与这个缓冲区相交的线状要素, 排除在集 合之外, 不参与下一步的接边。图 2 中左起第 1、4 根线状要素被 排除, 第 2、3 根线记入搜索结果集合中。选择一个图幅( 通常为 左图幅或上图幅) 作为主图幅, 其中的地理要素称为主要 素; 另 一个图幅作为副图幅, 其中的地理要素称为副要素。 图 2 搜索与半径为 2d1 的接边线双侧缓冲区相交的要素 ⑵ 属性匹配 对⑴中得到的两个结果集进行遍历, 查询每 个 线 状 要 素 的 属性。若在两个集合中找到 一对属性匹配的要素, 转 入⑶进 行 接 边 处 理 , 直 到 两 个 集 合 遍 历 完 毕 , 所 有 的 属 性 匹 配 的 要 素 拼 接完成, 整个接边工作也就完成了。 ⑶ 接边处理 对⑵中找到的每一对属性匹配的地理要素, 接 边 处 理 的 过 程如图 3 所示。利用本算法接边时, 必须以主要素 的 末 结 点 与 副要素的首结点相连接, 所 以当出现距离最近的结点 为 非 末 首 结点时, 必须调整结点的顺序。如图 4 所示, 如果主要素与副要
计算机时代 2008 年 第 2 期 5· · 素距离最近点为首末结点, 必须同时倒转主副要素 的 点 序, 使 距离最近的点对变为末 首结点, 再进行拼接。其余三 种 情 况 作 ipFtClas s ->Search(ipQueryFilter,VARIANT_TRUE,&ipFtCurs or); // 以游标方式返回查询结果 类似的处理。 ⑵ 接边对象匹配 使用 IFeaturePtr 的接 口 的 get_Fields 方 法 得 到 属 性 字 段 接 口 IFieldsPtr, 通 过 它 可 以 得 到 需 要 查 询 的 属 性 , 对⑴中 得 到 的 要素集合一一进行匹配。 ⑶ 接边处理 如果两线状要素属性特征相同, 判断主、副图幅属性匹配的 地图元素首末点之间( 共有四种组合) 最小距离是否在接边阈值 内。首先得到到两 Feature 的点集接口 IPointCollectionPtr: ipFeature->get_Shape(&ipGeometry); IPointCollectionPtr ipPoints ; ipPoints =ipGeometry; 接着得到其首末点: IPointPtr StartPt,EndPt; ipPoints ->get_PointCount(&Num); // 得到要素的点个数 ipPoints ->get_Point(0,&StartPt); // 取首点 ipPoints ->get_Point((Num-1),&EndPt); //取末点 如首末点之间( 四种组合之一) 的最小距离小于 接 边 阈 值, 图 3 接边算法的流程 则进行拼接: 点序调整完毕后, 即可进行拼接。将副要素 的 首 结 点 与 主 要素的尾结点连结起来, 并将 副要素所有的结点依次 加 入 到 主 要素中, 更新主要素, 最后删除副要素。至此, 一对属性 匹 配 的 线状要素就拼接完成了。 图 4 调整主副要素的点序 3 用 ArcGIS Engine 实现线状图幅拼接算法 ArcGIS Engine 是 ESRI 公 司 推 出 的 一 个 用 于 定 制 应 用 的 完整的嵌入式 GIS 组件库。利用 ArcGIS Engine, 开发者能够将 ArcGIS 的功能集成到独立的应用程序中, 从而避免考虑底层的 空间算法, 降低开发难度, 提高开发效率。ArcGIS Engine 支持 多 种 主 流 开 发 语 言 , 如 Visual Basic, Visual C++, Java 等 , 为 开 发者提供了便利[2]。 本 文 依 据 前 文 所 述 的 算 法 给 出 了 接 边 程 序 所 需 要 的 主 要 接口或部分代码, 开发平台为 Microsoft Visual C++ 6.0[2- 5]。 ⑴ 搜索参与接边的对象 首先通过 IMapPtr 接口的 get_Envelope 方法求出两图幅的 图幅范围 IEnvelopePtr, 按指定的阈 值 求 出 搜 索 的 范 围( 即 接 边 线的缓冲区) 。 搜索范围确定后, 搜索过程使用 ISpatialFilterPtr 接口。 ISpatialFilterPtr ipFilter(CLSID_SpatialFilter); ipFilter->put_SpatialRel(es riSpatialRelCros s es ); // 设置搜索方式为相交 IQueryFilterPtr ipQueryFilter=ipFilter; // 查询过滤器接口 IFeatureClas s Ptr ipFtClas s ; ipFtLayer->get_FeatureClas s (&ipFtClas s ); IPolylinePtr tmpPolyline; tmpPolyline=ipLGeometry; tmpPolyline->Revers eOrientation(); // 此处以倒转主要素( 左侧) 为例 ipLPtCollection->AddPointCollection(ipRPtCollection); // 将副图幅中的线的点加入到主图幅 ipLFeature->putref_Shape(ipLGeometry); // 更新左边图形 ipLFeature->Store(); // 保存接边后的图形 ipRFeature->Delete(); // 删除右边图幅的接边图形 4 应用实例 为检验上述方法的有效性, 利用两幅相邻的 1: 50000DLG 数据, 提取其中的道路图层, 进行接边测试。匹配属性为道路名 字段。图 5 为图幅接边处理的程序界面。 图 5 程序界面 测试结果如图 6 所示。对左右两图幅中道路线状要素所存 在的断点, 程序可以比较有效地检测到并接合。
6· · Computer Era No. 2 2008 像素级融合并行算法的模型研究 胡 冰 1, 刘衡竹 2, 王攀峰 2, 周海芳 2 (1. 军事经济学院采办系, 湖北 武汉 430035; 2. 国防科技大学计算机学院) 摘 要: 通过对多种遥感图像像素级融合算法的深入研究, 实现了三种具有代表性的像素级融合并 行 算 法, 在 分 析 了 这 些并行算法的数据划分方式、负载平衡及算法设计流程的基础上, 总结性地提出了一种通用的像素级融合并行算法模型。 该模型对遥感图像融合的并行算法研究提供了有益的指导和借鉴。 关键词: 像素级融合; 并行算法; 模型; 遥感图像 0 引言 目 前 , 遥 感 图 像 融 合 算 法 的 研 究 日 新 月 异 , 已 有 多 种 遥 感 图像融合算法出现。根据遥感图像所含信息的抽象程度以及融 合应用层次的不同, 遥感图像融合可划分为像素级( Pixel- Level Fusion) 、特 征 级(Feature- Level Fusion)、决 策 级(Decision- Level Fusion)三个层次[1]。像素级融合的优点是保留了尽可能多的原 始 信 息 , 提 供 其 他 融 合 层 次 所 不 能 提 供 的 细 微 信 息 , 具 有 最 高 精 度, 这 一 点 对 于 提 高 分 辨 率 非 常 重 要 ; 但 由 于 处 理 的 信 息 量 大, 实时性差, 所需的代价较高。 随 着 传 感 器 、遥 感 平 台 等 相 关 技 术 的 发 展 , 通 过 遥 感 手 段 获得的数据量也随之急剧增长。传统的像素级融合方法面临急 剧膨胀的海量数据, 运算规模迅速扩大到数千亿乃 至 数 万 亿 次 浮点运算; 另外, 许多遥 感应用领域对实时性的要求日益 迫 切 。 显然, 传统的单处理器串行像素级融合算法已 经无法 满 足 这 样 的运算需求。然而随着并行化技术的发展, 采用并 行 处 理 技 术 是 加 快 遥 感 图 像 处 理 的 一 个 重 要 手 段 , 因 此 , 研 究 高 效 实 用 的 像素级融合并行算法具有较高的理论与实用价值。 目前, 针对一些特定的像素级融合并行算法已经有了一些研 究成果[2,3]。本文基于这些研 究成果, 对 像 素 级 融 合 算 法 中 具 有 代 表 性的三种算法———IHS、PCA( 主成分分析) 、DWT( 离散小 波 变 换) 的 并 行 算 法 进 行 分 析 , 在 此 基 础 上 归 纳 总 结 出 像 素 级 融 合并行算法的一些共性特征, 提出了一个通用的像素级融合并行 算法模型, 为此类算法的并行算法研究提供了一条解决途径。 1 串行像素级融合算法 近 20 年来, 对于遥感图像融合的串行算法, 特 别 是 针 对 像 素级融合方法的研究已经取得 了一些重要的研究成 果, 形 成 了 一些成熟的融合方法[4], 如: 基于彩色变换的方法( IHS, YIQ等) , 基 于 统 计 的 融 合 方 法( PCA, PCS 等) , 基 于 多 分 辨 率 分 析 的 方 法( 金 字 塔 分 解 法 , HPF, 小 波 融 合 法) 和 基 于 数 字 加 权 的 方 法 ( SVR, 加权平均法) 等。其 中 最 为 典 型 的 几 种 算 法 的 基 本 原 理 为: IHS 融 合 是 基 于 图 像 处 理 技 术 中 常 见 的 两 种 颜 色 表 示 模 型 ( RGB 和 IHS) 之 间 的 相 互 转 换 [4]; PCA 融 合 是 采 用 数 学 上 称 为 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 本文提出的算法还存在着如下缺陷: ⑴ 对复杂线状要素缺乏判断的能力。如 接 边 要 素 中 存 在 环( 即主要素和副要素构成环) , 则算法中主要素的 末 结 点 和 副 要素首结点的拼接在某 些情况下会对接边造成干扰, 引 起 一 些 错误, 而这种情况在等高线接边的工作中并不罕见。 ⑵ 暂时只有两相邻图幅的接边能力, 多图幅 的 接 边, 需 要 逐一地进行。对于多图幅接边的问题, 可参见文献[6]。 另 外 , 面 状 要 素 或 混 合 要 素 的 接 边 方 法 , 也 是 需 要 做 进 一 步的探讨的。 参考文献: [1] 邓小军,郑小梅.基于 AO 的分幅等高线智能化接边处理方法的研究 [J].四川测绘,2004.27(2):77~81 [2] 刘仁义,刘南.ArcGIS 开发宝典[M].科学出版社,2006. [3] 蒋波涛.ArcObjects 开发基础与技巧[M].武汉大学出版社,2006. [4] MSDN Library Visual Studio 6.0[CP/ DK].Microsoft Corp,1998. [5] Exploring Arcobjcts[CP/ DK].ESRI Corp,2002. [6] 赵江洪.地理信息系统中多图幅接边的设计与实现[J].测绘科学, 2004.29(1):44~46 ▲C E 图 6 接边前后的局部变化 5 结束语 实验证明, 本文所提出的方法对于一般的线 状 要 素 接 边 工 作是有效的。它克服了一些接边程序中仅仅考虑几何特征而没 有 充 分 利 用 属 性 信 息 的 缺 陷 , 提 高 了 接 边 的 精 确 度 ; 利 用 ArcGIS Engine 提供的空间分析功能, 降低了程序开发的难度。 本方法是切实可行的。
分享到:
收藏