当前位置: 首页 > 专利查询>中山大学专利>正文

一种面向栅格数据的区域与流域数据程序化提取方法技术

技术编号:21398970 阅读:23 留言:0更新日期:2019-06-19 06:59
本发明专利技术公开了一种面向栅格数据的区域与流域数据程序化提取方法,所述方法的具体操作流程包括:文件读取;空间重叠计算;数据输出;函数调用4个子模块部分;本发明专利技术通过脚本语言的开发环境,避免了批量数据的人工处理过程,规避了商业软件的复杂操作及版权等问题,保证目标区域观测或预测空间数据提取的准确性和高效性,而且代码结构简单,操作方便灵活,效率高。

【技术实现步骤摘要】
一种面向栅格数据的区域与流域数据程序化提取方法
本专利技术涉及气象数据的提取领域,更具体地,涉及一种面向栅格数据的区域与流域数据程序化提取方法。
技术介绍
NetCDF类型文件能够灵活的传输、处理面向阵列的海量数据,目前广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。相关技术中,当长时间序列的栅格数据量较大时,通常采用空间分析软件批处理起来很不方便,且操作繁琐,其制图过程也必须跨平台操作,具体包括:1.常用的空间分析软件批量提取多个文件的栅格像元值,但对于单个文件的大量长序列数据仅能读取和提取一个单元格的首个像元值,直接限制了数据的一次性提取。2.常用的数据软件提取栅格像元值的操作繁琐,灵活性差,不能实现观测与预测图形数据的空间叠加分析、自动化读写功能。因此,构建高效的数据提取方法,不仅是分析气象数据,探究气象水文规律的前提,也是适应科学研究中大数据分析趋势的重要基础。
技术实现思路
本专利技术为克服上述现有技术中长时间序列的栅格数据量较大时,批处理不方便,操作繁琐的缺陷,提供一种面向栅格数据的区域与流域数据程序化提取方法。本专利技术旨在至少在一定程度上解决上述技术问题。本专利技术的首要目的是为解决上述技术问题,本专利技术的技术方案如下:一种面向栅格数据的区域与流域数据程序化提取方法,所述方法包括:S1:将栅格NetCDF文件和矢量shape文件作为输入数据,利用开源栅格空间数据转换库netCDF4的Dataset函数读取栅格NetCDF文件中的气象栅格数据,利用矢量空间数据库shapefile的reader函数读取矢量shape文件中的区域矢量边界数据;S2:以shp文件矢量边界数据中的矩形边界为计算区域,以计算区域内包含的所有坐标点为中心,利用shapely数据库的buffer函数依次建立若干与气象栅格数据中原始栅格像元大小一致的缓冲区;S3:利用shapely数据库中的points、polygon函数,遍历shp文件中所有不规则图斑边界的points,并将points点绘制成新图形;所述points为不规则图斑边界顶点。S4:采用shapely数据库中的intersection函数,依次将步骤S2中建立的原始栅格像元点的缓冲区与步骤S3中建立的新图形进行重叠计算,利用pyproj.Proj函数计算出重叠栅格的面积属性,将重叠栅格面积比重与栅格像元值相乘计算出单个重叠栅格内的温度加权值,将温度加权值进行累计求平均得到计算区域加权平均温度值,具体公式如下:其中,i,j分别代表具有重合范围的栅格经度和纬度范围,Temij、aij指代重合栅格ij的温度和面积;Cij代表重叠栅格个数;Temave为计算区域加权平均温度;S5:利用datetime函数将float浮点型的日期改成str字符型日期显示,以便于输出区域加权温度值的日期标识;S6:采用pandas数据库中的dataframe函数将计算区域加权平均温度值、重叠栅格面积值、重叠栅格像元的原始值进行存储到字典中,然后输出并保存重叠栅格面积图、重叠栅格像元图、平均温度历年变化图和原始栅格对应像元温度表格;S7:将步骤S1-S6封装成独立函数模块Class,以点序列文件或shp边界文件为输入,得到定量温度或其他气象指标元组作为输出,实现对NetCDF长序列数据的程序化提取。进一步地,步骤S2中建立的缓冲区的个数与计算区域内包含的坐标点个数一致。进一步地,步骤S2中建立缓冲区后将进行缓冲区的重叠分析。进一步地,步骤S4中重叠计算得到的重叠栅格的面积若属于同一栅格时,则相加处理后输出,否则直接输出该栅格的重叠面积,且只输出面积大于零的栅格数据。进一步地,步骤S4得到的计算区域加权平均温度值包括:计算区域年度加权平均温度值、计算区域月加权平均温度值、计算区域日加权平均温度值。进一步地,所述区域年度加权平均温度值、区域月加权平均温度值由pandas数据库中的describe函数直接统计得到。与现有技术相比,本专利技术技术方案的有益效果是:本专利技术通过结构化脚本编程能够自动化提取特征;数据提取流程简单,效率高。附图说明图1为本专利技术具体操作流程示意图。图2为全球网格示意图。图3为GD省提取数据的网格图。图4为GZ省提取数据的网格图。图5为GD省shp行政边界与NetCDF栅格像元叠加图。图6为GZ省shp行政边界与NetCDF栅格像元叠加图。图7为GD省、GZ省逐月温度数据。图8为GD省、GZ省1982~2015年月平均温度比较。具体实施方式下面结合附图和实施例对本专利技术的技术方案做进一步的说明。一种面向栅格数据的区域与流域数据程序化提取方法,所述方法包括:S1:将栅格NetCDF文件和矢量shape文件作为输入数据,利用开源栅格空间数据转换库netCDF4的Dataset函数读取栅格NetCDF文件中的气象栅格数据,利用矢量空间数据库shapefile的reader函数读取矢量shape文件中的区域矢量边界数据;S2:以shp文件矢量边界数据中的矩形边界为计算区域,以计算区域内包含的所有坐标点为中心,利用shapely数据库的buffer函数依次建立若干与气象栅格数据中原始栅格像元大小一致的缓冲区;S3:利用shapely数据库中的points、polygon函数,遍历shp文件中所有不规则图斑边界的points,并将points点绘制成新图形;S4:采用shapely数据库中的intersection函数,依次将步骤S2中建立的原始栅格像元点的缓冲区与步骤S3中建立的新图形进行重叠计算,利用pyproj.Proj函数计算出重叠栅格的面积属性,将重叠栅格面积比重与栅格像元值相乘计算出单个重叠栅格内的温度加权值,将温度加权值进行累计求平均得到计算区域加权平均温度值,具体公式如下:其中,i,j分别代表具有重合范围的栅格经度和纬度范围,Temij、aij指代重合栅格ij的温度和面积;Cij代表重叠栅格个数;Temave为计算区域加权平均温度;S5:利用datetime函数将float浮点型的日期改成str字符型日期显示,以便于输出区域加权温度值的日期标识;S6:采用pandas数据库中的dataframe函数将计算区域加权平均温度值、重叠栅格面积值、重叠栅格像元的原始值进行存储到字典中,然后输出并保存重叠栅格面积图、重叠栅格像元图、平均温度历年变化图和原始栅格对应像元温度表格;S7:将步骤S1-S6封装成独立函数模块Class,以点序列文件或shp边界文件为输入,得到定量温度或其他气象指标元组作为输出,实现对NetCDF长序列数据的程序化提取。进一步地,步骤S2中建立的缓冲区的个数与计算区域内包含的坐标点个数一致。进一步地,步骤S2中建立缓冲区后将进行缓冲区的重叠分析。进一步地,步骤S4中重叠计算得到的重叠栅格的面积若属于同一栅格时,则相加处理后输出,否则直接输出该栅格的重叠面积,且只输出面积大于零的栅格数据。进一步地,步骤S4得到的计算区域加权平均温度值包括:计算区域年度加权平均温度值、计算区域月加权平均温度值、计算区域日加权平均温度值。进一步地,所述区域年度加权平均温度值、区域月加权平均温度值由pandas数据库中的describe函数直接统计得到。将步骤S1-S6封装本文档来自技高网...

【技术保护点】
1.一种面向栅格数据的区域与流域数据程序化提取方法,其特征在于,所述方法包括:S1:将栅格NetCDF文件和矢量shape文件作为输入数据,利用开源栅格空间数据转换库netCDF4的Dataset函数读取栅格NetCDF文件中的气象栅格数据,利用矢量空间数据库shapefile的reader函数读取矢量shape文件中的区域矢量边界数据;S2:以shp文件矢量边界数据中的矩形边界为计算区域,以计算区域内包含的所有坐标点为中心,利用shapely数据库的buffer函数依次建立若干与气象栅格数据中原始栅格像元大小一致的缓冲区;S3:利用shapely数据库中的points、polygon函数,遍历shp文件中所有不规则图斑边界的points,并将points绘制成新图形;S4:采用shapely数据库中的intersection函数,依次将步骤S2中建立的原始栅格像元点的缓冲区与步骤S3中建立的新图形进行重叠计算,利用pyproj.Proj函数计算出重叠栅格的面积属性,将重叠栅格面积比重与栅格像元值相乘计算出单个重叠栅格内的温度加权值,将温度加权值进行累计求平均得到计算区域加权平均温度值,具体公式如下:...

【技术特征摘要】
1.一种面向栅格数据的区域与流域数据程序化提取方法,其特征在于,所述方法包括:S1:将栅格NetCDF文件和矢量shape文件作为输入数据,利用开源栅格空间数据转换库netCDF4的Dataset函数读取栅格NetCDF文件中的气象栅格数据,利用矢量空间数据库shapefile的reader函数读取矢量shape文件中的区域矢量边界数据;S2:以shp文件矢量边界数据中的矩形边界为计算区域,以计算区域内包含的所有坐标点为中心,利用shapely数据库的buffer函数依次建立若干与气象栅格数据中原始栅格像元大小一致的缓冲区;S3:利用shapely数据库中的points、polygon函数,遍历shp文件中所有不规则图斑边界的points,并将points绘制成新图形;S4:采用shapely数据库中的intersection函数,依次将步骤S2中建立的原始栅格像元点的缓冲区与步骤S3中建立的新图形进行重叠计算,利用pyproj.Proj函数计算出重叠栅格的面积属性,将重叠栅格面积比重与栅格像元值相乘计算出单个重叠栅格内的温度加权值,将温度加权值进行累计求平均得到计算区域加权平均温度值,具体公式如下:其中,i,j分别代表具有重合范围的栅格经度和纬度范围,Temij、aij指代重合栅格ij的温度和面积;Cij代表重叠栅格个数;Temave为计算区域加权平均温度;S5:利用datetime函数将float浮点型的日期改成str字符型日期显示,以便于输出区域加权温度值的日期标...

【专利技术属性】
技术研发人员:赵铜铁钢杨振华黄泽青
申请(专利权)人:中山大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1