爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3606|回复: 1

[程序设计] 笨笨的距平处理

[复制链接]

新浪微博达人勋

发表于 2016-9-8 09:29:33 | 显示全部楼层 |阅读模式

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

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

x
刚开始做数据处理的时候最先遇到的就是做距平处理吧。这里是一个自己写的距平处理程序。可能比较笨,循环很多,但感觉对于刚开始学习的新手来说会有比较清晰。希望对大家有帮助。也希望有大神可以指导简单的处理方法。
clc
clear
close all;
ncid = netcdf.open('E:\uwnd.mon.mean.nc','NOWRITE');
ncid = netcdf.open('E:\vwnd.mon.mean.nc','NOWRITE');
ncdisp E:\uwnd.mon.mean.nc;
u= ncread('E:\uwnd.mon.mean.nc','uwnd');
v= ncread('E:\vwnd.mon.mean.nc','vwnd');
v_lon=ncread('E:\vwnd.mon.mean.nc','lon');
v_lat=ncread('E:\vwnd.mon.mean.nc','lat');
v_time=ncread('E:\vwnd.mon.mean.nc','time');
v_level=ncread('E:\vwnd.mon.mean.nc','level');
%使用其他软件进行检查看读取是否正确,注意纬向和垂向
%预设数据范围
umean=zeros(144,73,17,12);%平均场(每个月一个值)
vmean=zeros(144,73,17,12);
windu=zeros(144,73,17,823);%分别是lon,lat,level,time
windv=zeros(144,73,17,823);

%求气候态
for i=1:144;
    for j=1:73;
        for z=1:17;
           for k=1:12;
               umean(i,j,z,k)=mean(u(i,j,z,k:12:end));%每个月一个平均
               vmean(i,j,z,k)=mean(v(i,j,z,k:12:end));
           end
        end
    end  
end
%距平
for i=1:144;
    for j=1:73;
        for z=1:17;
           for k=1:12;
               windu(i,j,z,k:12:end)=u(i,j,z,k:12:end)-umean(i,j,z,k);%距平
               windv(i,j,z,k:12:end)=v(i,j,z,k:12:end)-vmean(i,j,z,k);%距平
           end
        end
    end  
end

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

新浪微博达人勋

发表于 2016-9-8 09:32:24 | 显示全部楼层
{:5_213:}{:5_213:}{:5_213:}{:5_213:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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