爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4152|回复: 2

IronPython脚本绘制文本格式错误

[复制链接]

新浪微博达人勋

发表于 2012-6-28 15:31:16 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
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 *

import sys
sys.path.append("C:\\Program Files\\MeteoInfo")
clr.AddReference("MeteoInfoC.dll")
from MeteoInfoC import *
from MeteoInfoC.Layout import *
from MeteoInfoC.Data import *
from MeteoInfoC.Legend import *
from MeteoInfoC.Projections import *

#---- 设置路径变量
BaseDir = "C:\\Program Files\\MeteoInfo\\"
MapDir = BaseDir + "Map\\"
LegendDir = BaseDir + "Legend\\"
DataDir = BaseDir + "Sample\\MICAPS\\"
#---- 创建MIApp类的对象
myApp = MIApp()
#---- 添加图层
myApp.OpenLayer("D:\\IronPython Demo\\map\\huzhou_new.shp")
#---- 设置图层渲染
myApp.SetLegendBreak("huzhou_new.shp",0,Color.Yellow,Color.Gray,1,True,False,True)
#---- Lambert投影
#myApp.ProjectLayers("+proj=lcc+lat_1=25+lat_2=47+lon_0=105")
#---- 按照经纬度范围缩放地图
myApp.ZoomLonLat(109,121,29,32)
#---- 设置绘图类型为shaded
myApp.SetDrawType("shaded")
#---- 站点数据插值为格点数据的设置
myApp.SetInterpolation(109,121,29,32,250,250,"IDW_Radius",2,1)
#---- 设置图例文件
myApp.SetLegendScheme("D:\\IronPython Demo\\legend\\rain.lgs")
#---- 设置ActiveLayoutMap(图层显示)
myApp.MapLayout.ActiveLayoutMap.DrawGridLabel = False
myApp.MapLayout.ActiveLayoutMap.DrawGridLine = False
myApp.MapLayout.ActiveLayoutMap.DrawNeatLine = False
myApp.MapLayout.ActiveLayoutMap.Left = 10
myApp.MapLayout.ActiveLayoutMap.Top = 10
myApp.MapLayout.ActiveLayoutMap.Width = 620
myApp.MapLayout.ActiveLayoutMap.Height = 450

inFile = "2011WindD.csv"
print inFile
myApp.OpenLonLatData("D:\\IronPython Demo\\"+inFile)  
#---- 生成6小时降水量图层
stData = myApp.GetStationData("WindD")
myApp.Display(stData)
print "Display finished"  

myApp.SetTitle("Demo - Draw station model")
myApp.MapLayout.PaintGraphics()
Application.Run(myApp)

在myApp.Display(stData)处出错,错误信息:
ValueError: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

2011WindD.csv (1.92 KB, 下载次数: 2)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-6-28 20:58:43 | 显示全部楼层
这是类库里一个bug引起的,已经更新了MeteoInfoC.dll文件(见MeteoInfo板块置顶帖子)。你下载新的类库文件试试。

另外myApp.SetTitle("Demo - Draw station model")已经不再支持,可用myApp.MapLayout.AddText("Demo - Draw station model", 320, 20)来实现。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-6-29 10:12:15 | 显示全部楼层
谢谢王老师,问题已解决!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表