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

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

Info

Publication number
CN114911853B
CN114911853B CN202210415414.5A CN202210415414A CN114911853B CN 114911853 B CN114911853 B CN 114911853B CN 202210415414 A CN202210415414 A CN 202210415414A CN 114911853 B CN114911853 B CN 114911853B
Authority
CN
China
Prior art keywords
data
grid
hydrometeorology
netcdf
grid data
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.)
Active
Application number
CN202210415414.5A
Other languages
English (en)
Other versions
CN114911853A (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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202210415414.5A priority Critical patent/CN114911853B/zh
Publication of CN114911853A publication Critical patent/CN114911853A/zh
Application granted granted Critical
Publication of CN114911853B publication Critical patent/CN114911853B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/26Visual data mining; Browsing structured data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Quality & Reliability (AREA)
  • Image Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种基于Python的水文气象数据区域尺度提取及可视化方法,该方法包括:获取水文气象网格数据;裁剪得到对应的区域范围的水文气象网格数据;判断对应的区域范围的水文气象网格数据的数据格式是否为NetCDF格式,若非NetCDF格式,则将水文气象网格数据转换为NetCDF格式;再判断对应的区域范围的水文气象网格数据中各子区域是否与NetCDF文件网格匹配,若不匹配,则基于泰森多边形权重,采用Python多进程并行运算提取分布特征。本发明可提高水文气象数据的区域尺度提取效率和提取精度。

Description

一种基于Python的水文气象数据区域尺度提取及可视化方法
技术领域
本申请涉及水文气象数据处理技术领域,尤其是涉及一种基于Python的水文气象数据区域尺度提取及可视化方法。
背景技术
目前,水文气象数据在区域尺度的研究中发挥着重要作用,研究时需要将水文气象数据的遥感网格尺度转换为区域尺度进行应用分析。
现有的水文气象数据区域尺度提取方法一般是针对单个区域或单个时段的数据进行处理分析;在针对连续时间段或多个时间段数据进行提取分析时,不能批量进行区域数据提取,操作过程中存在耗费时间长、效率低下等缺点,同时,缺乏针对不同空间精度的水文气象区域数据的处理方法,影响水文气象数据的区域尺度提取精度。
针对上述中的相关技术,发明人发现现有的水文气象数据区域尺度提取方法不能批量进行区域尺度提取和缺乏针对不同空间精度的水文气象区域数据的处理方法,存在有水文气象数据提取效率低和提取精度低的问题。
发明内容
为了提高水文气象数据的区域尺度提取效率和提取精度,本申请提供了一种基于Python的水文气象数据区域尺度提取及可视化方法。
本申请是通过以下技术方案得以实现的:
一种基于Python的水文气象数据区域尺度提取及可视化方法,包括以下步骤,获取水文气象网格数据;
基于预设的区域范围研究文件,裁剪所述水文气象网格数据,得到对应的区域范围的水文气象网格数据;
判断对应的区域范围的所述水文气象网格数据的数据格式是否为NetCDF格式;若所述水文气象网格数据的数据格式为NetCDF格式,则判断对应的区域范围的所述水文气象网格数据中各子区域是否与NetCDF文件网格匹配;若所述水文气象网格数据的数据格式为非NetCDF格式,则将所述水文气象网格数据转换为NetCDF格式再判断对应的区域范围的所述水文气象网格数据中各子区域是否与NetCDF文件网格匹配;
若所述水文气象网格数据中各子区域与NetCDF文件网格不匹配,则基于所述水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重;并根据预设的处理需求,基于所述泰森多边形权重,采用Python多进程并行运算提取所述水文气象网格数据在各子区域的分布特征;
将提取的所述水文气象网格数据在各子区域的分布特征输出并进行可视化展示。
本申请在一较佳示例中可以进一步配置为:还包括以下步骤,
若所述水文气象网格数据中各子区域与NetCDF文件网格匹配,则根据预设的处理需求,采用Python多进程并行运算,提取所述水文气象网格数据在各子区域的分布特征。
本申请在一较佳示例中可以进一步配置为:若所述水文气象网格数据的数据格式为非NetCDF格式,则将所述水文气象网格数据转换为NetCDF格式的步骤包括:
利用Python的rioxarray库中的open_rasterio函数读取非NetCDF格式的所述水文气象网格数据,并利用Python的xarray库中的concat函数将单波段的非NetCDF格式的所述水文气象网格数据沿着时间尺度合并为多波段文件;
再将所述多波段文件由DataArray数据格式转换为Dataset数据格式;
定义Dataset数据格式的所述多波段文件的维度信息、变量信息和属性信息,并将定义的所述多波段文件以NetCDF数据格式输出。
本申请在一较佳示例中可以进一步配置为:当非NetCDF格式的所述水文气象网格数据的数据范围超过预设数据范围值且时间范围超过预设时间范围值时,以预设数据范围值和预设时间范围值为单位对水文气象网格数据进行划分,并采用Python多进程并行运算将划分的所述水文气象网格数据转换为NetCDF格式,以输出至少两个NetCDF数据格式的多波段文件。
本申请在一较佳示例中可以进一步配置为:基于所述水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重的步骤包括:
基于所述水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,使用ArcGIS软件中的Create Thiessen Polygons工具创建泰森多边形;
利用ArcGIS软件中的Tabulate Intersection工具得到水文气象网格数据中各子区域内不同NetCDF文件网格点的泰森多边形权重。
本申请在一较佳示例中可以进一步配置为:当预设处理需求包括分布特征为面均值时,基于所述泰森多边形权重,采用Python多进程并行运算提取所述水文气象网格数据在各子区域的分布特征的步骤包括:
根据所述NetCDF文件网格的网格点的经纬度坐标,使用Python的Xarray包中的sel函数,提取所述水文气象网格数据在各子区域所包含的网格点的时间序列值;
采用预设的时间频率对所述时间序列值进行重采样,并结合Python多进程并行运算,基于重采样的所述时间序列值在所述水文气象网格数据中各子区域内对应的所述泰森多边形权重,计算得到所述水文气象网格数据在单个子区域的预设的时间频率的面均值。
本申请在一较佳示例中可以进一步配置为:当预设处理需求包括分布特征为面均值时,采用Python多进程并行运算,提取所述水文气象网格数据在各子区域的分布特征的步骤包括:
利用Python的Xarray包中的sel函数,根据所述NetCDF文件网格的网格点的经纬度坐标,提取所述水文气象网格数据在各子区域所包含的网格点时间序列值;
采用预设的时间频率对所述时间序列值进行重采样,并结合Python多进程并行运算,基于算数平均法对重采样的所述时间序列值进行计算,得到所述水文气象网格数据在单个子区域的预设的时间频率的面均值。
本申请在一较佳示例中可以进一步配置为:所述再判断对应的区域范围的所述水文气象网格数据中各子区域是否与NetCDF文件网格匹配的步骤包括,
加载对应的区域范围的所述水文气象网格数据;将所述水文气象网格数据提取至所述NetCDF文件网格,得到包含网格点的所述水文气象网格数据;
当所述水文气象网格数据中每个子区域包含至少一个所述NetCDF文件网格的网格点时,则对应的区域范围的所述水文气象网格数据中各子区域与NetCDF文件网格匹配;否则,对应的区域范围的所述水文气象网格数据中各子区域与NetCDF文件网格不匹配。
本申请在一较佳示例中可以进一步配置为:所述处理需求还包括求解水文气象网格数据在单个子区域的面最大值、面最小值或面总和。
综上所述,与现有技术相比,本申请提供的技术方案带来的有益效果至少包括:
1、获取水文气象网格数据;基于预设的区域范围研究文件,裁剪水文气象网格数据,得到对应的区域范围的水文气象网格数据,以去除无用的水文气象网格数据,获得目标区域范围内的水文气象网格数据,减少待处理的水文气象网格数据量;再将非NetCDF格式的水文气象网格数据均转换为NetCDF格式,以便于对水文气象网格数据进行高效地存储、管理、获取和分发等操作,也能够高效传输大量的面向阵列数据;判断对应的区域范围的水文气象网格数据中各子区域是否与NetCDF文件网格匹配,以对不同空间精度的水文气象区域数据进行针对性处理;且当水文气象网格数据中各子区域与NetCDF文件网格不匹配时,即水文气象区域数据的精度较低且区域面积较小,故基于水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重,并根据预设的处理需求,基于泰森多边形权重,采用Python多进程并行运算提取水文气象网格数据在各子区域的分布特征,以提高水文气象区域数据的提取精度,同时,采用Python多进程并行运算进行数据提取提升了水文气象数据的提取效率;
2、判断对应的区域范围的水文气象网格数据中各子区域是否与NetCDF文件网格匹配时,若水文气象网格数据中各子区域与NetCDF文件网格匹配,即水文气象区域数据的精度较高且区域面积较大,则采用Python多进程并行运算,根据预设的处理需求,提取水文气象网格数据在各子区域的分布特征,以直接提取水文气象网格数据在各子区域的分布特征,操作方便,同时,采用Python多进程并行运算进行数据提取提升了水文气象数据的提取效率;
3、将提取的水文气象网格数据在各子区域的分布特征输出并进行可视化展示,以直观展示水文气象数据的区域尺度提取结果,便于科研人员进行水文气象数据在区域尺度的研究。
附图说明
图1为本申请一个示例性实施例提供的一种基于Python的水文气象数据区域尺度提取及可视化方法的流程示意图。
图2为本申请一个示例性实施例提供的一种基于Python的水文气象数据区域尺度提取及可视化方法的水文气象网格数据转换的流程图。
图3为本申请一个示例性实施例提供的一种基于Python的水文气象数据区域尺度提取及可视化方法的判断对应的区域范围的水文气象网格数据中各子区域是否与NetCDF文件网格匹配的流程图。
图4为本申请一个示例性实施例提供的一种基于Python的水文气象数据区域尺度提取及可视化方法的低精度的区域尺度分布特征提取流程图。
图5为本申请一个示例性实施例提供的一种基于Python的水文气象数据区域尺度提取及可视化方法的高精度的区域尺度分布特征提取流程图。
图6为本申请一个示例性实施例提供的一种基于Python的水文气象数据区域尺度提取及可视化方法的MOD_GPP数据集中各子区域与NetCDF文件网格匹配的示意图。
图7为本申请一个示例性实施例提供的一种基于Python的水文气象数据区域尺度提取及可视化方法的MOD_GPP数据集中各子区域与NetCDF文件网格不匹配的示意图。
图8为本申请一个示例性实施例提供的一种基于Python的水文气象数据区域尺度提取及可视化方法的珠江流域子区域CMFD中Pres、Shum、Srad和Temp四个气象要素的提取结果示意图。
图9为本申请一个示例性实施例提供的一种基于Python的水文气象数据区域尺度提取及可视化方法的CMFD数据在单个子流域面均值的逐日分布的可视化展示图。
图10为现有的CMFD数据集网格尺度可视化展示结果示意图。
图11为本申请一个示例性实施例提供的一种基于Python的水文气象数据区域尺度提取及可视化方法的CMFD数据在单个子流域面均值的逐日分布的可视化展示图。
具体实施方式
本具体实施例仅仅是对本申请的解释,其并不是对本申请的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本申请的权利要求范围内都受到专利法的保护。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
参照图1,本申请实施例提供一种基于Python的水文气象数据区域尺度提取及可视化方法,所述方法的主要步骤描述如下。
S1:获取水文气象网格数据;
S2:基于预设的区域范围研究文件,裁剪水文气象网格数据,得到对应的区域范围的水文气象网格数据;
S3:判断对应的区域范围的水文气象网格数据的数据格式是否为NetCDF格式;若水文气象网格数据的数据格式为NetCDF格式,则进入下一步骤;若水文气象网格数据的数据格式为非NetCDF格式,则将水文气象网格数据转换为NetCDF格式再进入下一步骤;
S4:判断对应的区域范围的水文气象网格数据中各子区域是否与NetCDF文件网格匹配;
S51:若水文气象网格数据中各子区域与NetCDF文件网格不匹配,则基于水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重;并根据预设的处理需求,基于泰森多边形权重,采用Python多进程并行运算提取水文气象网格数据在各子区域的分布特征。
进一步地,S52:若水文气象网格数据中各子区域与NetCDF文件网格匹配,则根据预设的处理需求,采用Python多进程并行运算,提取水文气象网格数据在各子区域的分布特征。
进一步地,一种基于Python的水文气象数据区域尺度提取及可视化方法还包括以下步骤,
S6:将提取的水文气象网格数据在各子区域的分布特征输出并进行可视化展示。
参照图2,S3:若水文气象网格数据的数据格式为非NetCDF格式,则将水文气象网格数据转换为NetCDF格式的步骤包括:
S31:利用Python的rioxarray库中的open_rasterio函数读取非NetCDF格式的水文气象网格数据,并利用Python的xarray库中的concat函数将单波段的非NetCDF格式的水文气象网格数据沿着时间尺度合并为多波段文件;
S32:再将多波段文件由DataArray数据格式转换为Dataset数据格式;
S33:定义Dataset数据格式的多波段文件的维度信息、变量信息和属性信息,并将定义的多波段文件以NetCDF数据格式输出。
进一步地,当非NetCDF格式的水文气象网格数据的数据范围超过预设数据范围值且时间范围超过预设时间范围值时,以预设数据范围值和预设时间范围值为单位对水文气象网格数据进行划分,并采用Python多进程并行运算将划分的水文气象网格数据转换为NetCDF格式,以输出至少两个NetCDF数据格式的多波段文件。
进一步地,参照图3,S4:判断对应的区域范围的水文气象网格数据中各子区域是否与NetCDF文件网格匹配的步骤包括,
S41:加载对应的区域范围的水文气象网格数据;
S42:将水文气象网格数据提取至NetCDF文件网格,得到包含网格点的水文气象网格数据;
S43:当水文气象网格数据中每个子区域包含至少一个NetCDF文件网格的网格点时,则对应的区域范围的水文气象网格数据中各子区域与NetCDF文件网格匹配;否则,对应的区域范围的水文气象网格数据中各子区域与NetCDF文件网格不匹配。
参照图4,S51:基于水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重的步骤包括:
S511:基于水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,使用ArcGIS软件中的Create Thiessen Polygons工具创建泰森多边形;
S512:利用ArcGIS软件中的Tabulate Intersection工具得到水文气象网格数据中各子区域内不同NetCDF文件网格点的泰森多边形权重。
进一步地,当预设处理需求包括分布特征为面均值时,基于泰森多边形权重,采用Python多进程并行运算提取水文气象网格数据在各子区域的分布特征的步骤包括:
S513:根据NetCDF文件网格的网格点的经纬度坐标,使用Python的Xarray包中的sel函数,提取水文气象网格数据在各子区域所包含的网格点的时间序列值;
S514:采用预设的时间频率对时间序列值进行重采样,并结合Python多进程并行运算,基于重采样的时间序列值在水文气象网格数据中各子区域内对应的泰森多边形权重,计算得到水文气象网格数据在单个子区域的预设的时间频率的面均值。
进一步地,当预设处理需求包括分布特征为面均值时,采用Python多进程并行运算,提取水文气象网格数据在各子区域的分布特征的步骤包括:
参照图5,S521:利用Python的Xarray包中的sel函数,根据NetCDF文件网格的网格点的经纬度坐标,提取水文气象网格数据在各子区域所包含的网格点时间序列值;
S522:采用预设的时间频率对时间序列值进行重采样,并结合Python多进程并行运算,基于算数平均法对重采样的时间序列值进行计算,得到水文气象网格数据在单个子区域的预设的时间频率的面均值。
上述各个实施例的具体流程步骤描述如下:
获取水文气象网格数据,如下载珠江流域shp文件、MOD17A2总初级生产力(MOD_GPP)数据以及中国区域地面气象要素驱动数据集(The China Meteorological ForcingDataset,CMFD)中近地面气压(Pres)、近地面空气比湿(Shum)、地面向下短波辐射(Srad)和地面气温(Temp)等4个气象要素数据作为本实施案例所需的水文气象网格数据,水文气象网格数据的具体说明见表1。其中,珠江流域shp文件共由1715个集水面积均大于100km2的子流域构成,且采用了Pfafstetter编码系统对子流域进行命名编码。
表1
Figure BDA0003605686370000081
接着,基于预设的区域范围研究文件,如珠江流域shp文件、MOD17A2总初级生产力(MOD_GPP)数据以及中国区域地面气象要素驱动数据集(The China MeteorologicalForcing Dataset,CMFD)中近地面气压(Pres)、近地面空气比湿(Shum)、地面向下短波辐射(Srad)和地面气温(Temp)等4个气象要素数据,利用Python的rioxarray库中的clip函数裁剪水文气象网格数据,得到对应的研究区域范围的水文气象网格数据,并设置裁剪的水文气象网格数据的基本属性。
继而,判断对应的区域范围的水文气象网格数据的数据格式是否为NetCDF格式;若水文气象网格数据的数据格式为NetCDF格式,则进入下一步骤;若水文气象网格数据的数据格式为非NetCDF格式,则将水文气象网格数据转换为NetCDF格式再进入下一步骤。
例如,本实施例中,因对应的区域范围的水文气象网格数据MOD_GPP数据和CMFD数据集的格式分别为TIFF格式,即MOD_GPP数据为非NetCDF格式和CMFD数据集为NetCDF格式。
其中,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的数据格式进行输出。
当非NetCDF格式的水文气象网格数据的数据范围超过预设数据范围值、时间范围超过预设时间范围值时,以预设数据范围值和预设时间范围值为单位对水文气象网格数据进行划分,并采用Python多进程并行运算将划分的水文气象网格数据转换为NetCDF格式,以输出至少两个NetCDF数据格式的多波段文件。故当数据范围较大、时间范围较长时,可以输出多个NetCDF格式文件进行结果存储,数据格式转换更简单。
NetCDF格式是一种面向数组型的存储数据格式。NetCDF格式适用于网络共享的数据描述和编码标准。且大部分免费公开的水文气象数据集都是NetCDF(Network CommonData Format,网络通用数据)格式,或可转换为NetCDF格式的TIFF、ERDAS IMAGINE、HDF等作为数据共享格式。故将水文气象数据格式转换为NetCDF的数据格式,可以对水文气象网格数据进行高效地存储、管理、获取和分发等操作,也能够传输大量的面向阵列数据。
判断对应的区域范围的水文气象网格数据中各子区域是否与NetCDF文件网格匹配。例如,本实施案例的对应的区域范围的水文气象网格数据为MOD_GPP数据集,首先利用ArcGIS软件的Make NetCDF Raster Layer工具加载对应的区域范围的NetCDF数据格式的水文气象网格数据,并导出单个TIFF格式的文件;再利用Raster to point工具将导出的TIFF格式的文件提取至NetCDF文件网格,得到包含网格点的水文气象网格数据;参照图6,当水文气象网格数据中每个子区域包含至少一个NetCDF文件网格的网格点时,则对应的区域范围的水文气象网格数据中各子区域与NetCDF文件网格匹配;否则,参照图7,水文气象网格数据中部分子区域不存在NetCDF文件网格的网格点,则对应的区域范围的水文气象网格数据中各子区域与NetCDF文件网格不匹配。
若水文气象网格数据中各子区域与NetCDF文件网格匹配,则采用Python多进程并行运算,根据预设的处理需求,提取水文气象网格数据在各子区域的分布特征。
具体地,当预设处理需求包括分布特征为面均值时,采用Python多进程并行运算,根据预设的处理需求,提取水文气象网格数据在各子区域的分布特征的步骤包括:
利用Python的Xarray包中的sel函数,根据NetCDF文件网格的网格点的经纬度坐标,提取水文气象网格数据在各子区域所包含的网格点时间序列值;
采用预设的时间频率对时间序列值进行重采样,并结合Python多进程并行运算,基于算数平均法对重采样的时间序列值进行计算,得到水文气象网格数据在单个子区域的预设的时间频率的面均值(又称算数平均)。
进一步,根据求得的面均值,求解水文气象网格数据在单个子区域的面最大值、面最小值以及面总和。
其中,面均值、面最大值、面最小值和面总和的计算公式分别如公式(1)-(4)所示:
Figure BDA0003605686370000101
Vi_max=max{Pi,j}(i=1,2,3......,m;j=1,2,3......,n) (2)
Vi_min=min{Pi,j}(i=1,2,3......,m;j=1,2,3......,n) (3)
Figure BDA0003605686370000102
式中,
Figure BDA0003605686370000103
Vi_max、Vi_min和Vi_sum分别表示子区域的面均值、面最大值、面最小值和面总和;Pi,j表示子区域所包含的网格点数值;n为重采样的时间序列值的总个数。
本实施案例,提取水文气象网格数据MOD_GPP数据集为2004-2005年逐月的TIFF数据,预设的时间频率即为逐月分布,将2004-2005年逐月的MOD_GPP数据集转换为NetCDF格式,预设处理需求为提取MOD_GPP数据在珠江流域1715个子流域的面均值分布。
由于子流域面积MOD_GPP数据集网格大小匹配,故利用Python的Xarray包中的sel函数,根据网格点经纬度坐标,得到每个子流域所包含的网格点时间序列值,再利用算数平均法得到MOD_GPP数据在每个子流域面均值的逐月分布,提取结果如表2所示。
表2
Figure BDA0003605686370000104
表2中,首行PFAF_ID表示各子流域的编码名称;首列表示时间;其余列分别表示不同子流域在不同时间的区域尺度提取值;其中,区域尺度真实值=提取值*0.1。
此外,因数据提取过程中需要耗费大量的时间,所以针对各个子流域的提取可利用Python多进程并行运算,以大幅度提升数据提取速度。
若水文气象网格数据中各子区域与NetCDF文件网格不匹配,则基于ArcGIS软件获取水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重。再根据预设的处理需求,基于泰森多边形权重,采用Python多进程并行运算提取水文气象网格数据在各子区域的分布特征。其中,基于泰森多边形权重求面均值的公式如(5)所示:
Figure BDA0003605686370000111
其中,
Figure BDA0003605686370000112
表示面均值;Pi,j表示子区域所包含的网格点数值;Wi,j表示子区域中对应网格点的泰森多边形权重。
进一步,根据求得的面均值,求解水文气象网格数据在单个子区域的面最大值、面最小值以及面总和。其中,面均值、面最大值、面最小值和面总和的计算公式分别如公式(2)-(4)所示。
本实施案例,提取水文气象网格数据为CMFD数据集,预设处理需求为提取出CMFD数据集中Pres、Shum、Srad和Temp4个气象要素在珠江流域1715个子流域的面均值分布。由于子流域面积与CMFD数据集网格大小不匹配,因此在数据过程中需要利用泰森多边形权重计算面均值,其具体过程为:首先基于水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,使用ArcGIS软件中的Create Thiessen Polygons工具创建泰森多边形;并利用ArcGIS软件中的Tabulate Intersection工具得到水文气象网格数据中各子区域内不同NetCDF文件网格点的泰森多边形权重,如表3所示。
表3
Figure BDA0003605686370000121
表3中,PFAF_ID表示各子流域编码名称;lat表示网格点的纬度;lon表示网格点的经度;PERCENTAGE表示权重。
再使用Python中Xarray包中的sel函数,根据网格点经纬度坐标得到每个子流域所包含的网格点时间序列值,并根据各网格矢量点的泰森多形权重和对时间频率重采样以计算得到CMFD数据在单个子流域面均值的逐日分布。珠江流域1715个子流域CMFD数据集中Pres、Shum、Srad和Temp四个气象要素的提取结果如图8所示。
为了提高数据提取效率,采用Python多进程并行运算进行区域尺度提取,以大幅度提升数据提取速度。
最后,将提取的水文气象网格数据在各子区域的分布特征输出并进行可视化展示。利用Python中matplotlib.pyplot库和geopandas库绘制提取的水文气象网格数据在各子区域的分布特征,并设置对应的时间、经纬度坐标以及图例等基本属性,再设置图的时间范围,可根据绘图需求选择绘制出某个时间点或是某个时间范围内的均值、总和等的结果图。
本实施案例,MOD_GPP数据在每个子流域面均值的逐月分布的可视化展示结果如图9所示,CMFD数据集网格尺度可视化展示结果如图10所示,CMFD数据在单个子流域面均值的逐日分布的可视化展示结果如图11所示。
综上所述,一种基于Python的水文气象数据区域尺度提取及可视化方法通过获取水文气象网格数据;基于预设的区域范围研究文件,裁剪水文气象网格数据,得到对应的区域范围的水文气象网格数据,以去除无用的水文气象网格数据,获得目标区域范围内的水文气象网格数据,减少待处理的水文气象网格数据量;再将非NetCDF格式的水文气象网格数据均转换为NetCDF格式,以便于对水文气象网格数据进行高效地存储、管理、获取和分发等操作,也能够高效传输大量的面向阵列数据;判断对应的区域范围的水文气象网格数据中各子区域是否与NetCDF文件网格匹配,以对不同空间精度的水文气象区域数据进行针对性处理;且当水文气象网格数据中各子区域与NetCDF文件网格不匹配时,即水文气象区域数据的精度较低且区域面积较小,故基于水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重,并根据预设的处理需求,基于泰森多边形权重,采用Python多进程并行运算提取水文气象网格数据在各子区域的分布特征,以提高水文气象区域数据的提取精度,同时,采用Python多进程并行运算进行数据提取提升了水文气象数据的提取效率。
当水文气象网格数据中各子区域与NetCDF文件网格匹配时,即水文气象区域数据的精度较高且区域面积较大,则采用Python多进程并行运算,根据预设的处理需求,提取水文气象网格数据在各子区域的分布特征,以直接提取水文气象网格数据在各子区域的分布特征,操作方便,同时,采用Python多进程并行运算进行数据提取提升了水文气象数据的提取效率。
最后将提取的水文气象网格数据在各子区域的分布特征输出并进行可视化展示,以直观展示水文气象数据的区域尺度提取结果,便于科研人员进行水文气象数据在区域尺度的研究。
故本申请先是将不同格式的水文气象数据转换为NetCDF格式,并根据不同大小的区域和网格分辨率采取不同提取方法,融合针对不同空间精度的区域和输入数据的处理方法;同时,利用Python的并行进程运算实现对多个子区域的数据特征提取,高效将网格尺度水文气象数据转换为区域尺度水文气象数据;最后对数据提取在时间维度上进行重采样,将提取结果进行可视化,为科研人员高效率、方便化将网格水文气象数据处理为区域尺度数据提供了技术支撑。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
基于Python的水文气象数据区域尺度提取及可视化方法一种基于Python的水文气象数据区域尺度提取及可视化方法基于Python的水文气象数据区域尺度提取及可视化方法一种基于Python的水文气象数据区域尺度提取及可视化方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

Claims (8)

1.一种基于Python的水文气象数据区域尺度提取及可视化方法,其特征在于,包括以下步骤,
获取水文气象网格数据;
基于预设的区域范围研究文件,裁剪所述水文气象网格数据,得到对应的区域范围的水文气象网格数据;
判断对应的区域范围的所述水文气象网格数据的数据格式是否为NetCDF格式;若所述水文气象网格数据的数据格式为NetCDF格式,则判断对应的区域范围的所述水文气象网格数据中各子区域是否与NetCDF文件网格匹配;若所述水文气象网格数据的数据格式为非NetCDF格式,则将所述水文气象网格数据转换为NetCDF格式再判断对应的区域范围的所述水文气象网格数据中各子区域是否与NetCDF文件网格匹配;其中,将所述水文气象网格数据转换为NetCDF格式的步骤包括将所述水文气象网格数据的单波段文件沿着时间尺度合并为多波段文件;
若所述水文气象网格数据中各子区域与NetCDF文件网格不匹配,则基于所述水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重;并根据预设的处理需求,基于所述泰森多边形权重,采用Python多进程并行运算提取所述水文气象网格数据在各子区域的分布特征;其中,预设的处理需求包括分布特征为面均值、面最大值、面最小值和面总和;
将提取的所述水文气象网格数据在各子区域的分布特征输出并进行可视化展示。
2.根据权利要求1所述的基于Python的水文气象数据区域尺度提取及可视化方法,其特征在于,还包括以下步骤,
若所述水文气象网格数据中各子区域与NetCDF文件网格匹配,则根据预设的处理需求,采用Python多进程并行运算,提取所述水文气象网格数据在各子区域的分布特征。
3.根据权利要求1所述的基于Python的水文气象数据区域尺度提取及可视化方法,其特征在于,若所述水文气象网格数据的数据格式为非NetCDF格式,则将所述水文气象网格数据转换为NetCDF格式的步骤包括:
利用Python的rioxarray库中的open_rasterio函数读取非NetCDF格式的所述水文气象网格数据,并利用Python的xarray库中的concat函数将单波段的非NetCDF格式的所述水文气象网格数据沿着时间尺度合并为多波段文件;
再将所述多波段文件由DataArray数据格式转换为Dataset数据格式;
定义Dataset数据格式的所述多波段文件的维度信息、变量信息和属性信息,并将定义的所述多波段文件以NetCDF数据格式输出。
4.根据权利要求3所述的基于Python的水文气象数据区域尺度提取及可视化方法,其特征在于,当非NetCDF格式的所述水文气象网格数据的数据范围超过预设数据范围值且时间范围超过预设时间范围值时,以预设数据范围值和预设时间范围值为单位对水文气象网格数据进行划分,并采用Python多进程并行运算将划分的所述水文气象网格数据转换为NetCDF格式,以输出至少两个NetCDF数据格式的多波段文件。
5.根据权利要求1所述的基于Python的水文气象数据区域尺度提取及可视化方法,其特征在于,基于所述水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,获得各网格点在各子区域内的泰森多边形权重的步骤包括:
基于所述水文气象网格数据中各子区域与NetCDF文件网格点的相对位置,使用ArcGIS软件中的Create Thiessen Polygons工具创建泰森多边形;
利用ArcGIS软件中的Tabulate Intersection工具得到水文气象网格数据中各子区域内不同NetCDF文件网格点的泰森多边形权重。
6.根据权利要求5所述的基于Python的水文气象数据区域尺度提取及可视化方法,其特征在于,当预设处理需求包括分布特征为面均值时,基于所述泰森多边形权重,采用Python多进程并行运算提取所述水文气象网格数据在各子区域的分布特征的步骤包括:
根据所述NetCDF文件网格的网格点的经纬度坐标,使用Python的Xarray包中的sel函数提取所述水文气象网格数据在各子区域所包含的网格点的时间序列值;
采用预设的时间频率对所述时间序列值进行重采样,并结合Python多进程并行运算,基于重采样的所述时间序列值在所述水文气象网格数据中各子区域内对应的所述泰森多边形权重,计算得到所述水文气象网格数据在单个子区域的预设的时间频率的面均值。
7.根据权利要求2所述的基于Python的水文气象数据区域尺度提取及可视化方法,其特征在于,当预设处理需求包括分布特征为面均值时,采用Python多进程并行运算,提取所述水文气象网格数据在各子区域的分布特征的步骤包括:
利用Python的Xarray包中的sel函数,根据所述NetCDF文件网格的网格点的经纬度坐标,提取所述水文气象网格数据在各子区域所包含的网格点时间序列值;
采用预设的时间频率对所述时间序列值进行重采样,并结合Python多进程并行运算,基于算数平均法对重采样的所述时间序列值进行计算,得到所述水文气象网格数据在单个子区域的预设的时间频率的面均值。
8.根据权利要求1-7任意一项所述的基于Python的水文气象数据区域尺度提取及可视化方法,其特征在于,所述再判断对应的区域范围的所述水文气象网格数据中各子区域是否与NetCDF文件网格匹配的步骤包括,
加载对应的区域范围的所述水文气象网格数据;
将所述水文气象网格数据提取至所述NetCDF文件网格,得到包含网格点的所述水文气象网格数据;
当所述水文气象网格数据中每个子区域包含至少一个所述NetCDF文件网格的网格点时,则对应的区域范围的所述水文气象网格数据中各子区域与NetCDF文件网格匹配;否则,对应的区域范围的所述水文气象网格数据中各子区域与NetCDF文件网格不匹配。
CN202210415414.5A 2022-04-20 2022-04-20 一种基于Python的水文气象数据区域尺度提取及可视化方法 Active CN114911853B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210415414.5A CN114911853B (zh) 2022-04-20 2022-04-20 一种基于Python的水文气象数据区域尺度提取及可视化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210415414.5A CN114911853B (zh) 2022-04-20 2022-04-20 一种基于Python的水文气象数据区域尺度提取及可视化方法

Publications (2)

Publication Number Publication Date
CN114911853A CN114911853A (zh) 2022-08-16
CN114911853B true CN114911853B (zh) 2022-11-29

Family

ID=82765703

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210415414.5A Active CN114911853B (zh) 2022-04-20 2022-04-20 一种基于Python的水文气象数据区域尺度提取及可视化方法

Country Status (1)

Country Link
CN (1) CN114911853B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112070286A (zh) * 2020-08-25 2020-12-11 贵州黔源电力股份有限公司 复杂地形流域的降水预报预警系统
CN112699102A (zh) * 2021-03-23 2021-04-23 北京简巨科技有限公司 格点数据的处理方法及其相关设备
CN113158106A (zh) * 2021-04-27 2021-07-23 中国石油大学(华东) 一种基于NetCDF淹水数据的可视化方法
CN113658292A (zh) * 2021-08-23 2021-11-16 平安国际智慧城市科技股份有限公司 气象数据色斑图生成方法、装置、设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952648B1 (en) * 2003-02-04 2005-10-04 Wsi Corporation Power disruption index
CN106547840B (zh) * 2016-10-13 2019-09-06 国家卫星气象中心 一种全球三维大气数据的解析及管理方法
CN109902120B (zh) * 2019-01-16 2023-06-02 中山大学 一种面向栅格文本降水数据的可视化分析方法
CN109902115B (zh) * 2019-01-28 2022-03-04 中山大学 一种面向栅格数据的区域与流域数据程序化提取方法
CN109885926A (zh) * 2019-02-18 2019-06-14 南京农业大学 基于r语言的作物生长模型空间栅格模拟方法
CN111103635A (zh) * 2019-12-04 2020-05-05 上海眼控科技股份有限公司 气象数据处理方法、系统、电子设备及存储介质
CN111401634B (zh) * 2020-03-13 2022-09-02 成都信息工程大学 一种获取气候信息处理方法、系统、存储介质
CN112116691A (zh) * 2020-08-20 2020-12-22 南方海洋科学与工程广东省实验室(湛江) 基于NetCDF海洋数据三维可视化方法、系统及介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112070286A (zh) * 2020-08-25 2020-12-11 贵州黔源电力股份有限公司 复杂地形流域的降水预报预警系统
CN112699102A (zh) * 2021-03-23 2021-04-23 北京简巨科技有限公司 格点数据的处理方法及其相关设备
CN113158106A (zh) * 2021-04-27 2021-07-23 中国石油大学(华东) 一种基于NetCDF淹水数据的可视化方法
CN113658292A (zh) * 2021-08-23 2021-11-16 平安国际智慧城市科技股份有限公司 气象数据色斑图生成方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
公共气象服务产品制作系统;张正文等;《计算机与现代化》;20131115(第11期);147-150 *

Also Published As

Publication number Publication date
CN114911853A (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
CN106845326B (zh) 一种基于航空高光谱遥感数据的冰川识别方法
CN112036292A (zh) 基于神经网络的文字识别方法、装置及可读存储介质
CN111222539B (zh) 基于多源多时相遥感影像优化和扩充监督分类样本的方法
CN114563378B (zh) 湖库蓝藻水华空间分布定量描述方法、装置、介质和设备
CN117082474B (zh) 一种科考船实时获取海洋环境预报数据的系统
Grigillo et al. Automated building extraction from IKONOS images in suburban areas
CN111753031A (zh) 地图区域的整合方法、装置、存储介质和电子设备
CN112292620A (zh) 云观测装置、云观测系统、云观测方法及程序
CN111373393B (zh) 图像检索方法和装置以及图像库的生成方法和装置
CN115546656A (zh) 一种基于深度学习的遥感影像养殖区域提取方法
CN109978904A (zh) 基于图像技术的挺水植物生长信息提取方法
CN113806601B (zh) 一种周边兴趣点检索方法及存储介质
CN104050674B (zh) 一种显著性区域检测方法及装置
CN114911853B (zh) 一种基于Python的水文气象数据区域尺度提取及可视化方法
CN113868826A (zh) 一种基于栅格尺度耕地农田生产能力重心变化的测度方法
Xiao et al. Downscaling MODIS-derived water maps with high-precision topographic data in a shallow lake
CN115423975A (zh) 一种基于可见光影像及深度学习算法的地面高程提取方法
CN114155207A (zh) 高光谱监测方法、装置、设备及存储介质
CN113516591A (zh) 一种遥感影像超分辨率重建方法、装置、设备及存储介质
CN105160624A (zh) 地理信息图片自动配准方法及装置
Pagkalinawan et al. Change detection of mangrove forest cover in the city of Puerto Princesa, Palawan between 2003 and 2013 using Landsat imagery
CN106326846B (zh) 无人机图像的林木植株并行提取方法
CN118428559B (zh) 一种高性能数值天气预报分析方法
US20240005639A1 (en) Instrument recognition method based on improved u2 network
CN117292154B (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
GR01 Patent grant