- 积分
- 4182
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-6-27
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 孤蓝et 于 2011-12-9 17:07 编辑
问题解决方法:
更新12月9日的dll解决本问题。
问题描述:
继续求助脚本使用,软件版本为最新,并更新了12月5日得dll。
使用欧洲中心数值预报产品,数据类型为第11类数据,脚本如下:
#---- 风场
myApp.SetLegendScheme("C:\\Program Files\\MeteoInfo\\Legend\\EC_WIND.lgs")
myApp.OpenMICAPSData("D:\\Micaps2PPT\\datatran\\ecmwf\\uv\\500\\" + inFile)
myApp.SetDrawType("Barb")
myApp.Display("U","V")
提示如下错误:
d:\Micaps2PPT>miscript run.py
11120520.000
Traceback (most recent call last):
File "run.py", line 114, in <module>
ValueError: 列“Angle”不属于表 。
而后,设置SetDrawType为Streamline或者Vector,脚本均能够正常运行。不知何故?
另外,尝试增加myApp.MeteoDataInfo.MeteoUVStr.IsUV = True,仍然不能解决报错信息。求斑竹大人帮助啊。。。
秀图如下:
脚本如下:
- # This Python file uses the following encoding: GB2312
- #---- 引入类库
- import clr
- clr.AddReferenceByPartialName("System")
- clr.AddReferenceByPartialName("System.Windows.Forms")
- clr.AddReferenceByPartialName("System.Drawing")
- from System import *
- from System.Windows.Forms import *
- from System.Drawing import *
- clr.AddReference("MeteoInfoC.dll")
- from MeteoInfoC import *
- from MeteoInfoC.Layout import *
- from MeteoInfoC.Data import *
- #---- 创建MIApp类的对象
- myApp = MIApp()
- #---- 添加图层
- #---- 设置图层渲染
- #myApp.OpenLayer("C:\\Program Files\\MeteoInfo\\Map\\bou2_4p.shp")
- #myApp.SetLegendBreak("bou2_4p.shp",0,Color.Yellow,Color.Gray,1,True,False,True)
- #只填充轮廓,没有填充色的设置如下!!
- myApp.OpenLayer("D:\\meteoinfocdemo\\新疆地图\\新疆全区.shp")
- myApp.SetLegendBreak("新疆全区.shp",0,Color.Yellow,Color.Black,2,True,False,True)
- myApp.OpenLayer("C:\\Program Files\\MeteoInfo\\Map\\lowres")
- myApp.OpenLayer("C:\\Program Files\\MeteoInfo\\Map\\cnhimap")
- myApp.OpenLayer("C:\\Program Files\\MeteoInfo\\Map\\res1_4m.shp")
- myApp.SetLegendBreak("res1_4m.shp",0,5,Color.Red,Color.Black,True,True,True)
- #myApp.OpenLayer("D:\\最新开发\\航路\\air_line.shp")
- #---- 获取矢量图层对象,并设置标注
- aLayer = myApp.GetVectorLayer("res1_4m.shp")
- aLayer.LabelSet.FieldName = "NAME";
- aLayer.LabelSet.LabelFont = Font("楷体", 10);
- aLayer.LabelSet.Offset = 15;
- aLayer.AddLabels();
- #---- Lambert投影
- myApp.ProjectLayers("+proj=lcc+lat_1=15+lat_2=45+lon_0=80")
- #---- 按照经纬度范围缩放地图
- myApp.ZoomLonLat(50,97,32,55)
- #---- 设置DefalutLayoutMap(图层显示)
- myApp.MapLayout.DefaultLayoutMap.DrawGridLine = True
- myApp.MapLayout.DefaultLayoutMap.DrawNeatLine = True
- myApp.MapLayout.DefaultLayoutMap.Left = 40
- myApp.MapLayout.DefaultLayoutMap.Top = 50
- myApp.MapLayout.DefaultLayoutMap.Width = 640
- myApp.MapLayout.DefaultLayoutMap.Height = 400
- #---- 设置DefaultLegend(图例)
- myApp.MapLayout.DefaultLegend.LegendStyle = LegendStyleEnum.Normal
- myApp.MapLayout.DefaultLegend.DrawNeatLine = True
- myApp.MapLayout.DefaultLegend.Title = " "
- myApp.MapLayout.DefaultLegend.BackColor = Color.White
- myApp.MapLayout.DefaultLegend.Font = Font("Arial", 14)
- myApp.MapLayout.DefaultLegend.Left = 50
- myApp.MapLayout.DefaultLegend.Top = 310
- #---- 设置DefaultTitle(图形标题)
- myApp.MapLayout.DefaultTitle.SetFont("黑体", 12)
- myApp.MapLayout.DefaultTitle.Top = 10
- myApp.MapLayout.DefaultTitle.Left = 0
- #---- 设置起始结束时间
- sTime = DateTime.Parse("2011-12-5 20:00")
- eTime = DateTime.Parse("2011-12-5 20:00")
- #---- 循环
- while sTime <= eTime:
- myApp.RemoveDataLayers()
- inFile = sTime.ToString("yyMMddHH") + ".000"
- print inFile
- #---- 相对湿度
- myApp.SetLegendScheme("C:\\Program Files\\MeteoInfo\\Legend\\EC_RH.lgs")
- myApp.OpenMICAPSData("D:\\Micaps2PPT\\datatran\\ecmwf\\RH\\700\" + inFile)
- myApp.SetDrawType("Shaded")
- myApp.Display("Var")
- #---- 高度场
- myApp.SetLegendScheme("C:\\Program Files\\MeteoInfo\\Legend\\EC_HGT.lgs")
- myApp.OpenMICAPSData("D:\\Micaps2PPT\\datatran\\ecmwf\\height\\500\" + inFile)
- myApp.SetDrawType("Contour")
- myApp.Display("Var")
- #---- 风场
- myApp.SetLegendScheme("C:\\Program Files\\MeteoInfo\\Legend\\EC_WIND.lgs")
- myApp.OpenMICAPSData("D:\\Micaps2PPT\\datatran\\ecmwf\\uv\\500\" + inFile)
- myApp.SetDrawType("Barb")
- myApp.Display("U","V")
- print "Display finished"
- #---- 调整图层顺序(以避免压盖)
-
- #myApp.MoveLayerToTop("bou2_4p.shp")
- myApp.MoveLayerToTop("res1_4m.shp")
- #myApp.MoveLayerToTop("air_line.shp")
- myApp.MoveLayerToTop("新疆全区.shp")
- myApp.MoveLayerToTop("新疆全区.shp")
- #---- 设置标题名称
- title = "EC HGT (" + sTime.ToString("yyyy-MM-dd HH:00") + ")"
- myApp.SetTitle(title)
- #---- 绘制图形
- myApp.MapLayout.PaintGraphics()
- #---- 输出图形为文件
- outFile = "EC_" + sTime.ToString("yyyyMMddHH") + ".png"
- print outFile
- myApp.SaveFigure("D:\\Micaps2PPT\" + outFile)
- #---- 删除6小时降水量图层
- if sTime < eTime:
- myApp.RemoveLastLayer()
- #---- 时间加6小时
- sTime = sTime.AddHours(1)
- #---- 显示程序窗体(只是为了看效果,自动运行时不需要)
- Application.Run(myApp)
复制代码
|
|