气象数据处理:气象雷达数据I

您所在的位置:网站首页 雷达数据的文件格式 气象数据处理:气象雷达数据I

气象数据处理:气象雷达数据I

2024-06-05 20:36| 来源: 网络整理| 查看: 265

气象雷达是气象中应用非常广泛的一种工具,通常可以用来进行强对流天气大预警和预报。 气象雷达数据通常为二进制编码数据,而且不同波段的雷达数据所采用的编码方式也会有所不同。目前国内常用的雷达有SA/SB,CB多普勒雷达,X波段双偏振多普勒雷达等。除此之外,还有采用了其它数据结构的雷达数据,比如HDF5,netcdf等。

这一次主要讲一下SA/SB波段雷达数据的处理。SA/SB波段雷达的数据结构相对简单,可直接使用二进制读取方式进行读取。

当然读取数据的代码每个人都会写,但关键是写代码之前的分析过程。不要拿到数据之后就开始码代码,应该先根据数据格式以及想要实现的功能绘制流程图,就算不绘制流程图,也要确定读取的大概步骤。

比如读取SA/SB雷达数据,根据雷达基数据格式进行读取 [注1]。

SA/SB雷达数据每条径向数据长度是固定的,为2431字节,CB雷达数据每条径向数据长度为4132字节,而且存储数据时是按照径向顺序存储的。因此,在读取时可先读取所有数据,然后按照单径向长度重新调整数据,从而提高处理速度。

每条径向都包含方位角,仰角,体扫模式,反射率,谱宽,速度等信息。扫描时是从低层到高层开始,即按照仰角从小到大开始,每扫描完一个仰角之后开始下一个仰角扫描。为了完全读取每一个仰角的所有径向数据,可以通过每一条径向数据中的径向数据状态确定。

程序功能

通过确定仰角获取指定产品数据。由于SA/SB/CB雷达在低层时有些仰角会进行两次扫描,如果只给定一个仰角的话,那么第二次扫描的结果将无法读取。因此,还需要控制读取第一次还是第二次扫描的结果。最后显示时还要显示到地图上,那么就要将坐标转换为经纬度。

读取流程

下面是读取数据时的具体流程:

读取所有数据,然后 reshape 数组获取给定仰角索引,读取此仰角所有径向数据读取此仰角中的指定产品数据

总体上按照上面三个步骤就可以读取数据了,但是我们可是要长期使用的,而且是要体现用户友好的,怎么能仅仅这样就结束了呢~而且不是每一个仰角所有产品都有数据的,遇到没有数据时,总要提示一下吧。

读取所有数据,然后 reshape 数据

获取体扫模式,并获取体扫模式下的所有仰角信息获取扫描的所有仰角信息判断此仰角是否进行了多次扫描,如果是,并判断是读取第几次扫描数据

获取给定仰角索引,并读取此仰角所有径向数据

读取此仰角中的指定产品数据

判断是读取反射率,速度还是谱宽判断此仰角所读产品是否存在扫描数据,如果存在,则继续,否则退出根据不同的产品,设置不同的读取数据起始字节位置读取数据后进行解码如果给定了雷达经纬度坐标,则转换坐标为经纬度坐标

注:不同的产品存储时库数是固定的,但扫描时存储的库数却不一定能完全存完,即SA/SB雷达的反射率的库数是0-460,但随着仰角的增加,库数可能不到460。因此,读取时,按照实际的库数读取数据,并未按照产品的最大库数读取数据。

至此,完成了读取数据部分。

MATLAB和Python读取SA/SB雷达数据源代码通过以下链接下载[注2],其中MATLAB版源代码可读取SA/SB/CB雷达数据,但仅测试了SA/SB雷达数据读取,而python版程序仅支持读取SA/SB雷达数据(已测试)。

下面是分别使用 MATLAB 和 Python 读取数据后的绘图效果。之所以经纬度范围不一样是因为设置的雷达经纬度坐标不同。

注1:基数据格式说明可询问数据提供者。此处不提供数据格式说明,因为没有电子版==

注2:https://pan.baidu.com/s/1gfgNIvT



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3