爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7431|回复: 9

脚本程序读取NC数据的问题

[复制链接]

新浪微博达人勋

发表于 2011-12-5 09:57:05 | 显示全部楼层 |阅读模式

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

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

x
我这两天开始研究用脚本批量画图,用sample里的nc数据试了没问题,用自己的nc数据就出错了,读出来的数据都是一个值,不知道是哪里出错了?
以下是脚本和画出来的图:
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 *

myApp = MIApp()
myApp.OpenLayer(".\\Map\\country1.shp")
myApp.SetLegendBreak("country1.shp",0,Color.Yellow,Color.Blue,1,True,False,True)
myApp.OpenNCData(".\\CCTM_v47_ebi_cb05cl_ae5_aq_mpi_pg64_mpich2.ACONC.2011324")
myApp.SetDrawType("shaded")
myApp.Display("O3")
myApp.SetTitle("test")
myApp.MapLayout.Refresh()
myApp.SaveFigure(".\\test.png")
Application.Run(myApp)

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

新浪微博达人勋

发表于 2011-12-5 10:27:13 | 显示全部楼层
你的nc数据能用MeteoInfo软件打开绘图吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-12-5 10:38:03 | 显示全部楼层
可以的 手动画都正常
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-12-5 10:43:45 | 显示全部楼层

也可能是数据路径的问题,你把路径写全。比如把".\\Map\\country1.shp"改为"C:\\Program Files\\MeteoInfo\\Map\\country1.shp"。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-12-5 10:57:14 | 显示全部楼层
这个试过的,之前数据放在别的盘,路径是写全的,出图还是一样。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-12-5 11:25:18 | 显示全部楼层
dolces 发表于 2011-12-5 10:57
这个试过的,之前数据放在别的盘,路径是写全的,出图还是一样。

如果数据不是很大,可以把数据附上或者给我发email。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-12-5 11:45:06 | 显示全部楼层
本帖最后由 dolces 于 2011-12-5 11:48 编辑

附了数据,变量名为‘DCV_Mie’,麻烦你帮忙看看。

CCTM_v47_ebi_cb05cl_ae5_aq_mpi_pg64_mpich2.AEROVIS.2011324

9.21 MB, 下载次数: 7, 下载积分: 金钱 -5

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

新浪微博达人勋

发表于 2011-12-5 14:50:17 | 显示全部楼层
dolces 发表于 2011-12-5 11:45
附了数据,变量名为‘DCV_Mie’,麻烦你帮忙看看。

你的NC数据有Labmbert投影,MIApp类的OpenNCData函数有bug,忘了变换投影,已经改了,需要下载最新的MeteoInfoC.dll文件(见置顶的帖子)。脚本如下:

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 *

BaseDir = "C:\\Program Files (x86)\\MeteoInfo\\"
MapDir = BaseDir + "Map\\"
DataDir = "E:\\temp\\nc\\"

myApp = MIApp()
myApp.OpenLayer(MapDir + "country1.shp")
myApp.SetLegendBreak("country1.shp",0,Color.Yellow,Color.Blue,1,True,False,True)
myApp.OpenNCData(DataDir + "CCTM_v47_ebi_cb05cl_ae5_aq_mpi_pg64_mpich2.AEROVIS.2011324")
#myApp.ProjectLayers(myApp.MeteoDataInfo.ProjInfo.ToProj4String())
myApp.SetDrawType("shaded")
myApp.Display("DCV_Mie")
myApp.SetTitle("test")
myApp.MoveLayerToTop("country1.shp")
myApp.ZoomLonLat(80,150,10,45)
myApp.MapLayout.DefaultLayoutMap.GridLineColor = Color.DarkGray
myApp.MapLayout.PaintGraphics()
myApp.SaveFigure("E:\\temp\\test.png")
Application.Run(myApp)

Lambert投影:
Image00784.png

经纬度:
Image00785.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-12-5 15:30:36 | 显示全部楼层
非常感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2011-12-20 13:59:37 | 显示全部楼层
功能越来越完善了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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