Advertisement
Guest User

Create Variable

a guest
Nov 12th, 2014
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 4.01 KB | None | 0 0
  1. % This program reads all netcdf files and for all dimensions
  2. % creates two new variables for each wavelength (388 nm and 500 nm).
  3. % These new variables omit all undefined data for a positive
  4. % mean calculation.
  5. %=========================================================
  6. % This matlab code has been created by Taufiq Hassan
  7. % For any bugs and info. report to taufiq@gist.ac.kr
  8. %=========================================================
  9. clear all;
  10. clc;
  11. %________findout the files_____________________________________________________
  12.   baseFolder = fullfile('/','work13','Processing-codes');
  13.   listing = dir(baseFolder);
  14.     for i=5:size(listing,1)
  15.     ncFile = strfind(listing(i).name,'.nc')
  16.     if (~isempty(ncFile))        
  17. %__________________open existing files and read data____________________________      
  18.         ncid = netcdf.open([listing(i).name],'NC_NOWRITE');
  19.         [numdims, numvars, numglobalatts, unlimdimID] = netcdf.inq(ncid);
  20.         [varname, xtype, dimids, numatts] = netcdf.inqVar(ncid,0);
  21.         varid = netcdf.inqVarID(ncid,varname);
  22.         data1 = netcdf.getVar(ncid,varid);
  23.         netcdf.close(ncid)
  24.         ncid = netcdf.open([listing(i).name],'NC_NOWRITE');
  25.         [numdims, numvars, numglobalatts, unlimdimID] = netcdf.inq(ncid);
  26.         [varname, xtype, dimids, numatts] = netcdf.inqVar(ncid,2);
  27.         varid = netcdf.inqVarID(ncid,varname);
  28.         data2 = netcdf.getVar(ncid,varid);
  29.         netcdf.close(ncid);
  30. %__________________write data into new variables________________________________
  31.       netcdf.reDef(ncid);
  32.       newAAOD388(:,:)=NaN;
  33.         for j=1:360
  34.         for k=1:180
  35.             if (data2(j,k)>-1.1e+30 && data1(j,k)>-1.1e+30 )
  36.             newAAOD388(j,k)=data1(j,k);
  37.             else
  38.             newAAOD388(j,k)= NaN;
  39.             end
  40.         end
  41.         end
  42.         imyvar=netcdf.defVar(ncid,'newAAOD388',xtype,dimids);
  43.         netcdf.endDef(ncid);
  44.         netcdf.putVar(ncid,imyvar,newAAOD388) ;
  45.         netcdf.close(ncid);
  46.  
  47.         ncid = netcdf.open([listing(i).name],'NC_WRITE');
  48.         netcdf.reDef(ncid);
  49.         newAEOD388(:,:)=NaN;
  50.         for j=1:360
  51.         for k=1:180
  52.             if (data2(j,k)>-1.1e+30 && data1(j,k)>-1.1e+30 )
  53.             newAEOD388(j,k)=data2(j,k);
  54.             else
  55.             newAEOD388(j,k)= NaN;
  56.             end
  57.         end
  58.         end
  59.         imyvar=netcdf.defVar(ncid,'newAEOD388',xtype,dimids);
  60.         netcdf.endDef(ncid);
  61.         netcdf.putVar(ncid,imyvar,newAEOD388) ;
  62.         netcdf.close(ncid);
  63. %__________________________________________________________________
  64.  
  65. %___________________open existing files and read data(for 500nm)_________________________________________________
  66. ncid = netcdf.open([listing(i).name],'NC_NOWRITE');
  67. [numdims, numvars, numglobalatts, unlimdimID] = netcdf.inq(ncid);
  68. [varname, xtype, dimids, numatts] = netcdf.inqVar(ncid,1);
  69. varid = netcdf.inqVarID(ncid,varname);
  70. data4 = netcdf.getVar(ncid,varid);
  71. netcdf.close(ncid);
  72. ncid = netcdf.open([listing(i).name],'NC_NOWRITE');
  73. [numdims, numvars, numglobalatts, unlimdimID] = netcdf.inq(ncid);
  74. [varname, xtype, dimids, numatts] = netcdf.inqVar(ncid,3);
  75. varid = netcdf.inqVarID(ncid,varname);
  76. data5 = netcdf.getVar(ncid,varid);
  77. netcdf.close(ncid);
  78. %________________write data into new variables____________________________________________________
  79. ncid = netcdf.open([listing(i).name],'NC_WRITE');
  80. netcdf.reDef(ncid);
  81. newAAOD500(:,:)=NaN;
  82. for j=1:360
  83.     for k=1:180
  84.         if (data5(j,k)>-1.1e+30 && data4(j,k)>-1.1e+30 )
  85.             newAAOD500(j,k)=data4(j,k);
  86.         else
  87.             newAAOD500(j,k)=NaN;
  88.         end
  89.     end
  90. end
  91. imyvar=netcdf.defVar(ncid,'newAAOD500',xtype,dimids);
  92. netcdf.endDef(ncid);
  93. netcdf.putVar(ncid,imyvar,newAAOD500) ;
  94. netcdf.close(ncid);
  95.  
  96. ncid = netcdf.open([listing(i).name],'NC_WRITE');
  97. netcdf.reDef(ncid);
  98. newAEOD500(:,:)=NaN;
  99. for j=1:360
  100.     for k=1:180
  101.         if (data5(j,k)>-1.1e+30 && data4(j,k)>-1.1e+30 )
  102.             newAEOD500(j,k)=data4(j,k);
  103.         else
  104.             newAEOD500(j,k)=NaN;
  105.         end
  106.     end
  107. end
  108. imyvar=netcdf.defVar(ncid,'newAEOD500',xtype,dimids);
  109. netcdf.endDef(ncid);
  110. netcdf.putVar(ncid,imyvar,newAEOD500) ;
  111. netcdf.close(ncid);
  112.  
  113.     end
  114. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement