Commit d53df0d8 authored by Uwe Schulzweida's avatar Uwe Schulzweida
Browse files

Docu update

parent 404bbda9
2015-02-19 Uwe Schulzweida
* using CDI library version 1.7.0
* Version 1.7.0 released
2014-11-22 Uwe Schulzweida
2014-11-27 Uwe Schulzweida
* using CDI library version 1.6.6
* Version 1.6.6 released
2014-11-21 Uwe Schulzweida
* outputtab: added key nohead and docu
2014-11-20 Uwe Schulzweida
* outputtab: added key timestep
......
CDO NEWS
--------
Version 1.7.0 (19 February 2015):
Version 1.6.6 (27 November 2014):
New operators:
* outputtab: table output
Fixed bugs:
* histcount: doesn't recognize missing values
* filesdes: doesn't work for GRIB2 files [Bug #5307]
......
......@@ -473,6 +473,7 @@ Operator catalog:
Output outputint Integer output
Output outputsrv SERVICE ASCII output
Output outputext EXTRA ASCII output
Outputtab outputtab Table output
-------------------------------------------------------------
Miscellaneous
-------------------------------------------------------------
......
No preview for this file type
......@@ -107,6 +107,7 @@ Importcmsaf Import/Export
Importamsr Import/Export
Input Import/Export
Output Import/Export
Outputtab Import/Export
Gradsdes Miscellaneous
Filter Miscellaneous
Gridcell Miscellaneous
......
......@@ -178,7 +178,7 @@
\end{picture}
\begin{flushright}
\large\bf{Climate Data Operators \\ Version 1.6.5 \\ October 2014}
\large\bf{Climate Data Operators \\ Version 1.6.6 \\ November 2014}
\end{flushright}
\vfill
......
......@@ -14,7 +14,7 @@
\put(0,0.0){\line(1,0){3.95}}
\end{picture}
\begin{flushright}
{\small{Climate Data Operators \\ Version 1.6.5 \\ October 2014}}
{\small{Climate Data Operators \\ Version 1.6.6 \\ November 2014}}
\end{flushright}
\vspace*{0mm}
......
......@@ -29,7 +29,7 @@ STRING Comma separated list of variable names [default: all variables]
@BeginNote
This operator needs to open all input files simultaneously.
The maximum number of open files depents on the operating system!
The maximum number of open files depends on the operating system!
@EndNote
......
......@@ -32,7 +32,7 @@ INTEGER Number of regions in y direction [default: 1]
@BeginNote
This operator needs to open all output files simultaneously.
The maximum number of open files depents on the operating system!
The maximum number of open files depends on the operating system!
@EndNote
......
......@@ -69,7 +69,7 @@ INTEGER Comma separated list of timesteps of year.
@BeginExample
Assume you have 3 inputfiles. Each inputfile contains the same variables for a different time period.
To select the variable T,U and V on the levels 200,500 and 850 from all 3 input files, use:
To select the variable T,U and V on the levels 200, 500 and 850 from all 3 input files, use:
@BeginVerbatim
cdo select,name=T,U,V,level=200,500,850 ifile1 ifile2 ifile3 ofile
@EndVerbatim
......
......@@ -23,7 +23,7 @@
Output outputint Integer output
Output outputsrv SERVICE output
Output outputext EXTRA output
Output outputtable Table output
Output outputtab Table output
*/
#include <ctype.h>
......@@ -57,6 +57,7 @@ void *Output(void *argument)
int len;
int index;
int ndiffgrids;
int lhead = TRUE;
const char *format = NULL;
char paramstr[32];
char vdatestr[32], vtimestr[32];
......@@ -72,9 +73,9 @@ void *Output(void *argument)
char **parnames = NULL;
int *keys = NULL, nkeys = 0, k;
int nKeys;
int Keylen[] = { 8, 11, 4, 8, 6, 6, 6, 4, 4, 6, 10, 8, 5, 2, 2 };
enum {kvalue, kparam, kcode, kname, klon, klat, klev, kxind, kyind, ktimestep, kdate, ktime, kyear, kmonth, kday };
const char *Keynames[] = {"value", "param", "code", "name", "lon", "lat", "lev", "xind", "yind", "timestep", "date", "time", "year", "month", "day"};
int Keylen[] = { 0, 8, 11, 4, 8, 6, 6, 6, 4, 4, 6, 10, 8, 5, 2, 2 };
enum {knohead, kvalue, kparam, kcode, kname, klon, klat, klev, kxind, kyind, ktimestep, kdate, ktime, kyear, kmonth, kday };
const char *Keynames[] = {"nohead", "value", "param", "code", "name", "lon", "lat", "lev", "xind", "yind", "timestep", "date", "time", "year", "month", "day"};
cdoInitialize(argument);
......@@ -126,8 +127,12 @@ void *Output(void *argument)
if ( len < 3 ) len = 3;
if ( strncmp(parnames[i], Keynames[k], len) == 0 )
{
keys[nkeys++] = k;
if ( parnames[i][len] == ':' && isdigit(parnames[i][len+1]) ) Keylen[k] = atoi(&parnames[i][len+1]);
if ( k == knohead ) lhead = FALSE;
else
{
keys[nkeys++] = k;
if ( parnames[i][len] == ':' && isdigit(parnames[i][len+1]) ) Keylen[k] = atoi(&parnames[i][len+1]);
}
break;
}
}
......@@ -138,6 +143,18 @@ void *Output(void *argument)
if ( cdoVerbose )
for ( k = 0; k < nkeys; ++k )
cdoPrint("keynr = %d keyid = %d keylen = %d keyname = %s", k, keys[k], Keylen[keys[k]], Keynames[keys[k]]);
if ( lhead )
{
fprintf(stdout, "#");
for ( k = 0; k < nkeys; ++k )
{
len = Keylen[keys[k]];
if ( k == 0 ) len -= 1;
fprintf(stdout, "%*s ", len, Keynames[keys[k]]);
}
fprintf(stdout, "\n");
}
}
for ( indf = 0; indf < cdoStreamCnt(); indf++ )
......
......@@ -362,7 +362,8 @@ void *Maggraph(void *argument);
#define NinfoOperators {"nyear", "nmon", "ndate", "ntime", "ncode", "npar", "nlevel"}
#define NmltestOperators {"nmltest"}
#define OutputOperators {"output", "outputint", "outputsrv", "outputext", "outputf", "outputts", \
"outputfld", "outputarr", "outputxyz", "outputtab"}
"outputfld", "outputarr", "outputxyz"}
#define OutputtabOperators {"outputtab"}
#define OutputgmtOperators {"gridverify", "outputcenter", "outputcenter2", "outputcentercpt", "outputbounds", \
"outputboundscpt", "outputvector", "outputtri", "outputvrml"}
#define PackOperators {"pack"}
......@@ -627,6 +628,7 @@ static modules_t Modules[] =
{ Ninfo, NinfoHelp, NinfoOperators, CDI_BOTH, 1, 0 },
{ Nmltest, NULL, NmltestOperators, CDI_REAL, 0, 0 },
{ Output, OutputHelp, OutputOperators, CDI_REAL, -1, 0 },
{ Output, OutputtabHelp, OutputtabOperators, CDI_REAL, -1, 0 },
{ Outputgmt, NULL, OutputgmtOperators, CDI_REAL, 1, 0 },
{ Pack, NULL, PackOperators, CDI_REAL, 1, 1 },
{ Pinfo, NULL, PinfoOperators, CDI_REAL, 1, 1 },
......
......@@ -416,7 +416,7 @@ static char *DistgridHelp[] = {
"",
"NOTE",
" This operator needs to open all output files simultaneously.",
" The maximum number of open files depents on the operating system!",
" The maximum number of open files depends on the operating system!",
NULL
};
......@@ -437,7 +437,7 @@ static char *CollgridHelp[] = {
"",
"NOTE",
" This operator needs to open all input files simultaneously.",
" The maximum number of open files depents on the operating system!",
" The maximum number of open files depends on the operating system!",
NULL
};
......@@ -3919,6 +3919,46 @@ static char *OutputHelp[] = {
NULL
};
static char *OutputtabHelp[] = {
"NAME",
" outputtab - Table output",
"",
"SYNOPSIS",
" outputtab,params ifiles ofile",
"",
"DESCRIPTION",
" This operator prints a table of all input datasets to standard output.",
" ifiles is an arbitrary number of input files. All input files need to have ",
" the same structure with the same variables on different timesteps.",
" All input fields need to have the same horizontal grid.",
" ",
" The contents of the table depends on the chosen paramters. The format of each table",
" parameter is keyname[:len]. len is the optional length of a table entry. ",
" Here is a list a all valid keynames:",
" ",
" Keyname & Type & Description ",
" value & FLOAT & Value of the variable [len:8]",
" name & STRING & Name of the variable [len:8]",
" param & STRING & Parameter ID (GRIB1: code[.tabnum]; GRIB2: num[.cat[.dis]]) [len:11]",
" code & INTEGER & Code number [len:4]",
" lon & FLOAT & Longitude coordinate [len:6]",
" lat & FLOAT & Latitude coordinate [len:6]",
" lev & FLOAT & Vertical level [len:6]",
" xind & INTEGER & Grid x index [len:4]",
" yind & INTEGER & Grid y index [len:4]",
" timestep & INTEGER & Timestep number [len:6]",
" date & STRING & Date (format YYYY-MM-DD) [len:10]",
" time & STRING & Time (format hh:mm:ss) [len:8]",
" year & INTEGER & Year [len:5]",
" month & INTEGER & Month [len:2]",
" day & INTEGER & Day [len:2]",
" nohead & INTEGER & Disable output of header line",
"",
"PARAMETER",
" params STRING Comma separated list of keynames, one for each column of the table",
NULL
};
static char *GradsdesHelp[] = {
"NAME",
" gradsdes - GrADS data descriptor file",
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment