Python气象数据处理中的数值微分和积分法

您所在的位置:网站首页 书画频道官网一日一画节目表 Python气象数据处理中的数值微分和积分法

Python气象数据处理中的数值微分和积分法

2023-05-14 23:45| 来源: 网络整理| 查看: 265

1.3 一般情况下的微分

对于一般情况下的微分计算,Numpy和Metpy模块等都提供了函数,这里我们以水平散度为例,差分形式的表达式为

1.3.1 Numpy(推荐)

Numpy模块提供了计算差分的函数numpy.gradient(f, axis, …),主要参数为

f:一个N维数组;

axis:f沿着axis的方向做差分。

返回f的差分,大小与f相同。

主要编程思路如下(三维数据):

1.3.2 Metpy

Metpy模块也提供了类似的函数metpy.calc.gradient(f, …),主要参数为

f:一个N维的数组,格式为dataarray时可以不填其他参数。

函数会识别f的坐标,返回其梯度,大小与f相同。

 

主要编程思路如下(三维数据):

综上,Metpy在差分时可能会自动对坐标进行变化,比如将经纬度变换为长度、将时间单位转为秒等;而Numpy仅做数值计算,需要自行变换坐标。Metpy虽然代码简单,但容易出错,更推荐使用Numpy计算差分。

2 数值积分法

Numpy、Xarray模块等提供了计算数值积分的函数,这里推荐Xarray的(简便且不易出错),以整层散度为例,表达式为

Xarray自带的积分函数是基于梯形法则,如果积分轴上坐标密度较高,结果与样条法等应该差别不大。主要编程思路如下:

使用这个函数需要提前截取积分范围内的数据,因为函数不能选定积分范围;另外,如果对于空白的值(如地形以下的部分)需要设置为0,如果设置为nan,则积分结果也为nan(与NCL不同)。

That's all.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3