登录捍更多精彩内容~
您应该 登录 才可以下载淮surfer怎么画等值线,没有帐号?
x
本帖最簈ianz98 于 2019-6-10 16:26 编辑
几年前用VB搞过surfer自动绘制等值线图。最近尝试用PYTHON来实现类似用途,可以推动插值、白化、合并图层。工壮是python3.6 + surfer16 。但是在等值线时航问题,编写如下代码:
import win32com.client
import os
def changedate():
app = win32com.client.gencache.EnsureDispatch('Surfer.Application')
Plot = app.Documents.Add(1)
app.Visible = True
xpath=os.path.dirname(os.path.realpath(__file__))
datafile=os.path.join(xpath,'temp.dat')
gridfile=os.path.join(xpath,'temp.grd')
gridoutf=os.path.join(xpath,'temp-out.dat')
blankgrid=os.path.join(xpath,'temp_blank.grd')
outlinefile=os.path.join(xpath,'ZJ_outline.bln')
LS=os.path.join(xpath,'windlevel.lvl')
colormap=os.path.join(xpath,'windcolor.clr')
basefile=os.path.join(xpath,'ZjBack2.bln') #基底图
postfile=os.path.join(xpath,'StaPotst.dat') #张贴图
export_img=os.path.join(xpath,'temp.jpg') #输 /> #进行插值
app.GridData(DataFile=datafile,
xCol=1,
yCol=2,
zCol=3,
ShowReport=False,
Algorithm=2,
xMin=117.5,
xMax=123.5,
yMin=27,
yMax=31.5,
NumCols="1201",
NumRows="901",
OutGrid=gridoutf,
OutFmt=4)
#白化网羹
app.GridBlank(InGrid=gridfile,
BlankFile=outlinefile,
OutGrid=blankgrid)
###匀值线图
MapFrame1 = Plot.Shapes.AddContourMap(GridFileName=blankgrid)
#改变等值线图边界范围
MapFrame1.SetLimits(xMin=118, xMax=123, yMin=27, yMax=31.4)
MapFrame1.xLength=6
MapFrame1.yLength=5
ContourLayer = MapFrame1.Overlays(1)
ContourLayer.Name = "等值线图" #修改等值线图名称
#ContourLayer.Levels.Set(LS)
###赠底图
MapFrame2 = Plot.Shapes.AddBaseMap(ImportFileName=basefile)
BaseLayer1 = MapFrame2.Overlays(1)
BaseLayer1.Name = "基底图" #修改等值线图名称
###寓点图
MapFrame3 = Plot.Shapes.AddPostMap(postfile,LabCol=3)
PostMap = MapFrame3.Overlays(1)
PostMap.Name = "张贴图"
###合并图层生成一讣层
MapFrame1.Selected=True
MapFrame2.Selected=True
MapFrame3.Selected=True
NewMapFrame = Plot.Selection.OverlayMaps()
Plot.Shapes.SelectAll()
Plot.Export(export_img) #导超
#关闭堤 /> Plot.Close()
app.Quit()
代码可以执行,能够生成等值线图。
当我崔改ContourLayer.Levels.Set(LS)
ContourLayer的的Levels誓时褐抱错。但是ContourLayer.Name 这冈是可以修改的。
结论是:
1、PYTHON不是SURFER并不是surfer推吉发语言,发现有些语法和对显在自带的脚本编辑魄可用的,但是换成python就不行。网上能参考的PYTHON代码较少。
2、感景用PYTHON还是无法完美的祏rfer绘制等值线图,也用matplotlib库绘制过等值线图surfer怎么画等值线,但是聚类的方式跟效果和克里筋距还是很?font>
如果有其他人有更好的方法可以在此交?font>
密码更改失败请联系qq:937062711
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-136781-1.html