Aus Argo ArgoRT Doco Page


Operation of ArgoRT processing system

The ArgoRT system is run automatically by "cron". Reports are sent to designated operators after each run (typically 4 per day), and a webpage detailing the day's processing is updated daily. Some reports may require further investigation and possibly manual intervention. If intervention is required, the aim is to reject parts of the message which are preventing correct decoding and generation of profiles.

Profiles are transmitted on the GTS (ideally within 24 hours of surfacing), are sent to GDACs in netCDF files, and are ultimately stored locally in one matfile per float. Web pages displaying each new profile are generated every run.

An obligatory picture, dedicated to 1970s software development methods. This shows the gross flow of data, and the two manual intervention detours.

[Argos] --- FTP_GET_ARGOS --->  6-hrly ASCII - - EXTRACT_ARGOS_MSG  
                                download file          |
                                    |                  |
                                    | -  -  -  -  -  - +
                                    V
                            STRIP_ARGOS_MSG                         }
         	                    |                               }   R
                                    v                               }   e
       EDIT_WORKFILES - - ->  PROCESS_PROFILE                       }   p
            ^                       :                               }   o
            |                       : <-----> FIND_BEST_MSG         }   r
            |                       : <-----> DECODE_{WEBB,PROVOR}  }   t
       [Workfiles] <--------------- :                               }   s
                                    :-------+---------+             }
                         +--------- :       V         V             }
                         |               netcdf/    tesac/
                         V                   |       | 
                    Web Pages                V       V
                                           EXPORT_ARGO ------> GTS
                                              V
                                           export/
                                              |
                                              V
                                          writeGDAC --------> GDACs

Sections below...
ArgoRT directories Matlab New floats database float status
Manual Intervention
controlling operation Fixing message decoding edit_workfile First profile Reprocessing
netcdf files Other work


ArgoRT directories

Processing area
argos_downloads/Argos messages will be fed into here
cal_data/CTD reference files for salinity calibration
docs/a copy of the documentation set, transferred to your web directory during installation
export/netcdf files for transfer to GDACs (cleared after every transfer)
matfiles/the Argo matfiles
netcdf/per-float netCDF files live and grow here, but temporary copies are placed in export to send.
src/all ArgoRT software
reports/ArgoRT processing reports
run_logs/system reports from ArgoRT auto-runs
spreadsheet/the Excel spreadsheet and .csv copies
tesac/TESAC messages for transmission on GTS
workfiles/intermediate files for examining, correcting or reprocessing profiles.
work/an area for doing work. extract_argos_msg puts download extracts here.
Web area
doc/system documentation
doc/1../software files pages
floats/pages for each float in own subdirectory
processing/processing report pages
templates/components used by software to build pages


Matlab

All checking or manual intervention work is performed in Matlab (V7 or higher), so some proficiency in Matlab is required.

debugger

I recommend activating the debugger, so that if any exception causes an error then you can quickly locate the source and cause of the problem. (If debugger is not active by default, use the following line in each session OR in your startup.m file: dbstop if error

For interactive sessions you may optionally use dbstop if warning but it should not be used for auto-runs as we don't want them to hang if plotting routines warn because of some unusual data.

When an error occurs, Matlab pauses in the debugging mode. (The following describes behaviour when using Matlab with the -nodesktop option.)

See where the problem occurred, and move up and down between workspaces:

  k>> dbstack
  > In decode_provor at 32
    In process_profile at 267
    In strip_argos_msg at 318
    In drive_argo at 30
  K>> dbup
  In workspace belonging to process_profile.

All variables within the present workspace can be accessed.

Being familiar with all capabilities of the debugger will be of great benefit to you.

Global variables

A lot of fundamental ArgoRT system info is kept as global variables. The first time a function needs them in the present Matlab session, they are generated. After that they remain in the session.

If you change the database, or the set_argo_sys_params.m file, or the name of processing records or report files, then these things may not be updated until you a) clear the globals OR b) restart Matlab.

You can access these variables for your own purposes by declaring them in the workspace - for example, to get all WMO IDs:

    >> whos ARGO_ID_CROSSREF
    >> global ARGO_ID_CROSSREF
    >> whos ARGO_ID_CROSSREF
      Name                   Size          Bytes  Class
      ARGO_ID_CROSSREF     132x3          3168  double array (global)
    >> wmos = ARGO_ID_CROSSREF(:,1);

These variables are used in many places, but most of them can be seen in use in the first part of strip_argos_msg.

They can all be seen with command 
    >> whos global 


New floats

When new floats are expected:
Enter all details in the spreadsheets. Unless it is already profiling give it a status of "expected". Update the working copies and related web pages (see below).

Check that the ranges of Argos IDs in ftp_get_argos includes the new floats.

Watch for the floats to arrive (via normal daily processing reports.) Having status "expected" it will NOT be processed as a profile when it first arrives, but will be stored in a workfile ("N0_P0"). You may then use edit_workfile to test it, to see if it is pre-launch junk, a good profile, or a mish-mash of both.

Pay special attention to the first profile as it is often messed up by non-profile messages which precede it. This is easily fixed - see "First profile" below.

When the real first profile has come through in the message, change the spreadsheet status to "live". The next run of ArgoRT will then process it.

Database - Spreadsheet

Do read the "Filetypes" section on database.

Ideally add new floats before they report in for the first time, with a status of "expected" (see "New Floats" above). Add to the master and calibration sheets at the same time, and keep floats in the same order in both. Note that the spreadsheet structure must not be changed (without modifying programs to match.)

When updated, save both sheets as csv files (argomaster.csv) and argomaster_cal.csv respectively.) Excel may throw up warnings about losses converting to csv - click "yes" and ignore them!

When saved to csv, update web page version by running web_database. If new floats have been added, also update the float selection webpages using web_select_float.

status

The master sheet status field has a small set of allowed values. This field implements our grey list and enables ArgoRT to ignore bad floats and warn of missing good floats.

Allowed values of status field
Value meaning ArgoRT action
live active and ok process it
dead assumed dead warn if it does appear
unknown maybe pre-launch, or recently gone missing? treat as "live"
suspect have reservations about data quality (ie class 4 data) process, send netCDF, but do not send to GTS
expected temporary status: a float due to be deployed will be reported when it becomes live (see sections above)
evil Incurably bad float, but it will not die! ignore it completely

top


Manual intervention

Controlling operation

Normal operation is scheduled by the Unix scheduler called cron. This can be alterred - see "cron" in installation notes.

ArgoRT can be activated manually, but make sure that doing so does not clash with an automatic run. Also, options can be passed to the main calling function strip_argos_msg which are worth considering for non-standard runs.

ArgoRT can be manually activated to process portions or whole ftp downloads by:

sh run_rt_argo.sh
This mimics an auto-run including the ftp download, and runs a Matlab process in the background)
>> drive_rt_argo
No download, and started in Matlab, but quits that session when finished.
>> drive_argo_manual
A better method. Edit that code to select and tune options.
>> strip_argos_msg(fnm,wmos,opts)
Maybe best. You will need to look at drive_argo_manual.m and strip_argos_msg.m to work out what inputs are required, but this is a good thing!

To manually activate an ftp download: src/ftp_get_argos

Manually activate an update of the Processing report webpage with web_processing_report. Note the option to run this report without clearing the 'new' flags - so that the next auto-update will be uneffected.


Fixing message decoding

Manual intervention to remove material which is corrupting message decoding is achieved either by extracting, editing and reprocessing the segment of the ftp download, or, much preferred, by flagging in the workfile.

Editing the ftp download
The ftp download file is kept as a permanent backup, so ought not be modified.

To modify the message for some profile, first extract the components for this float from the download use extract_argos_msg, and edit the extract. This editing will probably only involve removing obvious rubbish. The cutdown message would then be run again through strip_argos_msg.

It may happen that removing portions of the message reduces the set of times spanned by the transmission, so that the message is now assessed to be too recent to process! If so extract the float from the next download and repeat the process.

Obviously if we have to go back to reprocess from downloads, this corrective work will be lost. However, since new workfiles are generated through this exercise, reprocessing from workfiles will be correct.

edit_workfile
Use edit_workfile.m to view, test, apply QC flagging to message components in a workfile, and resubmit the profile for processing.

edit_workfile should have a GUI. For now, invoke it and type ?, which will open a Help window which briefly describes all other commands, and the listing format.

Note that if the CRC field is initially filled with "?", use command T to "test" the profile. In the process of this the CRC field will be calculated.

The normal editing sequence may follow this pattern:

   >> edit_workfile
   (Type ? for help) : ? 
   (Type ? for help) : f 5900865
   (Type ? for help) : p42
   (Type ? for help) : l
	...  list through data to find bad bits
   (Type ? for help) : r 1:127
   (Type ? for help) : t
   (Type ? for help) : g 123:127
   (Type ? for help) : t
   (Type ? for help) : a
   (Type ? for help) : q
This session retrieved profile 42 [defaulting to using the Argo profile number] of float 5900865. After listing some of the messages, we decided to reject lines 1:127 [this rejects all header and data and b1tim lines with those line numbers]. Tested this, and decided to restore lines 123:127, tested again and decided to accept and submit this profile (auto-saved).

Note that having now modified this workfile if will not be overwritten if the profile is processed again from ftp downloads.

First profile for a float - a case often requiring intervention

Fix by removing all message lines prior to the real start of the first profile (which should be obvious from the times.)

Note that such profiles may be processed too soon, because of the preceding garbage is initially taken to be the start of profile transmission. Try reprocessing after another day. It may even be worth having another value in the database status field ("new"?). ArgoRT could be modified to warn the operator of the first appearance of the float (but not attempt to process it.) The operator could then change the status to "live" when the first profile has fully arrived.

Another issue with first profiles is that metadata netcdf files need to be at the GDAC before profile files will be accepted. This should be okay - metadata files are built at the same time as the first profile for a float, and are sent seconds beforehand, but mishaps could happen??

First profile - example

Here the download from an "expected" float is worked with to trim out the pre-profile messages. We look at the heads (Argos fixes) with h, and see a discontinuity in times at line 182. Then look at the download from line 150 onwards (l 150). Notice the undecodable block numbers (NaN) prior line 182, and sensible ones beyond. We then reject everything before line 182 (r1:181) and test again. (Repeat "l 150" if you want to see the effect of "r1:181").

The final q command means that we discarded the work done, because I think we give it a bit more time - wait for the next download. We should now change the status in the spreadsheet from "expected" to "live" (and do the normal steps to make that available to ArgoRT). At the next ArgoRT run this float will then be acquired again and profile #1 processed. We will want to repeat the this session then (it will now the profile #1), to clean it up - there will still be junk there but maybe sopme more real profile message.

Some colour-coded points. (Do scan ahead then come back to read these):

FBM: Look in find_best_message.m for the meaning of these 8 numbers. Pretty soon you will recognise that a good message has 0 for #3, #4, #5. There is garbage mixed in here! After trimming we are left with a nice clean message.

bad ascent_end estimate: This is because the first fix time (jday(1)) actually comes from a pre-profile transmission rather than the first actual profile message. In reality we can't have a fix time before ascent_end, so this message always tells us that something is amiss. After trimming, the message disappears.

Profile downloaded too soon: After trimming out the pre-profile junk the system sees that this download was made only a few hours after the real profile started, so we would normally wait longer before processing, to ensure we get all possible data. (Despite that, the message has decoded well.)

Estimated ascent_end_time: Prior to trimming, there was an apparent block number of 49. This, when used in the ascent-end estimation caused a steady drift in estimates. After trimming the max block number is now 16, and we see that every ascent_end estimate is identical, confirming that we have a robust estimate, and incidentally that we have the right number of blocks and the reprate is accurate.


>> edit_workfile
Start with commands F then P.  Eg  F 5901170
then                               P 57
(Type ? for help) : f5901175

Float 5901181:  1 workfiles, profiles 0 to 0

(Type ? for help) : p0

Profile 0   392 lines, 22 headers, 15 Block1
pmeta =
       wmo_id: 5901181.00
      ftptime: 2454069.35
    ftp_fname: 'argos06_334'
           np: 0
         pnum: 0
ftptime: 29-Nov-2006 20:20:00

(Type ? for help) : t

FBM:  1=248  2=209  3=0  4=1  5=27  6=4  7=16  8=0 
Unresolved excessive speeds between fixes
 L3 warning Revert to jday(1) - bad ascent_end estimate
JAE est: min=2454068.18  median=2454068.53  max=2454068.86  j1=2454068.17
JAE median: 29-Nov-2006 00:40:18       Jday(1): 28-Nov-2006 16:07:23 

 Estimate   nmsg    B1 tim   (maxblk 49  reprate 44)
29  8:44<=     5    29 11: 8
29  7:55       7    29 11:31
29  7:31       8    29 11:43
29  6:19      11    29 12:18
29  4:18      16    29 13:17
29  2:41      20    29 14: 4
29  1: 4      24    29 14:50
29  0:40      25    29 15: 2
28 23:27      28    29 15:37
28 23: 3      29    29 15:49
28 21:26      33    29 16:36
28 19:49      37    29 17:23
28 18:37      40    29 17:58
28 18:13      41    29 18:10
28 16:12<=    46    29 19: 9
Float 5901175   Profile 1   Download 28-Nov-2006 20:20:00
N_Fixes 22     N_Gd_Pos  22
P raw  N=70  Min=  4.400 Max=1900.100  Mean=571.473
T raw  N=70  Min=  2.470 Max=  9.228  Mean=  7.085
S raw  N=70  Min= 34.300 Max= 34.665  Mean= 34.489

Type ? for help) : h

  3: 0  2006-11-28 16:07:23 -48.7620 129.6050 2
 20: 0  2006-11-28 16:30:07 -48.7590 129.6290 2
 36: 0  2006-11-28 16:42:57 -48.7590 129.6310 2
 57: 0  2006-11-28 17:56:17 -48.7590 129.6560 2
 94: 0  2006-11-28 18:24:53 -48.7600 129.6620 1
110: 0  2006-11-28 18:30:01 -48.7610 129.6670 2
125: 0  2006-11-28 19:36:23 -48.7620 129.6840 2
145: 0  2006-11-28 19:51:47 -48.7600 129.6890 2
182: 0  2006-11-29 11:05:50 -48.7900 129.8230 1
193: 0  2006-11-29 11:35:10 -48.8010 129.8500 1
206: 0  2006-11-29 11:39:34 -48.8010 129.8360 1
221: 0  2006-11-29 12:23:56 -48.8020 129.8660 1
242: 0  2006-11-29 13:18:56 -48.8160 129.8750 1
257: 0  2006-11-29 14:06:14 -48.8260 129.8850 1
276: 0  2006-11-29 14:53:32 -48.8370 129.8970 1
287: 0  2006-11-29 14:59:46 -48.8360 129.9060 2
297: 0  2006-11-29 15:44:08 -48.8500 129.9180 2
317: 0  2006-11-29 16:32:54 -48.8570 129.9460 1
345: 0  2006-11-29 17:57:14 -48.8690 129.9520 1
357: 0  2006-11-29 18:06:46 -48.8800 129.9590 1
368: 0  2006-11-29 18:14:50 -48.8740 129.9660 2
381: 0  2006-11-29 19:10:34 -48.8860 129.9820 2

Type ? for help) : l 150

150: 0  NaN ?    7 161  12  36  74 124  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
151: 0  NaN ?   44 162  12  36  74 168  72   0   0 154 156  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
152: 0  NaN ?   33 163  12  36  74 212  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
153: 0  NaN ?   44 164  12  36  75   0  72   0   0 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
154: 0  NaN ?   96 165  12  36  75  44  72   0   1 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
155: 0  NaN ?  148 166  12  36  75  88  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
156: 0  NaN ?   65 167  12  36  75 132  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
157: 0  NaN ?  106 168  12  36  75 176  72   0   1 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
158: 0  NaN ?   44 169  12  36  75 220  72   0   1 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
159: 0  NaN ?   70 170  12  36  76   8  72   0   0 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
160: 0  NaN ?  124 171  12  36  76  52  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
161: 0  NaN ?   74 173  12  36  76 140  72   0   1 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
162: 0  NaN ?  172 174  12  36  76 184  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
163: 0  NaN ?   99 180  12  36  77 192  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
164: 0  NaN ?   50 181  12  36  77 236  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
165: 0  NaN ?  180 183  12  36  78  68  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
166: 0  NaN ?  152 184  12  36  78 112  72   0   0 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
167: 0  NaN ?  153 185  12  36  78 156  72   0   0 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
168: 0  NaN ?  200 187  12  36  78 244  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
169: 0  NaN ?  248 188  12  36  79  32  72   0   0 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
170: 0  NaN ?  158 189  12  36  79  76  72   0   1 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
171: 0  NaN ?   96 190  12  36  79 120  72   0   0 154 156  15  39 173 165 213  74 243 155   3 177 255 230 140 246 106 254 252 251 216 240 NaN
172: 0  NaN ?  168 191  12  36  79 164  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
173: 0  NaN ?   87 192  12  36  79 208  72   0   0 154 159  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
174: 0  NaN ?   59 193  12  36  79 252  72   0   1 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
175: 0  NaN ?  218 194  12  36  80  40  72   0   2 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
176: 0  NaN ?  249 195  12  36  80  84  72   0   0 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
177: 0  NaN ?  139 196  12  36  80 128  72   0   0 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
178: 0  NaN ?  159 197  12  36  80 172  72   0   0 154 158  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
179: 0  NaN ?   22 198  12  36  80 216  72   0   0 154 156  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
180: 0  NaN ?  190 199  12  36  81   4  72   0   0 154 157  15   0 225  39  16  85  12 100 252  78  32  25 115   9 149   1   1   4  39   6 NaN
181: 0  NaN ?  181 200  12  36  81  52  72   0   0 154 157  15   0 225  38  16  84  12 100 252  78  32  25 115   9 197   3  33  68  39   6 NaN
182: 0  2006-11-29 11:05:50 -48.7900 129.8230 1
183: 0   7     10   7 138  24  98  28  84 134 154  23 100  29   2 134 159  22 112  30  56 134 183  21 113  31  28 134 202  20 124  31 213 NaN
184: 0   8 B  188   8 134 219  19 130  32 175 134 237  18 151  33 134 135   0  17 140  34  92 135  25  16 149  34 163 135  24  15 153  34 NaN
185: 0   9     77   9 164 135  13  14 161  34 135 134 252  13 162  34  64 134 234  13  61  33 221 134 209  12 216  33 237 134 207  12 119 NaN
186: 0  11 B   11  11 132  35  22 134 252  10  31  34 226 134 238  11  51  51  51  51  51  51  51  50  35  49  51  51  39  54  34 100  68 NaN
187: 0  13 B  237  13 226   6 155  34 241 134 223   2  57  35  88 134 241   5 217  35 151 134 252   5 109  35 166 134 255   5   9  35 164 NaN
188: 0  15    201  15 222 134 255   2 179  36  12 134 249   2  78  34   0 134  73   1 235  33 233 134  53   1 138  34  25 134  57   1  38 NaN
189:    5   2006-11-29 11:08:02
189: 0   1     70   1   5  12  36   1  70   0 158  43  65   1 121 143  62  24 152   0   0 221 221  23  54 134  50  28  50 153   1   0  50 NaN
190: 0   2     69   2  99  25 150  14   9 166 135 105  74  57   9 166 135 105  74  53   9 224 135  78  70  73  10  29 135  45  66  99  10 NaN
191: 0   4     76   4  11 252 134 128  50 194  12 119 134 106  48 206  12 230 134  81  46 216  13 196 134  68  44 230  14  57 134  46  42 NaN
192: 0   5    197   5 242  14 158 134  23  40 255  15 191 134  21  39  10  16 173 134  16  37  23  17 119 134   2  35  32  19  22 134  22 NaN
193: 0  2006-11-29 11:35:10 -48.8010 129.8500 1
194: 0  16 B  233  16  34  44 134  61   0 199  34  39 134  46 128  92 163  61 151  44  34   1 223 191 253 237 127 255 127 247 191 255 255 NaN

(Type ? for help) : r1:181

(Type ? for help) : t

Profile downloaded too soon after first fix - should not process
FBM:  1=197  2=161  3=0  4=0  5=0  6=15  7=1  8=0
Unresolved excessive speeds between fixes
JAE est: min=2454068.93  median=2454068.93  max=2454068.93  j1=2454068.96
JAE median: 29-Nov-2006 10:21:06       Jday(1): 29-Nov-2006 11:05:50 

 Estimate   nmsg    B1 tim   (maxblk 16  reprate 44)
29 10:21<*     5    29 11: 8
29 10:21       7    29 11:31
29 10:21       8    29 11:43
29 10:21      11    29 12:18
29 10:21      16    29 13:17
29 10:21      20    29 14: 4
29 10:21      24    29 14:50
29 10:21      25    29 15: 2
29 10:21      28    29 15:37
29 10:21      29    29 15:49
29 10:21      33    29 16:36
29 10:21      37    29 17:23
29 10:21      40    29 17:58
29 10:21      41    29 18:10
29 10:21<*    46    29 19: 9
Float 5901175   Profile 1   Download 28-Nov-2006 20:20:00
N_Fixes 14     N_Gd_Pos  14
P raw  N=70  Min=  4.400 Max=1900.100  Mean=571.473
T raw  N=70  Min=  2.470 Max=  9.228  Mean=  7.085
S raw  N=70  Min= 34.300 Max= 34.665  Mean= 34.489

(Type ? for help) : q

top


Reprocessing (a block of floats/profiles)

... bare bones as yet ...

To work from ftp downloads, copy and modify drive_argo_manual.

To use workfiles, use run_from_workfile.

You choose whether to use RT, reprocessing, or other processing records file. The first means that this work will appear on the RT processing daily webpage, which is usually not ideal, unless only reprocessing the latest profile for each float.

Note that processing reports generated by reprocessing will be full of warnings to ignore, mainly about overwriting existing files.


netCDF files

netCDF files for any float or profile are easily generated (example below). The Profile files are deleted after sending to GDACs, but the other 3 types are maintained in netcdf/.

To manually send files to the GDACs, generate them and put in export/. They will be sent once (during the next auto-run) then deleted. No confirmation of this is provided.

top


other stuff

getargo, getdbase

You may wish to generate netCDF files or try running system components on one profile or a whole float. For example, for 5901171, to recreate the web page (profile #21) and the metadata file:

    fp = getargo(5901171,21);
    web_profile_plot(fp);

    [fpp,db] = getargo(5901171);
    metadata_nc(db,fpp);

OR you can get the database record with

    db = getdbase(5901171);

[note - here using the convention of fpp for a 'float' array, and fp for a single profile]

Here we run floats through QC tests, in partic to look for activity of test #14 (density inversion). Note that we don't (can't!) put this data back into the matfiles, so we can muck around as much as we like)

    for wmo = [5900344 5900859 5901170]
        [fpp,db] = getargo(wmo);
	fpo = qc_tests(db,fpp);
	for ii=1:length(fpp)
           if fpo(ii).testsfailed(14)
	         .. could test s_qc==4, but that might have been set 
                       by other tests .. 
               density = sw_dens(fpp(ii).s_raw,fpp(ii).t_raw,fpp(ii).p_calibrate);
	       disp([num2str([wmo ii max(diff(density))])])
           end
        end
     end
 

Note: getargo expects pnum, not np; see "Profile numbers" in programmer notes.

Viewing data

To see listings of plots of profile, use view_profs. It works best in conjunction with viewing the webpages for a float, as none of the header information is displayed.

Adding/removing profiles from a matfile

This would be a rare occurence (I hope) and should be approached with caution, but matfile_edit can be used if needed to insert or remove profiles from a matfile. See also "matfiles" in File Types page.

top

Last updated 17 Nov 2006