爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 19254|回复: 55

最近才学习的meteoinfo,发现周围用的人少真的是学习的一大障碍,只有求助于论坛了

[复制链接]

新浪微博达人勋

发表于 2014-3-25 11:28:55 | 显示全部楼层 |阅读模式

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

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

x
新手编译了一个脚本,一步步按照教程来的,只计算了数据,没有加图层什么的,我知道惨不忍睹,但是周围可以问的人太少,只有求助于家园了,请大家帮我改改。

import clr
clr.AddReferenceByPartialName("System.Windows.Forms")
clr.AddReferenceByPartialName("System.Drawing")
from System.Windows.Forms import *
from System.Drawing import *
clr.AddReference("MeteoInfoC.dll")
from MeteoInfoC import *


myApp = MIApp()
OpenNCData("D:\\MeteoInfo\\lizi\\d03")
d03是wrf转出来的数据,没有后缀

sTime = DateTime.Parse("2010-07-24 18:00")
eTime = DateTime.Parse("2010-08-31 08:00")
(想求这段时间QGRAUP的平均,不知道怎么编了。。)
myApp.LevelIndex = 15
层数是(1到27,随便选了一层)
myApp. SetDrawType ("contour")

GetGridData = myApp.GetGridData("QGRAUP")
想画这个变量的~

myApp.Display("QGRAUP")
不知道是不是这样~~
Application.Run(myApp)

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

新浪微博达人勋

发表于 2014-6-17 10:01:05 | 显示全部楼层
丝路路 发表于 2014-6-16 21:52
我要下载半年的数据,必须要一天一天的下载吗?我点开之后一直卡着的,请问能无法下载(自动回复:请不要 ...


首席下载安装一个ftp客户端软件,建议用FileZilla,开源且功能强大(https://filezilla-project.org/)。在FileZilla软件的站点管理器中创建气象数据下载的站点,见下面的图:
Image00599.png


连接后在/archives/gdas1路径中可以下载gdas1数据用于HYSPLIT或者TrajStat。国内目前的网络环境下载国外网站的数据会比较慢。
Image00600.png

密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2014-3-25 12:30:52 | 显示全部楼层
你把示例数据贴出来,详细说说需求,我可以抽空帮你写一个示例脚本程序,你再进行修改。

脚本程序的写法有多次的更新,你可以在我的博客里尽量看看最新的脚本程序做为参考(有些是Java版的Jython程序,和C#版的IronPython程序有些区别,思路是一样的)。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-25 14:36:07 | 显示全部楼层
o(∩∩)o...哈哈,用的人少,你如果能坚持下去,你就有可能是大牛啊!

我不会meteoinfo及其二次开发,只是用眼睛关心了一下你贴出的代码,发现myApp. SetDrawType ("contour")中SetDrawType前应该是多了个空格吧?!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-25 14:38:13 | 显示全部楼层
MeteoInfo 发表于 2014-3-25 12:30
你把示例数据贴出来,详细说说需求,我可以抽空帮你写一个示例脚本程序,你再进行修改。

脚本程序的写法 ...

数据是wrf转出来的netcdf文件,太大了贴不上来。我用wrf里的arwpost转成ctl和dat文件后,数据描述文件是这样的。
我是想计算某一层不同微物理粒子比如graup,snow,ice,垂直气流的分布以及它们不同组合相加或相乘的值得分布图并和闪电密度图作对比,密度图已经画出来了。

dset ^d03.dat
options  byteswapped
undef 1.e30
title  OUTPUT FROM WRF V3.4.1 MODEL
pdef  198 198 lcc  29.641  104.000   99.500   99.500  60.00000  30.00000  104.00000   2222.220   2222.220
xdef  484 linear  101.57325   0.01001000
ydef  415 linear   27.55691   0.01001000
zdef   27 linear 1 1  
tdef   55 linear 12Z24JUL2010      20MN      
VARS   94
LU_INDEX       1  0  LAND USE CATEGORY (-)
VAR_SSO        1  0  variance of subgrid-scale orography (m2)
LAP_HGT        1  0  Laplacian of orography (m)
U             27  0  x-wind component (m s-1)
V             27  0  y-wind component (m s-1)
W             27  0  z-wind component (m s-1)
PH            27  0  perturbation geopotential (m2 s-2)
PHB           27  0  base-state geopotential (m2 s-2)
T             27  0  perturbation potential temperature (theta-t0) (K)
MU             1  0  perturbation dry air mass in column (Pa)
MUB            1  0  base state dry air mass in column (Pa)
NEST_POS       1  0  - (-)
P             27  0  perturbation pressure (Pa)
PB            27  0  BASE STATE PRESSURE (Pa)
P_HYD         27  0  hydrostatic pressure (Pa)
Q2             1  0  QV at 2 M (kg kg-1)
T2             1  0  TEMP at 2 M (K)
TH2            1  0  POT TEMP at 2 M (K)
PSFC           1  0  SFC PRESSURE (Pa)
U10            1  0  U at 10 M (m s-1)
V10            1  0  V at 10 M (m s-1)
QVAPOR        27  0  Water vapor mixing ratio (kg kg-1)
QCLOUD        27  0  Cloud water mixing ratio (kg kg-1)
QRAIN         27  0  Rain water mixing ratio (kg kg-1)
QICE          27  0  Ice mixing ratio (kg kg-1)
QSNOW         27  0  Snow mixing ratio (kg kg-1)
QGRAUP        27  0  Graupel mixing ratio (kg kg-1)
SHDMAX         1  0  ANNUAL MAX VEG FRACTION (-)
SHDMIN         1  0  ANNUAL MIN VEG FRACTION (-)
SNOALB         1  0  ANNUAL MAX SNOW ALBEDO IN FRACTION (-)
TSLB           4  0  SOIL TEMPERATURE (K)
SMOIS          4  0  SOIL MOISTURE (m3 m-3)
SH2O           4  0  SOIL LIQUID WATER (m3 m-3)
SMCREL         4  0  RELATIVE SOIL MOISTURE (-)
SEAICE         1  0  SEA ICE FLAG (-)
XICEM          1  0  SEA ICE FLAG (PREVIOUS STEP) (-)
SFROFF         1  0  SURFACE RUNOFF (mm)
UDROFF         1  0  UNDERGROUND RUNOFF (mm)
IVGTYP         1  0  DOMINANT VEGETATION CATEGORY (-)
ISLTYP         1  0  DOMINANT SOIL CATEGORY (-)
VEGFRA         1  0  VEGETATION FRACTION (-)
GRDFLX         1  0  GROUND HEAT FLUX (W m-2)
ACGRDFLX       1  0  ACCUMULATED GROUND HEAT FLUX (J m-2)
SNOW           1  0  SNOW WATER EQUIVALENT (kg m-2)
SNOWH          1  0  PHYSICAL SNOW DEPTH (m)
CANWAT         1  0  CANOPY WATER (kg m-2)
SSTSK          1  0  SKIN SEA SURFACE TEMPERATURE (K)
LAI            1  0  Leaf area index (area/area)
MAPFAC_M       1  0  Map scale factor on mass grid (-)
MAPFAC_MX      1  0  Map scale factor on mass grid, x direction (-)
MAPFAC_MY      1  0  Map scale factor on mass grid, y direction (-)
MF_VX_INV      1  0  Inverse map scale factor on v-grid, x direction (-)
F              1  0  Coriolis sine latitude term (s-1)
E              1  0  Coriolis cosine latitude term (s-1)
SINALPHA       1  0  Local sine of map rotation (-)
COSALPHA       1  0  Local cosine of map rotation (-)
HGT            1  0  Terrain Height (m)
TSK            1  0  SURFACE SKIN TEMPERATURE (K)
RAINC          1  0  ACCUMULATED TOTAL CUMULUS PRECIPITATION (mm)
RAINSH         1  0  ACCUMULATED SHALLOW CUMULUS PRECIPITATION (mm)
RAINNC         1  0  ACCUMULATED TOTAL GRID SCALE PRECIPITATION (mm)
SNOWNC         1  0  ACCUMULATED TOTAL GRID SCALE SNOW AND ICE (mm)
GRAUPELNC      1  0  ACCUMULATED TOTAL GRID SCALE GRAUPEL (mm)
HAILNC         1  0  ACCUMULATED TOTAL GRID SCALE HAIL (mm)
REFL_10CM     27  0  Radar reflectivity (lamda = 10 cm) (dBZ)
CLDFRA        27  0  CLOUD FRACTION (-)
SWDOWN         1  0  DOWNWARD SHORT WAVE FLUX AT GROUND SURFACE (W m-2)
GLW            1  0  DOWNWARD LONG WAVE FLUX AT GROUND SURFACE (W m-2)
SWNORM         1  0  NORMAL SHORT WAVE FLUX AT GROUND SURFACE (SLOPE-DEPENDENT) (W m-2)
OLR            1  0  TOA OUTGOING LONG WAVE (W m-2)
XLAT           1  0  LATITUDE, SOUTH IS NEGATIVE (degree_north)
XLONG          1  0  LONGITUDE, WEST IS NEGATIVE (degree_east)
ALBEDO         1  0  ALBEDO (-)
CLAT           1  0  COMPUTATIONAL GRID LATITUDE, SOUTH IS NEGATIVE (degree_north)
ALBBCK         1  0  BACKGROUND ALBEDO (-)
EMISS          1  0  SURFACE EMISSIVITY (-)
NOAHRES        1  0  RESIDUAL OF THE NOAH SURFACE ENERGY BUDGET (W m{-2})
TMN            1  0  SOIL TEMPERATURE AT LOWER BOUNDARY (K)
XLAND          1  0  LAND MASK (1 FOR LAND, 2 FOR WATER) (-)
UST            1  0  U* IN SIMILARITY THEORY (m s-1)
PBLH           1  0  PBL HEIGHT (m)
HFX            1  0  UPWARD HEAT FLUX AT THE SURFACE (W m-2)
QFX            1  0  UPWARD MOISTURE FLUX AT THE SURFACE (kg m-2 s-1)
LH             1  0  LATENT HEAT FLUX AT THE SURFACE (W m-2)
ACHFX          1  0  ACCUMULATED UPWARD HEAT FLUX AT THE SURFACE (J m-2)
ACLHF          1  0  ACCUMULATED UPWARD LATENT HEAT FLUX AT THE SURFACE (J m-2)
SNOWC          1  0  FLAG INDICATING SNOW COVERAGE (1 FOR SNOW COVER) (-)
SR             1  0  fraction of frozen precipitation (-)
LANDMASK       1  0  LAND MASK (1 FOR LAND, 0 FOR WATER) (-)
SST            1  0  SEA SURFACE TEMPERATURE (K)
pressure      27  0  Model pressure (hPa)
height        27  0  Model height (km)
tk            27  0  Temperature (K)
tc            27  0  Temperature (C)
ENDVARS
@ global String comment TITLE =  OUTPUT FROM WRF V3.4.1 MODEL
@ global String comment START_DATE = 2010-07-24_12:00:00
@ global String comment SIMULATION_START_DATE = 2010-07-24_12:00:00
@ global String comment WEST-EAST_GRID_DIMENSION =   199
@ global String comment SOUTH-NORTH_GRID_DIMENSION =   199
@ global String comment BOTTOM-TOP_GRID_DIMENSION =    28
@ global String comment DX =      2222.22
@ global String comment DY =      2222.22
@ global String comment GRIDTYPE = C
@ global String comment DIFF_OPT =     1
@ global String comment KM_OPT =     4
@ global String comment DAMP_OPT =     0
@ global String comment DAMPCOEF =         0.20
@ global String comment KHDIF =         0.00
@ global String comment KVDIF =         0.00
@ global String comment MP_PHYSICS =     6
@ global String comment RA_LW_PHYSICS =     1
@ global String comment RA_SW_PHYSICS =     1
@ global String comment SF_SFCLAY_PHYSICS =     1
@ global String comment SF_SURFACE_PHYSICS =     2
@ global String comment BL_PBL_PHYSICS =     1
@ global String comment CU_PHYSICS =     1
@ global String comment SURFACE_INPUT_SOURCE =     1
@ global String comment SST_UPDATE =     0
@ global String comment GRID_FDDA =     0
@ global String comment GFDDA_INTERVAL_M =     0
@ global String comment GFDDA_END_H =     0
@ global String comment GRID_SFDDA =     0
@ global String comment SGFDDA_INTERVAL_M =     0
@ global String comment SGFDDA_END_H =     0
@ global String comment HYPSOMETRIC_OPT =     2
@ global String comment SF_URBAN_PHYSICS =     0
@ global String comment SHCU_PHYSICS =     0
@ global String comment MFSHCONV =     0
@ global String comment FEEDBACK =     1
@ global String comment SMOOTH_OPTION =     0
@ global String comment SWRAD_SCAT =         1.00
@ global String comment W_DAMPING =     0
@ global String comment MOIST_ADV_OPT =     1
@ global String comment SCALAR_ADV_OPT =     1
@ global String comment TKE_ADV_OPT =     1
@ global String comment DIFF_6TH_OPT =     0
@ global String comment DIFF_6TH_FACTOR =         0.12
@ global String comment OBS_NUDGE_OPT =     0
@ global String comment BUCKET_MM =        -1.00
@ global String comment BUCKET_J =        -1.00
@ global String comment PREC_ACC_DT =         0.00
@ global String comment OMLCALL =     0
@ global String comment ISFTCFLX =     0
@ global String comment ISHALLOW =     0
@ global String comment DFI_OPT =     0
@ global String comment WEST-EAST_PATCH_START_UNSTAG =     1
@ global String comment WEST-EAST_PATCH_END_UNSTAG =   198
@ global String comment WEST-EAST_PATCH_START_STAG =     1
@ global String comment WEST-EAST_PATCH_END_STAG =   199
@ global String comment SOUTH-NORTH_PATCH_START_UNSTAG =     1
@ global String comment SOUTH-NORTH_PATCH_END_UNSTAG =   198
@ global String comment SOUTH-NORTH_PATCH_START_STAG =     1
@ global String comment SOUTH-NORTH_PATCH_END_STAG =   199
@ global String comment BOTTOM-TOP_PATCH_START_UNSTAG =     1
@ global String comment BOTTOM-TOP_PATCH_END_UNSTAG =    27
@ global String comment BOTTOM-TOP_PATCH_START_STAG =     1
@ global String comment BOTTOM-TOP_PATCH_END_STAG =    28
@ global String comment GRID_ID =     3
@ global String comment PARENT_ID =     2
@ global String comment I_PARENT_START =    16
@ global String comment J_PARENT_START =    16
@ global String comment PARENT_GRID_RATIO =     3
@ global String comment DT =        13.33
@ global String comment CEN_LAT =        29.64
@ global String comment CEN_LON =       104.00
@ global String comment TRUELAT1 =        30.00
@ global String comment TRUELAT2 =        60.00
@ global String comment MOAD_CEN_LAT =        30.00
@ global String comment STAND_LON =       104.00
@ global String comment POLE_LAT =        90.00
@ global String comment POLE_LON =         0.00
@ global String comment GMT =        12.00
@ global String comment JULYR =  2010
@ global String comment JULDAY =   205
@ global String comment MAP_PROJ =     1
@ global String comment MMINLU = USGS
@ global String comment NUM_LAND_CAT =    24
@ global String comment ISWATER =    16
@ global String comment ISLAKE =    -1
@ global String comment ISICE =    24
@ global String comment ISURBAN =     1
@ global String comment ISOILWATER =    14
需要我转出来的原始数据吗,这个得邮箱或者QQ发,版主方便透露邮箱不?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-25 14:40:55 | 显示全部楼层
黄小仙儿 发表于 2014-3-25 14:38
数据是wrf转出来的netcdf文件,太大了贴不上来。我用wrf里的arwpost转成ctl和dat文件后,数据描述文件是 ...

MeteoInfo软件的关于(About)菜单和帮助文档里有我的email地址。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-25 15:51:05 | 显示全部楼层
MeteoInfo 发表于 2014-3-25 14:40
MeteoInfo软件的关于(About)菜单和帮助文档里有我的email地址。

刚刚试了各种邮箱还有网盘,数据压缩后还有2个多G,都超过最大限度了。能不能用QQ在线传给你,我知道有些冒昧了。。。方便不?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-25 16:05:37 | 显示全部楼层
黄小仙儿 发表于 2014-3-25 15:51
刚刚试了各种邮箱还有网盘,数据压缩后还有2个多G,都超过最大限度了。能不能用QQ在线传给你,我知道有些 ...

太大了,有没有比较小的示例一下就可以,或者我随便找个数据做个例子
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-25 16:25:30 | 显示全部楼层
MeteoInfo 发表于 2014-3-25 16:05
太大了,有没有比较小的示例一下就可以,或者我随便找个数据做个例子

给您cams.cma.gov.cn的邮箱发了一起转出来第一层嵌套的数据,比较小,就是网格大了一点,其他的应该差不多,
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-26 09:46:18 | 显示全部楼层
本帖最后由 MeteoInfo 于 2014-3-26 09:50 编辑
黄小仙儿 发表于 2014-3-25 16:25
给您cams.cma.gov.cn的邮箱发了一起转出来第一层嵌套的数据,比较小,就是网格大了一点,其他的应该差不 ...

做了一个示例脚本程序,可以参考。之前读取NetCDF文件的功能有一些bug,请下载、更新MeteoInfo最新文件(MeteoInfo最新文件
http://bbs.06climate.com/forum.p ... id=1126&fromuid=106
(出处: 气象家园)


  1. #--------------------------------------------------------        # Author: Yaqiang Wang                                          
  2. # Date: 2014-3-25                                                
  3. # Purpose: Calculate average grid data and plot
  4. # Note: Sample                                                   
  5. #-----------------------------------------------------------
  6. import clr
  7. from System.Collections.Generic import *
  8. clr.AddReference("MeteoInfoC.dll")
  9. from MeteoInfoC import *
  10. from MeteoInfoC.Data import *
  11. from MeteoInfoC.Data.MeteoData import *
  12. from MeteoInfoC.Legend import *
  13. from MeteoInfoC.Shape import *

  14. #---- Set directories
  15. dataDir = "D:\\Temp\\nc\\data1\\"

  16. #---- Open data file
  17. mdi = MeteoDataInfo()
  18. mdi.OpenNCData(dataDir + "d01")

  19. #---- Average grid data
  20. tnum = mdi.GetTimeNumber()
  21. print 'Time number: ' + str(tnum)
  22. sumData = GridData()
  23. mdi.LevelIndex = 15
  24. varName = 'T'
  25. for i in range(0, tnum):
  26.         mdi.TimeIndex = i
  27.         gdata = mdi.GetGridData(varName)
  28.         if i == 0:
  29.                 sumData = gdata
  30.         else:
  31.                 sumData = sumData + gdata

  32. aveData = sumData / tnum
  33.        
  34. #---- Create shaded layer from the grid data
  35. print 'Create shaded layer'
  36. aLS = LegendManage.CreateLegendSchemeFromGridData(aveData, LegendType.GraduatedColor, ShapeTypes.Polygon)
  37. aLayer = DrawMeteoData.CreateShadedLayer(aveData, aLS, varName, "Value")
  38. aLayer.ProjInfo = mdi.ProjInfo
  39. mipy.MapDocument.ActiveMapFrame.AddLayer(aLayer)
  40. mipy.MapDocument.ActiveMapFrame.MoveLayer(aLayer, 0)

  41. print 'Finished!'


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

新浪微博达人勋

 楼主| 发表于 2014-3-26 10:06:23 | 显示全部楼层
MeteoInfo 发表于 2014-3-26 09:46
做了一个示例脚本程序,可以参考。之前读取NetCDF文件的功能有一些bug,请下载、更新MeteoInfo最新文件( ...

多谢王老师~乍一看去还有一些代码不懂。不过我会查阅python书,慢慢弄懂的。
再请教一下,如果我要计算几个变量平均值的加减乘除什么的,也像这样分别求平均,然后像用U,V计算风速那样计算吗?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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