- 积分
- 3288
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-7-7
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
这个是用surfer8写的,但是现在用11了,如何进行修改,请大神帮帮忙。
Set SurferApp = CreateObject("Surfer.Application") '创建surfer对象 --------提示出错
SurferApp.Visible = False 'surfer软件不在前台显示,如改为ture就会看到sufer软件处理过程,不美观
SurferApp.GridData DataFile:="D:\出图程序\温度、雨量\Rainfall_60min\datfile\温度.dat", xCol:=1, yCol:=2, zCol:=3, Algorithm:=2, DupMethod:=2, ShowReport:=False, OutGrid:=App.Path & "\差值后.grd", xMin:=105.589, xMax:=106.125, yMin:=28.95, yMax:=29.56, NumCols:=1500, NumRows:=1500
'SurferApp.GridData DataFile:="D:\web\hrw\Rainfall_10min\datfile\雨量.dat", xCol:=1, yCol:=2, zCol:=3, Algorithm:=2, DupMethod:=2, ShowReport:=False, OutGrid:=App.Path & "\差值后.grd", xMin:=105.589, xMax:=106.125, yMin:=28.95, yMax:=29.56, NumCols:=1500, NumRows:=1500
'是利用 VB 代码控制 Surfer 来绘制等值线,生成一个空白的绘图页。用Kriging(克里格)法将资料内插到网格点上,并定义网格的最大(小)经纬度,Datefile为包含路径的文件名,这里为雨量数据文件,Outgrid 为数据插之后的输出文件。
SurferApp.GridBlank InGrid:=App.Path & "\差值后.grd", BlankFile:=App.Path & "\永川边界.bln", OutGrid:=App.Path & "\差值后.grd"
'用.bln 文件白化等值线,去掉边界外的插值, 并重新保存,为后面绘制等值线做准备。
Set Plot = SurferApp.Documents.Add(1)
Set ContourMapFrame = Plot.Shapes.AddContourMap(App.Path & "\差值后.grd ")
'生成一个空白的绘图页,并在空白绘图页上生成白化后的等值线图,并指定其文件名为ContourMapFrame。
'Set ContourMapFrame = plot.Shapes.AddContourMap("D:\dat.grd") '生成一个等值线图
Set ContourMap = ContourMapFrame.Overlays(1)
ContourMap.Levels.LoadFile (App.Path & "\温度.lvl")
'降水等级文件可根据实际情况调整,以绘出较为美观的图形。
ContourMap.SmoothContours = 4
ContourMap.ShowColorScale = True
ContourMap.FillContours = True
'载入等值线等级文件,并平滑等值线,设置显示色标,最后,填充等值线。
ContourMapFrame.Axes(1).Visible = False '设置是否显示坐标轴
ContourMapFrame.Axes(3).Visible = False
ContourMapFrame.Axes(2).Visible = False
ContourMapFrame.Axes(4).Visible = False
ContourMap.ShowColorScale = True '显示色标
ContourMap.ColorScale.FrameLine.Width = 0#
ContourMap.ColorScale.Left = ContourMap.Width + ContourMap.Left - 0.9
ContourMap.ColorScale.Width = 0.6
ContourMap.ColorScale.Height = 2.1
ContourMap.ColorScale.Top = ContourMap.Top - (ContourMap.Height - ContourMap.ColorScale.Height) / 1.1
ContourMap.ColorScale.LabelFont.Size = 8
'等值线数值标注的字体和大小
ContourMap.LabelFont.Size = 5
Set BaseMap = Plot.Shapes.AddBaseMap(ImportFileName:=App.Path & "\永川边界.bln")
'给等值线图plot 加载边界数据。
Set postmapframe = Plot.Shapes.AddPostMap(dataFileName:=App.Path & "\站点信息.txt", xCol:=1, yCol:=2, LabCol:=3)
'添加张贴图区域自动站数据填图图层。其中站点信息.txt为自动站数据,第一行为经度,第二行为纬度,第三行为站点名称
Set postmap1 = postmapframe.Overlays(1)
'下面对张贴图的属性进行设置
Set MkFormat = postmap1.Symbol
With MkFormat
.Size = 0.05
.Index = 12
End With
'设置站点符号的大小和形状
Set lbFont = postmap1.LabelFont
With lbFont
.Face = "宋体"
.Size = 8
End With
'设置站点名称的字体和大小
'接下来是将雨量加载到图上,我是重复上面叠加站点的方法
Set BaseMap = Plot.Shapes.AddBaseMap(ImportFileName:=App.Path & "\永川边界.bln")
'给等值线图plot 加载边界数据。
Set postmapframe = Plot.Shapes.AddPostMap(dataFileName:="D:\出图程序\温度、雨量\Rainfall_60min\datfile\温度.dat", xCol:=1, yCol:=2, LabCol:=3)
'添加张贴图区域自动站数据填图图层。其中站点信息.txt为自动站数据,第一行为经度,第二行为纬度,第三行为雨量
Set postmap1 = postmapframe.Overlays(1)
'下面对张贴图的属性进行设置
Set MkFormat = postmap1.Symbol
With MkFormat
.Size = 0.000000001
.Index = 0
End With
'设置站点符号的大小和形状
Set lbFont = postmap1.LabelFont
With lbFont
.Face = "宋体"
.Size = 7
End With
'设置雨量称的字体和大小
Set adtext = Plot.Shapes.AddText(X:=5.6, y:=3.2, Text:="单位:摄氏度") 'x、y是坐标
With adtext.Font
.Face = "宋体"
Size = 5
End With
' Set adtext = Plot.Shapes.AddText(X:=1.5, y:=8.3, Text:="永川区" & IntervalValue & "分钟温度实况图") 'x、y是坐标
Set adtext = Plot.Shapes.AddText(X:=1.5, y:=8.3, Text:="永川区自动站小时温度实况图") 'x、y是坐标
With adtext.Font
.Face = "宋体"
Size = 5
'在图形的空白处加入标注
End With
'显示时间
'Set adtext = Plot.Shapes.AddText(X:=1.5, y:=8.15, Text:=Format(DateAdd("n", -IntervalValue, Now), "yyyy-MM-dd HH:m0") & Format(Now, "-HH:m0")) x、y是坐标
'Set adtext = Plot.Shapes.AddText(X:=1.5, y:=8.15, Text:=Mid(Format(DateAdd("n", -IntervalValue, Now), "yyyy-MM-dd HH:mm"), 1, 15) & "0" & Mid(Format(Now, "-HH:mm"), 1, 15))
'Set adtext = Plot.Shapes.AddText(X:=1.8, y:=8.15, Text:=Mid(Format(DateAdd("n", -IntervalValue, Now), "yyyy-MM-dd HH"), 1, 15) & ":00")
Set adtext = Plot.Shapes.AddText(X:=1.8, y:=8.15, Text:=Format(Now(), "yyyy-MM-dd hh" & ":00"))
With adtext.Font
.Face = "宋体"
Size = 5
End With
Plot.Shapes.SelectAll '选中所有
Plot.Selection.OverlayMaps '合并上面所有图层图形
Plot.Export fileName:=App.Path & "\温度图.gif", Options:="Width=600,Height=800"
Plot.Close
SurferApp.Quit
'绘图已完成,释放Surfer模块
Form1.Image1.Picture = LoadPicture(App.Path & "\温度图.gif")
'输出图形文件,退出Surfer。其中,data.gif为导出的gif图形文件名,Width、Height 分别为导出位图的宽度和高度(单位为像素)。
|
|