CN117972009A - 一种针对天气雷达拼图系统组网产品的数据解析方法 - Google Patents

一种针对天气雷达拼图系统组网产品的数据解析方法 Download PDF

Info

Publication number
CN117972009A
CN117972009A CN202410374261.3A CN202410374261A CN117972009A CN 117972009 A CN117972009 A CN 117972009A CN 202410374261 A CN202410374261 A CN 202410374261A CN 117972009 A CN117972009 A CN 117972009A
Authority
CN
China
Prior art keywords
data
product
networking
file header
format
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410374261.3A
Other languages
English (en)
Other versions
CN117972009B (zh
Inventor
罗帆
田伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Information Science and Technology
Original Assignee
Nanjing University of Information Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Information Science and Technology filed Critical Nanjing University of Information Science and Technology
Priority to CN202410374261.3A priority Critical patent/CN117972009B/zh
Publication of CN117972009A publication Critical patent/CN117972009A/zh
Application granted granted Critical
Publication of CN117972009B publication Critical patent/CN117972009B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A90/00Technologies having an indirect contribution to adaptation to climate change
    • Y02A90/10Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种针对天气雷达拼图系统组网产品的数据解析方法,建立了一套对天气雷达拼图系统V3.0组网产品的雷达基数据进行全面的数据识别、分析、提取、存储和可视化流程,本发明针对输入的二进制雷达基数据能够结合多样的地理特征要素进行可视化并且嵌入了地理信息实现栅格数据的导出以便后续在GIS中进行二次开发。本发明中提出的雷达解析和识别框架在实现对V3.0组网产品数据的高效解析和准确识别方面具有显著的优势,为天气雷达拼图系统V3.0组网产品在之后的推广和处理带来了更具有适应性和可靠性的解决方案。

Description

一种针对天气雷达拼图系统组网产品的数据解析方法
技术领域
本发明属于天气雷达系统数据处理领域,尤其涉及一种针对天气雷达拼图系统组网产品的数据解析方法。
背景技术
在传统天气雷达数据解析的流程中,首先,通过雷达扫描天空获取原始数据。这涉及水平和垂直方向的扫描,以获取大气不同高度的信息。这些原始数据以二进制格式存储,包括了关键气象参数,如反射率、径向速度和谱宽等。随后,进行数据预处理,包括去噪和质控。去噪操作旨在消除由于信号干扰、地面反射或其他干扰因素引起的噪声,以确保后续解析的准确性。此外,进行坐标变换,将雷达扫描的极坐标数据转换为更易处理的地理坐标,通常采用经纬度坐标。接下来是参数计算的阶段,其中计算关键气象参数。通过考虑雷达功率、波束宽度等因素,计算反射率,该参数用于表示目标对雷达波的反射能力。同时,通过多普勒效应计算径向速度,谱宽则反映了目标的运动速度分散程度。在降水估算阶段,利用反射率数据进行降水强度和类型的估算。这一步骤结合不同仰角和扫描,更准确地估算垂直分布的降水。最后,进行可视化和分析。通过生成雷达图像以及进行时空分析,可以更直观地理解和分析天气系统、气旋等特征。
近期,推出了拼图系统V3.0。该系统以全国雷达基数据为基础,取代了之前的V2.0版本,全面提升了雷达在灾害性天气监测预报服务中的应用效益,相比较于上一代雷达数据的拼图产品,天气雷达拼图系统V3.0能够显著提升了质量控制水平并且进一步丰富了产品种类。首次建立了天气雷达数据的质控架构,优化了电磁干扰等非降水回波以及退速度模糊等14种质控算法;并且新增了质量控制后的基数据、三维反射率组网拼图和七大流域组网拼图。进一步提升了雷达在在灾害性天气监测预报服务中的应用效益。
然而正式由于其新颖的数据格式,当前主流的雷达数据解析框架并没有充分适应拼图系统V3.0组网产品数据的复杂格式和丰富信息,具体而言,传统的雷达数据处理工具在处理拼图数据方面存在着以下局限:
1、复杂数据结构的挑战:天气雷达拼图系统V3.0组网产品的数据结构中和数据字段和传统的雷达基数据解析流程中所遵循的数据规则存在着较大的区别。已有的雷达数据解析方法针对固定格式的雷达进行数据结构设计,但是拼图系统V3.0引入了更加复杂和多层次的数据结构,这包括新的数据字段、新的数据格式和新的层级关系,传统的解析方法无法直接理解并且适应这种新的数据规范。这就导致了数据结构的不完整和解析的不准确性。
2、未知字段和信息:传统的天气雷达数据解析框架实现了对于SA/SB/CB数据格式的雷达基数据处理和格式化流程。但是对于新推出的天气雷达拼图系统V3.0组网产品数据,因其数据字段和结构没能被广发认知,导致目前的雷达解析工具对其缺乏识别能力,没有能够按照官方的天气雷达文件结构信息和文件头格式进行相应的函数集成。直接使用传统的雷达解析方案会抛出未知格式错误或者无法读取解析错误,难以开展后续对雷达基数据的进一步操作。
3、数据应用受限:由于目前缺乏适用于V3.0拼图组网产品的解析方法,导致了在后续数据可视化、地理信息集成和GIS操作等方面的受限,阻碍了对数据全面应用的可能性。传统雷达数据处理框架主要关注气象数据的获取和基本处理,通常忽略了地理信息的精确融入。传统方法往往无法将雷达数据准确映射到地球表面,因此在地理信息元素的添加和地图栅格数据导出方面存在一定的不足。
4、无法可视化:雷达基数据的可视化能够提供直观的图形界面来帮助用户更加容易理解雷达基数据的空间和时间特征并且捕捉数据随时间变化的趋势和规律。传统的方法因为无法对天气雷达拼图系统V3.0组网产品数据中的字段进行解析并且提取雷达基数据导致无法实现对基数据的处理和可视化。
5、雷达基数据可视化地理信息元素融合不足:传统的雷达基数据解析方法的可视化更多的关注于雷达基础数据的呈现,对于地理信息元素融入较少,导致可视化结果缺少地理空间背景。这种方法没有考虑用户对地理位置的直观感知,导致可视化结果难以为用户提供对雷达数据在特定地理背景下的全面理解,无法准确生动的反映雷达数据在地理空间的真实位置。
6、不支持栅格数据导出:传统的雷达基数据可视化没有考虑到后续在地理信息系统中的进一步应用,直接将数据存储为原始格式或者其他不带地理信息的格式,缺乏地理化的元数据。不利于后续在GIS中直接进行相关操作,影响了后续的地理信息处理和分析。并且不同的雷达基数据解析框架没有采用统一的地理信息格式,这就导致数据在不同的平台或者软件中读取和解析存在困难。
发明内容
发明目的:为了解决上述现有技术存在的问题,本发明提供了一种针对天气雷达拼图系统组网产品的数据解析方法。
技术方案: 本发明提供了一种针对天气雷达拼图系统组网产品的数据解析方法,其特征在于,具体包括如下步骤:
步骤1:获取天气雷达拼图系统V3.0组网产品的二进制基数据,并且以.bin格式进行存储;
步骤2:对基数据的名称进行信息提取并进行展示;
步骤3:对基数据中前256字节的产品文件头的变量进行信息解析:对产品文件头中不同数据类型和不同长度的变量逐一进行信息提取,然后调用Struct库实现对提取信息的数据解析,将解析后的数据存储为元组的形式并进行显示;
步骤4:将基数据中256字节之后的所有字节作为组网产品的数据块,根据产品文件头中的压缩标志,对数据块进行解压缩,调用Struct库实现数据解析并将解析后的数据存储为元组的形式,将得到的元组数据利用NumPy库加工处理为numpy.ndarray数据格式,并将numpy.ndarray格式的数据形变成二维数据格式,对该二维数据进行还原,得到原始组网产品数据。
进一步的,所述步骤2中对解析后的文件头中的变量进行显示时,还需要对观测时间,生成时间,产品文件头中蕴含的边界信息,产品文件头中蕴含的压缩方式以及产品文件头中蕴含的地理坐标系进行加工处理,具体为:利用datetime.strptim函数实现观测时间和生成时间的数据的格式化,采用如下公式对产品文件头中蕴含的边界信息进行加工处理:
其中,edge_{area}为真实的经纬度信息,area=n,s,w,e,其中edge_s表示南边界值,edge_w表示西边界值,edge_n表示北边界值,edge_e表示东边界值,scale1表示放大倍数;
产品文件头中Compress=1表示bz2压缩格式,Compress=2表示zip压缩格式,Compress=3表示lzw压缩格式;
产品文件头中coordinate=1,表示地理坐标系为等经纬网格坐标系;coordinate=2,表示地理坐标系为笛卡尔坐标系。
进一步的,在步骤3得到原始组网产品数据之后需要对该数据进行可视化处理,具体为:
步骤3.1:利用numpy.where函数将原始组网产品数据中所有的负值设置为0,然后对整体的数据进行归一化,使得每个数据在0-75之间,
步骤3.2:设置染色规则:以x个雷达回波强度为间隔,将0-75的范围划分为15个区间,对每个区间设定对应的颜色代码;
步骤3.3:用Matplotlib.pyplot.figure函数定义绘画区域和画布对象;
步骤3.4:调用contourf函数对原始的画布进行纯色渲染实现背景色改变;
步骤3.5:将颜色代码输入至contourf函数实现区域的染色并且覆盖在画布上层;
步骤3.6:调用Matplotlib.pyplot.savefig函数实现最后的可视化结果保存。
进一步的,所述步骤2或者步骤3中调用Struct库实现对提取信息的数据解析,具体为:采用struct.unpack(format, buffer)函数将文件头中的字段所包含的字节流数据按照给定format的数据类型进行转化,其中format表示指定转换的数据类型,buffer表示的是待编码的字节流数据。
进一步的,所述步骤2中还需对元组形式的数据转换为utf-8编码形式或者浮点类型;具体为:若文件头中字节流数据的数据类型为char,则采用char.decode函数将该字节流数据对应的元组形式的数据转换为utf-8编码形式,若转换后的数据中有\x00字符,则用空格代替该字符,然后采用strip函数删除空格;若文件头中字节流数据的数据类型为int或short则将该字节流数据对应的元组形式的数据直接转换为浮点类型。
进一步的,所述步骤4中采用如下公式对二维数据格式进行还原:
其中,originaldata表示还原后的二维数据,data表示还原前的二维数据,scale表示放大倍数。
进一步的,该方法还包括对地理要素的填充,具体为:
步骤A:根据对文件头的解析,得到该天气雷达拼图系统组网产品采用的地理坐标系,利用cartopy.crs.PlateCarree函数设置与该地理坐标系相应的投影,创建子图对象fig和图形坐标轴对象ax时,将投影传送给subplot_kw函数中的参数,从而定义子图的属性;
步骤B:将文件头中解析得到的边界值定义为子图的区域展示边界,并调用ax.set_extent函数将该区域展示边界作为子图的经纬度范围;
步骤C:采用cartopy.feature实现地理信息绘图并传入不同的地理要素,将地理要素添加到ax.add_feature函数中作为特征;从而实现地理要素的自动填充,所述地理要是包括:陆地,海洋,湖泊以及边界线。
进一步的,该方法还包括将解析得到的组网产品数据导出为GeoTIFF格式的文件,具体为:
步骤a:根据对文件头的解析,得到该天气雷达拼图系统组网产品采用的地理坐标系,确定GeoTIFF格式的文件的地理坐标系;
步骤b:其次根据文件头中解析得到的边界值确定地理坐标范围;
步骤c:计算维度方向上和经度方向上的分辨率,表达式为:
其中,为维度方向上的分辨率,/>为经度方向上的分辨率,edge_s表示南边界值,edge_w表示西边界值,edge_n表示北边界值,edge_e表示东边界值,nX为对文件头解析得到的格点坐标列数,nY为对文件头解析得到的格点坐标行数;
步骤d:在得到分辨率和经纬度范围之后,利用rasterion.from_origin(min_lon,min_lat,resolution_x,resolution_y)函数创建仿射变化transform,其中,min_lon表示最小维度,min_lat表示最小经度,resolution_x表示维度方向上的分辨率单位,resolution_y表示经度方向上的分辨率;
步骤e:调用rasterio.open创建GeoTiFF文件,并且将nY和nX作为所创建文件的高度和宽度,传入地理坐标系和定义好的仿射变换transform;
步骤f:将解析后的组网产品数据写入GeoTiFF文件的波段中进行保存。
有益效果:发明提出了一种针对天气雷达拼图系统V3.0组网产品的数据解析框架和地理信息融合方法。通过重新设计的雷达数据解析和识别框架,成功克服了传统方法在提取最新的天气雷达拼图系统V3.0组网产品数据方面的局限性。传统方法通常难以识别天气雷达拼图系统V3.0组网产品涉及到的新版本的雷达数据结构和格式变化。相较之下,本发明的数据解析框架能够在新数据发布后迅速适应结构变化,实现了高效获取最新雷达数据的能力。与传统方法相比,本发明中提出的雷达解析和识别框架在实现对V3.0组网产品数据的高效解析和准确识别方面取得了显著的优势,为天气雷达拼图系统V3.0组网产品在之后的推广和处理领域带来了更具有适应性和可靠性的解决方案。
其次本发明通过融入更多地理信息特征,包括海岸线、国界线、海洋、陆地、湖泊等,在可视化方面实现了质的飞跃。传统雷达信息呈现常常较为粗糙,仅关注基本的气象特征,而本发明的可视化框架除了提供基础的组网产品可视化结果以外,通过引入丰富的地理信息特征,使得雷达图像更具地貌感和真实性。这不仅提高了用户对雷达数据的直观理解,也为决策制定提供了更为全面的气象背景。
相较于传统方法,本发明注重整合多源地理信息数据,确保地理特征的准确性和连续性。海岸线、国界线等元素的添加不仅仅是简单的装饰,而是基于准确的地理坐标和数据融合而来。这种精细化的地理信息呈现有助于更准确地定位天气事件的发生位置,提升了信息的空间分辨率。使得地理信息特征与气象特征相互衬托,不仅使图像更美观,更能够使用户更为准确地识别和分析不同的地理和气象现象。传统方法可能由于对地理信息关注较少而导致可视化效果的匮乏,本发明填补了这一空白,为用户提供更为直观、详实的雷达信息。通过融入丰富的地理信息特征,本发明提出的组网产品解析框架在可视化效果上明显超越传统方法,为用户提供更全面、真实的天气雷达图像,为气象观测和应用领域提供了更有力的支持。
本发明所提出的组网产品数据解析框架不仅仅限于数据的解析,更在原有基础上设计并完善了雷达基数据的导出功能,支持以GeoTiFF格式进行数据导出。传统雷达解析框架通常仅提供数据的简单显示和分析功能,而本发明结合了地理位置信息和地理坐标系信息导出为GeoTiFF格式,为用户提供了更为灵活、通用的数据输出选项。相较于传统方法,本发明注重数据输出的标准化和地理信息格式的兼容性。GeoTiFF作为一种广泛应用于GIS领域的标准格式,具有较好的兼容性和可扩展性,用户可以在各种地理信息系统中直接使用导出的数据进行进一步的分析和应用。而传统方法可能由于输出格式的局限性,导致数据在不同系统之间难以无缝集成。此外,本发明充分考虑用户的操作习惯和数据处理需求,在导出功能中提供了更多的参数选项,例如导出数据格式、地理坐标系等,以满足不同用户对导出数据的个性化需求。传统方法通常缺乏这样的灵活性,用户在数据导出时受到较多限制。通过支持GeoTiFF格式的基数据导出,本发明为用户提供了更广泛的应用可能性,使得天气雷达拼图系统V3.0的组网产品和其他衍生产品可以更方便地在GIS中进行操作和进一步分析。这种输出的灵活性和标准化有助于拓展天气雷达拼图系统V3.0组网产品的应用领域,为地理信息科学等领域提供了更多的数据处理工具和支持。
附图说明
图1是本发明的整体技术方案流程图。
图2是天气雷达拼图系统V3.0组网产品的文件格式图。
图3是本发明解析天气雷达拼图系统V3.0组网产品组合反射率基数据的直接可视化结果图。
图4是本发明解析天气雷达拼图系统V3.0组网产品进行数据处理之后的上色结果示意图。
图5是本发明解析天气雷达拼图系统V3.0组网产品并再此基础上加入地理坐标系和地理位置信息导出GeoTiFF文件在ArcGIS中的结果展示图。
具体实施方式
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
本发明提出了一种针对天气雷达拼图系统组网产品的数据解析方法,本发明针对的系统为天气雷达拼图系统V3.0,如图1所示,本发明具体包括如下步骤:
步骤1:获取天气雷达拼图系统V3.0组网产品的二进制基数据,数据频次为6分钟,以.bin格式进行存储。
步骤2:针对天气雷达拼图系统V3.0组网产品的产品命名规范对雷达基数据的名称进行信息提取,得到包括资料观测时间、区域号、雷达产品类型、产品生成时间信息并且进行展示。
组网产品包括了组网混合扫描反射率(HBR)、组网组合反射率(CREF)、组网最大反射率高度(CRH)、组网回波顶高产品(ET)、组网垂直累积液态水含量(VIL)、组网一小时降水(OHP)、组网登高面反射率(CAP)。
组网产品的命名规则形式如下:
Z_RADA_C_BABJ_{YYYYMMDDhhmmss}_P_DOR_{AREACODE}_{DTYPE}_{YYYYMMDD_hhmmss}.bin。其中{}内表示为命名规则中的变量,定义依次如下:
Z_RADA_C_BABJ:组网产品统一前缀
YYYYMMDDhhmmss:资料观测时间,年月日时分秒
P_DOR:统一产品标识符
AREACODE:区域号,如全国区域:ACHN
DTYPE:雷达产品类型简写,如QREF
YYYYMMDD_hhmmss:产品生成时间,年月日_时分秒。
对于包含不同产品的组网产品文件命名实例规则如表1所示:
表1
序号 产品名称 数据类型缩写 产品文件名示例
1 基本反射率 QREF Z_RADA_C_BABJ_20220529101000_P_DOR_ACHN_QREF_20220529_102000.bin
2 组合反射率 CREF Z_RADA_C_BABJ_20220529101000_P_DOR_ACHN_CREF_20220529_102000.bin
3 回波顶高 ET Z_RADA_C_BABJ_20220529101000_P_DOR_ACHN_ET_20220529_102000.bin
4 液态垂直累积含水量 VIL Z_RADA_C_BABJ_20220529101000_P_DOR_ACHN_VIL_20220529_102000.bin
5 雨强 QPR Z_RADA_C_BABJ_20220529101000_P_DOR_ACHN_QPR_20220529_102000.bin
6 1小时降水估测 OHP Z_RADA_C_BABJ_20220529101000_P_DOR_ACHN_OHP_20220529_102000.bin
7 未质控组合反射率 UCR Z_RADA_C_BABJ_YYYYMMDDhhmmss_P_DOR_ACHN_UCR_20220529_102000.bin
步骤3:按照天气雷达拼图系统V3.0的产品文件结构对存储在基数据前256字节的产品文件头进行信息解析。利用Python编程语言及其第三方库NumPy和Struct,针对文件头中不同的数据类型和不同的长度的变量逐一进行信息提取并且将其从二进制的字节流形式转变为可辨别的UTF-8编码形式和浮点数类型。文件头提取的信息主要包括文件卷标(文件固定标识、文件格式版本代码、文件字节数)、组网产品描述(拼图产品编号、坐标类型、组网产品代码、产品描述、产品数据起始位置、产品数据字节数)、数据时间(数据时钟、观测时间的年月日等)、数据区信息(数据的东南西北边界、中心区域坐标)、数据操作信息(数据压缩标识、数据放大倍数、雷达拼图数目)。
如图2所示,文件格式定义为:文件头+数据块。文件头中定义了文件卷标(文件固定标识、文件格式版本代码、文件字节数)、产品描述(拼图产品编号、坐标类型、产品代码、产品描述、产品数据起始位置、产品数据字节数)、数据时间(数据时钟、观测时间年、月、日等)、数据区信息(数据区的南、西、北、东边界等),具体定义如下表2所示。文件头共占用256字节,实际定义变量占176字节,后面的80字节为预留空间。数据块为nX*nY(文件头中定义的变量)个short类型数组,根据文件头中的Compress标志位判断是否压缩,默认的压缩方式为bz2压缩。对应的文件格式字段、字段的数据类型和对应字节位置以及字段的含义如表2所示:
表2
序号 字段名 数据类型 字节位置 字段含义
1 label[4] char 0-3 文件固定标识:MOC
2 Version[4] char 4-7 文件格式版本代码,如:1.0,1.1
3 FileBytes int 8-11 包含头信息在内的文件字节数,不超过2M
4 MosaicID short 12-13 拼图产品编号
5 coordinate short 14-15 坐标类型:2=笛卡儿坐标,3=等经纬网格坐标
6 varname[8] char 16-23 产品代码,如:ET,VIL,CR,CAP,OHP,OHPC
7 description[64]; char 24-87 产品描述,如Composite Reflectivity, mosaic
8 BlockPos int 88-91 产品数据起始位置(字节顺序)
9 BlockLen int 92-95 产品数据字节数
11 TimeZone int 96-99 数据时钟,0=世界时,28800=北京时
12 yr short 100-101 观测时间中的年份
13 mon short 102-103 观测时间中的月份(1-12)
14 day short 104-105 观测时间中的日期(1-31)
15 hr short 106-107 观测时间中的小时(00-23)
16 min short 108-109 观测时间中的分(00-59)
17 sec short 110-111 观测时间中的秒(00-59)
18 ObsSeconds int 112-115 观测时间的seconds
19 ObsDates unsignedshort 116-117 观测时间中的Julian Dates
20 GenDates Unsignedshort 118-119 产品处理时间的天数
21 GenSeconds int 120-123 产品处理时间的描述
22 edge_s int 124-127 数据区的南边界,单位:1/1000度,放大1千倍
23 edge_w int 128-131 数据区的西边界,单位:1/1000度,放大1千倍
24 edge_n int 132-135 数据区的北边界,单位:1/1000度,放大1千倍
25 edge_e int 136-139 数据区的东边界,单位:1/1000度,放大1千倍
26 cx int 140-143 数据区中心坐标,单位:1/1000度,放大1千倍
27 cy int 144-147 数据区中心坐标,单位:1/1000度,放大1千倍
28 nX int 148-151 格点坐标为列数
29 nY int 152-155 格点坐标为行数
30 dx int 156-159 格点坐标为列分辨率,单位:1/10000度,放大1万倍
31 dy int 160-163 格点坐标为行分辨率,单位:1/10000度,放大1万倍
32 height short 164-165 雷达高度
33 Compress short 166-167 数据压缩标识,0=无,1=bz2,2=zip,3=lzw
34 num_of_radars int 168-171 有多少个雷达进行了拼图
35 UnZipBytes int 172-175 数据段压缩前的字节数
36 scale short 176-177 数据放大倍数,默认放大10倍
37 unUsed short 178-179 文件头预留空间
38 RgnID[8] char 180-187 文件头预留空间
39 units[8] char 188-195 文件头预留空间
40 reserved[60] char 196-255 文件头预留空间
对于传入的天气雷达拼图系统V3.0组网产品基数据。本发明利用Python编程语言实现文件解析。首先利用 file.open函数按照读写方式打开对应.bin文件并且利用read函数读取二进制字节流形式的组网产品数据。先读取前256个字节文件头信息格式,针对文件头中不同类型和不同长度的变量需要调用struct.unpack(format,buffer) 函数,将头文件中的字段所包含的字节流数据buffer按照给定format的数据类型进行转化并且存储为元组的形式。Struct.unpack(format,buffer)可以将二进制的字节流数据buffer编码为指定的format数据类型。format和数据类型的转换规则如下表3所示。比如对于文件头中的数据类型为char的字段数据(如label、version、description),需要指定解析的格式format为“c” ,对于short类型的文件头变量(比如coordinate,yr,mon,day,min,sec,height),在确定了长度之后设置struct.unpack(format, buffer)的转换形式format为“h”;对于文件头中类型为int的变量信息(如edge_s, edge_n, edge_w, edge_e等),需要设置转换的数据类型format为“i”;若文件头中字节流数据的数据类型为char,则采用char.decode函数将该字节流数据对应的元组形式的数据转换为utf-8编码形式,并且用空格转替换数据中的\x00字符,最后利用strip函数删除空格;若文件头中字节流数据的数据类型为int或short则直接将该字节流数据对应的元组形式的数据直接转换为浮点类型。
表3
format C Type Python Type
c char String of length 1
b signed char Integer
B unsigned char Integer
? _Bool bool
h short Integer
H unsigned short Integer
i int Integer
I unsigned int Integer
s char[] String
d double float
步骤4:在解析完所有文件头中的变量并且进行存储时,在显示详细信息时需要进一步加工处理。将观测时间和生成时间利用datetime.strptim()函数实现时间数据的格式化;针对压缩标识Compress得到数据块的压缩方式(Compress=1表示bz2压缩,Compress=2表示zip压缩格式,Compress=3表示lzw压缩格式);针对文件头中蕴含的南北边界信息需要进一步加工处理得到真实的经纬度信息,加工满足,其中,edge_{area}为真实的经纬度信息,area=n,s,w,e,其中edge_s表示南边界值,edge_w表示西边界值,edge_n表示北边界值,edge_e表示东边界值,scale1表示放大倍数;本实施例scale1=100,对于得到的格点坐标行数nY和格点坐标列数nX分别对应得到的基数据在垂直方向和水平方向上也就是维度方向和经度方向上的分辨率大小,对应维度和经度方向上的单位分辨率则是通过变量dy和dx进行计算获得(计算公式为/>),最后得到行坐标格点和列坐标格点分辨率均为0.01°;除此之外还需要进一步解析组网产品的默认地理坐标系,对文件头中的变量coordinate,若coordinate=1,那么地理坐标系为等经纬网格坐标;若coordinate=2那么地理坐标系为笛卡尔坐标系,本实施例中解析得到默认的地理坐标系均为等经纬网格坐标。对解析的文件头中变量进行加工之后,传入组网产品文件路径,控制台输出的天气雷达拼图系统V3.0组网产品文件头解析数据信息如下所示:
ZRADA CBABJ20231105182416PDOR ACHN CREF 20231105181800.bin 的基本信为:
版本信息为:
坐标类型为:等经纬网格坐标
描述信息:Composite Refelectivity
数据时钟:北京时间
产品类型:组合反射率
雷达数据观测时间 2023-11-05 18:18:00
雷达数据生成时间 2023-11-05 18:24:16
雷达数据南边界维度12.2°N
雷达数据北边界维度 54.2°N
雷达数据西边界维度 73.0°E
雷达数据东边界维度135.0°E
雷达数据区中心坐标(104.0°E,33.2°N)
雷达拼图数目:183
雷达高度:0
雷达数据压缩格式:bz2
雷达数据放大倍数:10
格点坐标的列数:6200
格点坐标的行数:4200
格点坐标列分辨率单位:0.01°
格点坐标行分辨率:0.01°。
步骤5:在得到文件头中记录的信息之后将基数据256个字节之后的所有字节作为组网产品的数据块。数据块为nX*nY个符号整数类型short的数据,并且进行压缩。因此首先要根据文件头中的压缩标识符选择解压方式,对数据进行解压之后继续调用Struct库实现数据解析并且将二进制的数据存储为元组的形式。将得到的元组数据利用NumPy库加工处理为numpy.ndarray数组形式,为了后续的可视化处理,将加工之后数据按照水平方向和垂直方向上的格点行列数变形为的二维数组形式,这种方式恰好对应经纬度范围。得到数据之后需要根据文件头中解析的数据缩放倍数scale实现数据大小的还原。
产品数据存储方式为short类型的数组,长度为文件头中解析的nX*nY,对应经纬度所有的坐标格点数目。首先需要文件头中的Compress标识符判断数据库压缩格式,本实施例使用bz2压缩。利用bz2.decompress(data)函数对数据块进行解压并且继续利用struct.unpack(format,bytes)函数读取解压之后的二进制数据并设置format类型为“h”,转变为Python可操作的数值类型并保存为元组形式。其次提取元组内所有原始数据利用numpy.array函数将其转化为numpy.ndarray数据格式,为了后续的可视化将得到的numpy数组形式的数据形变为(维度,经度)的形状,维度和经度对应具体数值分别为文件头中解析的格点坐标行数nX和格点坐标列数nY,得到按照经纬度分布的二维组网产品数据,然后需要对组网产品进行数据还原,还原计算方式为,originaldata表示还原后的二维数据,data表示还原前的二维数据,scale表示放大倍数,本实施例中scale=10。由此得到最终需要提取的原始组网产品数据。
步骤6:在得到原始组网产品数据之后需要进一步对数据进行处理以便进行可视化。首先需要将组网产品数据负值部分全部替换为零,考虑到组网反射率的上色阈值区间为0-75,本发明将对应组网反射率产品数值归一化到0-75之间对小于等于零的值进行遮掩。定义不同DBZ间隔的色卡作为基数据的染色规则,并且结合Matplotlib库传入解析处理之后的组合反射率数据。传入染色规则并且定义保存类型和保存的像素点数实现组网产品的可视化和保存。
得到原始的组网产品数据之后,本发明直接将解析出的原始组网产品基数据进行导出,利用opencv.imwrite函数实现对提取之后的二维组网产品数据的可视化,如图3所示。本发明同时支持按照气象雷达的统一阈值标准对组网产品进行染色可视化,首先需要对原始的组网数据进行质量控制。利用numpy.where函数将所有负值控制为0,并且需要利用归一化方法将整体的数值控制在0-75之间。对应的归一化计算方式满足。其中normalized_data表示最终归一化的结果,/>表示组网产品的数值的最小值,/>表示组网产品数值的最大值。其次需要按照统一标准定义染色规则,每隔5个DBZ(雷达回波强度)间隔对应不同的颜色,因此0-75范围内的DBZ可以划分为15个区间,本实施中将每个颜色对应的颜色代码分别为:"#0000F6", "#01A0F6", "#00ECEC", "#01FF00","#00C800","#019000","#FFFF00", "#E7C000", "#FF9000", "#FF0000", "#D60000","#C00000","#FF00F0","#780084", "#AD90F0"。在定义好色卡之后利用Matplotlib.pyplot.figure函数声明绘画区域和画布对象,传入定义好的染色规则给contourf函数实现区域的染色并且覆盖在原始的画布上层。调用Matplotlib.pyplot.savefig函数实现最后的可视化结果保存。选择保存图片的参数如保存图片格式、保存图片DPI、保存图片背景是否透明等,用户传入的参数将会传入savefig函数中进行实现。本发明支持渲染黑色背景或者其他颜色背景,用户传入的颜色背景参数代码(如黑色背景为black,白色背景为white)将会在DBZ染色规则作用之前先调用contourf()对原始的画布进行纯色渲染实现背景色改变,可视化结果如图4所示。
步骤7:本发明在实现组网产品的可视化基础之上引入了多重地理特征,包括陆地填充、海洋填充、海岸线勾勒、国界线描绘、河流描绘以及湖泊描绘。在创建Matplotlib绘图对象的时候传入地图信息投影,根据头文件中解析出来的地区边界范围得到经纬度范围并且作为绘图的区域范围。结合Cartopy库传入多种地理特征的信息要素并且叠加到可视化的画布窗口之上并且添加经纬度格点窗口到最后的图像中。最后根据传入的文件名和格式以及像素点数进行指定路径保存文件。
本发明借助Cartopy在解析出组网产品数据的同时实现对应地理位置信息可视化和地理环境特征的融合。在步骤二中根据文件头解析得到的coordinate参数得到地理坐标系为等经纬度网格坐标,利用cartopy.crs.PlateCarree创建等经纬度投影,并且在pyplot.subplots创建子图对象fig和图形坐标轴对象ax时传入给subplot_kw函数中的参数来定义子图的属性。其次将文件头中解析的数据区的边界值edge_e,edge_s,edge_w,edge_n定义为子图的区域展示边界并且传入给ax.set_extent函数作为子图展示的经纬度范围。通过设置cartopy.feature实现地理信息绘图传入不同的地理要素,并且将其添加到ax.add_feature函数中作为特征。在确定了经纬度边界范围之后能够自动填充该区域内部的陆地、海洋、湖泊,并且对区域内部的国界线、海岸线、河流进行勾勒描绘。本发明进一步拓展了用户手动设置地理要素的可视化选项,传入facecolor参数指定填充颜色规则;传入linewidth指定线条粗细;传入alpha指定透明度;传入linestyle指定线条样式;传入color指定线条颜色。用户可以手动选择关闭地理特征或者经纬度网格线展示,传入的参数将会作为ax设置的参数生效。
步骤8:本发明在实现天气雷达拼图系统V3.0组网产品的解析和地理信息可视化的基础之上进一步实现了包含地理信息的栅格数据格式的导出。通过Rasterio库实现GeoTIFF格式的提取。对于二维数组组网产品数据,首先根据头文件中的coordinate变量(坐标类型)指定地理坐标系,然后根据文件头中解析出的区域边界设置经纬度范围,接着计算得到垂直的方向和水平方向的分辨率,并且将经纬度信息和分辨率信息作为地理坐标转换参数,最后将组网产品数据写入到GeoTIFF文件的波段中,并根据传入的文件名和路径进行保存。
发明集成了rasterio库用来支持将解析出的组网产品数据结合其经纬度信息、地理位置坐标系得到栅格信息并且进一步导出为GeoTIFF格式文件。首先根据文件头中解析得到的地理位置坐标系coordinate确定GeoTIFF文件的地理坐标系,coordinate为等经纬度网格坐标,因此设置地理坐标系crs为WGS84,按照EPSG标准使用4326作为编号。其次头文件中解析的数据区的边界值edge_e,edge_s,edge_w,edge_n用来指定数据的地理坐标范围。然后计算维度方向上和经度方向上的网格点分辨率,通过地理坐标范围和网格大小来确定。在文件头中解析的nX表示维度方向的网格行数,维度范围为[edge_s,edge_n],因此维度方向上的分辨率的计算方式为:/>;头文件中解析的nY表示经度方向的网格列数,经度范围为[edge_w,edge_e],因此经度方向上的分辨率的计算方式为:/>。在得到分辨率和经纬度范围之后,利用rasterion.from_origin(min_lon,min_lat,resolution_x,resolution_y)函数创建仿射变化transform,其中min_lon表示最小维度,min_lat表示最小经度,resolution_x表示维度分辨率单位,resolution_y表示经度分辨率,传入的参数分别是区域左下角的经度坐标和左下角的维度坐标、水平方向分辨率单位、垂直方向分辨率单位。最后调用rasterio.open创建GeoTiFF文件并且传入文件头解析的nY和nX作为所需要创建文件的高度和宽度,指定数据类型为用户传入的数据类型(本实施例设置为float64类型),传入地理坐标系crs和定义好的仿射变换transform,指定波段数量为单波段。创建完成之后在相应波段写入解析的组网产品的原始数据。对应导出的GeoTIFF文件可以在ArcGIS中打开,对应结果如图5所示。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

Claims (8)

1.一种针对天气雷达拼图系统组网产品的数据解析方法,其特征在于,具体包括如下步骤:
步骤1:获取天气雷达拼图系统V3.0组网产品的二进制基数据,并且以.bin格式进行存储;
步骤2:对基数据的名称进行信息提取并进行展示;
步骤3:对基数据中前256字节的产品文件头的变量进行信息解析:对产品文件头中不同数据类型和不同长度的变量逐一进行信息提取,然后调用Struct库实现对提取信息的数据解析,将解析后的数据存储为元组的形式并进行显示;
步骤4:将基数据中256字节之后的所有字节作为组网产品的数据块,根据产品文件头中的压缩标志,对数据块进行解压缩,调用Struct库实现数据解析并将解析后的数据存储为元组的形式,将得到的元组数据利用NumPy库加工处理为numpy.ndarray数据格式,并将numpy.ndarray格式的数据形变成二维数据格式,对该二维数据进行还原,得到原始组网产品数据。
2.根据权利要求1所述的一种针对天气雷达拼图系统组网产品的数据解析方法,其特征在于,所述步骤2中对解析后的文件头中的变量进行显示时,还需要对观测时间,生成时间,产品文件头中蕴含的边界信息,产品文件头中蕴含的压缩方式以及产品文件头中蕴含的地理坐标系进行加工处理,具体为:利用datetime.strptim函数实现观测时间和生成时间的数据的格式化,采用如下公式对产品文件头中蕴含的边界信息进行加工处理:
其中,edge_{area}为真实的经纬度信息,area=n,s,w,e,其中edge_s表示南边界值,edge_w表示西边界值,edge_n表示北边界值,edge_e表示东边界值,scale1表示放大倍数;
产品文件头中Compress=1表示bz2压缩格式,Compress=2表示zip压缩格式,Compress=3表示lzw压缩格式;
产品文件头中coordinate=1,表示地理坐标系为等经纬网格坐标系;coordinate=2,表示地理坐标系为笛卡尔坐标系。
3.根据权利要求1所述的一种针对天气雷达拼图系统组网产品的数据解析方法,其特征在于,在步骤3得到原始组网产品数据之后需要对该数据进行可视化处理,具体为:
步骤3.1:利用numpy.where函数将原始组网产品数据中所有的负值设置为0,然后对整体的数据进行归一化,使得每个数据在0-75之间,
步骤3.2:设置染色规则:以x个雷达回波强度为间隔,将0-75的范围划分为15个区间,对每个区间设定对应的颜色代码;
步骤3.3:用Matplotlib.pyplot.figure函数定义绘画区域和画布对象;
步骤3.4:调用contourf函数对原始的画布进行纯色渲染实现背景色改变;
步骤3.5:将颜色代码输入至contourf函数实现区域的染色并且覆盖在画布上层;
步骤3.6:调用Matplotlib.pyplot.savefig函数实现最后的可视化结果保存。
4.根据权利要求1所述的一种针对天气雷达拼图系统组网产品的数据解析方法,其特征在于,所述步骤2或者步骤3中调用Struct库实现对提取信息的数据解析,具体为:采用struct.unpack(format, buffer)函数将文件头中的字段所包含的字节流数据按照给定format的数据类型进行转化,其中format表示指定转换的数据类型,buffer表示的是待编码的字节流数据。
5.根据权利要求1所述的一种针对天气雷达拼图系统组网产品的数据解析方法,其特征在于,所述步骤2中还需对元组形式的数据转换为utf-8编码形式或者浮点类型;具体为:若文件头中字节流数据的数据类型为char,则采用char.decode函数将该字节流数据对应的元组形式的数据转换为utf-8编码形式,若转换后的数据中有\x00字符,则用空格代替该字符,然后采用strip函数删除空格;若文件头中字节流数据的数据类型为int或short则将该字节流数据对应的元组形式的数据直接转换为浮点类型。
6.根据权利要求1所述的一种针对天气雷达拼图系统组网产品的数据解析方法,其特征在于,所述步骤4中采用如下公式对二维数据格式进行还原:
,
其中,originaldata表示还原后的二维数据,data表示还原前的二维数据,scale表示放大倍数。
7.根据权利要求1所述的一种针对天气雷达拼图系统组网产品的数据解析方法,其特征在于,该方法还包括对地理要素的填充,具体为:
步骤A:根据对文件头的解析,得到该天气雷达拼图系统组网产品采用的地理坐标系,利用cartopy.crs.PlateCarree函数设置与该地理坐标系相应的投影,创建子图对象fig和图形坐标轴对象ax时,将投影传送给subplot_kw函数中的参数,从而定义子图的属性;
步骤B:将文件头中解析得到的边界值定义为子图的区域展示边界,并调用ax.set_extent函数将该区域展示边界作为子图的经纬度范围;
步骤C:采用cartopy.feature实现地理信息绘图并传入不同的地理要素,将地理要素添加到ax.add_feature函数中作为特征;从而实现地理要素的自动填充,所述地理要是包括:陆地,海洋,湖泊以及边界线。
8.根据权利要求1所述的一种针对天气雷达拼图系统组网产品的数据解析方法,其特征在于,该方法还包括将解析得到的组网产品数据导出为GeoTIFF格式的文件,具体为:
步骤a:根据对文件头的解析,得到该天气雷达拼图系统组网产品采用的地理坐标系,确定GeoTIFF格式的文件的地理坐标系;
步骤b:其次根据文件头中解析得到的边界值确定地理坐标范围;
步骤c:计算维度方向上和经度方向上的分辨率,表达式为:
,
其中,为维度方向上的分辨率,/>为经度方向上的分辨率,edge_s表示南边界值,edge_w表示西边界值,edge_n表示北边界值,edge_e表示东边界值,nX为对文件头解析得到的格点坐标列数,nY为对文件头解析得到的格点坐标行数;
步骤d:在得到分辨率和经纬度范围之后,利用rasterion.from_origin(min_lon,min_lat,resolution_x,resolution_y)函数创建仿射变化transform,其中,min_lon表示最小维度,min_lat表示最小经度,resolution_x表示维度方向上的分辨率单位,resolution_y表示经度方向上的分辨率;
步骤e:调用rasterio.open创建GeoTiFF文件,并且将nY和nX作为所创建文件的高度和宽度,传入地理坐标系和定义好的仿射变换transform;
步骤f:将解析后的组网产品数据写入GeoTiFF文件的波段中进行保存。
CN202410374261.3A 2024-03-29 2024-03-29 一种针对天气雷达拼图系统组网产品的数据解析方法 Active CN117972009B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410374261.3A CN117972009B (zh) 2024-03-29 2024-03-29 一种针对天气雷达拼图系统组网产品的数据解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410374261.3A CN117972009B (zh) 2024-03-29 2024-03-29 一种针对天气雷达拼图系统组网产品的数据解析方法

Publications (2)

Publication Number Publication Date
CN117972009A true CN117972009A (zh) 2024-05-03
CN117972009B CN117972009B (zh) 2024-06-11

Family

ID=90846402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410374261.3A Active CN117972009B (zh) 2024-03-29 2024-03-29 一种针对天气雷达拼图系统组网产品的数据解析方法

Country Status (1)

Country Link
CN (1) CN117972009B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984773A (zh) * 2014-06-05 2014-08-13 南京信息工程大学 一种多格式天气雷达基数据文件转NetCDF文件方法
CN109254290A (zh) * 2018-08-17 2019-01-22 深圳市雅码科技有限公司 一种天气雷达并行拼图方法及系统
US20200035028A1 (en) * 2018-07-30 2020-01-30 Raytheon Company Augmented reality (ar) doppler weather radar (dwr) visualization application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984773A (zh) * 2014-06-05 2014-08-13 南京信息工程大学 一种多格式天气雷达基数据文件转NetCDF文件方法
US20200035028A1 (en) * 2018-07-30 2020-01-30 Raytheon Company Augmented reality (ar) doppler weather radar (dwr) visualization application
CN109254290A (zh) * 2018-08-17 2019-01-22 深圳市雅码科技有限公司 一种天气雷达并行拼图方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YAOKUN HU 等: "A novel adaptive range-bin selection method for remote heart-rate measurement of an indoor moving person using mm-wave FMCW radar", IEICE COMMUNICATIONS EXPRESS, vol. 10, no. 5, 1 May 2021 (2021-05-01), pages 277 - 282 *
袁正国 等: "基于"云 + 端"架构的江西省雷达拼图系统设计", 科学技术与工程, vol. 22, no. 18, 31 December 2022 (2022-12-31), pages 7773 - 7779 *

Also Published As

Publication number Publication date
CN117972009B (zh) 2024-06-11

Similar Documents

Publication Publication Date Title
EP2264667B1 (en) Method and device for generating ground surface image data
CN111127646B (zh) 一种度量地貌高差的栅格化高程曲面的构建方法及系统
EP0789892B1 (en) Apparatus and method for constructing a mosaic of data
CN109670789B (zh) 一种用于生产建设项目水土保持的遥感监测系统
CN115375868B (zh) 地图显示和遥感地图显示方法、计算设备以及存储介质
CN111723464A (zh) 一种基于遥感影像特征的台风椭圆型风场参数化模拟方法
CN112883900B (zh) 遥感影像裸地反演可视图的方法及装置
CN113192192A (zh) 一种实景三维数字孪生航道场景构建方法
CN111429548B (zh) 数字地图生成方法及系统
CN114723869A (zh) 影像处理方法以及装置
CN114020786A (zh) 一种通过多种气象信息计算雨情预警范围的方法及系统
CN112685616A (zh) 一种基于空间网格和建筑信息模型的精准化电力部件管理方法
CN112949754A (zh) 一种基于图像融合的文本识别数据合成方法
CN115147554A (zh) 三维场景构建方法、装置、设备和存储介质
CN109657728B (zh) 样例生产方法及模型训练方法
CN117972009B (zh) 一种针对天气雷达拼图系统组网产品的数据解析方法
CN108375806A (zh) 气象地图的获取方法和装置
CN109389570B (zh) 基于envi的优化矢量选取roi遥感影像预处理方法
CN115527027A (zh) 一种基于多特征融合机制的遥感影像地物分割方法
CN114166842A (zh) 高分遥感数据与地面调查数据协同的城镇森林监测方法
CN110706240B (zh) 基于小图斑的无人机影像数据批量裁切方法
LU501719B1 (en) Terrain simulation method based on satellite images and digital elevation data
CN115357675B (zh) 一种像控点标准化处理建设像控点数据库方法和系统
CN115661471A (zh) 紫菜养殖区提取方法、装置、可读存储介质及电子设备
CN115527028A (zh) 地图数据处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant