范志坚
(云南省基础地理信息中心云南昆明 650034)
摘 要:本文主要阐述在Arc/Info下具有相同特征类型Coverage的合并方法。 关键词:相邻图幅合并。
在基础地理信息数据对外分发服务工作中,经常遇到按标准图幅范围分幅存放的数字地图矢量数据不能满足用户所需范围要求的情况,不同的用户对矢量数据范围的需求有大有小,有同一图幅范围的,也有跨图幅范围的,这就经常要按照用户的要求对矢量数据进行图幅范围的分割和合并。通过在Arc/Info中对矢量数据的合并处理,总结了一些合并处理的方法。
接边是一种编辑过程,以保证两个或多个Coverage中相应的特征在公共边界上具有同一的边界位置。当两个Coverage接边时,只调整一个Coverage的坐标,而另一个不动,或是调整两个Coverage的特征到一折衷点。Link可用来匹配特征。数据可以调整到匹配为止,而后被捕捉到一起,这一过程被称为“橡皮拉伸”。大部分情况下,编辑Coverage中包含的数据接边精度比接合的Coverage中数据的接边精度要低。
1.检查相邻图幅Coverage的接边情况
利用屏幕显示来目视检查相邻图幅Coverage的接边情况。在屏幕上,两个Coverage用不同颜色来区分。应尽量了解数据,弄清未匹配结点之间的距离,在数据匹配时,将用到这个距离。
2.Link特征
橡皮拉伸需要一套被称为Links的变形矢量。Links指示坐标应移到何处。Adjust命令使用Links建立橡皮拉伸转换,并调整Coverage的特征。
l 一般Links是为了调整特征而建立的从起始位置到目的位置的指针。这些被调整的特征并没有它们应有的标识位置。
l Identity Links固定已正确匹配的特征,使其不进行调整,用来固定编辑Coverage中的某些特征以免它们随链的移动一起移动。
两种Link的比较如下:
| 图形符号 | 功能 | 结果 |
一般Link |
| 指定要调整的位置 | 调整数据 |
Identity Link |
| 指定不要调整的位置 | 固定数据 |
3.坐标调整
在许多场合,用Link特征来调整坐标的过程是很有价值的。接边使用一个Coverage的Link矢量将点、线、多边形特征移到与另一个Coverage有一致特征的一个新的位置,Link本身并不移动特征。主要是由Arcedit提示符下的两个命令(Adjust和Edgesnap)来完成坐标调整。
l ADJUST(Arcedit:ADJUST <in_geo_dataset> <link_cover | link_file> <out_geo_dataset> {FORWARD | BACKWARD} {NOTICS | TICS} {NEAREST | BILINEAR | CUBIC} {BIVARIATE | LINEAR})
Adjust决定编辑 Coverage中所有特征的移动。即使没有Link所指向的特征也可能因调整而移动,但移动的程度是与它距离Link特征的远近成反比的。Identity Link可被用作固定不该移动的特征。Adjust进行真正的“橡皮拉伸”,当用一个Link将两个特征移动到一起的时候,周围的特征也被拖了进来。一个平滑的拖拽操作可以从容地穿过整个Coverage,从而消除了有时因Edgesnap而带来的突变。而Adjust只影响当前编辑的Coverage中的特征。
l EDGESNAP(Arcedit:EDGESNAP <LINE | MIDPOINT | SMOOTH>)
Edgesnap是另一种使用Link来调整坐标的方法。Edgesnap和Adjust最大的不同在于Edgesnap只修改Link所指向的特征,Edgesnap不会影响周围的特征。使用Edgesnap的一个好处是编辑Coverage和接合Coverage的特征都可以移动,而不是象使用Adjust时,只有编辑Coverage的特征可以移动。Midpoint和Smooth选项可使每个Coverage中的结点移到Link特征的折衷点,而不是将编辑Coverage结点的特征移到接合Coverage中去。除非使用Smooth选项,否则Link特征附近常常会出现弧段方向上的突变。
无论是Adjust还是Edgesnap都是用作解决位置不匹配的问题,用哪一种方法应该视不同的情况而定。移动所有特征还是折衷到一点上并不总是一个好的解决方案,根据实际情况而定。在命令方式下邻近图幅接边的命令和过程的一般步骤如下(其中Sheet1为编辑层,Sheet2为接合层):
第一步:指定编辑的Coverage和特征。
Arcedit:Edit Sheet1
第二步:指定编辑特征为链。
Arcedit:Editfeature Link
第三步:建立绘图环境。
绘图环境中至少应该包括链和编辑Coverage中要用来校准的链特征。接合 Coverage将作为背景Coverage显示,它的链接特征用Backenvironment指定。下面的命令设置背景Coverage为接合Coverage,绘出特征包括弧段和结点。
Acredit:Backcoerage Sheet2 2
Acredit:Backenvironment Arc Node Link
改变地图范围显示两个Coverage,绘制特征。
Arcedit:Mapextent Sheet1 Sheet2
Arcedit:Draw
第四步:建立接合环境。
接合环境包括接合Coverage,编辑Coverage和接合Coverage中将被链接的特征和接合容限距离。编辑Coverage和接合Coverage中的链接特征均为Node,接合搜索方式为Closest,容限距离由用户用光标直接给出。
Arcedit:Snapcoverage Sheet2
Arcedit:Linkfeature Node Node
Arcedit:Snapping Closest
第五步:建立加入链特征的限定区域。
可用Limitautolink命令来限制用Autolink命令自动添加链的区域。可以定义一个矩形框或不规则多边形区域。Grain命令可用来控制不动链的密度。
Arcedit:Grain 1
Arcedit:Limitautolink Box
屏幕上出现信息提示输入矩形的两个对角点。Autolink命令将在该限定区域内加入链。
第六步:加入链。
链特征用Autolink命令和Add命令添加。Autolink命令根据接合距离自动地在编辑Coverage结点和接合Coverage结点之间生成链。Autolink生成链特征的范围用Limitautolink定义,否则默认为整个Coverage。
Arcedit:Autolink
这时,可以通过添加,删除以及添加不动链(Holdadjust)对已有链进行修改,或者在运行一次Adjust之后再修改结果。
第七步:进行第一次校准。
Arcedit:Adjust
第八步:对Coverage部份区域反复进行校准。
有时需要对Coverage部份区域进行校准。Limitadjust命令用来局部化Adjust命令的效果,只有那些起点包含在限定区域内的链特征继续保留下来。注意定义Limitadjust限定区域边界的点都是不动链,它们之间的间隔由Grain容限距离控制。用Add命令可以进一步修改该限定区域中的链特征。Limitadjust命令保证使整个变形最小化并且集中在一个较小的区域内。
(1)用Grain命令设置不动链之间的间隔;
Arcedit:Grain 1
(2)定义Limitadjust区域;
Arcedit:Limitadjust Box
(3)用Add命令在限定区域内添加其他链特征;
Arcedit:Add
(4)再一次执行坐标校准得到全部正确的结果。
Arcedit:Adjust
从(1)到(4)可根据实际情况,重复操作,直到接边满意为止。
Edgesnap和Adjust的操作过程基本相同,只要将上面有Adjust的地方换成Edgesnap即可,在这里就不再赘述。
上面的同样功能也可以用Arcedit提示符下的命令Edgematch来完成,命令菜单上也有Adjust和Edgesnap,用哪一种方法应该视不同的情况而决定。
在Arc/Info中对相邻图幅进行合并,操作命令有Mapjoin和Append。1)Mapjoin:将相邻多边形Coverage合并、并重建拓扑结构;2)Append:将相邻Coverage的相同特征进行合并。在实际工作中对相邻Coverage的相同特征类型的合并应用相对要多点,在这里主要说明Append的使用。
1、APPEND(Arc:APPEND <out_cover> {NOTEST | template_cover | feature_class... feature_class} {NONE | FEATURES | TICS | ALL})
Append操作可以将两个或是多个具有相同特征类型的Coverage连接成一个Coverage;拥有不同特征类型的Coverage也可以被Append到一起;输出特征属性表是通过合并所有的输入属性表而创建的,但是拓扑结构不会因添加空间数据而重建;最多可以连接500个Coverage(每个Coverage都有拓扑关系,且是正确的);被连接的Coverage通常是相邻的,但并不必须相邻;Append可以合并空间数据,但不能重建拓扑结构。
2、合并Coverage时属性表的数据项
在Append操作中,所有输入Coverage特征属性都被送入输出Coverage特征属性表中,为了做到这一点,所有输入Coverage中用户定义的数据项必须有统一的数据项定义,任何一个不是由Arc/Info自动创建的数据项都必须有统一的定义值。如果不同,应该使用Tables改变数据项定义。
有些情况下,接边可以在Coverage被合并后进行。Arc/Info的Matchnode命令会将一个带有指定匹配容限值的Coverage中的所有结点捕捉到一个共同的位置。其结果与捕捉一个Coverage中的每个结点的操作是相似的。一旦结点被捕捉,使用Renode可以更新内部标识号,为匹配的结点赋予一个共同的内部标识号,这可为建立弧特征之间的连接做准备。
1、Matchnode(Arc:MATCHNODE <in_cover> {out_cover} {match_tolerance} {point_cover} {NOEXTEND | EXTEND})
当Matchnode命令执行时,Arc/Info会为在用户定义的匹配容限值范围内的所有结点检查Coverage中每一个结点。匹配容限值是一段距离,其单位是地面单位(与Coverage一致),在该距离内的所有结点将被捕捉(Snap)到一个公共的位置上。Arc/Info决定哪一个结点保持不动,以及哪个或是哪些结点将在匹配过程中移动。没办法选择控制哪个结点被选去匹配。Arc/Info会选择在匹配过程中遇到的第一个结点。要注意;没法限制Matchnode作用的空间影响范围。所有结点都将会被处理。选择一个比现实中结点间距还要小的距离作为匹配容限值。
2、Renode(Arc:RENODE <cover> {from_node_elev_item} {to_node_elev_item})
Matchnode只会改变结点特征的空间位置,它不会改变结点的内部标识号。因此,如果两个结点被匹配到同一位置,结果是这两个弧端点不会连接在一起。为了建立连接,使用Renode命令进行结点的重新编码。Renode命令的主要目的就是为Coverage中的每一个结点赋予一个独立的内部标识号,但在操作中,在连接弧的时候,它也会为空间上一致的结点赋予一个共同的内部标识号。
利用Dissolve命令可以进行一种特殊类型的特征简化。如果相邻多边形的某个指定数据项的值是相同的,就可以利用Dissolve命令去掉相邻多边形的边界,将这些相邻多边形合并为一个多边形。Dissolve命令对Coverage进行简化是非常有用的。
Dissolve(Arc:DISSOLVE <in_cover> <out_cover> <dissolve_item | #ALL> {POLY | LINE | NET | REGION.subclass})
可从<in_cover>中指定任何数据项作为<dissolve_item>,只有<dissolve_item>能被带到结果PAT中。如果定义<#ALL>选项,则COVER-ID右边的所有项将被作为(dissolve_item),这些项都将被带到结果PAT文件中。使用<#ALL>选项可以消除相邻两幅地图之间的边界线,但所有的属性值都被保留。
使用Unsplit命令来把由伪结点分开的各弧段连接成一条弧段。所有要连接成一条弧的弧段必须具有相同的内部标识号(#)和用户标识号(ID),使用Unsplit命令后,所连接形成的弧段将把连接前具有较小记录号的那条弧的属性作为自己的属性而保留下来。
对Coverage空间特征的编辑要改变拓扑关系,需要重构拓扑关系来重建空间关系,在Arc/Info中,Build和Clean都用来构造拓扑关系,尽管两者执行相似的功能,它们都构造拓扑关系和建立特征属性表,但有重要的区别。Build为Point、Line、Polygon、Node和Annotation Coverage生成或修改特征属性表;但Clean仅为Polygon和Line Coverage进行坐标编辑和生成特征属性表。Build仅识别已有的交点,而Clean在弧段彼此交叉时自动生成交点,Build假定坐标数据是正确的,而Clean查找交叉的弧段,在交叉处生成并放置一个结点。此外,Clean可以修正在指定容限值之内的因数字化未到或数字化太过而形成的悬挂点和弧段。在需要建立拓扑关系时应选择适当的命令重构拓扑关系。
总之,在实际工作中,通过以上几个步骤就可以将两个或是多个具有相同特征类型的Coverage连接成一个Coverage,但是使用第一步和第二步时可根据编辑Coverage和接合Coverage的数据精度适当选择,如果编辑Coverage和接合Coverage接边数据精度相对不好,可先使用第一步进行相邻图幅的数据接边处理,然后再合并;如果编辑Coverage和接合Coverage接边数据精度相对较好,可直接从第二步开始做起,先合并处理,再接边。根据相邻图幅的数据精度选择适当的步骤和命令进行相邻图幅的合并,以便达到相邻图幅的合并要求。
主要参考文献:
【1】樊红,詹小国编著.Arc/Info应用与开发技术(修订版).武汉大学出版社.2002
【2】 房佩 君主编.地理信息系统(Arc/Info)及其应用.同济大学出版社.2000