爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: chérie

新手使用MeteoInfo报错

[复制链接]

新浪微博达人勋

发表于 2013-6-1 19:27:41 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-6-2 21:24:50 | 显示全部楼层
麻烦帮我看下,昨天没上来

RFContour.py

3.72 KB, 下载次数: 2, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-6-3 22:25:59 | 显示全部楼层
chérie 发表于 2013-6-2 21:24
麻烦帮我看下,昨天没上来

应该没有什么问题。
Image00017.png


  1. # This Python file uses the following encoding: GB2312
  2. import clr
  3. clr.AddReferenceByPartialName("System")
  4. clr.AddReferenceByPartialName("System.Windows.Forms")
  5. clr.AddReferenceByPartialName("System.Drawing")
  6. from System import *
  7. from System.Windows.Forms import *
  8. from System.Drawing import *
  9. clr.AddReference("MeteoInfoC.dll")
  10. clr.AddReference("wContour.dll")
  11. from MeteoInfoC import *
  12. from MeteoInfoC.Legend import *
  13. from MeteoInfoC.Layout import *
  14. from MeteoInfoC.Data import *
  15. from MeteoInfoC.Projections import *

  16. BaseDir = "C:\\Program Files (x86)\\MeteoInfo\\"
  17. MapDir = BaseDir + "Map\\"
  18. LegendDir = BaseDir + "Legend\\"
  19. DataDir = "D:\\Temp\\micaps\\"

  20. #---- 创建MIApp类的对象
  21. myApp = MIApp()
  22. #---- 添加图层
  23. myApp.OpenLayer(MapDir + "bou2_4p.shp")
  24. #---- 设置图层渲染
  25. myApp.SetLegendBreak("bou2_4p.shp",0,Color.Yellow,Color.Gray,1,True,False,True)

  26. #---- Lambert
  27. myApp.ProjectLayers("+proj=lcc+lat_1=25+lat_2=47+lon_0=105")

  28. #---- 按照经纬度范围缩放地图
  29. myApp.ZoomLonLat(78,130,15,53)

  30. #----  设置屏蔽图层(只绘制中国境内图形)
  31. #myApp.SetMaskout("浙江省界.shp")
  32. #---- 设置绘图类型为shaded
  33. myApp.SetDrawType("shaded")
  34. #---- 站点数据插值为格点数据的设置
  35. #myApp.SetInterpolation(118.00,27.00,123.00,32.00,200,200,"IDW_Radius",1,1)
  36. #---- 设置图例文件
  37. myApp.SetLegendScheme(LegendDir + "rain1.lgs")

  38. #---- 设置DefalutLayoutMap(图层显示)
  39. myApp.MapLayout.ActiveLayoutMap.DrawGridLabel = False
  40. myApp.MapLayout.ActiveLayoutMap.DrawGridLine = False
  41. myApp.MapLayout.ActiveLayoutMap.DrawNeatLine = False
  42. myApp.MapLayout.ActiveLayoutMap.Left = 10
  43. myApp.MapLayout.ActiveLayoutMap.Top = 10
  44. myApp.MapLayout.ActiveLayoutMap.Width = 620
  45. myApp.MapLayout.ActiveLayoutMap.Height = 450

  46. #---- 设置DefaultTitle(图形标题)
  47. aText = myApp.MapLayout.AddText("Temp",220,50,"黑体",12)

  48. #---- 设置DefaultLegend(图例)
  49. aLegend = myApp.MapLayout.AddLegend(550,220)
  50. #aLegend.LegendStyle = LegendStyleEnum.Normal        
  51. aLegend.DrawNeatLine = False
  52. aLegend.Title = "降水量(毫米)"
  53. aLegend.BackColor = Color.White
  54. aLegend.Font = Font("Arial", 8)

  55. #---- 设置时间
  56. sTime = DateTime.Parse("2012-06-16 08:00")
  57. aTime = sTime.AddHours(-6)

  58. #---- 获取站点数据
  59. #myApp.RemoveDataLayers()
  60. inFile = sTime.ToString("yyMMddHH") + ".048"
  61. print inFile
  62. #---- 打开文本格式站点数据文件
  63. #myApp.OpenLonLatData(DataDir + inFile)  
  64. #---打开格点数据文件
  65. myApp.OpenMICAPSData(DataDir + inFile)
  66. #---- 获取累计降水站点数据
  67. stData = myApp.GetGridData("var")

  68. #---- 绘制累计降水图层
  69. myApp.Display(stData)
  70. #---- 调整图层顺序(以避免压盖)
  71. myApp.MoveLayerToTop("bou2_4p.shp")  

  72. #---- 设置标题名称
  73. title = " 全国降水量实况图\n" + sTime.ToString("yyyy-MM-dd HH:00")
  74. #myApp.SetTitle(title)     
  75. #---- 设置图例名称
  76. #myApp.MapLayout.DefaultLegend.Title = "降水量(毫米)"
  77. #---- 绘制图形
  78. myApp.MapLayout.PaintGraphics()
  79. #---- 输出图形为文件
  80. outFile = "Prec_" + aTime.ToString("yyyyMMddHH") + "-" + sTime.ToString("yyyyMMddHH") + ".png"
  81. print outFile
  82. #myApp.SaveFigure(DataDir + outFile)   

  83. #---- 显示程序窗体(只是为了看效果,自动运行时不需要)
  84. myApp.Show()
  85. #Application.Run(myApp)



密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-6-4 10:34:41 | 显示全部楼层
我试了好几个micaps文件,还是报

ValueError: 索引超出范围。必须为非负值并小于集合大小。
参数名: index

是不是我安装的meteoinfo版本问题,现在是version 1.0.8
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-6-4 10:44:30 | 显示全部楼层
chérie 发表于 2013-6-4 10:34
我试了好几个micaps文件,还是报

ValueError: 索引超出范围。必须为非负值并小于集合大小。

你更新最新的文件试试(MeteoInfo最新文件
http://bbs.06climate.com/forum.p ... 126&fromuid=106
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-6-4 12:24:57 | 显示全部楼层
可以了,谢谢

插值后的矢量数据能导出成通用的格式吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-6-4 13:37:57 | 显示全部楼层
chérie 发表于 2013-6-4 12:24
可以了,谢谢

插值后的矢量数据能导出成通用的格式吗?

如果你指的是生成的等值线图层,可以存为shape文件。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-6-6 12:38:45 | 显示全部楼层
由于ArcGIS对IronPython支持的不好,我问下,MeteoInfo支持python吗?我能用Python调用DLL吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-6-6 14:09:40 | 显示全部楼层
chérie 发表于 2013-6-6 12:38
由于ArcGIS对IronPython支持的不好,我问下,MeteoInfo支持python吗?我能用Python调用DLL吗?

MeteoInfo支持IronPython
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-6-6 18:45:11 | 显示全部楼层
能不能把插值的结果存放到ARCSDE或者GEODATABASE里?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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