Surfer作为一款强大的绘图软件,被广泛应用于地质地球物理及气象等领域。Surfer不仅界面友好,操作简单,同时提供了程序自动化功能,下面介绍如何通过程序实现自动实现网格化。
本次编程开发环境采用VB2010,Surfer版本为Surfer13,需要事先在引用中添加Surfer。具体代码如下:
Dim SurferAppMapGRD As Object '定义Surfer软件启动对象
SurferAppMapGRD = CreateObject("Surfer.Application") '创建Surfer
Dim SurferInFile As String
'网格化数据,采用3列逗号分隔数据,例如“D:\abc.dat”
Dim SurferOutFile As String,例如“D:\abc.grd” 、
'生成网格化的数据文件名名称
SurferInFile = DrawDataFilenameDat
SurferOutFile = DrawDataFilenameGrd
SurferAppMapGRD.Visible = False '因为仅仅是计算,不显示效率高点
Dim retValue As Boolean
retValue = SurferAppMapGRD.GridData(DataFile:=SurferInFile, Algorithm:=Surfer.SrfGridAlgorithm.srfKriging, _
ShowReport:=False, OutGrid:=SurferOutFile, _
xCol:=1, yCol:=2, zCol:=3, _
xMin:=HorizontalMinValue, xMax:=HorizontalMaxValue, _
yMin:=VerticalMinValue, yMax:=VerticalMaxValue)
'x,y,z分别对应数据文件的1,2,3列,当然也可以根据自己需要调整
'网格范围根据读入数据的实际情况来定,分别为x,y方向的最小值最大值,
SurferAppMapGRD.quit() '退出Surfer应用程序