一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Python的水文气象数据区域尺度提取及可视化方法

2022-08-17 02:06:57 来源:中国专利 TAG:

一种基于python的水文气象数据区域尺度提取及可视化方法
技术领域
1.本技术涉及水文气象数据处理技术领域,尤其是涉及一种基于python的水文气象数据区域尺度提取及可视化方法。


背景技术:

2.目前,水文气象数据在区域尺度的研究中发挥着重要作用,研究时需要将水文气象数据的遥感网格尺度转换为区域尺度进行应用分析。
3.现有的水文气象数据区域尺度提取方法一般是针对单个区域或单个时段的数据进行处理分析;在针对连续时间段或多个时间段数据进行提取分析时,不能批量进行区域数据提取,操作过程中存在耗费时间长、效率低下等缺点,同时,缺乏针对不同空间精度的水文气象区域数据的处理方法,影响水文气象数据的区域尺度提取精度。
4.针对上述中的相关技术,发明人发现现有的水文气象数据区域尺度提取方法不能批量进行区域尺度提取和缺乏针对不同空间精度的水文气象区域数据的处理方法,存在有水文气象数据提取效率低和提取精度低的问题。


技术实现要素:

5.为了提高水文气象数据的区域尺度提取效率和提取精度,本技术提供了一种基于python的水文气象数据区域尺度提取及可视化方法。
6.本技术是通过以下技术方案得以实现的:
7.一种基于python的水文气象数据区域尺度提取及可视化方法,包括以下步骤,获取水文气象网格数据;
8.基于预设的区域范围研究文件,裁剪所述水文气象网格数据,得到对应的区域范围的水文气象网格数据;
9.判断对应的区域范围的所述水文气象网格数据的数据格式是否为netcdf格式;若所述水文气象网格数据的数据格式为netcdf格式,则判断对应的区域范围的所述水文气象网格数据中各子区域是否与netcdf文件网格匹配;若所述水文气象网格数据的数据格式为非netcdf格式,则将所述水文气象网格数据转换为netcdf格式再判断对应的区域范围的所述水文气象网格数据中各子区域是否与netcdf文件网格匹配;
10.若所述水文气象网格数据中各子区域与netcdf文件网格不匹配,则基于所述水文气象网格数据中各子区域与netcdf文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重;并根据预设的处理需求,基于所述泰森多边形权重,采用python多进程并行运算提取所述水文气象网格数据在各子区域的分布特征;
11.将提取的所述水文气象网格数据在各子区域的分布特征输出并进行可视化展示。
12.本技术在一较佳示例中可以进一步配置为:还包括以下步骤,
13.若所述水文气象网格数据中各子区域与netcdf文件网格匹配,则根据预设的处理需求,采用python多进程并行运算,提取所述水文气象网格数据在各子区域的分布特征。
14.本技术在一较佳示例中可以进一步配置为:若所述水文气象网格数据的数据格式为非netcdf格式,则将所述水文气象网格数据转换为netcdf格式的步骤包括:
15.利用python的rioxarray库中的open_rasterio函数读取非netcdf格式的所述水文气象网格数据,并利用python的xarray库中的concat函数将单波段的非netcdf格式的所述水文气象网格数据沿着时间尺度合并为多波段文件;
16.再将所述多波段文件由dataarray数据格式转换为dataset数据格式;
17.定义dataset数据格式的所述多波段文件的维度信息、变量信息和属性信息,并将定义的所述多波段文件以netcdf数据格式输出。
18.本技术在一较佳示例中可以进一步配置为:当非netcdf格式的所述水文气象网格数据的数据范围超过预设数据范围值且时间范围超过预设时间范围值时,以预设数据范围值和预设时间范围值为单位对水文气象网格数据进行划分,并采用python多进程并行运算将划分的所述水文气象网格数据转换为netcdf格式,以输出至少两个netcdf数据格式的多波段文件。
19.本技术在一较佳示例中可以进一步配置为:基于所述水文气象网格数据中各子区域与netcdf文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重的步骤包括:
20.基于所述水文气象网格数据中各子区域与netcdf文件网格点的相对位置,使用arcgis软件中的create thiessen polygons工具创建泰森多边形;
21.利用arcgis软件中的tabulate intersection工具得到水文气象网格数据中各子区域内不同netcdf文件网格点的泰森多边形权重。
22.本技术在一较佳示例中可以进一步配置为:当预设处理需求包括分布特征为面均值时,基于所述泰森多边形权重,采用python多进程并行运算提取所述水文气象网格数据在各子区域的分布特征的步骤包括:
23.根据所述netcdf文件网格的网格点的经纬度坐标,使用python的xarray包中的sel函数,提取所述水文气象网格数据在各子区域所包含的网格点的时间序列值;
24.采用预设的时间频率对所述时间序列值进行重采样,并结合python多进程并行运算,基于重采样的所述时间序列值在所述水文气象网格数据中各子区域内对应的所述泰森多边形权重,计算得到所述水文气象网格数据在单个子区域的预设的时间频率的面均值。
25.本技术在一较佳示例中可以进一步配置为:当预设处理需求包括分布特征为面均值时,采用python多进程并行运算,提取所述水文气象网格数据在各子区域的分布特征的步骤包括:
26.利用python的xarray包中的sel函数,根据所述netcdf文件网格的网格点的经纬度坐标,提取所述水文气象网格数据在各子区域所包含的网格点时间序列值;
27.采用预设的时间频率对所述时间序列值进行重采样,并结合python多进程并行运算,基于算数平均法对重采样的所述时间序列值进行计算,得到所述水文气象网格数据在单个子区域的预设的时间频率的面均值。
28.本技术在一较佳示例中可以进一步配置为:所述再判断对应的区域范围的所述水文气象网格数据中各子区域是否与netcdf文件网格匹配的步骤包括,
29.加载对应的区域范围的所述水文气象网格数据;将所述水文气象网格数据提取至
所述netcdf文件网格,得到包含网格点的所述水文气象网格数据;
30.当所述水文气象网格数据中每个子区域包含至少一个所述netcdf文件网格的网格点时,则对应的区域范围的所述水文气象网格数据中各子区域与netcdf文件网格匹配;否则,对应的区域范围的所述水文气象网格数据中各子区域与netcdf文件网格不匹配。
31.本技术在一较佳示例中可以进一步配置为:所述处理需求还包括求解水文气象网格数据在单个子区域的面最大值、面最小值或面总和。
32.综上所述,与现有技术相比,本技术提供的技术方案带来的有益效果至少包括:
33.1、获取水文气象网格数据;基于预设的区域范围研究文件,裁剪水文气象网格数据,得到对应的区域范围的水文气象网格数据,以去除无用的水文气象网格数据,获得目标区域范围内的水文气象网格数据,减少待处理的水文气象网格数据量;再将非netcdf格式的水文气象网格数据均转换为netcdf格式,以便于对水文气象网格数据进行高效地存储、管理、获取和分发等操作,也能够高效传输大量的面向阵列数据;判断对应的区域范围的水文气象网格数据中各子区域是否与netcdf文件网格匹配,以对不同空间精度的水文气象区域数据进行针对性处理;且当水文气象网格数据中各子区域与netcdf文件网格不匹配时,即水文气象区域数据的精度较低且区域面积较小,故基于水文气象网格数据中各子区域与netcdf文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重,并根据预设的处理需求,基于泰森多边形权重,采用python多进程并行运算提取水文气象网格数据在各子区域的分布特征,以提高水文气象区域数据的提取精度,同时,采用python多进程并行运算进行数据提取提升了水文气象数据的提取效率;
34.2、判断对应的区域范围的水文气象网格数据中各子区域是否与netcdf文件网格匹配时,若水文气象网格数据中各子区域与netcdf文件网格匹配,即水文气象区域数据的精度较高且区域面积较大,则采用python多进程并行运算,根据预设的处理需求,提取水文气象网格数据在各子区域的分布特征,以直接提取水文气象网格数据在各子区域的分布特征,操作方便,同时,采用python多进程并行运算进行数据提取提升了水文气象数据的提取效率;
35.3、将提取的水文气象网格数据在各子区域的分布特征输出并进行可视化展示,以直观展示水文气象数据的区域尺度提取结果,便于科研人员进行水文气象数据在区域尺度的研究。
附图说明
36.图1为本技术一个示例性实施例提供的一种基于python的水文气象数据区域尺度提取及可视化方法的流程示意图。
37.图2为本技术一个示例性实施例提供的一种基于python的水文气象数据区域尺度提取及可视化方法的水文气象网格数据转换的流程图。
38.图3为本技术一个示例性实施例提供的一种基于python的水文气象数据区域尺度提取及可视化方法的判断对应的区域范围的水文气象网格数据中各子区域是否与netcdf文件网格匹配的流程图。
39.图4为本技术一个示例性实施例提供的一种基于python的水文气象数据区域尺度提取及可视化方法的低精度的区域尺度分布特征提取流程图。
40.图5为本技术一个示例性实施例提供的一种基于python的水文气象数据区域尺度提取及可视化方法的高精度的区域尺度分布特征提取流程图。
41.图6为本技术一个示例性实施例提供的一种基于python的水文气象数据区域尺度提取及可视化方法的mod_gpp数据集中各子区域与netcdf文件网格匹配的示意图。
42.图7为本技术一个示例性实施例提供的一种基于python的水文气象数据区域尺度提取及可视化方法的mod_gpp数据集中各子区域与netcdf文件网格不匹配的示意图。
43.图8为本技术一个示例性实施例提供的一种基于python的水文气象数据区域尺度提取及可视化方法的珠江流域子区域cmfd中pres、shum、srad和temp四个气象要素的提取结果示意图。
44.图9为本技术一个示例性实施例提供的一种基于python的水文气象数据区域尺度提取及可视化方法的cmfd数据在单个子流域面均值的逐日分布的可视化展示图。
45.图10为现有的cmfd数据集网格尺度可视化展示结果示意图。
46.图11为本技术一个示例性实施例提供的一种基于python的水文气象数据区域尺度提取及可视化方法的cmfd数据在单个子流域面均值的逐日分布的可视化展示图。
具体实施方式
47.本具体实施例仅仅是对本技术的解释,其并不是对本技术的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本技术的权利要求范围内都受到专利法的保护。
48.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
50.下面结合说明书附图对本技术实施例作进一步详细描述。
51.参照图1,本技术实施例提供一种基于python的水文气象数据区域尺度提取及可视化方法,所述方法的主要步骤描述如下。
52.s1:获取水文气象网格数据;
53.s2:基于预设的区域范围研究文件,裁剪水文气象网格数据,得到对应的区域范围的水文气象网格数据;
54.s3:判断对应的区域范围的水文气象网格数据的数据格式是否为netcdf格式;若水文气象网格数据的数据格式为netcdf格式,则进入下一步骤;若水文气象网格数据的数据格式为非netcdf格式,则将水文气象网格数据转换为netcdf格式再进入下一步骤;
55.s4:判断对应的区域范围的水文气象网格数据中各子区域是否与netcdf文件网格匹配;
56.s51:若水文气象网格数据中各子区域与netcdf文件网格不匹配,则基于水文气象网格数据中各子区域与netcdf文件网格点的相对位置,获得各网格点在各子区域内的泰森
多边形权重;并根据预设的处理需求,基于泰森多边形权重,采用python多进程并行运算提取水文气象网格数据在各子区域的分布特征。
57.进一步地,s52:若水文气象网格数据中各子区域与netcdf文件网格匹配,则根据预设的处理需求,采用python多进程并行运算,提取水文气象网格数据在各子区域的分布特征。
58.进一步地,一种基于python的水文气象数据区域尺度提取及可视化方法还包括以下步骤,
59.s6:将提取的水文气象网格数据在各子区域的分布特征输出并进行可视化展示。
60.参照图2,s3:若水文气象网格数据的数据格式为非netcdf格式,则将水文气象网格数据转换为netcdf格式的步骤包括:
61.s31:利用python的rioxarray库中的open_rasterio函数读取非netcdf格式的水文气象网格数据,并利用python的xarray库中的concat函数将单波段的非netcdf格式的水文气象网格数据沿着时间尺度合并为多波段文件;
62.s32:再将多波段文件由dataarray数据格式转换为dataset数据格式;
63.s33:定义dataset数据格式的多波段文件的维度信息、变量信息和属性信息,并将定义的多波段文件以netcdf数据格式输出。
64.进一步地,当非netcdf格式的水文气象网格数据的数据范围超过预设数据范围值且时间范围超过预设时间范围值时,以预设数据范围值和预设时间范围值为单位对水文气象网格数据进行划分,并采用python多进程并行运算将划分的水文气象网格数据转换为netcdf格式,以输出至少两个netcdf数据格式的多波段文件。
65.进一步地,参照图3,s4:判断对应的区域范围的水文气象网格数据中各子区域是否与netcdf文件网格匹配的步骤包括,
66.s41:加载对应的区域范围的水文气象网格数据;
67.s42:将水文气象网格数据提取至netcdf文件网格,得到包含网格点的水文气象网格数据;
68.s43:当水文气象网格数据中每个子区域包含至少一个netcdf文件网格的网格点时,则对应的区域范围的水文气象网格数据中各子区域与netcdf文件网格匹配;否则,对应的区域范围的水文气象网格数据中各子区域与netcdf文件网格不匹配。
69.参照图4,s51:基于水文气象网格数据中各子区域与netcdf文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重的步骤包括:
70.s511:基于水文气象网格数据中各子区域与netcdf文件网格点的相对位置,使用arcgis软件中的create thiessen polygons工具创建泰森多边形;
71.s512:利用arcgis软件中的tabulate intersection工具得到水文气象网格数据中各子区域内不同netcdf文件网格点的泰森多边形权重。
72.进一步地,当预设处理需求包括分布特征为面均值时,基于泰森多边形权重,采用python多进程并行运算提取水文气象网格数据在各子区域的分布特征的步骤包括:
73.s513:根据netcdf文件网格的网格点的经纬度坐标,使用python的xarray包中的sel函数,提取水文气象网格数据在各子区域所包含的网格点的时间序列值;
74.s514:采用预设的时间频率对时间序列值进行重采样,并结合python多进程并行
运算,基于重采样的时间序列值在水文气象网格数据中各子区域内对应的泰森多边形权重,计算得到水文气象网格数据在单个子区域的预设的时间频率的面均值。
75.进一步地,当预设处理需求包括分布特征为面均值时,采用python多进程并行运算,提取水文气象网格数据在各子区域的分布特征的步骤包括:
76.参照图5,s521:利用python的xarray包中的sel函数,根据netcdf文件网格的网格点的经纬度坐标,提取水文气象网格数据在各子区域所包含的网格点时间序列值;
77.s522:采用预设的时间频率对时间序列值进行重采样,并结合python多进程并行运算,基于算数平均法对重采样的时间序列值进行计算,得到水文气象网格数据在单个子区域的预设的时间频率的面均值。
78.上述各个实施例的具体流程步骤描述如下:
79.获取水文气象网格数据,如下载珠江流域shp文件、mod17a2总初级生产力(mod_gpp)数据以及中国区域地面气象要素驱动数据集(the china meteorological forcing dataset,cmfd)中近地面气压(pres)、近地面空气比湿(shum)、地面向下短波辐射(srad)和地面气温(temp)等4个气象要素数据作为本实施案例所需的水文气象网格数据,水文气象网格数据的具体说明见表1。其中,珠江流域shp文件共由1715个集水面积均大于100km2的子流域构成,且采用了pfafstetter编码系统对子流域进行命名编码。
80.表1
[0081][0082]
接着,基于预设的区域范围研究文件,如珠江流域shp文件、mod17a2总初级生产力(mod_gpp)数据以及中国区域地面气象要素驱动数据集(the china meteorological forcing dataset,cmfd)中近地面气压(pres)、近地面空气比湿(shum)、地面向下短波辐射(srad)和地面气温(temp)等4个气象要素数据,利用python的rioxarray库中的clip函数裁剪水文气象网格数据,得到对应的研究区域范围的水文气象网格数据,并设置裁剪的水文气象网格数据的基本属性。
[0083]
继而,判断对应的区域范围的水文气象网格数据的数据格式是否为netcdf格式;若水文气象网格数据的数据格式为netcdf格式,则进入下一步骤;若水文气象网格数据的数据格式为非netcdf格式,则将水文气象网格数据转换为netcdf格式再进入下一步骤。
[0084]
例如,本实施例中,因对应的区域范围的水文气象网格数据mod_gpp数据和cmfd数据集的格式分别为tiff格式,即mod_gpp数据为非netcdf格式和cmfd数据集为netcdf格式。
[0085]
其中,mod_gpp数据需要转换为netcdf格式才可进入下一步骤。具体地,首先利用
python的rioxarray库中open_rasterio函数读取mod_gpp数据,并同时利用xarray库中的concat函数将单波段tif文件沿着时间尺度合并为多波段文件,再沿着

band’维度将数据由dataarray格式转换为dataset格式,之后再定义dataset格式的多波段文件的维度信息dimensions,如将x、y、concat_di纬度重新定义为latitude、lontitude和time;以及定义变量信息variables,如mod_gpp;以及定义属性信息attributes,如_fillvalue值等;最终将数据以netcdf的数据格式进行输出。
[0086]
当非netcdf格式的水文气象网格数据的数据范围超过预设数据范围值、时间范围超过预设时间范围值时,以预设数据范围值和预设时间范围值为单位对水文气象网格数据进行划分,并采用python多进程并行运算将划分的水文气象网格数据转换为netcdf格式,以输出至少两个netcdf数据格式的多波段文件。故当数据范围较大、时间范围较长时,可以输出多个netcdf格式文件进行结果存储,数据格式转换更简单。
[0087]
netcdf格式是一种面向数组型的存储数据格式。netcdf格式适用于网络共享的数据描述和编码标准。且大部分免费公开的水文气象数据集都是netcdf(network common data format,网络通用数据)格式,或可转换为netcdf格式的tiff、erdas imagine、hdf等作为数据共享格式。故将水文气象数据格式转换为netcdf的数据格式,可以对水文气象网格数据进行高效地存储、管理、获取和分发等操作,也能够传输大量的面向阵列数据。
[0088]
判断对应的区域范围的水文气象网格数据中各子区域是否与netcdf文件网格匹配。例如,本实施案例的对应的区域范围的水文气象网格数据为mod_gpp数据集,首先利用arcgis软件的make netcdf raster layer工具加载对应的区域范围的netcdf数据格式的水文气象网格数据,并导出单个tiff格式的文件;再利用raster to point工具将导出的tiff格式的文件提取至netcdf文件网格,得到包含网格点的水文气象网格数据;参照图6,当水文气象网格数据中每个子区域包含至少一个netcdf文件网格的网格点时,则对应的区域范围的水文气象网格数据中各子区域与netcdf文件网格匹配;否则,参照图7,水文气象网格数据中部分子区域不存在netcdf文件网格的网格点,则对应的区域范围的水文气象网格数据中各子区域与netcdf文件网格不匹配。
[0089]
若水文气象网格数据中各子区域与netcdf文件网格匹配,则采用python多进程并行运算,根据预设的处理需求,提取水文气象网格数据在各子区域的分布特征。
[0090]
具体地,当预设处理需求包括分布特征为面均值时,采用python多进程并行运算,根据预设的处理需求,提取水文气象网格数据在各子区域的分布特征的步骤包括:
[0091]
利用python的xarray包中的sel函数,根据netcdf文件网格的网格点的经纬度坐标,提取水文气象网格数据在各子区域所包含的网格点时间序列值;
[0092]
采用预设的时间频率对时间序列值进行重采样,并结合python多进程并行运算,基于算数平均法对重采样的时间序列值进行计算,得到水文气象网格数据在单个子区域的预设的时间频率的面均值(又称算数平均)。
[0093]
进一步,根据求得的面均值,求解水文气象网格数据在单个子区域的面最大值、面最小值以及面总和。
[0094]
其中,面均值、面最大值、面最小值和面总和的计算公式分别如公式(1)-(4)所示:
[0095]
[0096]vi_max
=max{p
i,j
}(i=1,2,3......,m;j=1,2,3......,n)
ꢀꢀ
(2)
[0097]vi_min
=min{p
i,j
}(i=1,2,3......,m;j=1,2,3......,n)
ꢀꢀ
(3)
[0098][0099]
式中,v
i_max
、v
i_min
和v
i_sum
分别表示子区域的面均值、面最大值、面最小值和面总和;p
i,j
表示子区域所包含的网格点数值;n为重采样的时间序列值的总个数。
[0100]
本实施案例,提取水文气象网格数据mod_gpp数据集为2004-2005年逐月的tiff数据,预设的时间频率即为逐月分布,将2004-2005年逐月的mod_gpp数据集转换为netcdf格式,预设处理需求为提取mod_gpp数据在珠江流域1715个子流域的面均值分布。
[0101]
由于子流域面积mod_gpp数据集网格大小匹配,故利用python的xarray包中的sel函数,根据网格点经纬度坐标,得到每个子流域所包含的网格点时间序列值,再利用算数平均法得到mod_gpp数据在每个子流域面均值的逐月分布,提取结果如表2所示。
[0102]
表2
[0103][0104]
表2中,首行pfaf_id表示各子流域的编码名称;首列表示时间;其余列分别表示不同子流域在不同时间的区域尺度提取值;其中,区域尺度真实值=提取值*0.1。
[0105]
此外,因数据提取过程中需要耗费大量的时间,所以针对各个子流域的提取可利用python多进程并行运算,以大幅度提升数据提取速度。
[0106]
若水文气象网格数据中各子区域与netcdf文件网格不匹配,则基于arcgis软件获取水文气象网格数据中各子区域与netcdf文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重。再根据预设的处理需求,基于泰森多边形权重,采用python多进程并行运算提取水文气象网格数据在各子区域的分布特征。其中,基于泰森多边形权重求面均值的公式如(5)所示:
[0107][0108]
其中,表示面均值;p
i,j
表示子区域所包含的网格点数值;w
i,j
表示子
区域中对应网格点的泰森多边形权重。
[0109]
进一步,根据求得的面均值,求解水文气象网格数据在单个子区域的面最大值、面最小值以及面总和。其中,面均值、面最大值、面最小值和面总和的计算公式分别如公式(2)-(4)所示。
[0110]
本实施案例,提取水文气象网格数据为cmfd数据集,预设处理需求为提取出cmfd数据集中pres、shum、srad和temp4个气象要素在珠江流域1715个子流域的面均值分布。由于子流域面积与cmfd数据集网格大小不匹配,因此在数据过程中需要利用泰森多边形权重计算面均值,其具体过程为:首先基于水文气象网格数据中各子区域与netcdf文件网格点的相对位置,使用arcgis软件中的create thiessen polygons工具创建泰森多边形;并利用arcgis软件中的tabulate intersection工具得到水文气象网格数据中各子区域内不同netcdf文件网格点的泰森多边形权重,如表3所示。
[0111]
表3
[0112][0113]
表3中,pfaf_id表示各子流域编码名称;lat表示网格点的纬度;lon表示网格点的经度;percentage表示权重。
[0114]
再使用python中xarray包中的sel函数,根据网格点经纬度坐标得到每个子流域所包含的网格点时间序列值,并根据各网格矢量点的泰森多形权重和对时间频率重采样以计算得到cmfd数据在单个子流域面均值的逐日分布。珠江流域1715个子流域cmfd数据集中pres、shum、srad和temp四个气象要素的提取结果如图8所示。
[0115]
为了提高数据提取效率,采用python多进程并行运算进行区域尺度提取,以大幅度提升数据提取速度。
[0116]
最后,将提取的水文气象网格数据在各子区域的分布特征输出并进行可视化展示。利用python中matplotlib.pyplot库和geopandas库绘制提取的水文气象网格数据在各子区域的分布特征,并设置对应的时间、经纬度坐标以及图例等基本属性,再设置图的时间
范围,可根据绘图需求选择绘制出某个时间点或是某个时间范围内的均值、总和等的结果图。
[0117]
本实施案例,mod_gpp数据在每个子流域面均值的逐月分布的可视化展示结果如图9所示,cmfd数据集网格尺度可视化展示结果如图10所示,cmfd数据在单个子流域面均值的逐日分布的可视化展示结果如图11所示。
[0118]
综上所述,一种基于python的水文气象数据区域尺度提取及可视化方法通过获取水文气象网格数据;基于预设的区域范围研究文件,裁剪水文气象网格数据,得到对应的区域范围的水文气象网格数据,以去除无用的水文气象网格数据,获得目标区域范围内的水文气象网格数据,减少待处理的水文气象网格数据量;再将非netcdf格式的水文气象网格数据均转换为netcdf格式,以便于对水文气象网格数据进行高效地存储、管理、获取和分发等操作,也能够高效传输大量的面向阵列数据;判断对应的区域范围的水文气象网格数据中各子区域是否与netcdf文件网格匹配,以对不同空间精度的水文气象区域数据进行针对性处理;且当水文气象网格数据中各子区域与netcdf文件网格不匹配时,即水文气象区域数据的精度较低且区域面积较小,故基于水文气象网格数据中各子区域与netcdf文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重,并根据预设的处理需求,基于泰森多边形权重,采用python多进程并行运算提取水文气象网格数据在各子区域的分布特征,以提高水文气象区域数据的提取精度,同时,采用python多进程并行运算进行数据提取提升了水文气象数据的提取效率。
[0119]
当水文气象网格数据中各子区域与netcdf文件网格匹配时,即水文气象区域数据的精度较高且区域面积较大,则采用python多进程并行运算,根据预设的处理需求,提取水文气象网格数据在各子区域的分布特征,以直接提取水文气象网格数据在各子区域的分布特征,操作方便,同时,采用python多进程并行运算进行数据提取提升了水文气象数据的提取效率。
[0120]
最后将提取的水文气象网格数据在各子区域的分布特征输出并进行可视化展示,以直观展示水文气象数据的区域尺度提取结果,便于科研人员进行水文气象数据在区域尺度的研究。
[0121]
故本技术先是将不同格式的水文气象数据转换为netcdf格式,并根据不同大小的区域和网格分辨率采取不同提取方法,融合针对不同空间精度的区域和输入数据的处理方法;同时,利用python的并行进程运算实现对多个子区域的数据特征提取,高效将网格尺度水文气象数据转换为区域尺度水文气象数据;最后对数据提取在时间维度上进行重采样,将提取结果进行可视化,为科研人员高效率、方便化将网格水文气象数据处理为区域尺度数据提供了技术支撑。
[0122]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0123]
基于python的水文气象数据区域尺度提取及可视化方法一种基于python的水文气象数据区域尺度提取及可视化方法基于python的水文气象数据区域尺度提取及可视化方法一种基于python的水文气象数据区域尺度提取及可视化方法。
[0124]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功
能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献