最近pycinrad更新1.9.0版本,更新内容如下
我们来试试新鲜出炉的read_auto函数吧
本文镜像 :气象分析3.9
由于可视化代码过长隐藏,可点击以下链接运行Fork查看
雷达系列:更新!试试cinrad最新更新的read_auto函数
🔜🔜若没有成功加载可视化图,点击运行可以查看 ps:隐藏代码在【代码已被隐藏】所在行,点击所在行,可以看到该行的最右角,会出现个三角形,点击查看即可
In [3]:
!pip install --upgrade --index-url=https://pypi.mirrors.ustc.edu.cn/simple cinrad --user
In [4]:
import cinrad
ds1 = cinrad.io.read_auto('/home/mw/input/pycwr5461/2016070817 (1).48V.gz')
ds1.available_product(0)
Out[4]:
['REF', 'VEL', 'SW', 'azimuth']
In [5]:
import cinrad
ds1 = cinrad.io.read_auto('/home/mw/input/pycwr5461/Z_RADR_I_Z9240_20190703101340_O_DOR_SC_CAP.bin.bz2')
ds1.available_product(0)
Out[5]:
['REF', 'VEL', 'SW', 'azimuth', 'RF']
In [6]:
import cinrad
ds1 = cinrad.io.read_auto('/home/mw/input/pycwr5461/Z_RADR_I_Z9898_20190828181529_O_DOR_SAD_CAP_FMT (1).bin.bz2')
ds1.available_product(0)
Out[6]:
['TREF', 'REF', 'SQI', 'ZDR', 'RHO', 'PHI', 'KDP', 'SNRH']
没骂人
In [11]:
import cinrad
ds1 = cinrad.io.read_auto('/home/mw/input/pycwr5461/Z9396_BASE_SB_20180724_055400 (1).bin.bz2')
ds1.available_product(0)
---------------------------------------------------------------------------
RadarDecodeError Traceback (most recent call last)
Input In [11], in <cell line: 3>()
1 import cinrad
----> 3 ds1 = cinrad.io.read_auto('/home/mw/input/pycwr5461/Z9396_BASE_SB_20180724_055400 (1).bin.bz2')
4 ds1.available_product(0)
File ~/.local/lib/python3.9/site-packages/cinrad/io/__init__.py:52, in read_auto(filename)
50 cc_flag = flag[116:122]
51 if flag[14:16] == b"\x01\x00" or sc_flag == b"CINRAD" or cc_flag == b"CINRAD":
---> 52 return CinradReader(filename)
53 raise Exception("Unknown radar type")
File ~/.local/lib/python3.9/site-packages/cinrad/io/level2.py:116, in CinradReader.__init__(self, file, radar_type)
114 else:
115 if not t_infer:
--> 116 raise RadarDecodeError(
117 "Unable to determine the file type. Use `radar_type` keyword"
118 "to specify the radar type."
119 )
120 self.radartype = t_infer
121 self.site_info = {}
RadarDecodeError: Unable to determine the file type. Use `radar_type` keywordto specify the radar type.
In [9]:
from cinrad.io import CinradReader, StandardData
SB = CinradReader('/home/mw/input/pycwr5461/Z9396_BASE_SB_20180724_055400 (1).bin.bz2',radar_type='SB')
SB.available_product(0)
/home/mw/.local/lib/python3.9/site-packages/cinrad/io/level2.py:109: UserWarning: Contradictory information from input radar type andradar type detected from input file.
warnings.warn(
Out[9]:
['REF', 'VEL', 'SW', 'azimuth', 'RF']
read_auto不支持SB
In [10]:
import cinrad
ds1 = cinrad.io.read_auto('/home/mw/input/pycwr5461/Z_RADR_I_ZGZ01_20200820220246_O_DOR_DXK_CAR.bin.bz2')
ds1.available_product(0)
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
Input In [10], in <cell line: 3>()
1 import cinrad
----> 3 ds1 = cinrad.io.read_auto('/home/mw/input/pycwr5461/Z_RADR_I_ZGZ01_20200820220246_O_DOR_DXK_CAR.bin.bz2')
4 ds1.available_product(0)
File ~/.local/lib/python3.9/site-packages/cinrad/io/__init__.py:53, in read_auto(filename)
51 if flag[14:16] == b"\x01\x00" or sc_flag == b"CINRAD" or cc_flag == b"CINRAD":
52 return CinradReader(filename)
---> 53 raise Exception("Unknown radar type")
Exception: Unknown radar type
当然对于多变的相控阵格式是不支持的,应该可以读取最新格式的相控阵雷达数据
谢谢开发者们对于pycinrad的不断维护,read_auto函数应该能满足大多数用户的需求了
pycinrad对于业务人员的使用是越来越友好了
相信随着使用难度的降低,会有越来越多的用户加入