operator_help.h 273 KB
Newer Older
Uwe Schulzweida's avatar
Uwe Schulzweida committed
1
/* Automatically created with makedoc, don't edit! */
Uwe Schulzweida's avatar
Uwe Schulzweida committed
2

3
static const char *InfoHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
4
    "NAME",
5
    "    info, infon, map - Information and simple statistics",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
6
7
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
8
    "    <operator>  ifiles",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
9
10
    "",
    "DESCRIPTION",
11
    "    This module writes information about the structure and contents ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
12
    "    of all input files to standard output.  All input files need to have ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
13
    "    the same structure with the same variables on different timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
14
    "    The information displayed depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
15
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
16
    "OPERATORS",
17
    "    info   Dataset information listed by parameter identifier",
18
    "           Prints information and simple statistics for each field of all",
19
20
    "           input datasets. For each field the operator prints one line with ",
    "           the following elements:",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
21
    "           - Date and Time",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
22
    "           - Level, Gridsize and number of Missing values",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
23
24
    "           - Minimum, Mean and Maximum \\",
    "           The mean value is computed without the use of area weights!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
25
    "           - Parameter identifier",
26
27
28
    "    infon  Dataset information listed by parameter name",
    "           The same as operator info but using the name instead of the",
    "           identifier to label the parameter.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
29
    "    map    Dataset information and simple map",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
30
    "           Prints information, simple statistics and a map for each field of all input",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
31
    "           datasets. The map will be printed only for fields on a regular lon/lat grid.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
32
33
34
    NULL
};

35
static const char *SinfoHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
36
    "NAME",
37
    "    sinfo, sinfon - Short information",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
38
39
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
40
    "    <operator>  ifiles",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
41
42
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
43
    "    This module writes information about the structure of ifiles to standard output.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
44
    "    ifiles is an arbitrary number of input files. All input files need to have ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
45
    "    the same structure with the same variables on different timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
46
    "    The information displayed depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
47
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
48
    "OPERATORS",
49
    "    sinfo   Short information listed by parameter identifier",
50
    "            Prints short information of a dataset. The information is divided into",
51
52
    "            4 sections. Section 1 prints one line per parameter with the following ",
    "            information:",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
53
    "            - institute and source",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
54
    "            - timestep type",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
55
    "            - number of levels and z-axis number",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
56
    "            - horizontal grid size and number",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
57
58
    "            - data type",
    "            - parameter identifier",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
59
60
    "            Section 2 and 3 gives a short overview of all grid and vertical coordinates.",
    "            And the last section contains short information of the time coordinate.",
61
    "    sinfon  Short information listed by parameter name",
62
63
    "            The same as operator sinfo but using the name instead of the ",
    "            identifier to label the parameter.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
64
65
66
    NULL
};

67
static const char *DiffHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
68
    "NAME",
69
    "    diff, diffn - Compare two datasets field by field",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
70
71
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
72
    "    <operator>  ifile1 ifile2",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
73
74
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
75
76
    "    Compares the contents of two datasets field by field. The input datasets need to have the",
    "    same structure and its fields need to have the same header information and dimensions.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
77
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
78
    "OPERATORS",
79
    "    diff   Compare two datasets listed by parameter id",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
80
81
    "           Provides statistics on differences between two datasets.",
    "           For each pair of fields the operator prints one line with the following information:",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
82
    "           - Date and Time",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
83
    "           - Level, Gridsize and number of Missing values",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
84
    "           - Number of different values",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
85
86
87
88
    "           - Occurrence of coefficient pairs with different signs (S)",
    "           - Occurrence of zero values (Z)",
    "           - Maxima of absolute difference of coefficient pairs",
    "           - Maxima of relative difference of non-zero coefficient pairs with equal signs",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
89
    "           - Parameter identifier",
90
91
92
    "    diffn  Compare two datasets listed by parameter name",
    "           The same as operator diff. Using the name instead of the",
    "           identifier to label the parameter.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
93
94
95
    NULL
};

96
static const char *NinfoHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
97
    "NAME",
98
    "    npar, nlevel, nyear, nmon, ndate, ntime, ngridpoints, ngrids - ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
99
    "    Print the number of parameters, levels or times",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
100
101
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
102
    "    <operator>  ifile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
103
104
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
105
106
    "    This module prints the number of variables, levels or times of the ",
    "    input dataset.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
107
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
108
    "OPERATORS",
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
    "    npar         Number of parameters",
    "                 Prints the number of parameters (variables).",
    "    nlevel       Number of levels",
    "                 Prints the number of levels for each variable.",
    "    nyear        Number of years",
    "                 Prints the number of different years.",
    "    nmon         Number of months",
    "                 Prints the number of different combinations of years and months.",
    "    ndate        Number of dates",
    "                 Prints the number of different dates.",
    "    ntime        Number of timesteps",
    "                 Prints the number of timesteps.",
    "    ngridpoints  Number of gridpoints",
    "                 Prints the number of gridpoints for each variable.",
    "    ngrids       Number of horizontal grids",
    "                 Prints the number of horizontal grids.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
125
126
127
    NULL
};

128
static const char *ShowinfoHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
129
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
130
    "    showformat, showcode, showname, showstdname, showlevel, showltype, showyear, ",
131
    "    showmon, showdate, showtime, showtimestamp - Show variables, levels or times",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
132
133
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
134
    "    <operator>  ifile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
135
136
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
137
    "    This module prints the format, variables, levels or times of the input dataset.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
138
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
139
    "OPERATORS",
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
    "    showformat     Show file format",
    "                   Prints the file format of the input dataset.",
    "    showcode       Show code numbers",
    "                   Prints the code number of all variables.",
    "    showname       Show variable names",
    "                   Prints the name of all variables.",
    "    showstdname    Show standard names",
    "                   Prints the standard name of all variables.",
    "    showlevel      Show levels",
    "                   Prints all levels for each variable.",
    "    showltype      Show GRIB level types",
    "                   Prints the GRIB level type for all z-axes.",
    "    showyear       Show years",
    "                   Prints all years.",
    "    showmon        Show months",
    "                   Prints all months.",
    "    showdate       Show date information",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
157
    "                   Prints date information of all timesteps (format YYYY-MM-DD).",
158
    "    showtime       Show time information",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
159
    "                   Prints time information of all timesteps (format hh:mm:ss).",
160
    "    showtimestamp  Show timestamp",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
161
    "                   Prints timestamp of all timesteps (format YYYY-MM-DDThh:mm:ss).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
162
163
164
    NULL
};

165
static const char *FiledesHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
166
    "NAME",
167
    "    partab, codetab, griddes, zaxisdes, vct - Dataset description",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
168
169
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
170
    "    <operator>  ifile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
171
172
    "",
    "DESCRIPTION",
173
174
    "    This module provides operators to print meta information about a dataset.",
    "    The printed meta-data depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
175
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
176
    "OPERATORS",
177
178
    "    partab    Parameter table",
    "              Prints all available meta information of the variables.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
179
180
    "    codetab   Parameter code table",
    "              Prints a code table with a description of all variables.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
181
182
183
184
    "              For each variable the operator prints one line listing the",
    "              code, name, description and units.",
    "    griddes   Grid description",
    "              Prints the description of all grids.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
185
186
    "    zaxisdes  Z-axis description",
    "              Prints the description of all z-axes.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
187
188
    "    vct       Vertical coordinate table",
    "              Prints the vertical coordinate table.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
189
190
191
    NULL
};

192
static const char *CopyHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
193
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
194
    "    copy, cat - Copy datasets",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
195
196
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
197
    "    <operator>  ifiles ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
198
199
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
200
    "    This module contains operators to copy or concatenate datasets.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
201
    "    ifiles is an arbitrary number of input files. All input files need to have ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
202
    "    the same structure with the same variables on different timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
203
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
204
205
    "OPERATORS",
    "    copy  Copy datasets",
206
    "          Copies all input datasets to ofile. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
207
    "    cat   Concatenate datasets",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
208
    "          Concatenates all input datasets and appends the result to the end ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
209
    "          of ofile. If ofile does not exist it will be created.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
210
211
212
    NULL
};

213
static const char *ReplaceHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
214
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
215
    "    replace - Replace variables",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
216
217
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
218
    "    replace  ifile1 ifile2 ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
219
220
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
221
    "    The replace operator replaces variables in ifile1 by variables from ifile2 and write",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
222
    "    the result to ofile. Both input datasets need to have the same number of timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
223
224
225
    NULL
};

226
static const char *DuplicateHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
227
228
229
230
231
232
233
234
    "NAME",
    "    duplicate - Duplicates a dataset",
    "",
    "SYNOPSIS",
    "    duplicate[,ndup]  ifile ofile",
    "",
    "DESCRIPTION",
    "    This operator duplicates the contents of ifile and writes the result to ofile.",
235
    "    The optional parameter sets the number of duplicates, the default is 2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
236
237
    "",
    "PARAMETER",
238
    "    ndup  INTEGER  Number of duplicates, default is 2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
239
240
241
    NULL
};

242
static const char *MergegridHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
243
244
245
246
247
248
249
250
251
252
    "NAME",
    "    mergegrid - Merge grid",
    "",
    "SYNOPSIS",
    "    mergegrid  ifile1 ifile2 ofile",
    "",
    "DESCRIPTION",
    "    Merges grid points of all variables from ifile2 to ifile1 and write the result to ofile.",
    "    Only the non missing values of ifile2 will be used. The horizontal grid of ifile2 should ",
    "    be smaller or equal to the grid of ifile1 and the resolution must be the same.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
253
    "    Only rectilinear grids are supported. Both input files need to have the same variables ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
254
255
256
257
    "    and the same number of timesteps.",
    NULL
};

258
static const char *MergeHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
259
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
260
    "    merge, mergetime - Merge datasets",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
261
262
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
263
    "    <operator>  ifiles ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
264
265
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
266
    "    This module reads datasets from several input files, merges them and writes the resulting dataset to ofile.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
267
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
268
269
    "OPERATORS",
    "    merge      Merge datasets with different fields",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
270
271
272
273
    "               Merges time series of different fields from several input datasets. The number ",
    "               of fields per timestep written to ofile is the sum of the field numbers ",
    "               per timestep in all input datasets. The time series on all input datasets are ",
    "               required to have different fields and the same number of timesteps.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
274
275
276
    "               The fields in each different input file either have to be different variables",
    "               or different levels of the same variable. A mixture of different variables on",
    "               different levels in different input files is not allowed.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
277
    "    mergetime  Merge datasets sorted by date and time",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
278
    "               Merges all timesteps of all input files sorted by date and time.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
279
280
281
    "               All input files need to have the same structure with the same variables on ",
    "               different timesteps. After this operation every input timestep is in ofile ",
    "               and all timesteps are sorted by date and time.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
282
283
284
    "",
    "ENVIRONMENT",
    "    SKIP_SAME_TIME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
285
    "        If set to 1, skips all consecutive timesteps with a double entry of the same timestamp.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
286
287
288
289
    "",
    "NOTE",
    "    The operators in this module need to open all input files simultaneously.",
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
290
291
292
    NULL
};

293
static const char *SplitHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
294
    "NAME",
295
296
    "    splitcode, splitparam, splitname, splitlevel, splitgrid, splitzaxis, ",
    "    splittabnum - Split a dataset",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
297
298
    "",
    "SYNOPSIS",
299
    "    <operator>[,params]  ifile obase",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
300
301
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
302
303
304
    "    This module splits ifile into pieces. The output files will be named <obase><xxx><suffix>",
    "    where suffix is the filename extension derived from the file format. xxx and the contents ",
    "    of the output files depends on the chosen operator. ",
305
    "    params is a comma separated list of processing parameters.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
306
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
307
    "OPERATORS",
308
309
    "    splitcode    Split code numbers",
    "                 Splits a dataset into pieces, one for each different code number.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
310
    "                 xxx will have three digits with the code number.",
311
312
313
    "    splitparam   Split parameter identifiers",
    "                 Splits a dataset into pieces, one for each different parameter identifier.",
    "                 xxx will be a string with the parameter identifier.",
314
315
    "    splitname    Split variable names",
    "                 Splits a dataset into pieces, one for each variable name.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
316
    "                 xxx will be a string with the variable name.",
317
318
    "    splitlevel   Split levels",
    "                 Splits a dataset into pieces, one for each different level.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
319
    "                 xxx will have six digits with the level.",
320
321
    "    splitgrid    Split grids",
    "                 Splits a dataset into pieces, one for each different grid.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
322
    "                 xxx will have two digits with the grid number.",
323
324
    "    splitzaxis   Split z-axes",
    "                 Splits a dataset into pieces, one for each different z-axis.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
325
    "                 xxx will have two digits with the z-axis number.",
326
327
    "    splittabnum  Split parameter table numbers",
    "                 Splits a dataset into pieces, one for each GRIB1 parameter table number.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
328
329
    "                 xxx will have three digits with the GRIB1 parameter table number.",
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
330
    "PARAMETER",
331
332
    "    swap            STRING  Swap the position of obase and xxx in the output filename",
    "    uuid=<attname>  STRING  Add a UUID as global attribute <attname> to each output file",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
333
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
334
335
    "ENVIRONMENT",
    "    CDO_FILE_SUFFIX",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
336
337
    "        Set the default file suffix. This suffix will be added to the output file ",
    "        names instead of the filename extension derived from the file format. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
338
    "        Set this variable to NULL to disable the adding of a file suffix.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
339
340
341
342
    "",
    "NOTE",
    "    The operators in this module need to open all output files simultaneously.",
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
343
344
345
    NULL
};

346
static const char *SplittimeHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
347
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
348
    "    splithour, splitday, splitseas, splityear, splityearmon, splitmon - ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
349
    "    Split timesteps of a dataset",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
350
351
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
352
    "    <operator>  ifile obase",
353
    "    splitmon[,format]  ifile obase",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
354
355
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
356
    "    This module splits ifile into  timesteps pieces. The output files will be named",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
357
358
    "    <obase><xxx><suffix> where suffix is the filename extension derived from the file format. ",
    "    xxx and the contents of the output files depends on the chosen operator. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
359
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
360
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
    "    splithour     Split hours",
    "                  Splits a file into pieces, one for each different hour.",
    "                  xxx will have two digits with the hour.",
    "    splitday      Split days",
    "                  Splits a file into pieces, one for each different day.",
    "                  xxx will have two digits with the day.",
    "    splitseas     Split seasons",
    "                  Splits a file into pieces, one for each different season.",
    "                  xxx will have three characters with the season.",
    "    splityear     Split years",
    "                  Splits a file into pieces, one for each different year.",
    "                  xxx will have four digits with the year (YYYY).",
    "    splityearmon  Split in years and months",
    "                  Splits a file into pieces, one for each different year and month.",
    "                  xxx will have six digits with the year and month (YYYYMM).",
    "    splitmon      Split months",
    "                  Splits a file into pieces, one for each different month.",
    "                  xxx will have two digits with the month.",
379
380
381
    "",
    "PARAMETER",
    "    format  STRING  C-style format for strftime() (e.g. %B for the full month name)",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
382
383
384
    "",
    "ENVIRONMENT",
    "    CDO_FILE_SUFFIX",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
385
386
    "        Set the default file suffix. This suffix will be added to the output file ",
    "        names instead of the filename extension derived from the file format. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
387
    "        Set this variable to NULL to disable the adding of a file suffix.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
388
389
390
391
    "",
    "NOTE",
    "    The operators in this module need to open all output files simultaneously.",
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
392
393
394
    NULL
};

395
static const char *SplitselHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
396
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
397
    "    splitsel - Split selected timesteps",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
398
399
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
400
    "    splitsel,nsets[,noffset[,nskip]]  ifile obase",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
401
402
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
403
    "    This operator splits ifile into pieces, one for each adjacent",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
404
    "    sequence t_1, ...., t_n of timesteps of the same selected time range.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
405
406
    "    The output files will be named <obase><nnnnnn><suffix> where nnnnnn is the ",
    "    sequence number and suffix is the filename extension derived from the file format.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
407
408
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
409
410
411
    "    nsets    INTEGER  Number of input timesteps for each output file",
    "    noffset  INTEGER  Number of input timesteps skipped before the first timestep range (optional)",
    "    nskip    INTEGER  Number of input timesteps skipped between timestep ranges (optional)",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
412
413
414
    "",
    "ENVIRONMENT",
    "    CDO_FILE_SUFFIX",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
415
416
    "        Set the default file suffix. This suffix will be added to the output file ",
    "        names instead of the filename extension derived from the file format. ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
417
    "        Set this variable to NULL to disable the adding of a file suffix.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
418
419
420
    NULL
};

421
static const char *DistgridHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
422
423
424
425
426
427
428
429
    "NAME",
    "    distgrid - Distribute horizontal grid",
    "",
    "SYNOPSIS",
    "    distgrid,nx[,ny]  ifile obase",
    "",
    "DESCRIPTION",
    "    This operator distributes a dataset into smaller pieces. Each output file contains a different region of the horizontal ",
430
431
432
433
434
    "    source grid. A target grid region contains a structured longitude/latitude box of the source grid. Only rectilinear and",
    "    curvilinear source grids are supported by this operator.",
    "    The number of different regions can be specified with the parameter nx and ny. The output files will be named ",
    "    <obase><xxx><suffix> where suffix is the filename extension derived from the file format. xxx will have five digits with ",
    "    the number of the target region.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
435
436
437
438
439
440
441
    "",
    "PARAMETER",
    "    nx  INTEGER  Number of regions in x direction",
    "    ny  INTEGER  Number of regions in y direction [default: 1]",
    "",
    "NOTE",
    "    This operator needs to open all output files simultaneously.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
442
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
443
444
445
    NULL
};

446
static const char *CollgridHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
447
448
449
450
    "NAME",
    "    collgrid - Collect horizontal grid",
    "",
    "SYNOPSIS",
451
    "    collgrid[,nx[,names]]  ifiles ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
452
453
454
455
    "",
    "DESCRIPTION",
    "    This operator collects the data of the input files to one output file. ",
    "    All input files need to have the same variables and the same number of timesteps on a different",
456
    "    horizonal grid region. A source region must be a structured longitude/latitude grid box.",
457
    "    The parameter nx needs to be specified only for non regular lon/lat grids.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
458
459
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
460
    "    nx     INTEGER  Number of regions in x direction [default: number of input files]",
461
    "    names  STRING   Comma separated list of variable names [default: all variables]",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
462
463
464
    "",
    "NOTE",
    "    This operator needs to open all input files simultaneously.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
465
    "    The maximum number of open files depends on the operating system!",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
466
467
468
    NULL
};

469
static const char *SelectHelp[] = {
470
471
472
473
474
475
476
477
    "NAME",
    "    select, delete - Select fields",
    "",
    "SYNOPSIS",
    "    <operator>,params  ifiles ofile",
    "",
    "DESCRIPTION",
    "    This module selects some fields from ifiles and writes them to ofile.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
478
    "    ifiles is an arbitrary number of input files. All input files need to have ",
479
480
    "    the same structure with the same variables on different timesteps.",
    "    The fields selected depends on the chosen parameters. Parameter is a comma",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
481
    "    separated list of \"key=value\" pairs. Wildcards can be used for string parameter.",
482
483
484
485
486
487
488
489
    "",
    "OPERATORS",
    "    select  Select fields",
    "            Selects all fields with parameters in a user given list.",
    "    delete  Delete fields",
    "            Deletes all fields with parameters in a user given list.",
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
490
491
492
493
    "    name              STRING  Comma separated list of variable names.",
    "    param             STRING  Comma separated list of parameter identifiers.",
    "    code              INTEGER Comma separated list of code numbers.",
    "    level             FLOAT   Comma separated list of vertical levels.",
494
    "    levidx            INTEGER Comma separated list of index of levels.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
495
    "    zaxisname         STRING  Comma separated list of zaxis names.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
496
    "    zaxisnum          INTEGER Comma separated list of zaxis numbers.",
497
    "    ltype             INTEGER Comma separated list of GRIB level types.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
498
    "    gridname          STRING  Comma separated list of grid names.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
499
    "    gridnum           INTEGER Comma separated list of grid numbers.",
500
    "    steptype          STRING  Comma separated list of timestep types.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
501
    "    date              STRING  Comma separated list of dates (format YYYY-MM-DDThh:mm:ss).",
502
503
    "    startdate         STRING  Start date (format YYYY-MM-DDThh:mm:ss).",
    "    enddate           STRING  End date (format YYYY-MM-DDThh:mm:ss).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
504
505
506
507
    "    minute            INTEGER Comma separated list of minutes.",
    "    hour              INTEGER Comma separated list of hours.",
    "    day               INTEGER Comma separated list of days.",
    "    month             INTEGER Comma separated list of months.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
508
    "    season            STRING  Comma separated list of seasons (substring of DJFMAMJJASOND or ANN).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
509
    "    year              INTEGER Comma separated list of years.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
510
    "    timestep          INTEGER Comma separated list of timesteps. Negative values selects timesteps from the end (NetCDF only).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
511
    "    timestep_of_year  INTEGER Comma separated list of timesteps of year.",
512
513
514
    NULL
};

515
static const char *SelvarHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
516
    "NAME",
517
    "    selparam, delparam, selcode, delcode, selname, delname, selstdname, sellevel, ",
518
    "    sellevidx, selgrid, selzaxis, selzaxisname, selltype, seltabnum - Select fields",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
519
520
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
521
    "    <operator>,params  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
522
523
    "    selcode,codes  ifile ofile",
    "    delcode,codes  ifile ofile",
524
525
    "    selname,names  ifile ofile",
    "    delname,names  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
526
    "    selstdname,stdnames  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
527
    "    sellevel,levels  ifile ofile",
528
    "    sellevidx,levidx  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
529
    "    selgrid,grids  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
530
    "    selzaxis,zaxes  ifile ofile",
531
    "    selzaxisname,zaxisnames  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
532
    "    selltype,ltypes  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
533
    "    seltabnum,tabnums  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
534
535
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
536
    "    This module selects some fields from ifile and writes them to ofile.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
537
    "    The fields selected depends on the chosen operator and the parameters.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
538
539
    "",
    "OPERATORS",
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
    "    selparam      Select parameters by identifier",
    "                  Selects all fields with parameter identifiers in a user given list.",
    "    delparam      Delete parameters by identifier",
    "                  Deletes all fields with parameter identifiers in a user given list.",
    "    selcode       Select parameters by code number",
    "                  Selects all fields with code numbers in a user given list.",
    "    delcode       Delete parameters by code number",
    "                  Deletes all fields with code numbers in a user given list.",
    "    selname       Select parameters by name",
    "                  Selects all fields with parameter names in a user given list.",
    "    delname       Delete parameters by name",
    "                  Deletes all fields with parameter names in a user given list.",
    "    selstdname    Select parameters by standard name",
    "                  Selects all fields with standard names in a user given list.",
    "    sellevel      Select levels",
    "                  Selects all fields with levels in a user given list.",
    "    sellevidx     Select levels by index",
    "                  Selects all fields with index of levels in a user given list.",
    "    selgrid       Select grids",
    "                  Selects all fields with grids in a user given list.",
    "    selzaxis      Select z-axes",
    "                  Selects all fields with z-axes in a user given list.",
    "    selzaxisname  Select z-axes by name",
    "                  Selects all fields with z-axis names in a user given list.",
    "    selltype      Select GRIB level types",
    "                  Selects all fields with GRIB level type in a user given list.",
    "    seltabnum     Select parameter table numbers",
    "                  Selects all fields with parameter table numbers in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
568
569
    "",
    "PARAMETER",
570
571
572
573
574
575
576
577
578
579
580
    "    params      INTEGER  Comma separated list of parameter identifiers",
    "    codes       INTEGER  Comma separated list of code numbers",
    "    names       STRING   Comma separated list of variable names",
    "    stdnames    STRING   Comma separated list of standard names",
    "    levels      FLOAT    Comma separated list of vertical levels",
    "    levidx      INTEGER  Comma separated list of index of levels",
    "    ltypes      INTEGER  Comma separated list of GRIB level types",
    "    grids       STRING   Comma separated list of grid names or numbers",
    "    zaxes       STRING   Comma separated list of z-axis types or numbers",
    "    zaxisnames  STRING   Comma separated list of z-axis names",
    "    tabnums     INTEGER  Comma separated list of parameter table numbers",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
581
582
583
    NULL
};

584
static const char *SeltimeHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
585
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
586
    "    seltimestep, seltime, selhour, selday, selmonth, selyear, selseason, seldate, ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
587
    "    selsmon - Select timesteps",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
588
589
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
590
591
592
593
    "    seltimestep,timesteps  ifile ofile",
    "    seltime,times  ifile ofile",
    "    selhour,hours  ifile ofile",
    "    selday,days  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
594
    "    selmonth,months  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
595
    "    selyear,years  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
596
    "    selseason,seasons  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
597
    "    seldate,date1[,date2]  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
598
    "    selsmon,month[,nts1[,nts2]]  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
599
600
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
601
602
    "    This module selects user specified timesteps from ifile and writes them to ofile.",
    "    The timesteps selected depends on the chosen operator and the parameters.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
603
604
    "",
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
605
606
    "    seltimestep  Select timesteps",
    "                 Selects all timesteps with a timestep in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
607
    "    seltime      Select times",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
608
    "                 Selects all timesteps with a time in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
609
    "    selhour      Select hours",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
610
    "                 Selects all timesteps with a hour in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
611
    "    selday       Select days",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
612
    "                 Selects all timesteps with a day in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
613
    "    selmonth     Select months",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
614
    "                 Selects all timesteps with a month in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
615
    "    selyear      Select years",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
616
    "                 Selects all timesteps with a year in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
617
    "    selseason    Select seasons",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
618
    "                 Selects all timesteps with a month of a season in a user given list.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
619
    "    seldate      Select dates",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
620
    "                 Selects all timesteps with a date in a user given range.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
621
    "    selsmon      Select single month",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
622
    "                 Selects a month and optional an arbitrary number of timesteps before and after this month.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
623
624
    "",
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
625
    "    timesteps  INTEGER  Comma separated list of timesteps. Negative values selects timesteps from the end (NetCDF only).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
626
627
628
629
630
    "    times      STRING   Comma separated list of times (format hh:mm:ss).",
    "    hours      INTEGER  Comma separated list of hours.",
    "    days       INTEGER  Comma separated list of days.",
    "    months     INTEGER  Comma separated list of months.",
    "    years      INTEGER  Comma separated list of years.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
631
    "    seasons    STRING   Comma separated list of seasons (substring of DJFMAMJJASOND or ANN).",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
632
633
634
635
    "    date1      STRING   Start date (format YYYY-MM-DDThh:mm:ss).",
    "    date2      STRING   End date (format YYYY-MM-DDThh:mm:ss) [default: date1].",
    "    nts1       INTEGER  Number of timesteps before the selected month [default: 0].",
    "    nts2       INTEGER  Number of timesteps after the selected month [default: nts1].",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
636
637
638
    NULL
};

639
static const char *SelboxHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
640
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
641
    "    sellonlatbox, selindexbox - Select a box of a field",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
642
643
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
644
645
    "    sellonlatbox,lon1,lon2,lat1,lat2  ifile ofile",
    "    selindexbox,idx1,idx2,idy1,idy2  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
646
647
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
648
    "    Selects a box of the rectangularly understood field. All input fields need to have the same horizontal grid.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
649
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
650
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
651
    "    sellonlatbox  Select a longitude/latitude box",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
652
653
    "                  Selects a regular longitude/latitude box. The user has to give the longitudes and latitudes of the ",
    "                  edges of the box. Considered are only those grid cells with the grid center inside the lon/lat box.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
654
    "                  For rotated lon/lat grids the parameter needs to be rotated coordinates.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
655
    "    selindexbox   Select an index box",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
656
657
    "                  Selects an index box. The user has to give the indexes of the edges of the box. The index of the ",
    "                  left edge may be greater then that of the right edge.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
658
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
659
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
660
661
662
663
    "    lon1  FLOAT    Western longitude",
    "    lon2  FLOAT    Eastern longitude",
    "    lat1  FLOAT    Southern or northern latitude",
    "    lat2  FLOAT    Northern or southern latitude",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
664
665
666
667
668
669
670
    "    idx1  INTEGER  Index of first longitude",
    "    idx2  INTEGER  Index of last longitude",
    "    idy1  INTEGER  Index of first latitude",
    "    idy2  INTEGER  Index of last latitude",
    NULL
};

671
static const char *CondHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
672
673
674
675
676
677
678
    "NAME",
    "    ifthen, ifnotthen - Conditional select one field",
    "",
    "SYNOPSIS",
    "    <operator>  ifile1 ifile2 ofile",
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
679
    "    This module selects field elements from ifile2 with respect to ifile1 and writes them ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
680
    "    to ofile. The fields in ifile1 are handled as a mask. A value ",
681
    "    not equal to zero is treated as \"true\", zero is treated as \"false\".",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
682
    "    The number of fields in ifile1 has either to be the same as in ifile2 or the",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
683
    "    same as in one timestep of ifile2 or only one.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
684
    "    The fields in ofile inherit the meta data from ifile2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
685
686
687
    "",
    "OPERATORS",
    "    ifthen     If then",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
688
    "                        / i_2(t,x) if i_1([t,]x) NE 0  AND  i_1([t,]x) NE miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
689
    "               o(t,x) =",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
690
    "                        \\ miss     if i_1([t,]x) EQ 0  OR   i_1([t,]x) EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
691
    "    ifnotthen  If not then",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
692
    "                        / i_2(t,x) if i_1([t,]x) EQ 0  AND  i_1([t,]x) NE miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
693
    "               o(t,x) = ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
694
    "                        \\ miss     if i_1([t,]x) NE 0  OR   i_1([t,]x) EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
695
696
697
    NULL
};

698
static const char *Cond2Help[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
699
700
701
702
703
704
705
    "NAME",
    "    ifthenelse - Conditional select  two fields",
    "",
    "SYNOPSIS",
    "    ifthenelse  ifile1 ifile2 ifile3 ofile",
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
706
707
    "    This operator selects field elements from ifile2 or ifile3 with respect to",
    "    ifile1 and writes them to ofile. The fields in ifile1 are handled as a mask.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
708
    "    A value not equal to zero is treated as \"true\", zero is treated as \"false\".",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
709
    "    The number of fields in ifile1 has either to be the same as in ifile2 or the ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
710
    "    same as in one timestep of ifile2 or only one.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
711
712
713
714
715
716
    "    ifile2 and ifile3 need to have the same number of fields.",
    "    The fields in ofile inherit the meta data from ifile2.",
    "    ",
    "              / i_2(t,x) if i_1([t,]x) NE 0  AND  i_1([t,]x) NE miss",
    "    o(t,x) = <  i_3(t,x) if i_1([t,]x) EQ 0  AND  i_1([t,]x) NE miss",
    "              \\ miss     if i_1([t,]x) EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
717
718
719
    NULL
};

720
static const char *CondcHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
721
722
723
724
725
726
727
728
    "NAME",
    "    ifthenc, ifnotthenc - Conditional select a constant",
    "",
    "SYNOPSIS",
    "    <operator>,c  ifile ofile",
    "",
    "DESCRIPTION",
    "    This module creates fields with a constant value or missing value.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
729
    "    The fields in ifile are handled as a mask. A value not equal ",
730
    "    to zero is treated as \"true\", zero is treated as \"false\".",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
    "",
    "OPERATORS",
    "    ifthenc     If then constant",
    "                         / c      if i(t,x) NE 0  AND  i(t,x) NE miss",
    "                o(t,x) =",
    "                         \\ miss   if i(t,x) EQ 0  OR   i(t,x) EQ miss",
    "    ifnotthenc  If not then constant",
    "                         / c      if i(t,x) EQ 0  AND  i(t,x) NE miss",
    "                o(t,x) =",
    "                         \\ miss   if i(t,x) NE 0  OR   i(t,x) EQ miss",
    "",
    "PARAMETER",
    "    c  FLOAT  Constant",
    NULL
};

747
748
static const char *MapReduceHelp[] = {
    "NAME",
749
    "    reducegrid - Reduce fields to user-defined mask",
750
751
    "",
    "SYNOPSIS",
752
    "    reducegrid,mask[,limitCoordsOutput]  ifile ofile",
753
754
    "",
    "DESCRIPTION",
755
    "    This module holds an operator for data reduction based on a user defined mask.",
756
    "    The output grid is unstructured and includes coordinate bounds. Bounds can be",
Ralf Mueller's avatar
Ralf Mueller committed
757
758
    "    avoided by using the additional 'nobounds' keyword. With 'nocoords' given,",
    "    coordinates a completely suppressed.",
759
760
    "",
    "PARAMETER",
761
    "    mask               STRING file which holds the mask field",
762
    "    limitCoordsOutput  STRING optional parameter to limit coordinates output: 'nobounds' disables coordinate bounds, 'nocoords' avoids all coordinate information",
763
764
765
    NULL
};

766
static const char *CompHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
767
768
769
770
771
772
773
774
    "NAME",
    "    eq, ne, le, lt, ge, gt - Comparison of two fields",
    "",
    "SYNOPSIS",
    "    <operator>  ifile1 ifile2 ofile",
    "",
    "DESCRIPTION",
    "    This module compares two datasets field by field. The resulting",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
775
776
    "    field is a mask containing 1 if the comparison is true and 0 if not. ",
    "    The number of fields in ifile1 should be the same as in ifile2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
777
    "    One of the input files can contain only one timestep or one field.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
778
    "    The fields in ofile inherit the meta data from ifile1 or ifile2.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
779
    "    The type of comparison depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
    "",
    "OPERATORS",
    "    eq  Equal",
    "                  /   1   if i_1(t,x) EQ i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) NE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
    "    ne  Not equal",
    "                  /   1   if i_1(t,x) NE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) EQ i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
    "    le  Less equal",
    "                  /   1   if i_1(t,x) LE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) GT i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
    "    lt  Less than",
    "                  /   1   if i_1(t,x) LT i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) GE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
    "    ge  Greater equal",
    "                  /   1   if i_1(t,x) GE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) LT i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
    "    gt  Greater than",
    "                  /   1   if i_1(t,x) GT i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "        o(t,x) = <    0   if i_1(t,x) LE i_2(t,x)  AND  i_1(t,x),i_2(t,x) NE miss",
    "                  \\  miss if i_1(t,x) EQ miss      OR   i_2(t,x) EQ miss",
    NULL
};

809
static const char *CompcHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
810
811
812
813
814
815
816
    "NAME",
    "    eqc, nec, lec, ltc, gec, gtc - Comparison of a field with a constant",
    "",
    "SYNOPSIS",
    "    <operator>,c  ifile ofile",
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
817
818
    "    This module compares all fields of a dataset with a constant. The resulting",
    "    field is a mask containing 1 if the comparison is true and 0 if not.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
819
    "    The type of comparison depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
820
821
822
823
824
825
826
827
828
829
830
831
832
833
    "",
    "OPERATORS",
    "    eqc  Equal constant",
    "                   /   1   if i(t,x) EQ c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) NE c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
    "    nec  Not equal constant",
    "                   /   1   if i(t,x) NE c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) EQ c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
    "    lec  Less equal constant",
    "                   /   1   if i(t,x) LE c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) GT c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
834
    "    ltc  Less than constant",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
835
836
837
838
839
840
841
    "                   /   1   if i(t,x) LT c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) GE c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
    "    gec  Greater equal constant",
    "                   /   1   if i(t,x) GE c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) LT c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
842
    "    gtc  Greater than constant",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
843
844
845
846
847
848
849
850
851
    "                   /   1   if i(t,x) GT c     AND  i(t,x),c NE miss",
    "         o(t,x) = <    0   if i(t,x) LE c     AND  i(t,x),c NE miss",
    "                   \\  miss if i(t,x) EQ miss  OR   c EQ miss",
    "",
    "PARAMETER",
    "    c  FLOAT  Constant",
    NULL
};

852
static const char *SetpartabHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
853
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
854
    "    setpartabp, setpartabn - Set parameter table",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
855
856
    "",
    "SYNOPSIS",
857
    "    <operator>,table[,convert]  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
858
859
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
860
861
862
863
864
    "    This module transforms data and metadata of ifile via a parameter table and writes the result to ofile.",
    "    A parameter table is an ASCII formatted file with a set of parameter entries for each variable. Each new set have to",
    "    start with \"\\&parameter\" and to end with \"/\".",
    "    ",
    "    The following parameter table entries are supported:",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
865
    "    ",
866
    "     Entry           & Type        & Description      ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
867
868
    "     name            & WORD        & Name of the variable",
    "     out_name        & WORD        & New name of the variable",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
869
870
    "     param           & WORD        & Parameter identifier (GRIB1: code[.tabnum];  GRIB2: num[.cat[.dis]])",
    "     out_param       & WORD        & New parameter identifier",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
871
872
873
874
875
876
877
878
879
880
881
882
    "     type            & WORD        & Data type (real or double)",
    "     standard_name   & WORD        & As defined in the CF standard name table",
    "     long_name       & STRING      & Describing the variable",
    "     units           & STRING      & Specifying the units for the variable",
    "     comment         & STRING      & Information concerning the variable",
    "     cell_methods    & STRING      & Information concerning calculation of means or climatologies",
    "     cell_measures   & STRING      & Indicates the names of the variables containing cell areas and volumes",
    "     missing_value   & FLOAT       & Specifying how missing data will be identified",
    "     valid_min       & FLOAT       & Minimum valid value",
    "     valid_max       & FLOAT       & Maximum valid value",
    "     ok_min_mean_abs & FLOAT       & Minimum absolute mean",
    "     ok_max_mean_abs & FLOAT       & Maximum absolute mean",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
883
884
    "     factor          & FLOAT       & Scale factor",
    "     delete          & INTEGER     & Set to 1 to delete variable",
885
    "     convert         & INTEGER     & Set to 1 to convert the unit if necessary",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
886
    "    ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
887
    "    The search key for the variable depends on the operator. Use setpartabn to search variables by the name.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
888
    "    This is typically used for NetCDF datasets. The operator setpartabp searches variables by the parameter ID.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
889
890
    "",
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
891
892
    "    setpartabp  Set parameter table",
    "                Search variables by the parameter identifier.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
893
    "    setpartabn  Set parameter table",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
894
    "                Search variables by name.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
895
896
    "",
    "PARAMETER",
897
898
    "    table    STRING   Parameter table file or name",
    "    convert  STRING   Converts the units if necessary",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
899
900
901
    NULL
};

902
static const char *SetHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
903
    "NAME",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
904
    "    setcodetab, setcode, setparam, setname, setunit, setlevel, setltype - ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
905
    "    Set field info",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
906
907
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
908
    "    setcodetab,table  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
909
    "    setcode,code  ifile ofile",
910
    "    setparam,param  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
911
    "    setname,name  ifile ofile",
Ralf Mueller's avatar
Ralf Mueller committed
912
    "    setunit,unit  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
913
    "    setlevel,level  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
914
    "    setltype,ltype  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
915
916
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
917
    "    This module sets some field information. Depending on the chosen operator the ",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
918
    "    parameter table, code number, parameter identifier, variable name or level is set.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
919
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
920
    "OPERATORS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
921
922
923
924
925
926
927
928
929
930
931
932
933
934
    "    setcodetab  Set parameter code table",
    "                Sets the parameter code table for all variables.",
    "    setcode     Set code number",
    "                Sets the code number for all variables to the same given value.",
    "    setparam    Set parameter identifier",
    "                Sets the parameter identifier of the first variable.",
    "    setname     Set variable name",
    "                Sets the name of the first variable.",
    "    setunit     Set variable unit",
    "                Sets the unit of the first variable.",
    "    setlevel    Set level",
    "                Sets the first level of all variables.",
    "    setltype    Set GRIB level type",
    "                Sets the GRIB level type of all variables.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
935
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
936
    "PARAMETER",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
937
    "    table  STRING   Parameter table file or name",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
938
    "    code   INTEGER  Code number",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
939
    "    param  STRING   Parameter identifier (GRIB1: code[.tabnum]; GRIB2: num[.cat[.dis]])",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
940
941
    "    name   STRING   Variable name",
    "    level  FLOAT    New level",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
942
    "    ltype  INTEGER  GRIB level type",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
943
944
945
    NULL
};

946
static const char *SettimeHelp[] = {
Uwe Schulzweida's avatar
Uwe Schulzweida committed
947
    "NAME",
948
949
    "    setdate, settime, setday, setmon, setyear, settunits, settaxis, settbounds, ",
    "    setreftime, setcalendar, shifttime - Set time",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
950
951
    "",
    "SYNOPSIS",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
952
953
954
955
956
957
958
    "    setdate,date  ifile ofile",
    "    settime,time  ifile ofile",
    "    setday,day  ifile ofile",
    "    setmon,month  ifile ofile",
    "    setyear,year  ifile ofile",
    "    settunits,units  ifile ofile",
    "    settaxis,date,time[,inc]  ifile ofile",
959
    "    settbounds,frequency  ifile ofile",
960
    "    setreftime,date,time[,units]  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
961
962
    "    setcalendar,calendar  ifile ofile",
    "    shifttime,sval  ifile ofile",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
963
964
    "",
    "DESCRIPTION",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
965
    "    This module sets the time axis or part of the time axis. Which part of the",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
966
    "    time axis is overwritten depends on the chosen operator.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
967
    "",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
968
969
    "OPERATORS",
    "    setdate      Set date",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
970
    "                 Sets the date in every timestep to the same given value.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
971
    "    settime      Set time of the day",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
972
    "                 Sets the time in every timestep to the same given value.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
973
    "    setday       Set day",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
974
    "                 Sets the day in every timestep to the same given value.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
975
    "    setmon       Set month",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
976
    "                 Sets the month in every timestep to the same given value.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
977
    "    setyear      Set year",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
978
    "                 Sets the year in every timestep to the same given value.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
979
    "    settunits    Set time units",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
980
    "                 Sets the base units of a relative time axis.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
981
982
    "    settaxis     Set time axis",
    "                 Sets the time axis.",
983
984
    "    settbounds   Set time bounds",
    "                 Sets the time bounds.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
985
    "    setreftime   Set reference time",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
986
    "                 Sets the reference time of a relative time axis.",
Uwe Schulzweida's avatar
Uwe Schulzweida committed
987
    "    setcalendar  Set calendar",