爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7469|回复: 9

[求助] 站点插值作图warning,出图错误

[复制链接]

新浪微博达人勋

发表于 2022-1-25 14:10:13 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 黄小仙儿 于 2022-1-25 16:41 编辑

用站点数据插值后画雨量分布图,出现警告:
d:\anaconda3\lib\site-packages\scipy\interpolate\rbf.py:257: LinAlgWarning: Ill-conditioned matrix (rcond=1.20757e-21): result may not be accurate.  self.nodes = linalg.solve(self.A, self.di)

把插值后的grid输出了一下

[[    0.             0.             0.         ...  8833.41735458   2553.85585213     0.        ]
[    0.             0.             0.         ...  5394.71074963  10134.48536777     0.        ]
[    0.             0.             0.         ...  7731.83825588  11421.4927206      0.        ] ... [  872.55770493  9633.00927353  2759.9814167  ...     0.      0.             0.        ]
[ 2794.32398796     0.             0.         ...     0.      0.             0.        ]
[ 2810.32857895     0.             0.         ...     0.      0.             0.        ]]
出来的图也不对。
下载.png
找了半天也不知道问出在哪里,我把脚本贴出来请大家帮我检查一下,感谢!

proj= ccrs.PlateCarree()  # 简写投影
plt.rcParams['font.sans-serif']=['SimHei']  #显示中文
fig=plt.figure(figsize=(4,2),dpi=500)#添加画布
ax = fig.subplots(1, 1, subplot_kw={'projection': proj})  # 创建子图
extent=[107.5,110.0,33.5,34.8]#限定绘图范围
#隐藏边框线
#plt.axis('off')
lon=df['经度']#读取站点经度
lat=df['纬度']#读取站点纬度
tem=df['小时降水量']#读取站点气温
olon=np.linspace(107.5,110.0,80)#设置网格经度
olat=np.linspace(33.5,34.8,80)#设置网格纬度

olon,olat=np.meshgrid(olon,olat)#网格化
func=Rbf(lon,lat,tem,function='linear')#定义径向基函数插值
tem_new=func(olon,olat)#获得插值后的网格气温
tem_new[tem_new <0 ] = 0
print(tem_new)

clevs = [0.1,10,25,50,100,250,500]
cdict = ['#A9F090','#40B73F','#63B7FF','#0000FE','#FF00FC','#850042']
my_cmap = colors.ListedColormap(cdict)
norm = mpl.colors.BoundaryNorm(clevs,my_cmap.N)
shp_path=r'D:\shp\bb.shp'
a_shapes=list(Reader(shp_path).geometries())
reader = Reader(shp_path)
enshicity = cfeat.ShapelyFeature(reader.geometries(), proj, edgecolor='k', facecolor='none')
ax.set_extent(extent, crs=proj)

contour = plt.contourf(olon,olat, tem_new,clevs,transform = ccrs.PlateCarree(),cmap=my_cmap,norm = norm)




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

新浪微博达人勋

发表于 2022-1-25 16:19:24 | 显示全部楼层
rbf的话,如果有两个数据的经纬度一样的话,就会出问题。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2022-1-25 15:46:29 | 显示全部楼层
1. 把数据传上来
2. Rbf这个函数是谁的,引用的还是自己写的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-1-25 16:37:38 | 显示全部楼层
1099221723 发表于 2022-1-25 16:19
rbf的话,如果有两个数据的经纬度一样的话,就会出问题。

那应该用什么呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-1-25 16:42:33 | 显示全部楼层
betasy 发表于 2022-1-25 15:46
1. 把数据传上来
2. Rbf这个函数是谁的,引用的还是自己写的

是引用的,scipy的
数据不知怎么传不上去
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-1-25 17:28:46 | 显示全部楼层

需要对数据提前进行质控,检查数值是否合理,站点是否存在冲突,数据的空间分布是否合理
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-1-25 17:46:38 | 显示全部楼层
黄小仙儿 发表于 2022-1-25 16:42
是引用的,scipy的
数据不知怎么传不上去

dengshunqiang@outlook.com
数据发我邮箱,我看看
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-6-29 14:53:18 | 显示全部楼层
我也出现了这样的问题,有的降水日可以正常出图,有的就插值有问题,请问最后怎么解决了?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-7-4 15:14:39 | 显示全部楼层
nightelfxu 发表于 2024-6-29 14:53
我也出现了这样的问题,有的降水日可以正常出图,有的就插值有问题,请问最后怎么解决了?

降水数据中可能有缺测值,比如999999。替换成nan,或者删除该记录就行。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-8-27 16:20:04 | 显示全部楼层
edwardli 发表于 2024-7-4 15:14
降水数据中可能有缺测值,比如999999。替换成nan,或者删除该记录就行。

李老师,我看了不是缺测的问题,刚刚我发了求助帖,老师有空给指点下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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