- 积分
- 8807
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-5-23
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2019-1-7 19:42:07
|
显示全部楼层
本帖最后由 eeeee 于 2020-6-2 13:26 编辑
斜体是模块底层部分
文件读取部分(cinrad.io)
目前cinrad模块支持SA/SB/SC/CA/CB/CC雷达以及新版本标准数据的读取。
- import cinrad
- f = cinrad.io.CinradReader(radar_file)
- f = cinrad.io.StandardData(radar_file)
复制代码 CinradReader读取老版本的数据,StandardData读取新版本标准数据。
获取雷达数据统一都是使用f.get_data(elevation, range, datatype)方法,datatype是数据类型,包括'REF','VEL','SW'以及一些双偏振要素,range是数据的半径,单位是公里,elevation是仰角序号,从零开始计数。
为了减少绘图时传入的参数个数,获取到的数据均为cinrad.datastruct.Radial类型,储存有雷达其他的信息,Radial的data属性就是np.ndarray格式储存的雷达数据
cinrad.io.PUP提供读取PUP数据的功能,读取出来的数据为cinrad.datastruct.Radial格式并且可以用来绘制PPI。目前只支持径向类型的数据。
- from cinrad.io import PUP
- f = PUP(your_radar_file)
- data = f.get_data()
复制代码
要素计算部分(cinrad.calc)
提供VIL,ET和组合反射率以及任意两点剖面的计算。计算这些要素需要传入整个体扫的反射率数据。
- rl = [f.get_data(i, 230, 'REF') for i in f.angleindex_r]
复制代码 除了两点剖面计算之外,其他函数返回的数据类型是cinrad.datastruct.Radial或者cinrad.datastruct.Grid(组合反射率)。
- vil = cinrad.calc.quick_vil(rl) #计算VIL
- et = cinrad.calc.quick_et(rl) #计算ET
- cr = cinrad.calc.quick_cr(rl) #计算组合反射率
复制代码
这些函数都是cinrad.utils里面的函数的封装,cinrad.utils里面的函数接受的参数为np.ndarray,详情见函数的注释。
两点剖面的计算由cinrad.calc.VCS类完成,这个类初始化同样需要整层体扫。
- vcs = cinrad.calc.VCS(rl)
- sec = vcs.get_section(start_cart=(111, 25.5), end_cart=(112, 26.7)) # pass geographic coordinates (latitude, longitude)
- sec = vcs.get_section(start_polar=(115, 350), end_polar=(130, 30)) # pass polar coordinates (distance, azimuth)
复制代码 调用VCS.get_section方法获取剖面(为cinrad.datastruct._Slice类型),可以选择传入极坐标也可以传入经纬度。
可视化部分(cinrad.visualize)
PPI图由cinrad.visualize.PPI类来绘制,这个类提供了一个方便的绘图模板。参数为cinrad.datastruct.Grid或者cinrad.datastruct.Radial类型即可,只要是cinrad模块里面的函数生成的数据都可以扔进去画,可选参数总结见下图。
更新:
新增style参数,控制背景颜色,可设置为'black'或者'white'
- ppi = cinrad.visualize.PPI(radial)
- ppi('D:\\') #传入保存图片的地址,亦可传入具体图片名
复制代码 PPI.plot_range_rings(self, _range, color='white', linewidth=0.5, **kwargs)在PPI图上绘制圆圈。
PPI.plot_cross_section(self, data, ymax=None)在PPI图下方加入VCS剖面图,和vcs参数相似,用此函数还可以自定义y轴的范围。
PPI.geoax
这个属性是绘制雷达图的axes,可以在操作这个axes的基础上进行更多自定义操作,例如绘制散点图或者使用其他绘图函数
|
评分
-
查看全部评分
|