基于CoreDrawX4的等值线地质图件自动矢量化编绘技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于CoreDrawX4的等值线地质图件自动
矢量化编绘技术
作者:单宝杰刘魁元石宁宁
来源:《科技资讯》 2011年第23期
单宝杰刘魁元石宁宁
(胜利油田河口采油厂地质研究所山东东营 257200)
摘要:探讨了利用CoredrawX4软件进行全矢量化地质编图的新方法。

利用CoredrawX4的
导入功能可实现等值线底图的矢量化;通过Vba程序开发,可实现对多类型图元的自动加载和编辑,解决了单一等值线制图软件中图元加载复杂、无法编辑的难题。

关键词:CoredrawX4软件自动矢量地质
中图分类号:P271 文献标识码:A 文章编号:1672-
3791(2011)08(b)-0002-02
地质图件由图元(点、线、面及标注)组成。

一张工业标准的等值线地质图主要包括等值线、断层、井位、含油面积、测网、图件信息(大地坐标网格及标注、比例尺、图例、图名及编绘人员信息)等6个基础图层。

其中等值线、断层、井名标注、井别的处理及编辑是图件编制过程中工作量较大、也是最为关键的部分。

因等值线可由专业地质绘图软件(Zmap、Surfer)等自动生成,故等值线处理的工作量的大小主要取决于原始数据体的大小和操作人员对软件的熟练程度;
而当绘图区块构造破碎、井位较多时,断层、井名标注、井别的编辑处理要相对繁琐的多。

如断层编辑时需通过线条的粗细变化及倾向标识需区分出上盘和下盘;井名标注重迭时,需将个别标
注做适当移动以实现每一口的清晰显示;井别显示时需采用工业标准区分出不同类型的井位(工
业油流井、低产井、解释油层井、油气显示井、干井等)。

由于目前缺少集等值线生成、图元加载、编辑于一体的专业地质绘图软件,在图元复杂(构
造破碎、井别多样)的区块,如何进行标准矢量化地质图件的精确、高效编绘一直是困扰地质技
术人员的难题。

1 CoredrawX4与其它专业绘图软件主要功能对比
目前常用的专业地质绘图软件主要有Zmapplus(Zycor)、Surfer、Coredraw、Mapgis等,其中前两者以等值线绘图为主,后两者以辅助加工编图为主。

其主要功能对比如表1所示。

通过对比可以看出,CoredrawX4软件虽然不具备等值线生成,但其具备“矢量化图形导入”
功能,从而解决了等值线矢量化的问题。

在图层管理、综合编辑处理功能方面,CoredrawX4与其
它专业地质绘图软件中相比都是佼佼者。

例如在图层管理方面,可随时添加、开启、关闭任一图层,可进行跨图层编辑处理,可随时以多种图形格式输出任一图层;在图元离散编辑方面,可实现
对任意图元的编辑及重新定位,应用该功能可解决井名标注的重迭问题,而Zycor、Surfer软件
都无不具备这一功能。

在等值线矢量化方面,Coredraw可通过导入cgm格式或wmf(emf)格式实
现即时自动矢量化,而MapGis则需重新进行手工-半自动矢量化,进程较慢,且操作过程中容易造成等值线的变形、漂移,降低了地质图件的准确度。

在二次程序开发方面,CoredrawX4提供了强
大的Vba编程功能,可实现对点、线、面图元的矢量化加载、定位,极大提高了图件编绘的精度
和效率。

2 CoredrawX4中矢量化等值线底图的制作
(1)等值线图形的生成。

因CoredrawX4不具备等值线生成功能,故等值线图形的原始制作需依靠其它专业地质绘图完成。

利用专业等值线绘图软件(Zmap或surfer等)对层位数据体进行网格处理和断层挖空处理,在绘图范围内形成生成等值线图形,显示内容包括等值线、等值线标注、断层线、绘图区边框。

为方便后期的图层管理,建议图形输出时将等值线、断层线生成单独的图形,且保证生成的图形都含有绘图边框。

矢量化等值线图形输出时应记录图幅的尺寸和比例尺,若后期处理时遇到原始图件显示失真可进行精确恢复。

(2)等值线图形的导入及矢量化。

打开CoredrawX4软件后,新建页面,即可将前期生成的矢量化等值线图形导入到图层中。

若导入的是cgm格式的图形,软件将自动新建以“PICTURE”为名的图层并将相关图元放至其中,在导入的同时已实现对等值线的自动矢量化;若导入的是wmf(emf)格式的图形,软件将直接将其放至当前图层中,显示的名称与导入的文件名称相同,此时选中导入的对象,按鼠标右键选中“取消群组”选项即可实现等值线的自动矢量化。

应注意的是,图形导入以后,需检查新产生的图形与原始图形的尺寸是否一致,若出现偏差,应立即修改,以保证导入的图形准确无误,并为后期图元的加载及编辑奠定可靠的基础。

等值线图形导入以后,可通过图层操作进行图层命名,如命名为“等值线”图层,此图层将作为后期图元加载、编辑的底图。

3 Vba程序开发及自动矢量化图元加载
(1)Vba中图元自动加载的基本方法。

Vba(Visual Basic for Applications)是Windows操作平台中许多软件,如Office办公系统、Coredraw等内嵌的标准宏语言,它提供了面向对象的程序设计方法和完整的程序设计语言,用户可通过Vba轻松录制软件操作过程中发生的事件,形成简单的操作模块。

对录制的模块进行操作方法研究,寻找程序语言触发的关键语句,做针对性修改后即可实现原手工操作的自动化。

CoredrawX4中,可通过Vba语言自动加载的图元有以下几个。

①点。

可通过ActiveLayer.Create Ellipse2方法实现,用于单一井圈的加载。

方法如下。

Set s1 =ActiveLayer.CreateEllipse2(x, y,well_size/25.4)
Set OrigSelection=ActiveSelection Range
ActiveSelection.ObjectData(“名称”).Value=well_name
其中,x和y为根据大地坐标与CoredrawX4中页面坐标关系换算以后的页面坐标,以mm(毫米)为单位;well_size为井圈半径的大小,以mm单位;well_name为井名。

大地坐标与页面坐标的换算方法如下。

x=(column_x-x0)*1000/scale_value/25.4+page_x0/25.4
y=(column_y-y0)*1000/scale_value/25.4+page_y0/25.4
其中,x和y为换算后某井的页面坐标;column_x和column_y为该井的大地坐标;x0和y0为参考点的大地坐标;scale_value为绘图的比例尺,以m为单位(如1∶10000的比例尺,则scale_value=10000);page_x0和page_y0为参考点的页面坐标,以mm单位。

②直线。

可通过ActiveLayer.CreateLine Segment方法实现,用于测网及坐标网格加载。

方法如下。

Set s2=ActiveLayer.CreateLineSegment(x1,y1,x2,y2)
s2.ObjectData(“名称”).Value=Line_name
其中x1、y1分别为直线起始点对应的页面纵、横坐标;x2、y2分别为直线终点对应的页面纵、横坐标;Line_name为直线的名称。

③多点线。

可通过ActiveDocument.CreateCurve方法实现,用于不规则线,如断层线或含油面积边线的加载。

方法如下。

Set crv=ActiveDocument.CreateCurve
With crv.CreateSubPath(x0,y0)
For i=2 to point_numbers step 1
.AppendLineSegment x(i), y(i)
Next i
End With
Dim s4 As Shape
Set s4=ActiveLayer.CreateCurve(crv)
s4.Outline.SetProperties 0.12, OutlineStyles(0),CreateRGBColor(0,255, 255)
其中point_numbers为构成线的总点数,x(i)和y(i)分别为第i点的页面纵、横坐标。

此处省略从线文件中统计点数目和读取点坐标的过程。

④标注。

可通过ActiveLayer.CreateArtisticText方法实现。

用于井名、测线号或大地坐标标注的加载。

方法如下:
ActiveLayer.CreateArtisticText x,y, mark_name, , , ,font_size
其中x、y为标注的页面坐标,mark_name为标注名称,font_size为标注大小。

⑤面。

可通过ActiveLayer.Create Rectangle方法实现,用于绘图边框、比例尺的加载。

方法如下。

Set s5=ActiveLayer.CreateRectangle(left_x,top_y,right_x,bottom_y)
其中left_x,top_y,right_x,bottom_y分别为矩形的左、顶、右、底界的页面坐标。

(2)Vba模块集成及图元矢量化加载。

在熟悉Vba程序语言的特性后,用户可通过多个模块的开发,形成独立的操作界面,从而实现任意地区的、不同类型图元的矢量化批量加载。

针对自动矢量化地质制图,可形成“井位加载”、“测网加载”、“多点线”加载等模块。

井位加载的运行界面如图1。

“井位加载”模块包括的功能有:绘图范围界定,井位坐标文件读取,参考点坐标初始化,页
面坐标换算,创建新图层,井别分类显示,标注、图框、比例尺生成等。

其它模块的设计理念及实现方法与“井位加载”模块类似,在此不再详述。

需注意的是,当某一区块的断层较多时,若在Coredraw的图层页面中对所有断层进行逐一剪断,然后区分断层的上盘和下盘,过程十分繁琐。

解决办法是利用Vba编程对断层线进行处理,通过断层线拐点处夹角补角的变化来判断是否将断层线剪断。

其原理如图2。

图2中A、B、C三点为从断层线数据文件中顺序读取的三个点,其中B点为拐点。

在单一断层模式中,过B点后C点的路径发生大幅度改变,∠CBA的补角钝角,;在复合图层模式中,过B点
后C点的路径虽有改变,但幅度较小,∠CBA的补角为锐角。

经过对多种复合断层数据的测试,当
∠CBA的补角≥20°时,可寻找到所有断层的末端点以及分支断层的交界点。

在Vba程序中加入
对∠CBA的补角大小的判断,即可实现对断层线的分段加载,从而解决后期断层处理时的麻烦。

在Vba中运行定制的模块,即可实现对指定图元的批量加载,并可通过CoredrawX4的图形页面浏览功能检查图元显示的效果。

因自动加载的图元均为矢量化图元,故可通过对象管理器实现对特定图元的进一步编辑、处理,以达到满意的效果。

(3)图件后期加工及输出。

按照工业化制图标准检查相关图层及图元,保证编制的矢量化地质图中囊括需要的全部图层。

对图件名称、编绘人员信息等从版面布局的角度进行完善美化,最终形成一张精美的符合工业化制图标准的地质图。

CoredrawX4提供了强大的图形输出功能,即可通过绘图仪实现等比例打印、缩放打印或分幅打印,又可导出形成BMP、Wmf(emf)、Pdf等多类型的图形格式,为后期的地质研究及汇报提供了方便。

4 结语
CoredrawX4强大的图层管理及综合编辑处理功能为地质图件的精确加工提供了平台;其Vba 开发功能让地质技术人员找到了编写实用程序的钥匙,解决了图元自动矢量化加载的难题,大大
提高了地质制图的科技含量和工作效率。

参考文献
[1] 张天纯,张晓强,张健.基于CoredrawX4及其VBA的专题地图集编制研究[J].城市勘
测,2010(6).
[2] 梁建国,徐占华,颜宇.CorelDraw VBA在地图制图中的应用[J].测绘科学,2009(34).
[3] 闫伟,王启蕾,等.运用Winsurf和CoreDraw绘制地质图[J].内江科技,2004(2).。

相关文档
最新文档