首页
学习
活动
专区
圈层
工具
发布
44 篇文章
1
机器学习需要掌握的九种工具!
2
PyAOS:大气和海洋科学Python社区
3
地球人工智能研究综述
4
优化物理和机器学习之间的协同作用
5
构建便于气象海洋应用的Anaconda环境(window版本)
6
Python结合Matlab气候数据工具箱CDT
7
用Python复现一篇Nature的研究: 1.数据下载及预处理
8
Python气象数据处理与绘图:相关性分析之散点图
9
Nature | 数据驱动的地球系统深度学习与过程理解
10
Python气象数据处理与绘图:常见的10种图像滤波方法
11
JAMES: 地球系统模式机器学习应用专刊
12
Python可视化 | xarray绘图样式配置
13
xarray系列|WRF模式前处理和后处理
14
Python可视化 | xarray一维数据绘图
15
构建适合大气与海洋应用的Anaconda环境
16
统计学中数据分析方法汇总!
17
Python可视化 | xarray 绘图时序图
18
深度学习 | 时序问题LSTM入门讲解
19
Python可视化 | xarray 二维绘图配色方案设置
20
MeteoInfoLab中如何将格点插值到站点?(附完整代码)
21
利用 pandas 和 xarray 整理气象站点数据
22
tensor与numpy数据类型转换
23
【机器学习基础】|交叉验证及Stacking
24
让数据动起来!用Python制作动画可视化效果,让数据不再枯燥!
25
数据处理 | EOF用法及可视化实例
26
数据处理 | 使用cfgrib加载GRIB文件
27
GISer如何学Python
28
数据下载 | NCEP再分析数据自动批量下载
29
关于滤波和NCL的filwgts_lanczos函数
30
数据处理 | xarray的计算距平、重采样、时间窗
31
数据处理 | xarray的NC数据基础计算(1)
32
基于Python的神经网络模型可视化绘图方法
33
python可视化 | 小波分析——​海温数据的时频域分解
34
Python精美地理可视化绘制
35
Python的常用库的数组定义及常用操作
36
Python可视化 | 温度、水深&CTRL向量空间分布图
37
python可视化 | contour、contourf、cartopy补充
38
NCL专辑 | 常用插值函数集锦
39
数值模式常用参数化方案简析及引用文献
40
数据处理与可视化 | 站点插值格点+空间区域掩膜
41
自动化工程 | 利用Python自动生成降雨量统计分析报告
42
图解NumPy:常用函数的内在机制
43
用手机运行你的Python代码
44
数据可视化 | 双Y轴可视化绘制方法(Python、R两种方法)

NCL专辑 | 常用插值函数集锦

NCL作为一门气象专业语言,自带了很多气象届常用的算法和命令,比如各种强大的插值函数。

平时,我们不管做科研也好,还是做业务也好,都逃不了各种各样的插值:站点插到格点上,格点插到站点上,高分辨率插值到低分辨率格点,低分辨率插值到高分辨率,还有各种模式输出产品往站点、格点上插……NCL没出来之前,我用fortran写插值经常写地焦头烂额(不好!暴露年龄了!)

后来有了NCL,导师再也不怕你因为插值而卡在那里一个月没有任何进展啦!(然而NCL停更了耶。。)

好啦,现在让我们一起快乐地插值吧!

NCL的插值函数都在ngmath库(该库是Fortran、C语言、NCL可直接调用的数学命令的集合)中。根据插值方法的不同,NCL的插值函数主要可以分为以下几类:

csagrid系列:该系列函数利用一个三次样条近似演算法来拟合输入数据的函数。函数的输入值是一组随机间隔的数据,这些数据可以是一维、二维或三维的。 注意,csagrid 是 ngmath 数据库中唯一一个为三维数据提供拟合曲面近似的软件包。

计算插值和近似方法可以分为两个基本类:拟合函数方法和加权平均数方法。拟合函数方法是对已知数据拟合一个代数曲面,然后从拟合曲面中提取插值或近似值。加权平均方法则是计算插值或近似值作为已知值的加权平均值。

一般来说,从csagrid得到的结果比使用dsgrid系列的反距离加权平均算法得到的结果看起来更漂亮。

下面是两张对比图,圆润好看的是csagrid出来的,歪七扭八装如丑橘的是dsgrid的插值结果:

cssgrid系列:使用张力样条插值将单位球面上的不规则数据插值到直线网格上,它使用三次样条函数计算插值函数。注意:只有cssgrid系列函数具备球面数据插值的功能。

dsgrid系列:包括dsgrid和dspn开头的函数,使用反距离加权插值法将站点数据插值到格点上。这是我们常用的插值方法之一。

该系列函数输入的是一组随机间隔的三维坐标及对应的数据,输出一组在用户指定的坐标上的插值函数值。注意:输出网格中的坐标必须在每个坐标方向上单调递增,但不需要均匀分布。

natgrid系列:利用自然邻接插值(具体方法为Dave Watson博士开发的nngridr包),该方法属于一种加权平均数方法,上面提到的反向距离加权平均数方法复杂得多。该系列函数输入是一组随机间隔的二维坐标及对应数据,输出在用户指定的矩形网格坐标上的插值函数值。输出网格中的坐标必须在每个坐标方向上单调递增,但不需要均匀分布。也可以在单点上进行插值。

fitgrid系列:该函数利用张力下的样条进行插值。张力下的样条由标量张力因子控制,可以通过调整该因子实现从立方样条插值到线性插值的平稳过渡。该函数首先要拟合输入数据的张力样条,然后从拟合的样条函数中提取插值结果。

该系列插值函数可以实现以下功能:一维单值函数的插值;平面向曲线的插值;通过函数值的矩形网格计算插值曲面;一维周期函数的插值;求插值函数的积分和导数。

shgrid系列:实现了一个改进的Shepard算法,用于在三维空间中插入随机数据。它还提供了高效查找三维空间中给定点或最近点的功能。该插值函数输出是一组坐标在用户指定的网格(可能是一个单点)上的值。

对于我自己来说,常用的插值函数有:

cressman插值:站点插值到格点上。命令为obj_anal_ic_deprecated,难点在于半径rscan的选取,它用纬度表示,并且必需是单调递减的,比如rscan=(/10,5,3/)。如果插值到的格点分辨率较高,rscan后面的两个数值也要调小,不然可能出现插值结果过于平滑,丢失信息的情况。具体怎么选择半径,还要自己根据实际情况多试几次,选出合适的。

rcm2points:将WRF、RCM、NARR等模式输出的曲线网格上的数据插值到站点。

rcm2grid:将WRF、RCM、NARR等模式输出的曲线网格上的数据插值到格点。反过来就是rgrid2rcm

vinth2p:将CAM模式输出的混合坐标结果插值到压力坐标。

vinth2p_ecmwf:将CESM输出的混合坐标产品插值到压力坐标,但使用 ECMWF 公式外推地面以下的数值。

对于WRF产品的处理:含有wrf、interp或intrp或vert字段的命令。

附ngmath库介绍:

http://www.ncarg.ucar.edu//ngmath/index.html

下一篇
举报
领券