annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10478
03f260c80c1e initial import of ncArray
abarth93
parents:
diff changeset
1 function ncarray_example_file(filename,data)
03f260c80c1e initial import of ncArray
abarth93
parents:
diff changeset
2
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
3 if ~isempty(which('nccreate')) && ~isempty(which('ncwriteatt')) && ...
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
4 ~isempty(which('ncwrite'))
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
5 % use matlab netcdf high level interface
10478
03f260c80c1e initial import of ncArray
abarth93
parents:
diff changeset
6
12193
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
7 %dtype = 'single';
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
8 dtype = 'double';
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
9
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
10 % Variables
12193
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
11 nccreate(filename,'lon','Format','classic','Datatype',dtype,...
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
12 'Dimensions',{'x',220, 'y',144});
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
13 ncwriteatt(filename,'lon','long_name','Longitude')
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
14 ncwriteatt(filename,'lon','units','degrees_east')
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
15
12193
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
16 nccreate(filename,'lat','Datatype',dtype,'Dimensions',{'x',220, 'y',144});
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
17 ncwriteatt(filename,'lat','long_name','Latitude')
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
18 ncwriteatt(filename,'lat','units','degrees_north')
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
19
12193
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
20 nccreate(filename,'time','Datatype',dtype,'Dimensions',{'time',1});
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
21 ncwriteatt(filename,'time','long_name','Time')
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
22 ncwriteatt(filename,'time','units','days since 1858-11-17 00:00:00 GMT')
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
23
12193
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
24 nccreate(filename,'SST','Datatype',dtype,'Dimensions',...
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
25 {'x',220, 'y',144, 'time',1});
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
26 ncwriteatt(filename,'SST','missing_value',single(9999))
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
27 ncwriteatt(filename,'SST','_FillValue',single(9999))
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
28 ncwriteatt(filename,'SST','units','degC')
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
29 ncwriteatt(filename,'SST','long_name','Sea Surface Temperature')
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
30 ncwriteatt(filename,'SST','coordinates','lat lon')
10478
03f260c80c1e initial import of ncArray
abarth93
parents:
diff changeset
31
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
32 ncwrite(filename,'SST',data);
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
33 else
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
34 % use octcdf interface
10478
03f260c80c1e initial import of ncArray
abarth93
parents:
diff changeset
35
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
36 nc = netcdf(filename,'c');
10478
03f260c80c1e initial import of ncArray
abarth93
parents:
diff changeset
37
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
38 % dimensions
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
39
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
40 nc('x') = size(data,1);
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
41 nc('y') = size(data,2);
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
42 nc('time') = size(data,3);
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
43
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
44 % variables
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
45
12193
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
46 nc{'lon'} = ncdouble('y','x'); % 31680 elements
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
47 nc{'lon'}.long_name = ncchar('Longitude');
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
48 nc{'lon'}.units = ncchar('degrees_east');
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
49
12193
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
50 nc{'lat'} = ncdouble('y','x'); % 31680 elements
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
51 nc{'lat'}.long_name = ncchar('Latitude');
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
52 nc{'lat'}.units = ncchar('degrees_north');
10478
03f260c80c1e initial import of ncArray
abarth93
parents:
diff changeset
53
12193
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
54 nc{'time'} = ncdouble('time'); % 1 elements
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
55 nc{'time'}.long_name = ncchar('Time');
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
56 nc{'time'}.units = ncchar('days since 1858-11-17 00:00:00 GMT');
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
57
12193
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
58 nc{'SST'} = ncdouble('time','y','x'); % 31680 elements
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
59 nc{'SST'}.missing_value = ncdouble(9999);
34b88e26cfd2 new functions
abarth93
parents: 11998
diff changeset
60 nc{'SST'}.FillValue_ = ncdouble(9999);
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
61 nc{'SST'}.units = ncchar('degC');
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
62 nc{'SST'}.long_name = ncchar('Sea Surface Temperature');
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
63 nc{'SST'}.coordinates = ncchar('lat lon');
10478
03f260c80c1e initial import of ncArray
abarth93
parents:
diff changeset
64
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
65 % global attributes
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
66
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
67 nc{'SST'}(:) = permute(data,[3 2 1]);
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
68 close(nc)
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
69 end
10478
03f260c80c1e initial import of ncArray
abarth93
parents:
diff changeset
70
11998
b86d8743bf43 improve compatability with matlab
abarth93
parents: 10535
diff changeset
71 % Copyright (C) 2012,2013 Alexander Barth <barth.alexander@gmail.com>
10535
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
72 %
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
73 % This program is free software; you can redistribute it and/or modify
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
74 % it under the terms of the GNU General Public License as published by
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
75 % the Free Software Foundation; either version 2 of the License, or
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
76 % (at your option) any later version.
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
77 %
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
78 % This program is distributed in the hope that it will be useful,
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
79 % but WITHOUT ANY WARRANTY; without even the implied warranty of
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
80 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
81 % GNU General Public License for more details.
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
82 %
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
83 % You should have received a copy of the GNU General Public License
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
84 % along with this program; If not, see <http://www.gnu.org/licenses/>.
0f1fc56d9324 add license
abarth93
parents: 10478
diff changeset
85