|
ArcGIS地质图矢量化(一)地质图的矢量化工作是一项非常基础的工作。完全掌握了ArcGIS软件的操作方法并不等于就可以快速高效地完成地质图的矢量化工作。本文就结合实际,从几个大的方面介绍了快速完成矢量化所要注意的要领。
计算机技术在地质学领域内的使用极大地改变了地质学研究的面貌,各种GIS软件的使用已经成为当今地质学研究的主流。关于地质数据的处理、地质图的绘制等工作已经由过去的人工处理转变为现在的计算机处理。计算机可以在很短的时间内处理完海量的纷繁复杂的数据,而且还可以非常灵活地实现多视角的智能化表达,数据的修改也十分方便,这些都是人工方法所无法比拟的。
在计算机技术用于地质之前已经积累了大量的原始纸质数据,用计算机处理这些地质数据,首先要对原始的数据进行矢量化,完成了这一步之后才能用计算机进行各种分析和处理。所以很多的科研院所在数据矢量化方面投入了大量的人力物力,但有的效果却不够理想,矢量化的进度慢、质量差而且矢量数据之间不能很好地衔接。所以掌握高效的矢量化方法一直是矢量化人员追求的目标。笔者就以ArcGIS为例,结合自己多年的工作经验,来介绍一下地质图矢量化的技巧。
一、底图的校正
这是地质图矢量化的开始,也是关键。底图校正的精度高低将直接影响到整套数据质量的好坏,因该引起高度的重视。不同比例尺的图件,有着不同的校正精度要求,一般来说,1:20万的地质图,校正误差不能高于20米,1:50万的地质图,校正误差不能高于50米。
扫描质量很好的原始图件,画面显示其色彩新鲜、图面平整、没有折痕,校正这样的地质图要相对容易,只需要4个以上的控制点用一次校正就可达到精度要求;扫描质量不好的原始图件,画面显示其色彩老旧、图面有高低起伏、有的还有折痕,折痕处甚至有破损。由于有相当一部分地质图的年代久远,这样的原始图件往往很多,校正这样的原始图件要相对困难,必须要增加控制点,以此来保证校正的精度。有时简单的一次校正已经不能满足精度的要求,必须要用二次甚至三次校正,在ArcGIS中,至少6个控制点才能进行二次校正,至少10个控制点才能进行三次校正。不管是一次校正、二次校正还是三次校正,这些控制点要均匀分布在图面上。为了校正的方便,在校正之前,还有必要用图像处理软件对一些老化严重的图件进行处理,以去除老化色,恢复其原色。
二、地理数据库(Geodatabase)中要素类(Feature Class)的建立
在ArcGIS作图中,地理数据库的建立是十分重要的,条理清晰、层次分明、结构科学的地理数据库,将使以后的工作轻松高效,修改起来也十分容易。
要素类的建立是地理数据库建立工作的主要内容,在地质图的矢量化工作中,主要涉及到的要素类有面要素(Polygon Features)、线要素(Line Features)、点要素(Point Fatures)。与地质有关的面要素有:侵入岩、沉积岩、变质岩、蚀变带、各种脉岩等;线要素主要有:断层、地质界线等;点要素主要则主要是各种矿点。除此之外还有水系、道路、城镇、居民点等非地质要素。
在建立要素类的过程中,依次要设置名称(Name)、别名(Alias)、类型(Type)、几何特征(Geometry Properties)、坐标系(Coordinate System)、XY容忍度(XY Tolerance)、属性表字段(Fields)等。名称是计算机识别要素类的依据,其设置要做到简洁明了、见名知意,如果需要,还可以设置别名,请注意别名仅是供用户识别使用的,它不是计算机识别的依据。类型(即面、线、点)、几何特征(即是不是包括Z值的3D数据)、坐标系的设置要和底图相同,这样才能保证矢量化后的数据与原始数据一致。XY容忍度不宜设置过大,否则会影响到数据的精确度,我们可根据底图具体的精度要求设置,比如1:20万的地质图,此值设为1米即可满足精度要求。属性表字段的设置十分重要,故放在下一节介绍。
三、要素类的属性表
要素类的属性表的创建和填写是矢量化工作的主要和关键内容。每个矢量化工作人员都要清楚地认识到:地质图的数量化不仅仅是简单地对点线面的跟踪,没有完善属性表的要素,是没有多大意义的。属性表的创建过程主要包括字段的命名和字段类型和长度的选择。
例如对于侵入岩,可设置岩体地方性名称、岩石类型、岩性符号、岩性代码、岩石颜色、岩石结构、岩石构造、岩相、主要矿物及含量、次要矿物及含量、与围岩接触关系、接触面走向、接触面倾向、接触面倾角、围岩时代、形成时代、含矿性等。对于沉积岩及地层,可设置地层地方性名称、地层单位符号、地层单位时代、岩石组合、岩石组合主体颜色、岩层主要沉积构造、生物化石、产状等。
字段类型,在地质图矢量化中常用的主要有:Short Integer、Long Integer、Float、Double、Text,因该依字段数据的特征选择。
字段长度太短会不够使用,太长又会造成数据冗余,尤其对于Text类型如此。
在侵入岩的岩性符号和沉积岩的地层单位符号中,经常可以遇到上下标的情况,如 、 。在ArcGIS的属性表中是不能输入和显示这样的上下标的,所以我们必须用一个替代的方法来解决这个问题。在笔者所在的工作小组中,我们约定:凡是下标字符,在其前面都要加上一个字符“@”,凡是上标字符,在其前面都要加上一个字符“$”,当上标和下标同时出现时,先写下标,后写下标。这样就解决了所有的上下标输入问题,如 可写为:γ@4$2$C, 可写为:Q@1$a$l$-$p$l。
如何将输入的上下标再按照原始底图的形式来输出呢?其实在ArcGIS中,用几行程序即可实现这个目的。程序的算法如下:
开始
读入字符串S[ ]
置i的初值为0
当S不为NULL时,执行下面的操作:
IF S=’@’
i=i+1
将S输出为下标
ELSE IF S=’$’
i=i+1
将S输出为上标
ELSE
将S按正常方式输出
i=i+1
结束
四、点、线、面的矢量化跟踪
点、线、面的矢量化跟踪是地质图矢量化工作的主体部分。一个矢量化工作人员的工作质量和工作效率都将在这里体现。
点、线、面的矢量化跟踪,必须要遵循一个基本的原则,就是忠实于原图,与原图一致。
点的矢量化十分容易,只需将地图上的点放到合适的大小,然后在其中心处定位即可。
线的矢量化也较为简单,要求将线条放到合适的粗细,依次用鼠标对其跟踪。由于扫描后的底图在放大到一定程度时将会是一个个方形的栅格,有人主张将底图放大到很大的倍数,跟踪时将鼠标点在栅格中央即可,这样可以将图精确到栅格。
其实这样的说法是不对的,这样做的弊端有二:一是速度慢、效率低;二是这样做的后果未必忠实于原图,相反会造成一些细微的错误。如图1所示,底图的线条原本是光滑的,而按照一个一个的栅格跟踪,出现了很多微小的锯齿。一定要认识到:任何栅格图像放大到一定程度都会出现方形的栅格,这是栅格数据的一大局限,这些方格并不是原始底图的真实反映,而是原始线条的近似表达。要跟踪的不是一个个的方格中心点,而是所有方格的整体走势。
图1 正确和错误的跟踪方法对比
A:正确的方法,把握所有方格的整体走势,线条平滑
B:错误的方法,按照每个栅格的中心跟踪,出现了很多微小的锯齿
由此可见,所谓的“细致”是相对的,有时过于细致,反而会造成错误。所以正确的跟踪方法应该是:把握所有方格的整体走势,让线条最大程度地贯穿这个走势。一般来说,线条应该是平滑的。
面的矢量化是最为复杂和繁琐的,工作量非常巨大。总体上来说,面与面的拓扑关系有以下四种:相离、相邻、相交、包含。处理好面的矢量化问题,就是要正确地处理好这四种拓扑关系。传统的方法是:如果两个面有公共的边,在作图时就要使用捕捉、跟踪等工具,以保证这两个面严格重合在公共边。如果一个面中包含了另外一个面,在作图时就要使用切割工具,然后才能在大面内部新建小面。
很显然,以上关于面的矢量化方法在ArcGIS中完全是常规的方法。这样的方法每次遇到公共的边都要重复跟踪,费时费力,操作起来非常繁琐,稍有不慎就会产生错误,最常见的错误是在多个面的交接处产生一些小的三角形。这样的错误修改起来也是非常麻烦的。
正是因为传统方法的以上缺点,我们强烈地不推荐这样做,而是用一种更为快捷的方法:,按照线要素的矢量化的方法将所有面的边界当作线要素矢量化,从而形成一个叫做作图原始线条的线要素类。注意:矢量化时所有面的边界一定要闭合,所有的线条只能跟踪一遍。然后再用工具箱中的“Feature to Polygon”工具,将作图原始线条转化为面。这样做的好处是操作简单,省时省力而且大大降低了出错的机
图2 用工具箱中的“Feature to Polygon”工具可以将任何封闭的曲线转化成面
会。如图2所示:
|
|