ERA 处理成ascii

ERA的数据格式是我最喜欢的,读取速度够快。私人记录备忘,非教程。

clear all
lat_max = 46;
lat_min = 32;
lon_max = 80;
lon_min = 60;
save_path = 'F:\AAA\interim\vic\';
Vname = 'tp';


files = dir('*.nc');
days = length(files);
%---------------------提取lat lon 范围 -----------------*
lon =  ncread( files(1).name,'longitude');
lat =  ncread( files(1).name,'latitude');
p_lat = find(lat>lat_min & lat<lat_max);  % set lat lon limit
p_lon = find(lon>lon_min & lon<lon_max); 

for day = 1:days
    p(:,:,:,day) = ncread( files(day).name ,Vname,[min(p_lon) min(p_lat) 1 ],[length(p_lon) length(p_lat) inf ]); 
    disp(day)
end;

    for lati = 1:length(p_lat)        % 限制范围,重新排序,所以从1开始      
    for loni = 1:length(p_lon)
        
        lat_p = lat( lati+min(p_lat)-1);  % 注意返回值的顺序 用来写文本名字
        lon_p = lon( loni+min(p_lon)-1);
        p_p = p(loni,lati,:,:);
        path = [save_path , 'data_' , num2str(lat_p,'%.4f') ,'_', num2str(lon_p,'%.4f') ];
        p_p = squeeze( double(p_p) );  % to mm ;
        p_p = reshape(p_p,2,[]);
        p_p(p_p==-9999)= 0;   % fill none value to 0
        p_p = sum(p_p);  % 求和
        p_p =reshape(p_p,[],1);
        p_p = p_p*1000  % to mm
                    
        dlmwrite( path ,p_p,'delimiter','\t','precision', '%.4f');
    end
    end

猜你喜欢

转载自blog.csdn.net/hengcall/article/details/81413374
今日推荐