11988
|
1 |
|
2 fname = [tempname '-octave-netcdf.nc']; |
|
3 |
|
4 |
|
5 nccreate(fname,'temp','Dimensions',{'lon',10,'lat',20}); |
|
6 nccreate(fname,'salt','Dimensions',{'lon',10,'lat',20}); |
|
7 nccreate(fname,'u','Dimensions',{'lon','lat'}); |
|
8 u = randn(10,20); |
|
9 ncwrite(fname,'u',u); |
|
10 |
|
11 u2 = ncread(fname,'u'); |
|
12 assert(isequalwithequalnans(u,u2)); |
|
13 |
|
14 u2 = ncread(fname,'u',[10 5],[inf inf],[1 1]); |
|
15 assert(isequalwithequalnans(u(10:end,5:end),u2)); |
|
16 |
|
17 ncwriteatt(fname,'temp','units','degree Celsius'); |
|
18 assert(strcmp(ncreadatt(fname,'temp','units'),'degree Celsius')); |
|
19 |
|
20 ncwriteatt(fname,'temp','range',[0 10]); |
|
21 assert(isequal(ncreadatt(fname,'temp','range'),[0 10])); |
|
22 |
|
23 ncwriteatt(fname,'temp','float_range',single([0 10])); |
|
24 assert(isequal(ncreadatt(fname,'temp','float_range'),[0 10])); |
|
25 |
|
26 ncwriteatt(fname,'temp','int_range',int32([0 10])); |
|
27 assert(isequal(ncreadatt(fname,'temp','int_range'),[0 10])); |
|
28 |
|
29 info = ncinfo(fname); |
|
30 assert(length(info.Variables) == 3) |
|
31 assert(strcmp(info.Variables(1).Name,'temp')); |
|
32 assert(isequal(info.Variables(1).Size,[10 20])); |
|
33 delete(fname); |
|
34 |
|
35 |
|
36 nccreate(fname,'temp','Dimensions',{'lon',10,'lat',20},'Format','64bit'); |
|
37 delete(fname); |
|
38 |
|
39 nccreate(fname,'temp','Dimensions',{'lon',10,'lat',20},'Format','classic'); |
|
40 info = ncinfo(fname); |
|
41 assert(strcmp(info.Format,'classic')); |
|
42 |
|
43 delete(fname); |
|
44 |
|
45 % netcdf4 |
|
46 |
|
47 nccreate(fname,'temp','Dimensions',{'lon',10,'lat',20},'Format','netcdf4'); |
|
48 ncwriteatt(fname,'temp','uint_range',uint32([0 10])); |
|
49 assert(isequal(ncreadatt(fname,'temp','uint_range'),[0 10])); |
|
50 |
|
51 info = ncinfo(fname); |
|
52 assert(strcmp(info.Format,'netcdf4')); |
|
53 delete(fname) |
|
54 |
|
55 % scalar variable |
|
56 nccreate(fname,'temp','Format','netcdf4','Datatype','double'); |
|
57 ncwrite(fname,'temp',123); |
|
58 assert(ncread(fname,'temp') == 123) |
|
59 delete(fname) |
|
60 |
|
61 |
|
62 % test unlimited dimension with nccreate |
|
63 fname = [tempname '-octave-netcdf.nc']; |
|
64 nccreate(fname,'temp','Dimensions',{'lon',10,'lat',inf}); |
|
65 %system(['ncdump -h ' fname]) |
|
66 |
|
67 info = ncinfo(fname); |
|
68 assert(~info.Dimensions(1).Unlimited) |
|
69 assert(info.Dimensions(2).Unlimited) |
|
70 |
|
71 delete(fname) |
|
72 |