爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 26002|回复: 9

[经验总结] 格点数据插值到站点

[复制链接]

新浪微博达人勋

发表于 2021-6-27 22:17:38 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 雨落森林 于 2021-6-27 22:18 编辑

格点数据要如何插值到站点呢?其实格点也可以视作特殊的站点hhh,用scipy插值可以解决问题。不废话,直接上代码。而且自己手动弄了个网格和站点数据试了一下,还是线性插值的效果最好,三次样条也有自己的优点,但是最邻近嘛,简直是扯淡,直接把最近的网格数据当作是台站的数据,实战不推荐使用。

import scipy.interpolate as inter
import numpy as np
import matplotlib.pyplot as plt

if __name__=='__main__':
   
    #将格点数据重组成站点
    x1, y1 = np.meshgrid(np.array([100,112,124]), np.array([20,26,32]))
    d1 = np.array([[2,6,5],[1,5,9],[3,1,4]])
    x1.shape, y1.shape, d1.shape = -1, -1, -1
    points = np.array([x1,y1]).T
    #输出站点样子的数据
    print(points,'\n\n',d1,'\n\n')
    #创建未知站点的经纬度
    x2, y2 = np.array([115,118,104,108]),np.array([23,28,28,30])
    lonlat = np.array([x2,y2]).T
    #插值开始
    d2_linear = inter.griddata(points,d1,lonlat,method='linear')
    d2_cubic = inter.griddata(points,d1,lonlat,method='cubic')
    d2_nearest = inter.griddata(points,d1,lonlat,method='nearest')
    #输出结果
    print(d2_linear)
    print(d2_cubic)
    print(d2_nearest)


输出的结果:
[[100  20]
[112  20]
[124  20]
[100  26]
[112  26]
[124  26]
[100  32]
[112  32]
[124  32]]
[2 6 5 1 5 9 3 1 4]

[6.5        5.66666667 1.         1.        ]
[6.44613496 5.78539326 1.82347396 1.73989982]
[6 5 1 1]


QQ截图20210627221029.png

评分

参与人数 1金钱 +1 收起 理由
JeaffXDy + 1 很给力!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-7-2 13:33:28 | 显示全部楼层
xarray封装了scipy插值,代码量少

http://xarray.pydata.org/en/stab ... anced-interpolation

密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2021-6-30 08:51:01 来自手机 | 显示全部楼层
       牛逼
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2021-6-28 08:19:59 | 显示全部楼层
感谢大佬啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-7-2 15:44:03 | 显示全部楼层
werewolf 发表于 2021-7-2 13:33
xarray封装了scipy插值,代码量少

http://xarray.pydata.org/en/stable/user-guide/interpolation.html# ...

确实,这个更方便
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-7-2 21:31:50 | 显示全部楼层
werewolf 发表于 2021-7-2 13:33
xarray封装了scipy插值,代码量少

http://xarray.pydata.org/en/stable/user-guide/interpolation.html# ...

好的,学习了,感谢大佬
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-7-19 19:57:55 | 显示全部楼层
楼主,可以加你微信请教你吗,最近在利用这个函数进行nc数据的插值提高分辨率
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-20 16:18:48 | 显示全部楼层
谢谢楼主!!!正好需要
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-11-26 10:58:10 | 显示全部楼层
{:5_213:}{:5_213:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-11-16 21:53:22 | 显示全部楼层
超感谢!{:5_217:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表