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

New operator: ydaysum, ymonsum, yseassum

parent 276c2604
2006-09-?? Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
2006-09-18 Uwe Schulzweida <Uwe.Schulzweida@zmaw.de>
* using CDI library version 1.0.2
* set alias gradsdes to gradsdes2
* rename gradsdes to gradsdes1
* New operator: int and nint (Math) [request: Joerg Wegner]
* New operator: ydaysum, ymonsum, yseassum [request: Hannes Reuter]
* add option -e exp to test DRMAA
* add option -z szip to compress GRIB records with SZIP
* use DBL_IS_EQUAL to compare floating point
......
CDO NEWS
--------
Version 0.9.3 (17 Dec 2004):
* Support of PINGO grid description files.
* New operator: gradsdes
Creates a GrADS data descriptor file.
Supported file formats are GRIB, SERVICE and EXTRA.
Version 1.0.2 (18 September 2006):
* Rename operator gradsdes to gradsdes1 and set the alias gradsdes to gradsdes2
* Remapping of rotated lonlat grids with remapbi* and genbi* has been changed at the bounds.
Generated interpolation weights with older CDO versions can't be used anymore and must
be recalculated with genbi*.
* New operators:
o int - Convert to integer value
o nint - Convert to nearest integer value
Version 1.0.1 (1 August 2006):
* New CDO option '-b' to set the number of bits for the output precision
* New operators:
o selstdname - Select standard names
o showstdname - Show standard names
o setclonlatbox - Set a longitude/latitude box to constant [Etienne Tourigny]
o setcindexbox - Set an index box to constant
Version 1.0.0 (15 June 2006):
* New operators:
o dv2ps - Divergence and vorticity to velocity potential and stream function
Version 0.9.13 (4 May 2006):
* New operators:
o mergetime - Merge datasets sorted by date and time
o input, inputext, inputsrv - ASCII input
o abs - Absolute value
o atan2 - Arc tangent of two fields
Version 0.9.12 (6 March 2006):
* New operators:
o uv2dv, dv2uv - Wind transformation
Version 0.9.11 (1 Februar 2006):
* Support of GME grids
* New operators:
o selmin, selmax, selsum, selmean, selavg, selstd - Time range statistic
o sp2gpl, gp2spl - Spectral transformation of TL-Model data (e.g. ERA40)
o replace - Replace variables
Version 0.9.10 (19 December 2005):
* Support of REMO IEG format
* New operators:
o ifthenelse - IF ifile1 THEN ifile2 ELSE ifile3
Version 0.9.9 (19 October 2005):
* New operators:
o ensmin, ensmax, enssum, ensmean, ensavg, ensstd, ensvar - Ensemble statistic
o gradsdes2 - Creates a GrADS data descriptor file with a portable GrADS map
o enlarge - Enlarge all fields to a user given grid
o gencon - Generate conservative interpolation weights
o remap - Remapping with the interpolation weights from a netCDF file
Version 0.9.8 (19 July 2005):
* New operators:
o setlevel - Set level
o chlevel - Change level
o chlevelc - Change level of one code
o chlevelv - Change level of one variable
Version 0.9.7 (26 May 2005):
* New operators:
o setcalendar - Set calendar
o masklonlatbox - Mask lon/lat box
o maskindexbox - Mask index box
o muldpm - Multiply with days per month
o divdpm - Divide with days per month
Version 0.9.6 (4 April 2005):
* Support of rotated regular grids.
* New operator:
o detrend - Linear detrending of time series.
Version 0.9.4 (3 Jan 2005):
* Support of PINGO grid description files.
* New operator:
o gradsdes - Creates a GrADS data descriptor file.
Supported file formats are GRIB, SERVICE and EXTRA.
No preview for this file type
......@@ -5,7 +5,7 @@
@Section = Statistical values
@Class = Statistic
@Arguments = ifile ofile
@Operators = ydaymin ydaymax ydaymean ydayavg ydaystd
@Operators = ydaymin ydaymax ydaysum ydaymean ydayavg ydaystd
@BeginDescription
This module writes to @file{ofile}, according to the actual operator,
......@@ -59,6 +59,28 @@ o(\mbox{366},x) = \mbox{\bf max}\{i(t,x), \mbox{day}(i(t)) = \mbox{366}\} \\
@EndOperator
@BeginOperator_ydaysum
@Title = Multi-year daily sum
@BeginDescription
@IfMan
o(001,x) = sum{i(t,x), day(i(t)) = 001}
...
o(366,x) = sum{i(t,x), day(i(t)) = 366}
@EndifMan
@IfDoc
@BeginMath
\begin{array}{c}
o(\mbox{001},x) = \mbox{\bf sum}\{i(t,x), \mbox{day}(i(t)) = \mbox{001}\} \\
\vdots \\
o(\mbox{366},x) = \mbox{\bf sum}\{i(t,x), \mbox{day}(i(t)) = \mbox{366}\} \\
\end{array}
@EndMath
@EndifDoc
@EndDescription
@EndOperator
@BeginOperator_ydaymean
@Title = Multi-year daily mean
......
......@@ -5,7 +5,7 @@
@Section = Statistical values
@Class = Statistic
@Arguments = ifile ofile
@Operators = ymonmin ymonmax ymonmean ymonavg ymonstd
@Operators = ymonmin ymonmax ymonsum ymonmean ymonavg ymonstd
@BeginDescription
This module writes to @file{ofile}, according to the actual operator,
......@@ -60,6 +60,28 @@ o(\mbox{12},x) = \mbox{\bf max}\{i(t,x), \mbox{month}(i(t)) = \mbox{12}\} \\
@EndOperator
@BeginOperator_ymonsum
@Title = Multi-year monthly sum
@BeginDescription
@IfMan
o(01,x) = sum{i(t,x), month(i(t)) = 01}
...
o(12,x) = sum{i(t,x), month(i(t)) = 12}
@EndifMan
@IfDoc
@BeginMath
\begin{array}{c}
o(\mbox{01},x) = \mbox{\bf sum}\{i(t,x), \mbox{month}(i(t)) = \mbox{01}\} \\
\vdots \\
o(\mbox{12},x) = \mbox{\bf sum}\{i(t,x), \mbox{month}(i(t)) = \mbox{12}\} \\
\end{array}
@EndMath
@EndifDoc
@EndDescription
@EndOperator
@BeginOperator_ymonmean
@Title = Multi-year monthly mean
......
......@@ -5,7 +5,7 @@
@Section = Statistical values
@Class = Statistic
@Arguments = ifile ofile
@Operators = yseasmin yseasmax yseasmean yseasavg yseasstd
@Operators = yseasmin yseasmax yseassum yseasmean yseasavg yseasstd
@BeginDescription
This module writes to @file{ofile}, according to the actual operator,
......@@ -64,6 +64,30 @@ o(\mbox{4},x) = \mbox{\bf max}\{i(t,x), \mbox{month}(i(t)) = \mbox{09, 10, 11}\}
@EndOperator
@BeginOperator_yseassum
@Title = Multi-year seasonally sum
@BeginDescription
@IfMan
o(1,x) = sum{i(t,x), month(i(t)) = 12, 01, 02}
o(2,x) = sum{i(t,x), month(i(t)) = 03, 04, 05}
o(3,x) = sum{i(t,x), month(i(t)) = 06, 07, 08}
o(4,x) = sum{i(t,x), month(i(t)) = 09, 10, 11}
@EndifMan
@IfDoc
@BeginMath
\begin{array}{c}
o(\mbox{1},x) = \mbox{\bf sum}\{i(t,x), \mbox{month}(i(t)) = \mbox{12, 01, 02}\} \\
o(\mbox{2},x) = \mbox{\bf sum}\{i(t,x), \mbox{month}(i(t)) = \mbox{03, 04, 05}\} \\
o(\mbox{3},x) = \mbox{\bf sum}\{i(t,x), \mbox{month}(i(t)) = \mbox{06, 07, 08}\} \\
o(\mbox{4},x) = \mbox{\bf sum}\{i(t,x), \mbox{month}(i(t)) = \mbox{09, 10, 11}\} \\
\end{array}
@EndMath
@EndifDoc
@EndDescription
@EndOperator
@BeginOperator_yseasmean
@Title = Multi-year seasonally mean
......
......@@ -20,6 +20,7 @@
Ydaystat ydaymin Multi-year daily minimum
Ydaystat ydaymax Multi-year daily maximum
Ydaystat ydaysum Multi-year daily sum
Ydaystat ydaymean Multi-year daily mean
Ydaystat ydayavg Multi-year daily average
Ydaystat ydaystd Multi-year daily standard deviation
......@@ -70,6 +71,7 @@ void *Ydaystat(void *argument)
cdoOperatorAdd("ydaymin", func_min, 0, NULL);
cdoOperatorAdd("ydaymax", func_max, 0, NULL);
cdoOperatorAdd("ydaysum", func_sum, 0, NULL);
cdoOperatorAdd("ydaymean", func_mean, 0, NULL);
cdoOperatorAdd("ydayavg", func_avg, 0, NULL);
cdoOperatorAdd("ydaystd", func_std, 0, NULL);
......
......@@ -20,6 +20,7 @@
Ymonstat ymonmin Multi-year monthly minimum
Ymonstat ymonmax Multi-year monthly maximum
Ymonstat ymonsum Multi-year monthly sum
Ymonstat ymonmean Multi-year monthly mean
Ymonstat ymonavg Multi-year monthly average
Ymonstat ymonstd Multi-year monthly standard deviation
......@@ -69,6 +70,7 @@ void *Ymonstat(void *argument)
cdoOperatorAdd("ymonmin", func_min, 0, NULL);
cdoOperatorAdd("ymonmax", func_max, 0, NULL);
cdoOperatorAdd("ymonsum", func_sum, 0, NULL);
cdoOperatorAdd("ymonmean", func_mean, 0, NULL);
cdoOperatorAdd("ymonavg", func_avg, 0, NULL);
cdoOperatorAdd("ymonstd", func_std, 0, NULL);
......
......@@ -20,6 +20,7 @@
Yseasstat yseasmin Multi-year seasonally minimum
Yseasstat yseasmax Multi-year seasonally maximum
Yseasstat yseassum Multi-year seasonally sum
Yseasstat yseasmean Multi-year seasonally mean
Yseasstat yseasavg Multi-year seasonally average
Yseasstat yseasstd Multi-year seasonally standard deviation
......@@ -69,6 +70,7 @@ void *Yseasstat(void *argument)
cdoOperatorAdd("yseasmin", func_min, 0, NULL);
cdoOperatorAdd("yseasmax", func_max, 0, NULL);
cdoOperatorAdd("yseassum", func_sum, 0, NULL);
cdoOperatorAdd("yseasmean", func_mean, 0, NULL);
cdoOperatorAdd("yseasavg", func_avg, 0, NULL);
cdoOperatorAdd("yseasstd", func_std, 0, NULL);
......
......@@ -231,10 +231,10 @@ void *Zonstat(void *argument);
#define WindOperators {"uv2dv", "dv2uv", "dv2ps"}
#define WritegridOperators {"writegrid"}
#define WriterandomOperators {"writerandom"}
#define YdaystatOperators {"ydaymin", "ydaymax", "ydaymean", "ydayavg", "ydaystd"}
#define YdaystatOperators {"ydaymin", "ydaymax", "ydaysum", "ydaymean", "ydayavg", "ydaystd"}
#define YmonarithOperators {"ymonadd", "ymonsub", "ymonmul", "ymondiv"}
#define YmonstatOperators {"ymonmin", "ymonmax", "ymonmean", "ymonavg", "ymonstd"}
#define YseasstatOperators {"yseasmin", "yseasmax", "yseasmean", "yseasavg", "yseasstd"}
#define YmonstatOperators {"ymonmin", "ymonmax", "ymonsum", "ymonmean", "ymonavg", "ymonstd"}
#define YseasstatOperators {"yseasmin", "yseasmax", "yseassum", "yseasmean", "yseasavg", "yseasstd"}
#define ZonstatOperators {"zonmin", "zonmax", "zonsum", "zonmean", "zonavg", "zonstd"}
......
......@@ -1652,7 +1652,7 @@ static char *SeasstatHelp[] = {
static char *YdaystatHelp[] = {
"NAME",
" ydaymin, ydaymax, ydaymean, ydayavg, ydaystd - ",
" ydaymin, ydaymax, ydaysum, ydaymean, ydayavg, ydaystd - ",
" Multi-year daily statistical values",
"",
"SYNOPSIS",
......@@ -1673,6 +1673,10 @@ static char *YdaystatHelp[] = {
" o(001,x) = max{i(t,x), day(i(t)) = 001}",
" ...",
" o(366,x) = max{i(t,x), day(i(t)) = 366}",
" ydaysum Multi-year daily sum",
" o(001,x) = sum{i(t,x), day(i(t)) = 001}",
" ...",
" o(366,x) = sum{i(t,x), day(i(t)) = 366}",
" ydaymean Multi-year daily mean",
" o(001,x) = mean{i(t,x), day(i(t)) = 001}",
" ...",
......@@ -1690,7 +1694,7 @@ static char *YdaystatHelp[] = {
static char *YmonstatHelp[] = {
"NAME",
" ymonmin, ymonmax, ymonmean, ymonavg, ymonstd - ",
" ymonmin, ymonmax, ymonsum, ymonmean, ymonavg, ymonstd - ",
" Multi-year monthly statistical values",
"",
"SYNOPSIS",
......@@ -1711,6 +1715,10 @@ static char *YmonstatHelp[] = {
" o(01,x) = max{i(t,x), month(i(t)) = 01}",
" ...",
" o(12,x) = max{i(t,x), month(i(t)) = 12}",
" ymonsum Multi-year monthly sum",
" o(01,x) = sum{i(t,x), month(i(t)) = 01}",
" ...",
" o(12,x) = sum{i(t,x), month(i(t)) = 12}",
" ymonmean Multi-year monthly mean",
" o(01,x) = mean{i(t,x), month(i(t)) = 01}",
" ...",
......@@ -1728,7 +1736,7 @@ static char *YmonstatHelp[] = {
static char *YseasstatHelp[] = {
"NAME",
" yseasmin, yseasmax, yseasmean, yseasavg, yseasstd - ",
" yseasmin, yseasmax, yseassum, yseasmean, yseasavg, yseasstd - ",
" Multi-year seasonally statistical values",
"",
"SYNOPSIS",
......@@ -1751,6 +1759,11 @@ static char *YseasstatHelp[] = {
" o(2,x) = max{i(t,x), month(i(t)) = 03, 04, 05}",
" o(3,x) = max{i(t,x), month(i(t)) = 06, 07, 08}",
" o(4,x) = max{i(t,x), month(i(t)) = 09, 10, 11}",
" yseassum Multi-year seasonally sum",
" o(1,x) = sum{i(t,x), month(i(t)) = 12, 01, 02}",
" o(2,x) = sum{i(t,x), month(i(t)) = 03, 04, 05}",
" o(3,x) = sum{i(t,x), month(i(t)) = 06, 07, 08}",
" o(4,x) = sum{i(t,x), month(i(t)) = 09, 10, 11}",
" yseasmean Multi-year seasonally mean",
" o(1,x) = mean{i(t,x), month(i(t)) = 12, 01, 02}",
" o(2,x) = mean{i(t,x), month(i(t)) = 03, 04, 05}",
......
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