- 积分
- 56379
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-6-21
- 最后登录
- 1970-1-1

|
发表于 2013-6-3 22:25:59
|
显示全部楼层
chérie 发表于 2013-6-2 21:24
麻烦帮我看下,昨天没上来
应该没有什么问题。
 - # 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")
- clr.AddReference("wContour.dll")
- from MeteoInfoC import *
- from MeteoInfoC.Legend import *
- from MeteoInfoC.Layout import *
- from MeteoInfoC.Data import *
- from MeteoInfoC.Projections import *
- BaseDir = "C:\\Program Files (x86)\\MeteoInfo\\"
- MapDir = BaseDir + "Map\\"
- LegendDir = BaseDir + "Legend\\"
- DataDir = "D:\\Temp\\micaps\\"
- #---- 创建MIApp类的对象
- myApp = MIApp()
- #---- 添加图层
- myApp.OpenLayer(MapDir + "bou2_4p.shp")
- #---- 设置图层渲染
- myApp.SetLegendBreak("bou2_4p.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(78,130,15,53)
- #---- 设置屏蔽图层(只绘制中国境内图形)
- #myApp.SetMaskout("浙江省界.shp")
- #---- 设置绘图类型为shaded
- myApp.SetDrawType("shaded")
- #---- 站点数据插值为格点数据的设置
- #myApp.SetInterpolation(118.00,27.00,123.00,32.00,200,200,"IDW_Radius",1,1)
- #---- 设置图例文件
- myApp.SetLegendScheme(LegendDir + "rain1.lgs")
- #---- 设置DefalutLayoutMap(图层显示)
- 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
- #---- 设置DefaultTitle(图形标题)
- aText = myApp.MapLayout.AddText("Temp",220,50,"黑体",12)
- #---- 设置DefaultLegend(图例)
- aLegend = myApp.MapLayout.AddLegend(550,220)
- #aLegend.LegendStyle = LegendStyleEnum.Normal
- aLegend.DrawNeatLine = False
- aLegend.Title = "降水量(毫米)"
- aLegend.BackColor = Color.White
- aLegend.Font = Font("Arial", 8)
- #---- 设置时间
- sTime = DateTime.Parse("2012-06-16 08:00")
- aTime = sTime.AddHours(-6)
- #---- 获取站点数据
- #myApp.RemoveDataLayers()
- inFile = sTime.ToString("yyMMddHH") + ".048"
- print inFile
- #---- 打开文本格式站点数据文件
- #myApp.OpenLonLatData(DataDir + inFile)
- #---打开格点数据文件
- myApp.OpenMICAPSData(DataDir + inFile)
- #---- 获取累计降水站点数据
- stData = myApp.GetGridData("var")
- #---- 绘制累计降水图层
- myApp.Display(stData)
- #---- 调整图层顺序(以避免压盖)
- myApp.MoveLayerToTop("bou2_4p.shp")
- #---- 设置标题名称
- title = " 全国降水量实况图\n" + sTime.ToString("yyyy-MM-dd HH:00")
- #myApp.SetTitle(title)
- #---- 设置图例名称
- #myApp.MapLayout.DefaultLegend.Title = "降水量(毫米)"
- #---- 绘制图形
- myApp.MapLayout.PaintGraphics()
- #---- 输出图形为文件
- outFile = "Prec_" + aTime.ToString("yyyyMMddHH") + "-" + sTime.ToString("yyyyMMddHH") + ".png"
- print outFile
- #myApp.SaveFigure(DataDir + outFile)
- #---- 显示程序窗体(只是为了看效果,自动运行时不需要)
- myApp.Show()
- #Application.Run(myApp)
|
|