Mercurial > forge
view extra/ncArray/inst/private/ncarray_example_file.m @ 12193:34b88e26cfd2 octave-forge
new functions
author | abarth93 |
---|---|
date | Thu, 19 Dec 2013 15:06:03 +0000 |
parents | b86d8743bf43 |
children |
line wrap: on
line source
function ncarray_example_file(filename,data) if ~isempty(which('nccreate')) && ~isempty(which('ncwriteatt')) && ... ~isempty(which('ncwrite')) % use matlab netcdf high level interface %dtype = 'single'; dtype = 'double'; % Variables nccreate(filename,'lon','Format','classic','Datatype',dtype,... 'Dimensions',{'x',220, 'y',144}); ncwriteatt(filename,'lon','long_name','Longitude') ncwriteatt(filename,'lon','units','degrees_east') nccreate(filename,'lat','Datatype',dtype,'Dimensions',{'x',220, 'y',144}); ncwriteatt(filename,'lat','long_name','Latitude') ncwriteatt(filename,'lat','units','degrees_north') nccreate(filename,'time','Datatype',dtype,'Dimensions',{'time',1}); ncwriteatt(filename,'time','long_name','Time') ncwriteatt(filename,'time','units','days since 1858-11-17 00:00:00 GMT') nccreate(filename,'SST','Datatype',dtype,'Dimensions',... {'x',220, 'y',144, 'time',1}); ncwriteatt(filename,'SST','missing_value',single(9999)) ncwriteatt(filename,'SST','_FillValue',single(9999)) ncwriteatt(filename,'SST','units','degC') ncwriteatt(filename,'SST','long_name','Sea Surface Temperature') ncwriteatt(filename,'SST','coordinates','lat lon') ncwrite(filename,'SST',data); else % use octcdf interface nc = netcdf(filename,'c'); % dimensions nc('x') = size(data,1); nc('y') = size(data,2); nc('time') = size(data,3); % variables nc{'lon'} = ncdouble('y','x'); % 31680 elements nc{'lon'}.long_name = ncchar('Longitude'); nc{'lon'}.units = ncchar('degrees_east'); nc{'lat'} = ncdouble('y','x'); % 31680 elements nc{'lat'}.long_name = ncchar('Latitude'); nc{'lat'}.units = ncchar('degrees_north'); nc{'time'} = ncdouble('time'); % 1 elements nc{'time'}.long_name = ncchar('Time'); nc{'time'}.units = ncchar('days since 1858-11-17 00:00:00 GMT'); nc{'SST'} = ncdouble('time','y','x'); % 31680 elements nc{'SST'}.missing_value = ncdouble(9999); nc{'SST'}.FillValue_ = ncdouble(9999); nc{'SST'}.units = ncchar('degC'); nc{'SST'}.long_name = ncchar('Sea Surface Temperature'); nc{'SST'}.coordinates = ncchar('lat lon'); % global attributes nc{'SST'}(:) = permute(data,[3 2 1]); close(nc) end % Copyright (C) 2012,2013 Alexander Barth <barth.alexander@gmail.com> % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 2 of the License, or % (at your option) any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; If not, see <http://www.gnu.org/licenses/>.