利用SurferScripter自动生成高质量高密度电法成果图侯继荣1,2、张会强1,2、黄小年1,2(1,中交第一公路勘察设计研究院有限公司西安市710075;2,西安中交公路岩土工程有限公司西安市710075)摘要:本文针对目前高密度电法工作中成图质量和和制图效率中存在的问题,提出了一种利用SurferScripter自动生成高质量的成果图的方法,给出了方法的具体实现过程和详细代码,并通过在青藏高原某高速公路实际工程中的应用,验证了该方法有效性和实用性。关键词:Surfer;高密度电法;自动成图中图分类号:U412.22文献标识码:A1引言高密度电法是近几十年发展起来的的一种工程物探方法,因其勘探点密度大、精度高、效果明显,在工程和环境勘察中应用极为广泛。但在实际勘探中,其解释精度除与野外勘探点密度相关外,与最终成果图的质量也密切相关。目前国内高密度电法成果图大都利用瑞典反演软件RES2Dinv直接生成,生成的成果图为位图格式,横向最大像素点个数与成图计算机显示器最大像素点个数一致,当勘探剖面较长或者为提高勘探精度而增加电极数量时,受制于显示器的分辨率,成果图质量无法相应提高,当电极数量大于一定时成果图甚至无法反映全部勘探点的数据特征,使解释精度受到影响。解决这个问题的一种方法是将RES2Dinv反演结果保存为Surfer数据格式的文件,在Surfer下手工绘制能反映全面数据特征且不受的计算机显示器影响的高质量成果图,但这种成图方法操作步骤繁琐,成图效率极低,限制了其在实际生产中应用。本文通过在Surfer自带的开发工具SurferScriper上进行二次开发,将保存后的数据在Surfer下自动、快速成图,能极大地提高制作高质量成图的效率。2Surfer及SurferScripter简介Surfer是美国GoldenSoftware公司推出的一套二维和三维图形绘制软件,可以利用其绘制等值线图、表面图、阴影地貌图等多种地质图形。除了强大的手动绘图功能外,Surfer还提供多种ActiveX自动化对象(如图1所示),每一个自动化对象都有其自己的属性和方法,其中属性描述的是对象的状态,方法是对象的执行功能。通过编程给属性赋予不同的参数值和利用对象的方法执行各种操作,就可以实现Surfer软件提供的所有绘图功能。SurferScripter是Surfer自带的二次开发工具,利用其提供编程语言ScripterBasicLanguage可以在不依赖外部编程工具的情况下操作控制Surfer自动化对象,实现图形绘制自动化。图1:Surfer对象的层序关系3数据保存为Surfer格式的方法、保存后的文件及其用途为了实现SurferScripter自动绘图,必须清楚绘图所使用的数据文件的形式和内容。将数据保存为Surfer格式目前在RES2Dinv软件上已经实现,但在保存时,选项较多,如图2所示,除第1项迭代次数外,其它选项选择不同,最后保存的文件名和内容也不同,为了方便后面的自动化成图,首先需统一这些选项的选择如下:第2项选择保存为电阻率对数值;第3项选择底图覆盖方法;第4项需要保存的截面只勾选含地形的模型电阻率值。图2:将反演数据保存为Surfer格式的选项按照上面的选择点击确定,将会自动根据原数据文件产生4个文件,下面以原数据文件abc.dat为例,说明保存为Surfer格式后产生的文件及其用途:abc_topreslog.dat:反演模型电阻率对数值的Surfer格式数据文件,用于制作电阻率等值线图。abc_topreslog.bln:Surfer边界文件,用于绘制基面图,以显示剖面图地形和隐藏绘图边界外的图形元素。abc_topreslog.lvl:Surfer等级数据文件,用于用色谱方式表示电阻率的大小。abc_topreslog_post.dat:张贴图数据文件,用于表示勘探点的位置、高程等信息,该文件数据主要有三列:第一列用于用平距方式表示勘探点位置;第二列为勘探点的高程;第三列用于用地面斜距方式表示勘探点位置。4自动生成成果图的实现利用Scripter生成成果图就是利用ScripterBasicLanguage编制代码操作各种Surfer自动化对象,在图形文档的同一位置依次添加等值线图、基面图、张贴图等图形对象,并通过调整图形,使各图形叠加组合成最终成果图。程序流程为:创建Surfer程序对象→建立图形文档→读取电法数据→数据网格化→利用网格化文件绘制等值线图→调用等级数据文件充填等值线,生成用色谱方式表示电阻率的彩色等值线图→调用边界文件绘制基面图,→绘制张贴图,标注勘探点的位置→完成绘图。在绘图过程中,数据网格化是控制成图质量的关键,网格化的行数和列数选择较小时,成果图将无法反映全部数据的特征,影响精度,太大是又会造成计算浪费,因此设置成根据用户输入动态确定网格化的行、列数;网格化插值方法种类较多,克里格法或自然邻近点法比较适合高密度电法数据,但自然邻近点法容易使图形边界产生锯齿状条纹,影响图形美观,所以这里网格方法选择克里格法。Surfer下的图形为矢量图格式,可以任意缩放,但如需要将图形输出为其他格式(如位图)的图形或者打印,就需要设置合适的绘图比例,这里将绘图比例也设置成由用户根据需要输入。下面是生成成果图的主要代码:'创建Surfer对象并建立图形文档SetSrfApp=CreateObject(Surfer.Application)SrfApp.Visible=True'使surfer应用程序可见SetPlotDoc=SrfApp.Documents.Add(srfDocPlot)'提示输入网格化使用的行数和列数cols=InputBox(输入网格化使用的行数)rows=InputBox(输入网格化使用的列数)'数据网格化InFile=YsName+_topreslog.datGridFile=YsName+.grdSrfApp.GridDataDataFile:=InFile,numCols:=cols,NumRows:=rows,_Algorithm:=srfKriging,ShowReport:=False,OutGrid:=GridFile'绘制等值线SetMapFrame=PlotDoc.Shapes.AddContourMap(GridFile)'调用等级数据文件充填等值线SetContourMap=MapFrame.Overlays(1)'InFile=YsName+_topreslog.lvl'绘制基面图,确定绘图边界和显示地形轮廓InFile=YsName+_topreslog.blnSetMapFrame=PlotDoc.Shapes.AddBaseMap(InFile)SetBaseMap=MapFrame.Overlays(1)BaseMap.Fill.Pattern=DiagonalCrossBaseMap.Fill.BackColor=srfColorWhiteBaseMap.Fill.ForeColor=srfColorWhite'用地面斜距方式标注勘探点位置InFile=YsName+_topreslog_post.datSetMapFrame=PlotDoc.Shapes.AddPostMap(InFile)SetPostMap=MapFrame.Overlays(1)PostMap.LabCol=3'用斜距方式标注勘探点位置这样即初步完成了成果图的绘制,如果需要将图形进一步调整或美化,只需再添加改变相关对象属性的代码即可。5应用实例为验证自动化成图方法的实际效果,我们选择了青藏高原某高速公路隧道勘察中的高密度电法资料进行测试,该电法剖面起止桩号为K123+010~K127+110,长度4100米,首先在RES2Dinv软件下直接成图,成果图如图3所示,然后用SurferScripter程序自动成图,输入网格化的行数为2000,列数为200,自动成图过程耗时约两分钟左右,其中大部分时间主要耗费在数据网格化过程中,真正成图过程仅需几秒种,生成的成果图见图4。通过比较可以发现,图4和图3很相似,这也证明了自动生成的成果图是合理的,但图3为位图格式,而图4为矢量图格式,可以任意缩放而不影响显示效果,将两张图同时放大,就可以发现利用SurferScipter自动生成的成果图质量有明显提高,对局部异常细节和异常边界反应更为清晰,如图5所示。如果用传统手工方法在Surfer下制作与图4完全相同的一张图,因为制图步骤较多、操作繁琐,一般需要20分钟以上,利用SurferScipter自动成图技术较传统成图方法具有明显的优势。图3:RES2Dinv直接生成的高密度电法成果图图4:利用SurferScripter自动生成的高密度电法成果图a.RES2Dinv生成的成果图b.利用SurferScripter自动生成的成果图图5:两种成果图的局部放大图6结语目前Surfer软件在工程物探成图中上应用较为广泛,利用其附带SurferScipter进行二次开发,将反演后的电法数据保存为Surfer格式,然后自动生成成果图,解决传统手工绘制高质量成果图中操作繁琐,效率低下的问题,能够简单快速地提高高密度电法成果图的质量,节省大量时间和人力成本。因此,这种自动成图技术可以实际生产中推广,具有较高的实际应有价值。参考文献(1)闫昊明,Surfer8绘图指南[M],武汉:中国科学院测量与地球物理研究所,2006(2)王兴泰等,工程与环境物探新方法新技术[M],北京:地质出版社,1996(3)傅良魁,电法勘探教程[M],北京:地质出版社,1983(4)陈欢欢,李星,丁文秀,Surfer8.0等值线绘制中的十二种插值方法[J],工程地球物理学报,2007,4(1):52~57(5)王四化,邱伯文,陆杰英。利用VB和Surfer实现不连续区域气象资料的自动成图[J],气象水文海洋仪器,2010(4):83~86