-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.txt
246 lines (189 loc) · 9.8 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
THIS IS A BETA VERSION
It works for me and on a number of test settings.
Please try it and report any problems or bugs to
Gerd Krahmann, Kiel July 2006
----------------------------------------------------------
First a DISCLAIMER:
This software is NOT A COMMERCIAL package. It is provided to
you at no cost, but also without any guarantees for correct
results. We do, however, use it ourselves ;-)
Please also note that this is work in progress. There are
likely problems and bugs in the software and I will be changing
and improving the code in the foreseeable future.
Any suggestions, comments, and even problems you should
have are welcome. To simplify the all-important feedback, I
have created a Yahoo ladcp group. You are most welcome to
become an active member of the group.
http://groups.yahoo.com/search?query=ladcp&submit=Search
If you do not want to become a member, you can also send an
e-mail directly to me. Please note that I have other work
to do, and that an answer might take a while.
Gerd Krahmann
-------------------------------------------------------------------
LADCP Processing v10.0-v10.2 beta
This is a description of how to set up the IFM-GEOMAR/LDEO
Matlab LADCP-Processing system. During the last rewrite of
the code we decided to separate more strictly the
cruise/ship/institute dependent part of the processing from
the actual inversion routines. For this we create a rather
strict interface through which data is delivered to the
processing. In order for this to work we need you, the user,
to create conversion routines to get your data into the
proper format. Once that is done, the processing should in
many cases be able to figure out many parameters by itself
and should proceed to the final result without any interference
or further input by the user.
1. SETUP OF THE LADCP SYSTEM
1.1 PROPER TIME BASE
Most important for the proper processing is to establish a proper
timing of the cast. In this version we rely on a perfect time
base of the LADCP (the time base should always be UTC). You
will be able to correct for wrong time bases, should
you know that your LADCP's clocks were set wrong.
(Set the parameter params.timoff to the offset in decimal days,
time base is always the clock of the downlooking instrument in
cases of a dual head system. This should be done in
cruise_id/cast_params.m )
While navigational data, typically GPS data,
is in all but the rarest cases, on a proper time base, this
is not necessarily true for other data. So when you intend
to use this software and set up your LADCP system, please make
100% sure that your LADCP clocks are set correctly (at least to
a few seconds). Since the ADCP's clocks can drift noticably, you
will need to check and possibly set the clocks for every single
cast. A time server on the ship to which you synchronize your
LADCP control computer on a regular basis (before each cast
or once a day) is the safest way to ensure the proper time base.
CTD-time data which we, when available, use to
infer the depth of the system should similarly be on the same
time base, though our routines are able to correct for a different
time base in the CTD data.
2. SETUP OF THE PROCESSING
2.0 WHICH DATA DO WE NEED FOR PROCESSING
Lowered ADCP processing can be done with just the ADCP data
and logged times and positions when the casts begin and end.
This very basic information will result in water velocity
profiles. Shear profiles can even be determined with just the
ADCP data.
This is, however, not the best result one can obtain.
If we add the processed CTD profile, that in most cases was collected
together with the LADCP data, we can correct for sound speed variations
within the water column. This will lower the error of the final
profile.
If one has access to it, the raw CTD data (not yet deptp binned, and
not loop-edited with Seabird software) is another highly recommneded
data addition. It will be used for locating the LADCP in the vertical
axis. If this data is not available, the depth will be inferred from
the vertical velocity measured by the ADCP. Usually not the best way.
If a ship-ADCP was installed on the ship and running while collecting
the LADCP profile, this data can be added to further reduce the errors.
Navigational data, that is on most research vessels regularly collected
can also be fed into the processing and will save us the need to
enter start and end positions by hand. On some ships this data is
being fed into Seabird CTD systems. That is the best way for
LADCP processing.
2.1 CREATING THE DIRECTORY STRUCTURE
To maintain the separation of ship/cruise/institute dependent
and independent parts of the processing we introduce from this
version on a new directory structure. This will allow you to
easily install a new processing software by replacing just one
directory.
We suggest you start the installation in
a base directory named 'ladcp' or similarly.
The directory structure thereafter will be as follows. A script
(create_cruise.m) is provided to create this directory structure
and copy some relevant files at the proper places.
ladcp - base directory
m - ship/cruise/institute independent software
ladcp - ladcp processing
sw - CSIRO's seawater routines
initial_dir - extra stuff to create new cruise directories
cruise_id - ship/cruise/institude dependent files and data
also contains the startup.m script and
cruise_params.m and cast_params.m
m - user-modified loading routines
logs - processing logs
profiles - resulting profiles
plots - resulting plots
tmp - temporary files
data - input data
raw_ladcp - LADCP raw data as from RDI
raw_sadcp - SADCP raw data as from its processing
raw_nav - navigational data as from its processing
raw_ctdprof - CTD profiles as from its processing
raw_ctdtime - CTD time data as from its processing
ladcp - fixed format LADCP mat-files for fast loading
(not yet implemented)
sadcp - fixed format SADCP mat-files for fast loading
nav - fixed format NAV mat-files for fast loading
ctdprof - fixed format CTD profile mat-files
ctdtime - fixed format CTD time mat-files
The base directory ( ladcp )will contain the m-file 'create_cruise.m' .
Execute this file to create a new directory structure under a different
'cruise_id' name. You will then have exactly one subdirectory
named 'cruise_id' for each cruise.
'create_cruise.m' will also copy simple templates for the conversion
routines from your specific data formats to the fixed formats needed by
the LADCP processing.
You MUST quit matlab before starting the processing.
This software relies on matlab being started in the cruise_id directory.
2.2 SET UP THE CRUISE SPECIFIC PART OF THE PROCESSING
You will need to edit EACH of the following files
cruise_id/m/prepladcp.m
cruise_id/m/prepsadcp.m
cruise_id/m/prepnav.m
cruise_id/m/prepctdtime.m
cruise_id/m/prepctdprof.m
These files contain instructions what you have to change within.
We have collected some examples in 'm/initial_dir/examples/'
prepladcp.m will copy the raw ADCP data from a location determined
by you to the location where the processing expects it.
Here you can also rename the files to the convention
used within the processing.
prepsadcp.m will copy raw Ship-ADCP data, if it is available,
to the location where the processing expects it.
The routine will extract some data and store it
in a mat-file with set variable names.
prepnav.m will copy raw Navigation data, if it is available,
to the location where the processing expects it.
The routine will extract some data and store it
in a mat-file with set variable names.
prepctdprof.m will copy processed, depth binned, CTD data, when
available, to the location where the processing expects it.
This data should be just a regularly processed CTD profile
at regular resolution. Uncalibrated and preliminary data
will be sufficient, unless the CTD is totally wrong in T or S.
The routine will extract some data and store it
in a mat-file with set variable names.
prepctdtime.m will copy not depth-binned CTD data, if it is
available, to the location where the processing expects it.
The routine will extract some data and store it
in a mat-file with set variable names.
If you have done this once and you do another cruise with the same
setup, you can of course reuse your old prep*.m files with only
minor modifications.
In 'cruise_id/cruise_params.m' you should then change processing
parameters that are the same throughout your cruise.
In 'cruise_id/cast_params.m' you should change processing
parameters that are specific for a single cast. E.g. start and
end position, if you enter them manually.
This is the only file where you might have to enter information
on a per cast basis (usually not necessary if you provide correct
time bases and navigational data).
2.3 PROCESSING A PROFILE
To process a cast you need to do the following steps
- copy the raw data files to the proper location
- start matlab in the 'cruise_id' directory
- if necessary, enter start and end position and time into
'cruise_id/cast_params.m'
- call 'process_cast(stnno)'
2.4 REPROCESS A PROFILE
A profile can simply be reprocessed by calling 'process_cast(stnno)'
again. To speed up the processing it will load the previously
prepared mat-files with the data. If you want to rerun the
preparation of data too, first execute 'clear_prep(stnno)' .
This second part NEEDS to be done, in case you are fixing problems
with the raw data. The reason is that some of the data preparation
depends on the previously prepared data.