高金兵 张国平 薛冰 王曙东 王阔音 丁劲 惠建忠
(中国气象局公共气象服务中心,北京 100081)
多普勒天气雷达能够有效观测到云中的降水粒子,在强对流天气监测、短临预报等领域中有广泛的应用[1-4]。截止2020年,我国已经建成包含216部业务化多普勒天气雷达的观测网,包含S波段和C波段共9种不同型号的雷达设备。由于不同型号雷达数据格式不一致,给数据的使用带来了不便。因此,为了实现多普勒天气雷达基数据格式标准化,中国气象局组织制定《天气雷达基数据标准格式(试用)》(后升级至V1.1版),统一和规范天气雷达基数据格式标准。
天气雷达标准格式基数据作为一种特定格式的科学数据,其数据解析及处理需要专门的工具。甄廷忠、李子平等利用C#语言解析了天气雷达标准格式基数据,并与GIS进行融合应用[5-6]。PyCINRAD(https://github.com/cyanidecn/pycinrad)基于Python语言实现了天气雷达标准格式基数据解析及可视化。刘俊等基于NetCDF编码原理设计了雷达基数据NetCDF存储模型,在数据存储层面实现了对不同厂家不同型号雷达多样性数据格式的兼容[7]。以上天气雷达标准格式基数据的解析程序,在设计时缺少对雷达数据模型的抽象描述,仅停留在数据格式层面。唐卫等基于Unidata的CDM(Common Data Model)提出了一种时空气象数据模型,并以国内气象雷达数据应用为例提出了气象雷达应用数据模型[8],但是该文仅对模型进行了抽象描述,缺少对模型详细设计及实现的论述。
Unidata的CDM是由美国大学大气研究联合会UCAR的Unidata项目研发的一种面向科学数据集的抽象数据模型[9]。CDM包含数据访问层、坐标系层、科学特征类型层共3层结构,为数据集的地球科学特性提供了高层次的接口,特别是在坐标空间下的地理定位和数据子集等方面提供了丰富的接口。Unidata的NetCDF Java库(https://docs.unidata.ucar.edu/netcdf-java/)是CDM抽象数据模型的一种编程实现方式,可以读取地球科学相关的多种类型的数据,为数据可视化和数据共享工具提供了底层接口支持[10-11],具有广泛的应用。Unidata的NetCDF Java库4.6.5以上版本中,已经可以兼容中国天气雷达原始格式基数据(1)为方便讨论,本文沿用全国综合气象信息共享平台CIMISS中对旧雷达格式的命名方法,将雷达厂家制定的非标准格式的雷达基数据统称为原始格式雷达基数据。,但是不兼容中国天气雷达标准格式基数据。IDV(Integrated Data Viewer, https://www.unidata.ucar.edu/software/idv)是由Unidata研发的一种基于VisAD和Unidata的NetCDF Java库开发的地球系统数据可视化软件,在气象、水文、海洋、地球物理等领域具有广泛的应用[12-15]。借鉴以上工作,本文基于CDM抽象数据模型设计了中国天气雷达基数据模型,并通过实现I/O Service Provider接口,将天气雷达标准格式基数据的解析功能集成到Unidata的NetCDF Java库中,在数据模型层面实现了对天气雷达标准格式基数据的访问。在完成以上工作的基础之上,本研究将兼容天气雷达标准格式基数据的NetCDF Java库更新到IDV中,通过个例介绍了使用IDV对雷达标准格式基数据中基本反射率、径向速度、差分反射率等不同数据类别进行可视化展示的方式。最后对本文成果在多普勒天气雷达标准格式基数据评估中的应用进行了介绍,对雷达标准格式基数据的业务应用起到了促进作用。
按照CDM层次结构,如图1所示,天气雷达基数据模型也分为3层:在数据访问层中,完成基数据内容到CDM数据结构的映射;在坐标系层,使用极坐标来标识雷达径向数据;在科学特征类型层,使用径向特征类型来表征雷达径向特征。
1.1.1 数据访问层
数据访问层使用雷达基数据文件、组、变量、维度、属性等来定义数据的组织结构。如图2所示,一个雷达基数据文件默认包含一个组,组中有存储了基本反射率、径向速度、谱宽等数据的变量,每个变量具有一种数据类别,变量中数据大小通过维度来定义。属性用来存放描述组或者变量的元信息。数组、结构体、序列、枚举类型定义、数组结构等都是用来存储数据的不同数据结构。数据的类型包括基本数值类型、字符串等不同数据类型。
图2 雷达基数据模型数据访问层对象模型
1.1.2 坐标系层
如图3所示,雷达径向坐标系层通过坐标系、坐标轴、坐标转换等来定义数据坐标。径向坐标系对应多个坐标轴,并具有坐标转换。坐标轴是变量的子类型,雷达基数据对应的轴类型主要有时间(Time)、仰角(RadialElevation)、方位角(RadialAzimuth)、距离(RadialDistance)。坐标转换是数据集坐标系到参考坐标系的数学转换函数,目前CDM有投影变换和垂直变换共两种变换,雷达径向坐标系中仅包含投影变换。
图3 雷达基数据模型坐标系层对象模型
1.1.3 科学特征类型层
雷达基数据模型科学特征类型属于径向特征类型。CDM科学特征类型层将CDM数据集转换为特征类型对象的集合,并支持用户在“坐标空间”(例如使用空间和时间边界框)中提取特征类型的子集。
径向特征类型使用极坐标(仰角、方位角、距离)来描述空间坐标,通过科学特征类型层,可以根据径向数据极坐标值映射到数组索引,实现对雷达基数据子集的提取。
基于NetCDF Java库的雷达标准格式基数据模型架构设计如图4所示,与天气雷达基数据模型3层结构相对应:在数据访问层,通过实现I/O Service Provider解析雷达标准格式基数据文件,将其转化成NetCDF文件对象;在坐标系层,通过对雷达径向数据变量中添加径向坐标相关元数据,形成NetCDF数据集;在特征类型层,通过数据类型适配器,形成雷达标准格式基数据径向特征类型。
图4 基于NetCDF Java库的雷达标准格式基数据模型架构设计
在NetCDF Java库中,数据读写API都实现自I/O Service Provider(简称IOSP)接口,因此本文也通过实现IOSP对雷达标准格式基数据文件进行解码。
雷达基数据标准格式解码程序对象模型如图5所示,其中通过定义雷达基数据标准格式读写服务提供者FmtCinradIOServiceProvider类继承AbstractIOServiceProvider来实现IOSP接口,另外定义FmtCinradVolumeScan类和FmtCinradRecord类作为辅助,来实现对体扫数据和径向数据的读取。为方便对数据的处理,通用头(GenericHeader)、站点配置(SiteConfig)、任务配置(TaskConfig)、扫描配置(CutConfig)等配置信息也分别定义相关辅助类进行实现。
图5 雷达基数据标准格式解码程序对象模型
基数据解析的流程主要包括:①数据格式有效性判断。根据通用头块中的魔术字和文件类型,对数据格式进行有效性判断。在通用头块中,魔术字为整型数据,十六进制数值为0x4D545352,用来指示雷达数据文件;文件类型字段为1时,表示基数据文件,为2时,表示雷达产品文件。因此首先对魔术字进行验证,再判断文件类型字段数值是否为1,来确认输入文件是否为雷达标准格式基数据文件。②体扫数据解析。体扫数据解析主要在FmtCinradVolumeScan类中实现,主要步骤包括初始化公共数据、逐径向数据读取、体扫数据排序等。初始化公共数据:根据通用数据头块、站点配置块、 任务配置块、扫描配置块中各字段变量类型及占用的存储字节,依次顺序解析出变量中的数据内容。对于扫描任务来说,通常包括不止1个仰角或方位角,多个扫描的配置块依次排列在任务配置块后面,需要根据任务配置块中的扫描层数字段,初始化扫描配置块数组。读取径向数据:按照径向数据块结构,读取径向头块中的信息。按照《天气雷达基数据标准格式V1.1》中定义,目前径向数据共有滤波前反射率(TotalReflectivity)、滤波后反射率(Reflectivity)、径向速度(DopplerVelocity)、谱宽(SpectrumWidth)、信号质量指数(Signal Quality Index)、差分反射率(Differential Reflectivity)、协相关系数(Cross Correlation Coefficient)、差分相移率(Specific Differential Phase)等24种不同数据类别。每个径向中通常包含1种或者多种数据类别,可以按照径向头中的数据类别数量逐个进行读取。径向数据头后为按库依次保存的径向数据,距离库数可以根据径向数据头中的参数长度Length和库字节长度Bin Length计算获得。体扫数据排序:由于不同数据类别可能会在不同的仰角中出现,因此需要对不同仰角中的数据类别,按照仰角和每仰角中的顺序进行排序。按照不同的数据类别,使用HashMap数据结构,逐径向进行遍历,将同一层仰角中的径向数据存放到同一个组中,并更新至HashMap。径向遍历结束后,按照仰角顺序对HashMap中每组数据进行排序,至此可以得到每种数据类别的按照仰角和方位角进行排序的逐仰角逐径向数据。③CDM数据定义。主要通过定义数据集、组、变量、维度、属性等,将雷达基数据标准格式中的配置信息和数据对应到相关的CDM变量和属性中,通过在数据类型变量中,定义“_CoordinateAxisType”属性来指定仰角(RadialElevation)、方位角(RadialAzimuth)、距离(RadialDistance),完成雷达体扫数据到径向坐标的映射。由于不同数据类型的仰角、方位角、距离等参数不一定相同,因此为每个数据类型定义各自对应的坐标系属性。
以上按照CDM数据模型,通过定义NetCDF文件对象实现对雷达标准格式基数据的解析。然后将FmtCinradIOServiceProvider类通过registerIOProvider函数注册到NetcdfFile类中,则可以通过NetcdfFile类的数据读写接口直接对雷达标准格式基数据文件进行访问,最终实现雷达标准格式基数据到CDM的集成。
在实现了雷达标准格式基数据到CDM的集成之后,可以通过更新NetCDF Java库,实现雷达标准格式基数据在IDV中的可视化展示。本文以2020年8月19日台风“海高斯”登陆广东期间广州雷达某一时次基数据为样例进行介绍。
使用IDV打开广州雷达基数据,可以看到(图略)其数据类别包括协相关系数(CC)、差分相移(DP)、差分相移率(KDP)、径向速度(RadialVelocity)、滤波后反射率(Reflectivity)、水平通道信噪比(SNRH)、谱宽(SpectrumWidth)、信号质量指数(SQI)、滤波前反射率(TotalReflectivity)和差分反射率(ZDR)共10种数据类别。在IDV中针对雷达数据有多种展示方式,包括指定仰角的2D和3D展示、RHI、CAPPI、Volume Scan等。
使用2D展示方式对滤波后反射率、径向速度、差分反射率、差分相移率等变量进行展示。如图6所示,可以清晰看出该时次广州雷达最底层仰角(0.476°)滤波后反射率的分布情况,反射率最大值超过50 dBz。径向速度有着明显的气旋流场结构,最大径向速度超过40 m/s。差分反射率分布与反射率强回波分布相似,在强回波区对应着正的差分反射率大值。差分相移率外形与滤波后反射率基本一致,但是两者高值区分布有一定差异。
图6 IDV中最底层仰角数据类别的2D展示:(a) 滤波后反射率Reflectivity;(b)径向速度RadialVelocity;(c)差分反射率ZDR;(d)差分相移率KDP
在雷达标准格式基数据的业务升级工作中,由于涉及到不同型号雷达,且同型号雷达在不同站点可能具有不同的数据转换软件版本,因此在升级工作中可能会导致部分数据存在问题,在业务应用之前需要对数据进行评估以保证业务可用。
本研究成果在雷达标准格式基数据评估中的应用,可以分为2个方面:①基于CDM的雷达标准格式基数据解码,可以读取雷达配置信息及径向数据信息,通过统计方法与原始格式基数据进行对比验证;②基于IDV的雷达标准格式基数据可视化展示,通过图像对比的方法对数据进行验证。本文中仅对以上两方面的应用进行方法上的简单示例介绍,不对相关评估算法和结果进行详细讨论。
如图7所示,以广州雷达在2020年5月16日08:18(世界时)雷达基数据文件为例,本文统计了该时次新旧两种格式雷达最底层仰角的基本反射率直方图分布。通过对比可以发现两种格式数据分布基本一致。由于原始格式和标准格式基数据中基本反射率库长分别为1 km和0.25 km,因此对于同一径向中的基本反射率数据,标准格式与原始格式的数据量之比为4∶1。为进一步分析两者之间的差别,计算新旧两种格式基数据对应位置点的基本反射率差值并进行直方图统计,如图8所示,其差值近似服从正态分布,经计算其均值为0.24 dBz,标准差为10.11 dBz。
图7 广州雷达在2020年5月16日08:18(世界时)原始格式(a)与标准格式(b)基数据最底层仰角基本反射率
图8 广州雷达在2020年5月16日08:18(世界时)原始格式与标准格式基数据最底层仰角对应格点基本反射率的差值
如图9所示,两种格式基数据从IDV图像上看,回波数据分布相差不大。经过对比可以得出结论,广州雷达该时次原始格式和标准格式基数据基本反射率高度一致。
图9 广州雷达在2020年5月16日08:18(世界时)原始格式(a)与标准格式(b)基数据最底层仰角基本反射率IDV展示
本文基于Unidata的CDM数据模型设计了中国天气雷达基数据模型,在数据模型层面对天气雷达标准格式基数据解码程序进行了实现,具有较好的通用性和抽象性。通过实现I/O Service Provider,将天气雷达标准格式基数据解析功能集成到Unidata的NetCDF Java库中,并将兼容天气雷达标准格式基数据的NetCDF Java库移植到IDV中,对雷达基数据中基本反射率、径向速度、谱宽和各偏振量数据类型进行可视化展示,形成了一套基于CDM的天气雷达标准格式基数据内容提取和可视化分析工具。以广州新旧两种格式雷达基数据的基本反射率对比分析为例,通过数理统计、图片对比分析等方法,展示了研究成果在多普勒天气雷达标准格式基数据评估中的应用,结果表明:研究成果方便了雷达标准格式基数据的使用,对雷达标准格式基数据的业务应用起到了促进作用。本文成果亦可应用于雷达基数据处理与分析相关的业务和科研工作中,为雷达资料的应用提供基础支持。
随着天气雷达基数据标准格式的升级优化,本研究中设计的中国天气雷达基数据模型也将不断跟进优化。后续亦可基于本研究中的中国天气雷达基数据模型,开展雷达质量控制、雷达产品加工等方面的研究。