Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % This program reads all netcdf files and for all dimensions
- % creates two new variables for each wavelength (388 nm and 500 nm).
- % These new variables omit all undefined data for a positive
- % mean calculation.
- %=========================================================
- % This matlab code has been created by Taufiq Hassan
- % For any bugs and info. report to taufiq@gist.ac.kr
- %=========================================================
- clear all;
- clc;
- %________findout the files_____________________________________________________
- baseFolder = fullfile('/','work13','Processing-codes');
- listing = dir(baseFolder);
- for i=5:size(listing,1)
- ncFile = strfind(listing(i).name,'.nc')
- if (~isempty(ncFile))
- %__________________open existing files and read data____________________________
- ncid = netcdf.open([listing(i).name],'NC_NOWRITE');
- [numdims, numvars, numglobalatts, unlimdimID] = netcdf.inq(ncid);
- [varname, xtype, dimids, numatts] = netcdf.inqVar(ncid,0);
- varid = netcdf.inqVarID(ncid,varname);
- data1 = netcdf.getVar(ncid,varid);
- netcdf.close(ncid)
- ncid = netcdf.open([listing(i).name],'NC_NOWRITE');
- [numdims, numvars, numglobalatts, unlimdimID] = netcdf.inq(ncid);
- [varname, xtype, dimids, numatts] = netcdf.inqVar(ncid,2);
- varid = netcdf.inqVarID(ncid,varname);
- data2 = netcdf.getVar(ncid,varid);
- netcdf.close(ncid);
- %__________________write data into new variables________________________________
- netcdf.reDef(ncid);
- newAAOD388(:,:)=NaN;
- for j=1:360
- for k=1:180
- if (data2(j,k)>-1.1e+30 && data1(j,k)>-1.1e+30 )
- newAAOD388(j,k)=data1(j,k);
- else
- newAAOD388(j,k)= NaN;
- end
- end
- end
- imyvar=netcdf.defVar(ncid,'newAAOD388',xtype,dimids);
- netcdf.endDef(ncid);
- netcdf.putVar(ncid,imyvar,newAAOD388) ;
- netcdf.close(ncid);
- ncid = netcdf.open([listing(i).name],'NC_WRITE');
- netcdf.reDef(ncid);
- newAEOD388(:,:)=NaN;
- for j=1:360
- for k=1:180
- if (data2(j,k)>-1.1e+30 && data1(j,k)>-1.1e+30 )
- newAEOD388(j,k)=data2(j,k);
- else
- newAEOD388(j,k)= NaN;
- end
- end
- end
- imyvar=netcdf.defVar(ncid,'newAEOD388',xtype,dimids);
- netcdf.endDef(ncid);
- netcdf.putVar(ncid,imyvar,newAEOD388) ;
- netcdf.close(ncid);
- %__________________________________________________________________
- %___________________open existing files and read data(for 500nm)_________________________________________________
- ncid = netcdf.open([listing(i).name],'NC_NOWRITE');
- [numdims, numvars, numglobalatts, unlimdimID] = netcdf.inq(ncid);
- [varname, xtype, dimids, numatts] = netcdf.inqVar(ncid,1);
- varid = netcdf.inqVarID(ncid,varname);
- data4 = netcdf.getVar(ncid,varid);
- netcdf.close(ncid);
- ncid = netcdf.open([listing(i).name],'NC_NOWRITE');
- [numdims, numvars, numglobalatts, unlimdimID] = netcdf.inq(ncid);
- [varname, xtype, dimids, numatts] = netcdf.inqVar(ncid,3);
- varid = netcdf.inqVarID(ncid,varname);
- data5 = netcdf.getVar(ncid,varid);
- netcdf.close(ncid);
- %________________write data into new variables____________________________________________________
- ncid = netcdf.open([listing(i).name],'NC_WRITE');
- netcdf.reDef(ncid);
- newAAOD500(:,:)=NaN;
- for j=1:360
- for k=1:180
- if (data5(j,k)>-1.1e+30 && data4(j,k)>-1.1e+30 )
- newAAOD500(j,k)=data4(j,k);
- else
- newAAOD500(j,k)=NaN;
- end
- end
- end
- imyvar=netcdf.defVar(ncid,'newAAOD500',xtype,dimids);
- netcdf.endDef(ncid);
- netcdf.putVar(ncid,imyvar,newAAOD500) ;
- netcdf.close(ncid);
- ncid = netcdf.open([listing(i).name],'NC_WRITE');
- netcdf.reDef(ncid);
- newAEOD500(:,:)=NaN;
- for j=1:360
- for k=1:180
- if (data5(j,k)>-1.1e+30 && data4(j,k)>-1.1e+30 )
- newAEOD500(j,k)=data4(j,k);
- else
- newAEOD500(j,k)=NaN;
- end
- end
- end
- imyvar=netcdf.defVar(ncid,'newAEOD500',xtype,dimids);
- netcdf.endDef(ncid);
- netcdf.putVar(ncid,imyvar,newAEOD500) ;
- netcdf.close(ncid);
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement