通过下面的vb代码调用surfer自动网格化生成L1.grd,内容如下图所示。
下面是一段参考代码:
strGridFile = Left(strInFile, Val(InStrRev(strInFile, “.”)) – 1) + “.grd” ‘把扩展名改为.grd
Set objSurfer = CreateObject(“Surfer.Application”) ‘创建Surfer对象
objSurfer.Visible = False ‘surfer软件本身不在前台显示
objSurfer.GridData DataFile:=strInFile, Algorithm:=srfKriging, _
DupMethod:=srfDupNone, ShowReport:=False, OutGrid:=strGridFile ‘把离散的数据文件转换为格网文件
Set objPlot = objSurfer.Documents.Add(srfDocPlot) ‘创建srf文档
Set objMapFrame = objPlot.Shapes.AddContourMap(strGridFile) ‘创建等值线图并添加到文档
objPlot.Export FileName:=Left(strInFile, Val(InStrRev(strInFile, “.”)) – 1) + “.bmp” ‘输出bmp
Picture1.Picture = LoadPicture(Left(strInFile, Val(InStrRev(strInFile, “.”)) – 1) + “.bmp”) ‘显示bmp
End Sub
surfer6 grd文件格式:

下面是核心代码:
Dim srf As Object
Private Sub Form_Load()
Set srf = CreateObject(“Surfer.Application”)
srf.Visible = True
srf.DefaultFilePath = “D:\MATLAB7\work\MatFor3D\test” '设置缺省路径
srf.ScreenUpdating = True '设置图形窗口是否刷新
srf.GridData DataFile:=“L1.dat”, OutFmt:=2, NumCols:=50, NumRows:=50, xMin:=100, xMax:=5000, yMin:=-3000, yMax:=0’OutFmt:=2就是设置OutFmt = srfGridFmtAscii
'OutFmt:=2就是设置OutFmt = srfGridFmtAscii设置OutFmt = srfGridFmtXYZ
End Sub

通过VB代码利用Surfer软件将离散数据自动网格化生成L1.grd文件,并进一步创建等值线图,最后导出为.bmp图像。核心代码中设置了Surfer的缺省路径、图形窗口刷新状态以及网格化参数。
3398

被折叠的 条评论
为什么被折叠?



