请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5571|回复: 9

MeteoInfoLab脚本示例:从micaps 1数据中提取站点数据

[复制链接]

新浪微博达人勋

发表于 2018-9-5 19:31:06 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 MeteoInfo 于 2018-9-5 19:33 编辑

micaps 1类数据是地面全要素观测数据,每个时次一个文件,每个文件包含很多站点。要提取某个站点的时间序列数据需要用循环读取多个时次的micaps 1数据,循环中用addfile_micaps函数读取micaps文件对象,然后用文件对象的read_dataframe函数将数据读入一个DataFrame对象,再从中提取一个或者多个站点的数据(也可以对提取那些要素进行限定),用DataFrame的append方法合并不同时次的数据。最终的DataFrame对象用to_csv方法保存到文件中。

  1. #---- Set stations
  2. stids = ['54511']

  3. #---- Set variables
  4. # Avialable variables in MICAPS 1 data:
  5. #  "Altitude", "Grade", "CloudCover", "WindDirection", "WindSpeed", "Pressure",
  6. #  "PressVar3h", "WeatherPast1", "WeatherPast2", "Precipitation6h", "LowCloudShape",
  7. #  "LowCloudAmount", "LowCloudHeight", "DewPoint", "Visibility", "WeatherNow",
  8. #  "Temperature", "MiddleCloudShape", "HighCloudShape"
  9. variables = ['Visibility','WeatherNow','WindDirection','WindSpeed','Temperature','DewPoint']

  10. #Read data
  11. datadir = r'D:\Temp\micaps'
  12. year = 2016
  13. month = 1
  14. day = 1
  15. t = datetime.datetime(year, month, day)
  16. rdf = None
  17. for hour in range(2, 24, 3):
  18.     t = t.replace(hour=hour)
  19.     fn = os.path.join(datadir, t.strftime('%y%m%d%H') + '.000')
  20.     print fn
  21.     f = addfile_micaps(fn)
  22.     df = f.read_dataframe()
  23.     t = f.gettime(0)
  24.     r = df.loc[stids,variables]
  25.     r.insert(0, 'Time', t)
  26.     if rdf is None:
  27.         rdf = r
  28.     else:
  29.         rdf = rdf.append(r)

  30. rdf.index = rdf['Time']
  31. rdf = rdf.drop('Time')
  32. print rdf
  33. rdf.to_csv('D:/Temp/test/test.csv')


输出的数据:              Visibility WeatherNow WindDirection WindSpeed Temperature DewPoint
2016-01-01 02       26.0          0         360.0       1.0        -3.4    -18.1
2016-01-01 05       30.0          0         340.0       2.0        -4.8    -18.6
2016-01-01 08        1.8         10          70.0       1.0        -4.9     -9.0
2016-01-01 11        3.8          5          20.0       1.0         1.4     -8.4
2016-01-01 14        2.8          5          90.0       1.0         4.9     -8.2
2016-01-01 17        1.7          5         180.0       1.0         2.8     -6.3
2016-01-01 20        1.1         10         180.0       1.0        -1.2     -6.5
2016-01-01 23        0.9         10           0.0       0.0        -2.9     -6.5



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

新浪微博达人勋

发表于 2018-9-14 08:34:08 | 显示全部楼层
赞赞赞!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2018-11-28 09:17:20 | 显示全部楼层
本帖最后由 孤蓝et 于 2018-11-28 09:19 编辑

老师,MeteoInfoLab脚本编写的py代码,单纯只做气象数据批量处理,不进行绘图操作,这类py代码可以脱离GUI界面,直接后台调用吗?

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

新浪微博达人勋

 楼主| 发表于 2018-11-28 11:24:54 | 显示全部楼层
孤蓝et 发表于 2018-11-28 09:17
老师,MeteoInfoLab脚本编写的py代码,单纯只做气象数据批量处理,不进行绘图操作,这类py代码可以脱离GUI ...

包括绘图操作也可以后台调用
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-11-28 13:31:40 来自手机 | 显示全部楼层
谢谢解答,我再仔细看下文档,找一下具体怎么操作。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-11-29 09:00:44 | 显示全部楼层
MeteoInfo 发表于 2018-11-28 11:24
包括绘图操作也可以后台调用

抱歉,王老师,又打扰了。
之前问您的后台脚本,我看了论坛和meteothink,都没有找到MeteoInfoLab进行后台调用操作的文档唉,是不是我找的关键字不对
还是,您说的后台调用,指的是C#版本 MeteoInfo下的Script脚本?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-11-29 09:02:22 | 显示全部楼层
孤蓝et 发表于 2018-11-29 09:00
抱歉,王老师,又打扰了。
之前问您的后台脚本,我看了论坛和meteothink,都没有找到MeteoInfoLab进行后 ...

参考这里:http://www.meteothink.org/docs/i ... nfomap-meteoinfolab
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-11-29 10:00:18 | 显示全部楼层
On Windows paltform, you can launch MeteoInfoMap by double-clicking “MeteoInfoMap.exe” file, or by run the batch command file “mimap.bat”.

The batch command file with parameters will run a Jython script (“mimap.bat test.py”).

看到了,谢谢老师指点。


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

新浪微博达人勋

发表于 2020-7-2 14:31:23 | 显示全部楼层
王老师,我在MeteoInfoLab的脚步里面运行这个代码,总是提示:
NameError: name 'addfile_micaps' is not defined

是还需要导入什么插件或者包么?首次使用,希望王老师指点一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-7-2 16:16:29 | 显示全部楼层
lasamm 发表于 2020-7-2 14:31
王老师,我在MeteoInfoLab的脚步里面运行这个代码,总是提示:
NameError: name 'addfile_micaps' is not  ...

应该不需要了,软件启动的时候已经导入了。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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