爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 565|回复: 0

[经验总结] 关于利用python将不均匀网格点插值到均匀网格点

[复制链接]
发表于 2024-5-29 23:07:36 | 显示全部楼层 |阅读模式

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

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

x
1.先进行库的安装,一般在linux系统下,windows下安装我没有成功。大概会出现两种错误,一种是用pip安装的时候在中间就断掉了,好像说pip不是安装形式。还有一种是用conda 装的时候会很慢,一次成功不了,得安装几次才行。
2.安装的库
conda create -n py39_geocat -c conda-forge -c ncar geocat-comp python=3.9
conda activate py39_geocat
conda install -c conda-forge -c ncar geocat-f2py --y
conda install -c conda-forge wrf-python --y
在这里要注意,所有的安装完以后,我的python版本是3.9的,所以要注意pint的库要降到0.17版本才行。

到这里,库应该就安装完成了。
3.使用geocat库
官方文档bing搜一下就看到了,基本上看着这个就可以了。虽然comp停用了,但是只要你成功安装上了f2py这个库,他自己就会跳转的,他只会给你警告,不影响正常运行。
注意一个问题,我在运行的时候出现了问题:ValueError: axes don't match array。这个是因为传入的数据的维度和转置的轴不对应,我也不知道为什么会出现这个问题。比如:
ds = nc.Dataset('/home/liuyh2023/wrf/WRFV4.0/test/em_real/UW/wrfout_d02_2016-07-29_05:00:00')
t2_data = getvar(ds,'T2')
lat2D = getvar(ds, 'XLAT')
lon2D = getvar(ds, 'XLONG')
t2_data=t2_data.values
t2_data=t2_data.reshape(1,240,315)
lat=np.linspace(30,33,31)
lon=np.linspace(119,122,31)

按正常来说,t2_data应该是一个二维的,但是他报错的时候意思t2_data是二维的,但是转置的轴维(2,1,0),也就是三个,我也不知道为什么。如果t2_data是三维的,他就说转置的轴是(1,0),也就是两个。
所以我就又多加了一步,你既然默认他都进去的是三维,我就把二维的t2_data.reshape(1,*,*),把他给变成三维的。此时就能运行了。
4.一眼看过去全是缺省值,一开始插值的点和wrf模拟出来的精度是一样的,大概0.03,后来我把精度降低了,变成era5的精度,也就是0.1,并且左右边界没有选择的那么靠边(也就是没有选择模拟数据得到的经纬度最小值和最大值作为边界),就会好很多,基本上没有什么缺省值了。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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