爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7232|回复: 9

[源程序] 气象数据相似性插补

[复制链接]

新浪微博达人勋

发表于 2019-11-6 21:09:48 | 显示全部楼层 |阅读模式

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

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

x
在网上查阅了数据插补的相关方法,有提到相似性插补,利用邻近相似性最高的站点的观测值填补该站点的缺失值,感觉很适用于PM2.5数据的插补,但是难以找到相关代码,本人程序小白,恳请大佬指点!
Snipaste_2019-11-06_21-04-10.png

test.xlsx

117.76 KB, 下载次数: 1, 下载积分: 金钱 -5

测试数据

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

新浪微博达人勋

发表于 2019-11-12 10:47:18 | 显示全部楼层
function value=find_nearpoint(x,y,z,xp,yp)

% x,y分别为插值前经纬度矩阵(或位置编号矩阵),z为插值前数据矩阵
% xp,yp分别为插值后经纬度矩阵(或位置编号矩阵)

if size(x,1)~=size(y,1) || size(x,1)~=size(z,1) || size(y,1)~=size(z,1) ||...
        size(x,2)~=size(y,2) || size(x,2)~=size(z,2) || size(y,2)~=size(z,2)
    error(message('MATLAB:find_nearpoint:please check x 、y and z,they must have same size'))
elseif size(xp,1)~=size(yp,1) || size(xp,2)~=size(yp,2)
    error(message('MATLAB:find_nearpoint:please check xp and yp,they must have same size'))
end

if size(x,1)==1%转化为列向量
    x=x';y=y';z=z';
end
if size(xp,1)==1
    xp=xp';yp=yp';
end
value=zeros(size(xp,1),size(xp,2));
for i=1:size(xp,1)
    for j=1:size(xp,2)
        d=(x-xp).^2+(y-yp).^2;
        dmin=min(sort(d(:)));
        %%zz=find(d==dmin);  zz为具有x维数信息的列向量,当x
        %%y为位置矩阵时候,易得到多个数值,因此可采用下一种find方式
        zz=find(d==dmin,1,'first');
        value(i,j)=z(zz);
    end
end

当有经纬度或位置信息的时候find_nearpoint里面有5个参数,若没有x,y,xp和yp的话,就只有z一个,修改很easy,我就不直接给你了
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2019-11-6 21:28:26 | 显示全部楼层
有什么条件来判断和哪个站点相似性最高?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-11-6 22:08:19 | 显示全部楼层
本帖最后由 ewdsd 于 2019-11-6 22:09 编辑
淡水河 发表于 2019-11-6 21:28
有什么条件来判断和哪个站点相似性最高?

看过一篇文献,是用缺测站点和邻近某一站点相关性进行判断,选取一致性最高的站点
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-11-7 10:32:17 | 显示全部楼层
不要沉啊,请大佬指教
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-11-12 14:58:11 | 显示全部楼层
ゼヅ欢チニ 发表于 2019-11-12 10:47
function value=find_nearpoint(x,y,z,xp,yp)

% x,y分别为插值前经纬度矩阵(或位置编号矩阵),z为插值 ...

大佬,感谢感谢,我试试,有不懂的再向您请教
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-11-12 16:24:08 | 显示全部楼层
ゼヅ欢チニ 发表于 2019-11-12 10:47
function value=find_nearpoint(x,y,z,xp,yp)

% x,y分别为插值前经纬度矩阵(或位置编号矩阵),z为插值 ...

大佬,还有些不懂的,能否加下您的联系方式,qq827987336
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-11-13 11:02:05 | 显示全部楼层
我觉得你说的应该是使用已有数据给一个相关性表,然后根据最好的相关关系的线性拟合关系确定缺测吧。按照这个思路写function就行。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-11-14 09:18:17 | 显示全部楼层
学习渣渣 发表于 2019-11-13 11:02
我觉得你说的应该是使用已有数据给一个相关性表,然后根据最好的相关关系的线性拟合关系确定缺测吧。按照这 ...

对的,但是不会编程,无能为力啊,只能求教大佬....
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-12-21 16:26:28 | 显示全部楼层
mark一下,这个帖子给了我极大的灵感,有成果一定请大家吃饭。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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