CN109871584B - 一种基于log-sinh变换的区域月降水统计频率分析方法 - Google Patents
一种基于log-sinh变换的区域月降水统计频率分析方法 Download PDFInfo
- Publication number
- CN109871584B CN109871584B CN201910041198.0A CN201910041198A CN109871584B CN 109871584 B CN109871584 B CN 109871584B CN 201910041198 A CN201910041198 A CN 201910041198A CN 109871584 B CN109871584 B CN 109871584B
- Authority
- CN
- China
- Prior art keywords
- function
- transformation
- normal distribution
- analysis
- precipitation 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
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于log‑sinh变换的区域月降水统计频率分析方法,通过对原始降水数据进行log‑sinh变换得到符合正态分布的降水数据,并基于变换后的数据对降水数据进行平均降水分析、正态分布诊断、生成基础气象学预报和重现期分析。本发明解决了由于原始降水数据偏态分布给区域月降水统计频率分析带来的困难,为快速进行水文气象分析提供了基础。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于log-sinh变换的区域月降水统计频率分析方法。
背景技术
水文气象数据能够反映一定区域内水文气象特征,是分析当地暴雨、洪水和干旱情况的重要基础。然而实测的月尺度降水数据由于最小值不小于0,因此通常呈现出偏态分布的形态,而偏态分布相比正态分布更具有复杂性,给水文气象分析带来一定的困难且降低了分析的精准度。因此使用一定的数学转换方法对原始数据进行转化,使其适应于正态分布分析方法,能够大大降低区域月降水统计频率分析的难度。
发明内容
本发明为解决现有技术中由于降水数据的偏态分布导致分析困难的问题,提供了一种基于log-sinh变换的区域月降水统计频率分析方法。
为实现以上发明目的,而采用的技术手段是:
一种基于log-sinh变换的区域月降水统计频率分析方法,包括以下步骤:
S1.基于Python平台,使用Python中第三方库Pandas和Numpy中的函数读取目标区域的原始降水数据,并将其存储为浮点型数组;其中Pandas是python的一个数据分析包,是Python的一种开源的数值计算扩展;
S2.对原始降水数据进行log-sinh变换得到符合正态分布的降水数据,并将所述变换的过程基于C++平台创建变换函数,形成CPP文件和PYD文件;其中log是对数函数,sinh是双曲正弦函数;
S3.在Python平台上调用所述变换函数,基于所述变换的过程,创建对原始降水数据进行降水分析的函数;使用Matplotlib对降水分析的结果进行可视化,并将所述降水分析以及可视化过程的函数封装成类文件;其中降水分析包括多年平均降水分析、正态分布诊断、生成基础气象学预报和重现期分析;其中Matplotlib是一个Python的2D绘图库;
S4.基于Python平台,使用Sys模块中的append函数添加所述类文件所在的文件夹并使用import语句调用该类,然后使用该类处理所述步骤S1中的浮点型数组,得到类对象;再调用类中所述降水分析以及可视化的函数进行分析和可视化操作,得到数据结果和图片结果。其中sys是python自带模块。
上述方案中,通过对原始降水数据进行log-sinh变换得到符合正态分布的降水数据,再基于该变换过程对降水数据进行多年平均降水分析、正态分布诊断、生成基础气象学预报和重现期分析,并将分析结果进行可视化。
优选的,步骤S3所述变换的过程包括:
A.变换后符合正态分布的降水数据和原始降水数据的函数关系为:
其中:y为变换后符合正态分布的降水数据,x为原始降水数据,a和b均为应变换的参数,g(x)为y和x之间的变换关系,h(y)为x和y之间的变换关系,g(x)和h(y)互为反函数;
B.变换后符合正态分布的降水数据,其概率密度函数和累积分布函数如下:
其中:fY(y)为y的概率密度函数,μ为正态分布的均值,σ为正态分布的标准差;FY(y)为y的累积分布函数,μ为正态分布的均值,σ为正态分布的标准差,erf为误差函数:
C.变换后符合正态分布的降水数据和原始降水数据的概率密度函数满足以下关系:
∫fX(x)dx=∫fY(y)dy=1
其中:fX(x)为x的概率密度函数;
E.计算x的累积分布函数:
其中:FX(x)为x的累积分布函数。
优选的,所述变换的过程中应变换的参数估计a和b使用最大似然估计。
优选的,步骤S3创建的对降水数据进行多年平均降水分析的函数具体为:使用Matplotlib中Pyplot函数对原始降水数据进行绘图分析可视化,使用plt.hist和plt.plot函数绘制各月份多年平均降水量的柱状图和多年月降水量时间序列。其中提及的函数均为Python平台中的现有函数。
优选的,步骤S3创建的正态分布诊断函数具体为:调用所述变换函数对降水数据进行变换,得到变换后的降水数据即为符合正态分布的降水数据,用Stats.probplot分别绘制x与正态分布的分位图、y与正态分布的分位图。此处通过所述变换的过程中:
其中提及的函数均为Python平台中的现有函数。
优选的,步骤S3创建的生成基础气象学预报的函数具体为:基于所述变换的过程,计算变换得到符合正态分布的降水数据的均值和标准差,使用Numpy中Random.normal函数根据均值和标准差生成随机数,所述随机数即对应y,然后通过所述变换的过程得到x,得到的x数据组即为基础气象学预报。其中提及的函数均为Python平台中的现有函数。
优选的,步骤S3创建的重现期分析函数具体为:根据要进行分析的指定重现期数值,计算该指定重现期对应于所述变换的过程中符合正态分布的累积分布函数值:
其中:P为指定重现期数值,CDF为对应P在所述变换的过程中得到的符合正态分布的累积分布函数值;
然后通过stats.norm.ppf函数计算所述累积分布函数值在所述变换的过程中符合正态分布的对应数值,将对应数值进行逆变换得到的降水数据即为对应该重现期的降水量。其中提及的函数均为Python平台中的现有函数。
与现有技术相比,本发明技术方案的有益效果是:由于对原始降水数据进行log-sinh变换得到了符合正态分布的降水数据,后续对降水数据进行多年平均降水分析、正态分布诊断、生成基础气象学预报和重现期分析均可基于符合正态分布的降水数据,解决了现有技术中由于降水数据的偏态分布导致分析困难的问题;降低了区域月降水统计频率分析工作的难度,提高了其精准度;同时本发明的重现期分析与现有的P-III型曲线方法相比,减少了分析的工作量。
附图说明
图1为本发明方法的总流程图;
图2为实施例1中输入的原始降水数据示意图;
图3为实施例1中月降雨时间序列图;
图4为实施例1中各月份多年平均降雨分布图;
图5为实施例1中变换前数据与正态分布分位图;
图6为实施例1中变换后数据与正态分布分位图;
图7为实施例1中基础气象学预报图;
图8为实施例1中重现期分析结果输出图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
如图1所示,一种基于log-sinh变换的区域月降水统计频率分析方法,包括以下步骤:
S1.基于Python平台,使用Python中第三方库Pandas和Numpy中的函数读取目标区域的原始降水数据,并将其存储为浮点型数组;
S2.对原始降水数据进行log-sinh变换得到符合正态分布的降水数据,并将所述变换的过程基于C++平台创建变换函数,形成CPP文件和PYD文件;
S3.在Python平台上调用所述变换函数,基于所述变换的过程,创建对原始降水数据进行降水分析的函数;使用Matplotlib对降水分析的结果进行可视化,并将所述降水分析以及可视化过程的函数封装成类文件;其中降水分析包括多年平均降水分析、正态分布诊断、生成基础气象学预报和重现期分析;
S4.基于Python平台,使用Sys模块中的append函数添加所述类文件所在的文件夹并使用import语句调用该类,然后使用该类处理所述步骤S1中的浮点型数组,得到类对象;再调用类中所述降水分析以及可视化的函数进行分析和可视化操作,得到数据结果和图片结果。
其中,步骤S3所述变换的过程包括:
A.变换后符合正态分布的降水数据和原始降水数据的函数关系为:
其中:y为变换后符合正态分布的降水数据,x为原始降水数据,a和b均为应变换的参数,g(x)为y和x之间的变换关系,h(y)为x和y之间的变换关系,g(x)和h(y)互为反函数;
B.变换后符合正态分布的降水数据,其概率密度函数和累积分布函数如下:
其中:fY(y)为y的概率密度函数,μ为正态分布的均值,σ为正态分布的标准差;FY(y)为y的累积分布函数,μ为正态分布的均值,σ为正态分布的标准差,erf为误差函数:
C.变换后符合正态分布的降水数据和原始降水数据的概率密度函数满足以下关系:
∫fX(x)dx=∫fY(y)dy=1
其中:fX(x)为x的概率密度函数;
E.计算x的累积分布函数:
其中:FX(x)为x的累积分布函数。
其中,所述变换的过程中应变换的参数估计a和b使用最大似然估计。
其中,步骤S3创建的对降水数据进行多年平均降水分析的函数具体为:使用Matplotlib中Pyplot函数对原始降水数据进行绘图分析可视化,使用plt.hist和plt.plot函数绘制各月份多年平均降水量的柱状图和多年月降水量时间序列。
其中,步骤S3创建的正态分布诊断函数具体为:调用所述变换函数对降水数据进行变换,得到变换后的降水数据即为符合正态分布的降水数据,用Stats.probplot分别绘制x与正态分布的分位图、y与正态分布的分位图。
其中,步骤S3创建的生成基础气象学预报的函数具体为:基于所述变换的过程,计算变换得到符合正态分布的降水数据的均值和标准差,使用Numpy中Random.normal函数根据均值和标准差生成随机数,所述随机数即对应y,然后通过所述变换的过程得到x,得到的x数据组即为基础气象学预报。
其中,步骤S3创建的重现期分析函数具体为:根据要进行分析的指定重现期数值,计算该指定重现期对应于所述变换的过程中符合正态分布的累积分布函数值:
其中:P为指定重现期数值,CDF为对应P在所述变换的过程中得到的符合正态分布的累积分布函数值;
然后通过stats.norm.ppf函数计算所述累积分布函数值在所述变换的过程中符合正态分布的对应数值,将对应数值进行逆变换得到的降水数据即为对应该重现期的降水量。
实施例2
S1.使用广东省广州地区地面降水月值数据为原始降水数据,其格式如图2所示,12列分别对应12个月份,不同行则对应着不同年份的降水数据;使用Python中第三方库Pandas的read_csv函数读取原始降水数据文件中的数据,再用其中的DataFrame函数将读取的数据存储为DataFrame类对象,使用Numpy中array函数将DataFrame类对象存储为浮点型数组。
S2.对原始降水数据进行log-sinh变换得到符合正态分布的降水数据,并将所述变换的过程基于C++平台创建变换函数,形成CPP文件和PYD文件;
S3.通过import语句调用所述变换函数,在Python平台中用class定义类,创建所述降水分析以及可视化过程的函数:
(1)在Python平台上开发的类文件中,在类的初始化函数_init_中调用变换函数对降水数据进行变换,然后将变换前后的降水数据及其得到的变换后的降水数据的正态分布参数存于该类对象中,具体实施方式如下:
self.a=self.trans.epsilon
self.b=self.trans.lmbda
self.mean=self.trans.mean
self.stdev=self.trans.stdev
如此,将计算结果存放在类对象中以便于后续函数直接调用而不需要外传变量。
(2)通过定义函数def()的方式,将对降水数据的分析和可视化过程创建并封装成函数,函数的具体内容如下:
①使用Numpy中的reshape函数,将数组按时间顺序变为一个连续的时间序列,然后使用Matplotlib中plot函数进行绘图;使用Numpy中mean函数计算各个月份多年平均降水量,其中axis参数设置为0,使得mean函数对列求平均值,然后使用Matplotlib中bar函数对计算得到的平均值进行柱状图绘制;
③使用Python官方函数sorted将各月份多年数据进行排列,然后用第三方库Scipy中stats模块的probplot函数进行变换前降水数据与正态分布的分位图绘制,其中dist参数设置为’norm’,plot参数为plt,再用title、xlabe和ylable函数对图标题进行设置,变换后的降水数据与正态分布的分位图绘制方法相同;
④根据变换函数得到的所述正态分布参数,即(1)中self.mean和self.stdev,用Numpy中Random.normal函数根据均值和标准差生成随机数,本实例中随机数为1000,然后通过所述变换的过程进行逆变换,将数据转化为降水数据,然后用Numpy中percentile函数求得10、25、50、75和90分位数,用Matplotlib中plot函数绘制基础气象学预报图。
⑤重现期分析首先计算重现期对应的正态分布的累积分布函数值,然后使用Scipy中stats.norm.ppf函数计算所述累积分布函数值在所述变换的过程中符合正态分布的对应数值,再调用变换函数进行逆变换即可计算该重现期对应的降水量。
S4.基于Python平台,使用Sys模块中的append函数添加所述类文件所在的文件夹并使用import语句调用该类,然后使用该类处理所述步骤S1中的浮点型数组,得到类对象;再调用类中所述降水分析以及可视化的函数进行分析和可视化操作,得到数据结果和图片结果,如图3-8所述。对于数据结果和图像结果采用不同的存储方式:
1)数据结果存储:将数据结果用with open(“文件路径”,“w+”)创建写入文件对象,“w+”将模式设置为覆盖式写入,然后构建一个循环,循环的次数等于计算结果的行数,用writerow函数一次写入CSV文本文件中。
2)图像结果存储:使用Matplotlib中savefig(“存储路径”,dpi=300)函数进行保存,其中dpi设置能得到更加清晰的图像。
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (6)
1.一种基于log-sinh变换的区域月降水统计频率分析方法,其特征在于,包括以下步骤:
S1.基于Python平台,使用Python中第三方库Pandas和Numpy中的函数读取目标区域的原始降水数据,并将其存储为浮点型数组;
S2.对原始降水数据进行log-sinh变换得到符合正态分布的降水数据,并将所述变换的过程基于C++平台创建变换函数,形成CPP文件和PYD文件;
S3.在Python平台上调用所述变换函数,基于所述变换的过程,创建对原始降水数据进行降水分析的函数;使用Matplotlib对降水分析的结果进行可视化,并将所述降水分析以及可视化过程的函数封装成类文件;其中降水分析包括多年平均降水分析、正态分布诊断、生成基础气象学预报和重现期分析;
S4.基于Python平台,使用Sys模块中的append函数添加所述类文件所在的文件夹并使用import语句调用类文件,然后使用类文件处理所述步骤S1中的浮点型数组,得到类对象;再调用类中所述降水分析以及可视化的函数进行分析和可视化操作,得到数据结果和图片结果;
步骤S3所述变换的过程包括:
A.变换后符合正态分布的降水数据和原始降水数据的函数关系为:
其中:y为变换后符合正态分布的降水数据,x为原始降水数据,a和b均为应变换的参数,g(x)为y和x之间的变换关系,h(y)为x和y之间的变换关系,g(x)和h(y)互为反函数;
B.变换后符合正态分布的降水数据,其概率密度函数和累积分布函数如下:
其中:fY(y)为y的概率密度函数,μ为正态分布的均值,σ为正态分布的标准差;FY(y)为y的累积分布函数,μ为正态分布的均值,σ为正态分布的标准差,erf为误差函数:
C.变换后符合正态分布的降水数据和原始降水数据的概率密度函数满足以下关系:
∫fX(x)dx=∫fY(y)dy=1
其中:fX(x)为x的概率密度函数;
E.计算x的累积分布函数:
其中:FX(x)为x的累积分布函数。
2.根据权利要求1所述的基于log-sinh变换的区域月降水统计频率分析方法,其特征在于,所述变换的过程中应变换的参数估计a和b使用最大似然估计。
3.根据权利要求1所述的基于log-sinh变换的区域月降水统计频率分析方法,其特征在于,步骤S3创建的对降水数据进行多年平均降水分析的函数具体为:使用Matplotlib中Pyplot函数对原始降水数据进行绘图分析可视化,使用plt.hist和plt.plot函数绘制各月份多年平均降水量的柱状图和多年月降水量时间序列。
4.根据权利要求1所述的基于log-sinh变换的区域月降水统计频率分析方法,其特征在于,步骤S3创建的正态分布诊断函数具体为:调用所述变换函数对降水数据进行变换,得到变换后的降水数据即为符合正态分布的降水数据,用Stats.probplot分别绘制x与正态分布的分位图、y与正态分布的分位图。
5.根据权利要求1所述的基于log-sinh变换的区域月降水统计频率分析方法,其特征在于,步骤S3创建的生成基础气象学预报的函数具体为:基于所述变换的过程,计算变换得到符合正态分布的降水数据的均值和标准差,使用Numpy中Random.normal函数根据均值和标准差生成随机数,所述随机数即对应y,然后通过所述变换的过程得到x,得到的x数据组即为基础气象学预报。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910041198.0A CN109871584B (zh) | 2019-01-16 | 2019-01-16 | 一种基于log-sinh变换的区域月降水统计频率分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910041198.0A CN109871584B (zh) | 2019-01-16 | 2019-01-16 | 一种基于log-sinh变换的区域月降水统计频率分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109871584A CN109871584A (zh) | 2019-06-11 |
CN109871584B true CN109871584B (zh) | 2022-12-06 |
Family
ID=66917772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910041198.0A Active CN109871584B (zh) | 2019-01-16 | 2019-01-16 | 一种基于log-sinh变换的区域月降水统计频率分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871584B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112496582B (zh) * | 2020-11-23 | 2022-05-10 | 博迈科海洋工程股份有限公司 | 一种海洋工程复杂节点多机器人焊接协同控制方法 |
WO2024036516A1 (zh) * | 2022-08-17 | 2024-02-22 | 中山大学 | 一种基于梯度参数寻优的降水正态化分析方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128578A (en) * | 1996-12-26 | 2000-10-03 | Nippon Telegraph And Telephone Corporation | Meteorological radar precipitation pattern prediction method and apparatus |
WO2017180692A1 (en) * | 2016-04-13 | 2017-10-19 | The Climate Corporation | Estimating rainfall adjustment values |
CN107423496A (zh) * | 2017-07-10 | 2017-12-01 | 浙江大学 | 一种新的降雨事件随机生成方法 |
CN107918165A (zh) * | 2016-10-09 | 2018-04-17 | 清华大学 | 基于空间插值的多卫星融合降水预测方法及系统 |
CN108595814A (zh) * | 2018-04-18 | 2018-09-28 | 北京大学 | 一种基于天时间尺度的降水发生器 |
-
2019
- 2019-01-16 CN CN201910041198.0A patent/CN109871584B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128578A (en) * | 1996-12-26 | 2000-10-03 | Nippon Telegraph And Telephone Corporation | Meteorological radar precipitation pattern prediction method and apparatus |
WO2017180692A1 (en) * | 2016-04-13 | 2017-10-19 | The Climate Corporation | Estimating rainfall adjustment values |
CN107918165A (zh) * | 2016-10-09 | 2018-04-17 | 清华大学 | 基于空间插值的多卫星融合降水预测方法及系统 |
CN107423496A (zh) * | 2017-07-10 | 2017-12-01 | 浙江大学 | 一种新的降雨事件随机生成方法 |
CN108595814A (zh) * | 2018-04-18 | 2018-09-28 | 北京大学 | 一种基于天时间尺度的降水发生器 |
Non-Patent Citations (2)
Title |
---|
Correction of daily precipitation data of ITPCAS dataset over the Qinghai-Tibetan Plateau with KNN model;Yudan Wang等;《2016 IEEE International Geoscience and Remote Sensing Symposium (IGARSS)》;20161103;第593-596页 * |
基于广义线性模型和NCEP资料的降水随机发生器;刘永和等;《大气科学》;20100529;第34卷(第03期);第599-609页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109871584A (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Brooks et al. | Fitting the multitemporal curve: A Fourier series approach to the missing data problem in remote sensing analysis | |
Hutchinson et al. | ANUSPLIN version 4.4 user guide | |
CN109871584B (zh) | 一种基于log-sinh变换的区域月降水统计频率分析方法 | |
Beesley et al. | A comparison of the BAWAP and SILO spatially interpolated daily rainfall datasets | |
CN110580263B (zh) | 生成风资源数据报告的方法及系统 | |
vom Stein et al. | Development of adaptive time patterns for multi-dimensional power system simulations | |
CN105893590B (zh) | 一种用于数字地形分析建模知识案例化自动处理方法 | |
CN111597845A (zh) | 一种二维码检测方法、装置、设备及可读存储介质 | |
Del-Rosal-Salido et al. | Beyond flood probability assessment: An integrated approach for characterizing extreme water levels along transitional environments | |
Andrée et al. | Simulating major storm surge events in a complex coastal region | |
Shin et al. | Modeling climate extremes using the four-parameter kappa distribution for r-largest order statistics | |
Nugroho | The effect of financial condition on firm value: a comparative study | |
CN113077384B (zh) | 一种数据空间分辨率提高方法、装置、介质及终端设备 | |
Ljubičić et al. | SSIMS-Flow: Image velocimetry workbench for open-channel flow rate estimation | |
CN111505738A (zh) | 数值天气预报中气象因素的预测方法及设备 | |
Hamidieh | Estimating the tail shape parameter from option prices | |
CN111178031A (zh) | 一种自动生成测风塔数据报告的方法 | |
CN115169089A (zh) | 基于核密度估计和copula的风电功率概率预测方法和装置 | |
CN113537229A (zh) | 票据图像生成方法、装置、计算机设备和存储介质 | |
JP2006155427A (ja) | オペレーショナルリスクの計量化装置、方法、およびプログラム | |
CN111856618A (zh) | 气象要素的预测方法及设备 | |
Zheng et al. | Self-similarity Based Multi-layer DEM Image Up-Sampling | |
Bhowmik et al. | Spatially shifting temporal points: estimating pooled within-time series variograms for scarce hydrological data | |
CN111311564A (zh) | 一种针对图像内容感知篡改的检测方法 | |
CN110472472A (zh) | 基于sar遥感图像的机场检测方法与装置 |
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 |