失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python绘制等值线图_使用python祏rfer绘制等值线图的方式适题。

python绘制等值线图_使用python祏rfer绘制等值线图的方式适题。

时间:2021-11-15 13:50:48

相关推荐

python绘制等值线图_使用python祏rfer绘制等值线图的方式适题。

登录捍更多精彩内容~

您应该 登录 才可以下载淮surfer怎么画等值线,没有帐号?

x

本帖最簈ianz98 于 -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-/a/ruanjian/article-136781-1.html

如果觉得《python绘制等值线图_使用python祏rfer绘制等值线图的方式适题。》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。