爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
12
返回列表 发新帖
楼主: 15195775117

[求助] BIN格式雨滴谱观测数据BUFR解码失败

[复制链接]

新浪微博达人勋

发表于 2021-3-31 09:08:33 | 显示全部楼层
MeteoInfo 发表于 2021-3-30 22:07
看起来像是这样,我也没有处理过雨滴谱数据,不清楚是否合理。

哦哦好的,那我研究研究,谢谢老师!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-7-23 17:14:11 | 显示全部楼层
kittyjsj 发表于 2021-3-30 19:02
老师,我按照您的方法输出“雨滴谱的设备类型”“谱图数据编号”和“雨滴个数”,是不是就按照《雨滴谱观 ...

请问雨滴谱资料后来有处理成功么
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-7-23 17:22:14 | 显示全部楼层
15195775117 发表于 2021-2-1 20:36
好像是软件公司把文件写错了,目前我手里也没有其他文件来试试

请问楼主这个问题解决了么
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-7-24 13:31:16 | 显示全部楼层
jjpzhzz 发表于 2021-7-23 17:22
请问楼主这个问题解决了么

我没搞,我同学用metoinfo+Jython做出来了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-9-5 09:27:00 | 显示全部楼层
jjpzhzz 发表于 2021-7-23 17:14
请问雨滴谱资料后来有处理成功么

就是这么算和这么理解的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-11-11 21:40:58 | 显示全部楼层
MeteoInfo 发表于 2021-3-30 22:07
看起来像是这样,我也没有处理过雨滴谱数据,不清楚是否合理。

王老师,我还想请教一下,按照您这个代码处理1个文件只有1个时次的数据,相当于数据时间分辨率是5分钟的,但是实际雨滴谱观测时间分辨率是1分钟,我该怎么用meteoinfo来确认一个bufr文件里包含了1个还是5个时次的数据?如果包含了5个时次,怎么读取?我用f.gettime、f.dimensions、f.dimlen试了貌似都不行

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

使用道具 举报

新浪微博达人勋

发表于 2022-12-31 21:47:39 | 显示全部楼层

import os
dir="E:/1106/20211106"
of = open(r"E:\1106.csv", 'w+')
for parentdir, dirname, filenames in os.walk(dir):
   for filename in filenames:
    inFiles = '%s/%s' % (dir, filename)
    #print inFiles
    f=addfile(inFiles, keepopen=True)
    obs=f["obs"]
    #print(obs)
    lon=obs.member_array("Longitude_high_accuracy")
    lat=obs.member_array("Latitude_high_accuracy")
    lon=(lon-1.87E7)*1.E-5
    lat=(lat-9.E6)*1.E-5
    #print(lon,lat)
    st_id=obs.member_array("WMO_station_number")
    seq1=obs.member_array("seq1")
    #print(seq1.get_members())
#88888888888888
    time=seq1.member_array("Short_time_increment")
    #print(time)
#999999999999999
    seq2=seq1.member_array("seq2")
    #print(seq2.get_members())

    seq3=seq2.member_array("seq3")
    #print(seq3.get_members())
    n_raindrop=seq3.member_array(u"雨滴个数")
   
    n_raindropbm=seq3.member_array(u"谱图数据编号")
    #print(n_raindropbm)
    print(filename[15:29],n_raindrop,n_raindropbm)
    if isinstance(n_raindrop,int):
       #print(filename[15:29],n_raindrop,type(n_raindrop))
       of.write(filename[15:29]+",个数")
       of.write("%s" %(n_raindrop))
       of.write("\n")
       of.write(filename[15:29]+",编码")
       of.write("%s" %(n_raindropbm))
       of.write("\n")
    else:
     ll=len(n_raindrop)
     if ll>0:
    #print("******",ll)
      of.write(filename[15:29]+",个数")

      for i in range(ll):
        nn=n_raindrop
        nn1=n_raindropbm
        #print("@@@@@",nn,nn1)
        line="%s%d" %(",",nn)
        of.write(line)
      of.write("\n")
      of.write(filename[15:29]+",编码")
      for i in range(ll):
        nn1=n_raindropbm
        line1="%s%d" %(",",nn1)
        of.write(line1)
      of.write("\n")
    f.close()
of.close()

改了楼主代码,可以批量解析雨滴谱,发现有些时次只有一个或一个普段数据,那么个数和编码会解码成一个int数据,没有降水或超过1个时候是保存的数组,然后把没有雨滴数据剔除掉
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2022-12-31 21:49:20 | 显示全部楼层
中者 发表于 2022-12-31 21:47
import os
dir="E:/1106/20211106"
of = open(r"E:\1106.csv", 'w+')

解析完成的数据
20211105205000,个数,1,1
20211105205000,编码,388,452
20211105205500,个数,2,1,1,1,1,1,1,2,1,1,1,1,2,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1
20211105205500,编码,130,139,196,226,228,231,260,261,263,265,297,322,323,324,325,328,333,357,358,359,360,362,387,388,391,395,419,420,424,452,483,484,587
20211105210000,个数,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,3,1,2,1
20211105210000,编码,35,131,163,165,195,230,260,265,325,328,363,387,388,389,393,419,420,451,515
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-12-25 12:44:55 | 显示全部楼层
中者 发表于 2022-12-31 21:47
import os
dir="E:/1106/20211106"
of = open(r"E:\1106.csv", 'w+')

这个是python吗?addfile是哪个函数?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-8-16 16:16:35 | 显示全部楼层
kittyjsj 发表于 2022-11-11 21:40
王老师,我还想请教一下,按照您这个代码处理1个文件只有1个时次的数据,相当于数据时间分辨率是5分钟的 ...

请问这个问题解决了吗?我运行了一下,只能读取第一个时次的数据
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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