爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 25379|回复: 6

[源代码] 贡献一个读swan产品(bin.bz2格式)的函数

[复制链接]

新浪微博达人勋

发表于 2019-9-20 18:01:19 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 schliezer 于 2019-9-20 18:04 编辑

站里大神太多,也贡献了很多源代码,雷达方面不是很多,我就不揣冒昧贡献一个自己写的读SWAN产品CR组合反射率的小程序,需要事先安装好numpy,struct,bz2三个包:

import numpy as np
from bz2 import BZ2File as bz
import struct as sr
def ReadCR(filename):
    f=bz(filename)
    # Read parameters from file header
    f.seek(66)        #skip to date tag
    year=sr.unpack('H',f.read(2))
    month=sr.unpack('H',f.read(2))
    day=sr.unpack('H',f.read(2))
    hour=sr.unpack('H',f.read(2))
    minute=sr.unpack('H',f.read(2))
    time=year+month+day+hour+minute
    f.seek(2,1)
    XNumGrids=sr.unpack('H',f.read(2)) #grid number in X direction
    YNumGrids=sr.unpack('H',f.read(2)) #grid number in Y direction
    ZNumGrids=sr.unpack('H',f.read(2)) #grid number in Z direction
    XYZdim=XNumGrids+YNumGrids+ZNumGrids
    NumGrids=1
    for n in XYZdim:
        NumGrids*=n
    f.seek(4,1)
    StartLon=sr.unpack('f',f.read(4))
    StartLat=sr.unpack('f',f.read(4))
    CentreLon=sr.unpack('f',f.read(4))
    CentreLat=sr.unpack('f',f.read(4))
    XReso=sr.unpack('f',f.read(4))
    YReso=sr.unpack('f',f.read(4))
    EndLon=np.array(StartLon)+np.array(XReso)*(np.array(XNumGrids)-1)
    EndLat=np.array(StartLat)-np.array(YReso)*(np.array(YNumGrids)-1)
    f.seek(1024,0)
    fmt='%sB'%NumGrids
    CR=sr.unpack(fmt,f.read(NumGrids))
    CR=(np.array(CR).reshape((-1,XNumGrids[0]))-66)/2 # quality control on CR
    CR[CR==-33]=0                                     # quality control on CR
    Lat=np.linspace(np.array(StartLat),EndLat,np.array(YNumGrids))
    Lon=np.linspace(np.array(StartLon),EndLon,np.array(XNumGrids))
    return CR,Lat,Lon,XReso,YReso


评分

参与人数 2金钱 +30 收起 理由
付亚男 + 20 这个帖子解决了cinrad.io.SWAN中的一个bug
盈星 + 10

查看全部评分

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

新浪微博达人勋

发表于 2020-5-21 18:51:11 | 显示全部楼层
楼主厉害!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-8-3 12:00:56 | 显示全部楼层
楼主想问您一下,我现在有了雷达基数据,用SWAN应该怎么拼图呢?可以加我QQ879762500
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-8-3 12:53:00 | 显示全部楼层
你管呢 发表于 2021-8-3 12:00
楼主想问您一下,我现在有了雷达基数据,用SWAN应该怎么拼图呢?可以加我QQ879762500

pycinrad就可以。如果有能力pyart或者wralib也可以。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-8-3 14:22:21 | 显示全部楼层
edwardli 发表于 2021-8-3 12:53
pycinrad就可以。如果有能力pyart或者wralib也可以。

谢谢您,那应该怎么做呢?我用cinrad.easycalc.GridMapper就可以吗?pyart要怎么做呢?麻烦您了!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-10-8 17:23:32 | 显示全部楼层
楼主请问有没有做过把某一高度比如3km的反射率提取出来的呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-5-22 09:36:24 | 显示全部楼层
HUYAN 发表于 2022-10-8 17:23
楼主请问有没有做过把某一高度比如3km的反射率提取出来的呢

抱歉还没有,正在尝试,所以翻出来了以前自己发的贴子
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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