爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2379|回复: 4

请问MICAPS第三类资料怎么根据站点来抽取资料

[复制链接]

新浪微博达人勋

发表于 2022-11-28 14:37:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 James_z 于 2022-11-28 14:49 编辑

参考了王老师的http://bbs.06climate.com/forum.p ... 1290&extra=page%3D1  这篇贴子的抽取MICAPS第一类站点代码,
但是我在自己使用MICAPS第三类降水站点的资料有一步报错
就是这一步,df = f1.read_dataframe(),
报错代码是:  File "<iostream>", line 8, in <module>
  File "D:\meteoinfo\MeteoInfo\pylib\mipylib\dataset\dimdatafile.py", line 158, in read_dataframe
    df = self.dataset.getDataInfo().readDataFrame()
AttributeError: 'org.meteoinfo.data.meteodata.micaps.MICAPS3DataInf' object has no attribute 'readDataFrame'
但是我看了下第三类跟第一类资料都是站点资料呀,为啥用不了
这是print第三类资料的结果
Description: diamond 3 2018年07月05日00时00分00秒一小时降水
Time: 2018-07-05 00:00
File Name: F:/micapsdata/20180705/SURFACE_N/r1/18070500.000
Dimensions: 1
        station = 2401;
Global Attributes:
        : data_format = "MICAPS 3"
Variations: 5
        String Stid(station);
        float Longitude(station);
        float Latitude(station);
        float Altitude(station);
        float Var1(station);

请问有什么办法可以根据站点抽取MICAPS第三类资料的降水数据吗?谢谢大家!


1669617223816.jpg

18070500.000

76.98 KB, 下载次数: 9, 下载积分: 金钱 -5

这个是上面的MICAPS第三类文件

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

新浪微博达人勋

发表于 2022-11-28 16:33:28 | 显示全部楼层
micaps 3目前不支持readDataFrame,可以直接用变量来提取数据,参考下面的脚本:

  1. f = addfile('D:/Temp/micaps/18070500.000')
  2. stid = f['Stid'][:]
  3. data = f['Var1'][:]
  4. lon = f['Longitude'][:]
  5. lat = f['Latitude'][:]
  6. t = f.gettime(0)
  7. #Plot
  8. axesm(bgcolor=(204,255,255))
  9. geoshow('country', edgecolor=None, facecolor=(255,251,195))
  10. geoshow('cn_province', edgecolor='k')
  11. levs = arange(0., 15., 1.)
  12. levs[0] = 0.01
  13. layer = scatter(lon, lat, data, levs, cmap='WhBlGrYeRe')
  14. layer.legend().getLegendBreaks()[0].setSize(1)
  15. colorbar(layer)
  16. yticks([20,30,40,50])
  17. title('Precipitation (' + t.strftime('%Y-%m-%d %H:00') + ')')
  18. xlim(72, 136)
  19. ylim(16, 55)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-11-28 18:02:45 | 显示全部楼层
MeteoInfo 发表于 2022-11-28 16:33
micaps 3目前不支持readDataFrame,可以直接用变量来提取数据,参考下面的脚本:

感谢王老师耐心回答!我还有个小问题,请问MICAPS第三类资料能根据站点抽取数据吗,比如我想要提取青海省清水河站(编号:56034)的降水数据,但是MICAPS第三类资料用不了.readDataFrame()这条命令,目前有什么函数可以实现嘛
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-11-28 20:32:41 | 显示全部楼层
James_z 发表于 2022-11-28 18:02
感谢王老师耐心回答!我还有个小问题,请问MICAPS第三类资料能根据站点抽取数据吗,比如我想要 ...

读取数据后可以利用stid和data数组构造一个DataFrame,例如:
df = DataFrame(data=data, index=stid, columns=['pre'])
下一个MeteoInfo版本会支持micaps 3数据文件的 read_dataframe 方法。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-11-28 21:25:36 | 显示全部楼层
MeteoInfo 发表于 2022-11-28 20:32
读取数据后可以利用stid和data数组构造一个DataFrame,例如:
df = DataFrame(data=data, index=stid, c ...

谢谢王老师!刚刚试了这句代码,能成功输出站点降水数据了!感谢您!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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