author | A.M. Thurnherr <ant@ldeo.columbia.edu> |
Tue, 08 Jul 2014 21:50:22 -0400 | |
changeset 14 | f7f35d9629ab |
parent 11 | d71acdec556a |
child 17 | f5a63c03d9c8 |
permissions | -rw-r--r-- |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
1 |
function [] = ladcp2cdf(fname,dr_struct,da,p,ps,f,att); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
2 |
% function [] = ladcp2cdf(fname,dr_struct,da,p,ps,f,att); |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
3 |
% |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
4 |
% function to save LADCP data into a netcdf file for MatLab version 2012a |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
5 |
% |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
6 |
% input : fname - output filename |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
7 |
% dr_struct - main inversion results (velocity profiles) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
8 |
% da..att - arbitrary metadata structures |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
9 |
% |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
10 |
% Created By: Diana Cardoso, Bedford Institute of Oceangraphy |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
11 |
% Diana.Cardoso@dfo-mpo.gc.ca |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
12 |
% Description: Based on LDEO software to Process LADCP, version IX.8, |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
13 |
% script ladcp2cdf.m version 0.1 last change 08.03.2002. |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
14 |
% maintained by A.M. Thurnherr and downloaded from: |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
15 |
% http://www.ldeo.columbia.edu/cgi-bin/ladcp-cgi-bin/hgwebdir.cgi |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
16 |
% The function ladcp2cdf was changed to run with the the Matlab |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
17 |
% version 2012, which now supports netcdf. |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
18 |
|
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
19 |
%====================================================================== |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
20 |
% L A D C P 2 C D F . M |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
21 |
% doc: Thu Aug 15 10:52:55 2013 |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
22 |
% dlm: Wed Aug 28 12:31:16 2013 |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
23 |
% (c) 2013 A.M. Thurnherr, from code contributed by D. Cardoso |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
24 |
% uE-Info: 99 0 NIL 0 0 72 0 2 8 NIL ofnI |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
25 |
%====================================================================== |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
26 |
|
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
27 |
% NOTES: |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
28 |
% - This version creates slightly different files than the original version |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
29 |
% created by Visbeck/Krahmann. In the original version, the contents of the |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
30 |
% dr structure end up as top-level variables and the contents of |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
31 |
% the da, p, ps, f and att structures end of as global attributes. In |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
32 |
% the new version, the latter are saved as sub-structures, with _struct appended |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
33 |
% to the internal names to avoid conflicts. |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
34 |
|
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
35 |
% HISTORY: |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
36 |
% Aug 15, 2013: - incorporated this code, supplied Diana Cardoso, into IX_10beta |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
37 |
% - modified doc in header |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
38 |
% - renamded struct variable to dr_struct |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
39 |
% - removed 'cd' in and out of results directory (pathnames work just fine) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
40 |
% - delete netcdfile before it is written to (old 'clobber' option) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
41 |
% - removed 'l' suffix from all dims |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
42 |
% - replaced yes/no logical vals by true/false |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
43 |
% - renamed substructures from st2..st6 to internal names (da,p,ps,f,att) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
44 |
% Aug 28, 2013: - incorporated bug fix provided by Diana Cardoso to prevent lat,lon,name and |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
45 |
% date to be stored 2cd in the nc file, which can make the code |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
46 |
% bomb if the length of any other var is 6 (or equal to the length of name?) |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
47 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
48 |
% check arguments |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
49 |
if nargin<2 |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
50 |
error('need two input arguments') |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
51 |
end |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
52 |
if ~isstruct(dr_struct) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
53 |
error('second argument must be a dr structure') |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
54 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
55 |
|
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
56 |
netcdfile = deblank(fname); %remove any blanks from string end |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
57 |
if exist(netcdfile,'file') |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
58 |
delete(netcdfile) |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
59 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
60 |
|
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
61 |
%Determine dimensions of variables |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
62 |
lbot = 0; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
63 |
lz = 0; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
64 |
ltim = 0; |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
65 |
lsadcp = 0; |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
66 |
|
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
67 |
if isfield(dr_struct,'z'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
68 |
lz = length(getfield(dr_struct,'z')); |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
69 |
end |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
70 |
if isfield(dr_struct,'tim'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
71 |
ltim = length(getfield(dr_struct,'tim')); |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
72 |
end |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
73 |
if isfield(dr_struct,'zbot'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
74 |
lbot = length(getfield(dr_struct,'zbot')); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
75 |
end |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
76 |
if isfield(dr_struct,'z_sadcp'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
77 |
lsadcp = length(getfield(dr_struct,'z_sadcp')); |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
78 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
79 |
|
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
80 |
% % define dimensions in netcdf file and standard variables |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
81 |
nccreate(netcdfile,'lat','Dimensions',{'lat' 1},'Datatype','single'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
82 |
nccreate(netcdfile,'lon','Dimensions',{'lon' 1},'Datatype','single'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
83 |
nccreate(netcdfile,'date','Dimensions',{'date' 6},'Datatype','int32'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
84 |
nccreate(netcdfile,'name','Dimensions',{'name' length(getfield(dr_struct,'name'))},'Datatype','char'); |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
85 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
86 |
% store standard variables |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
87 |
ncwrite(netcdfile,'lat',dr_struct.lat); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
88 |
ncwrite(netcdfile,'lon',dr_struct.lon); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
89 |
ncwrite(netcdfile,'date',dr_struct.date); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
90 |
ncwrite(netcdfile,'name',dr_struct.name); |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
91 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
92 |
% parse fieldnames, define the proper variable and store it |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
93 |
fnames = fieldnames(dr_struct); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
94 |
nn=strncmp('name',fnames,6); nla=strncmp('lat',fnames,3); % find, name, lat,lon,date from fnames |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
95 |
nlo=strncmp('lon',fnames,3); nda=strncmp('date',fnames,4); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
96 |
ntot=[nn+nla+nlo+nda]; Ktot = logical(ntot); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
97 |
fnames(Ktot,:)=[]; % remove , name, lat,lon,date from fnames |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
98 |
|
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
99 |
for n=1:size(fnames,1) |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
100 |
dummy = getfield(dr_struct,fnames{n}); |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
101 |
if length(dummy)==lz |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
102 |
nccreate(netcdfile,fnames{n},'Dimensions',{fnames{n} fix(lz)},'Datatype','single'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
103 |
ncwrite(netcdfile,fnames{n},dummy); |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
104 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
105 |
if length(dummy)==ltim |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
106 |
nccreate(netcdfile,fnames{n},'Dimensions',{fnames{n} fix(ltim)},'Datatype','single'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
107 |
ncwrite(netcdfile,fnames{n},dummy); |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
108 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
109 |
if length(dummy)==lbot |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
110 |
nccreate(netcdfile,fnames{n},'Dimensions',{fnames{n} fix(lbot)},'Datatype','single'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
111 |
ncwrite(netcdfile,fnames{n},dummy); |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
112 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
113 |
if length(dummy)==lsadcp |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
114 |
nccreate(netcdfile,fnames{n},'Dimensions',{fnames{n} fix(lsadcp)},'Datatype','single'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
115 |
ncwrite(netcdfile,fnames{n},dummy); |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
116 |
end |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
117 |
end |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
118 |
|
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
119 |
add_struct(netcdfile,'da_struct',da) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
120 |
add_struct(netcdfile,'p_struct',p) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
121 |
add_struct(netcdfile,'ps_struct',ps) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
122 |
add_struct(netcdfile,'f_struct',f) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
123 |
add_struct(netcdfile,'att_struct',att) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
124 |
|
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
125 |
end % function |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
126 |
|
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
127 |
%---------------------------------------------------------------------- |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
128 |
|
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
129 |
function [] = add_struct(ncf,snm,a) |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
130 |
|
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
131 |
fnames = fieldnames(a); |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
132 |
if isstruct(a) |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
133 |
if ~isstruct(eval(['a.' fnames{1}])) % No SubStructure |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
134 |
nccreate(ncf,snm,'Datatype','char'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
135 |
|
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
136 |
for n = 1:size(fnames,1) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
137 |
dummy = getfield(a,fnames{n}); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
138 |
if size(dummy,1)==1 |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
139 |
if isstr(dummy) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
140 |
ncwriteatt(ncf,snm,fnames{n},dummy); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
141 |
elseif islogical(dummy) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
142 |
if dummy, dummy='true'; |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
143 |
else, dummy='false'; |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
144 |
end |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
145 |
ncwriteatt(ncf,snm,fnames{n},dummy); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
146 |
else |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
147 |
ncwriteatt(ncf,snm,fnames{n},dummy(:)); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
148 |
end |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
149 |
end |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
150 |
end % for n |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
151 |
else % SubStructures -> Variable Attributes |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
152 |
for n = 1:size(fnames,1) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
153 |
atts = eval(['fieldnames(a.' fnames{n} ');']); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
154 |
finfo = ncinfo(ncf); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
155 |
FieldNames = {finfo. Variables.Name}; |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
156 |
existField=strmatch(fnames{n}, FieldNames); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
157 |
if isempty(existField) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
158 |
nccreate(ncf,fnames{n},'Datatype','char'); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
159 |
end |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
160 |
for j = 1:size(atts,1) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
161 |
dummy = eval(['a.' fnames{n} '.' atts{j} ';']); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
162 |
if size(dummy,1) == 1 |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
163 |
if ischar(dummy) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
164 |
ncwriteatt(ncf,fnames{n},atts{j},dummy); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
165 |
else |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
166 |
ncwriteatt(ncf,fnames{n},atts{j},dummy(:)); |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
167 |
end |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
168 |
end |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
169 |
end |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
170 |
end % for n |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
171 |
end % else (substructures or not) |
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
172 |
else % if issstruct(a) |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
173 |
disp(' not structure') |
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
174 |
end |
11
d71acdec556a
10beta to be emailed to Eric Firing on Sep 18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
0
diff
changeset
|
175 |
end % function |
0
0a450563f904
VIX_6: first version for Mercurial release
A.M. Thurnherr <ant@ldeo.columbia.edu>
parents:
diff
changeset
|
176 |