爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: MeteoInfo

也说格点数据插值为站点数据

  [复制链接]

新浪微博达人勋

发表于 2013-10-25 11:12:39 | 显示全部楼层

楼主,本人不了解 Python 语言的基本语法。这是GRADS的ctl
dset  rcp45_%y4.dat
title RegCM daily output variables
options little_endian
options template
options  365_day_calendar
undef -1.e34
xdef  27 linear   102  0.5
ydef  31 linear   27 0.5
zdef 1 levels 1008.23
tdef   34310 linear 01jan2006 1dy
vars  4
t2m     0 99 air temperature at 2m (K)
tpr     0 99 total precipitation (mm/day)
t2max   0 99 maximum 2m air temperature (K)
t2min   0 99 minimum 2m air temperature (K)
endvars
时间层次很多,软件脚本可以批量处理吗?
#---- 设置路径变量
BaseDir = "e:\\Program Files\\MeteoInfo\\"
MapDir = "e:\\Program Files\\MeteoInfo\\Map\\"
LegendDir = "e:\\Program Files\\MeteoInfo\\Legend\\"
DataDir = "e:\\Program Files\\MeteoInfo\\Sample\\GrADS\\"
OutDir = "E:\\Temp\\"
#---- 创建MIApp类的对象
myApp = MIApp()
#---- 打开格点数据文件
df = "J:\\CMIP5-data\\RegCM-data1\\data\\rcp45.ctl"
myApp.OpenGrADSData(df)
#---- 获取地面气压格点数据
gData = myApp.GetGridData("t2m")
#---- 设置输入、输出站点数据文件
inf = "J:\\CMIP5-data\\RegCM-data1\\data\\station.csv"
outf = "J:\\CMIP5-data\\RegCM-data1\\data\\stationtest.csv"
#---- 格点数据插值为站点数据,并输出为文件
gData.ToStation(inf, outf)
怎么修改?麻烦楼主指导下,谢谢。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-25 11:21:10 | 显示全部楼层
朝雾 发表于 2013-10-25 11:12
楼主,本人不了解 Python 语言的基本语法。这是GRADS的ctl
dset  rcp45_%y4.dat
title RegCM daily out ...

参考此帖:站点降水数据绘制等值线图新脚本
http://bbs.06climate.com/forum.p ... 695&fromuid=106

里面有时间设置。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-25 14:45:20 | 显示全部楼层
MeteoInfo 发表于 2013-10-25 11:21
参考此帖:站点降水数据绘制等值线图新脚本
http://bbs.06climate.com/forum.php?mod=viewthread&tid=15 ...

好的,谢谢楼主
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-26 18:57:15 | 显示全部楼层
最近一直在用meteoinfo,真的是好强大!而且很容易上手,赞
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-28 15:07:51 | 显示全部楼层
MeteoInfo 发表于 2013-10-25 11:21
参考此帖:站点降水数据绘制等值线图新脚本
http://bbs.06climate.com/forum.php?mod=viewthread&tid=15 ...


sTime = DateTime.Parse("2006-01-01 00:00")
eTime = DateTime.Parse("2099-12-08 00:00")
while sTime <= eTime:
  inFile = sTime.ToString("yyMMddHH")
  print inFile
  gData = myApp.GetGridData("t2m")
  #---- 设置输入、输出站点数据文件
  inf = "J:\\CMIP5-data\\RegCM-data1\\data\\station.csv"
  outf = "J:\\CMIP5-data\\RegCM-data1\\data\\stationtest.csv"
  #---- 格点数据插值为站点数据,并输出为文件
  gData.ToStation(inf,outf)
  sTime = sTime.AddHours(24)
#Application.Run(myApp)

楼主循环运行后数据会被替代,怎么才能在csv文件中逐列写入,并显示时间?有可以参考的吗?十分感谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-10-28 16:09:24 | 显示全部楼层
朝雾 发表于 2013-10-28 15:07
sTime = DateTime.Parse("2006-01-01 00:00")
eTime = DateTime.Parse("2099-12-08 00:00")
while sT ...

outf文件名中加上时间就可以区分开了。

如果想将不同时次插值的结果写入一个文件中需要自己写Python代码读station.csv文件(将所有站点的站号及经纬度读出来),用GridData的ToStation(double x, double y)方法得到每个站点的插值结果(x, y参数分别对应站点经纬度),然后自己写代码去写插值结果文件。

点评

图很漂亮: 5.0 刚好需要: 5.0
谢谢共享: 5.0
图很漂亮: 5 刚好需要: 5 谢谢共享: 5
  发表于 2013-10-28 16:53
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-28 16:53:08 | 显示全部楼层
本帖最后由 朝雾 于 2013-10-28 16:55 编辑
MeteoInfo 发表于 2013-10-28 16:09
outf文件名中加上时间就可以区分开了。

如果想将不同时次插值的结果写入一个文件中需要自己写Python代 ...


十分感谢楼主的悉心指导,受益匪浅,谢谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-31 09:50:56 | 显示全部楼层
学习中,好东东!!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-3 20:33:36 | 显示全部楼层
MeteoInfo 发表于 2013-10-28 16:09
outf文件名中加上时间就可以区分开了。

如果想将不同时次插值的结果写入一个文件中需要自己写Python代 ...

如果想将不同时次插值的结果写入一个文件中需要自己写Python代码读station.csv文件(将所有站点的站号及经纬度读出来),用GridData的ToStation(double x, double y)方法得到每个站点的插值结果(x, y参数分别对应站点经纬度),然后自己写代码去写插值结果文件。

楼主,具体这块有什么可以参考的帖子吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-3 22:56:12 | 显示全部楼层
朝雾 发表于 2013-11-3 20:33
如果想将不同时次插值的结果写入一个文件中需要自己写Python代码读station.csv文件(将所有站点的站号及经 ...

帖子你可以在论坛里用搜索功能找。关键你要学习Python读写文件的功能。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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