<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" id="owaParaStyle">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
P {margin-top:0;margin-bottom:0;}</style>
</head>
<body fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hi,<br>
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt"><br>
Long time user, first time emailer ... thanks for all the hard work on NCL! FYI, I believe I have found a bug in calculate_daily_values.<br>
<br>
The argument "nDim" is meant to identify the time dimension, but in fact the function only works correctly when nDim=0 (in the case of 2,3,4-dimensional data), and nDim=1 (in the case of 5D data).<br>
<br>
I have copied a MWE below to demonstrate. But I have traced the problem to point of the statistical operation in the function (e.g. line 18402 in /contributed.ncl, NCL v 6.4.0):<br>
<br>
> xStat(:,nt,:,:,:)  = dim_avg_n( x(:,it,:,:,:), nDim)<br>
<br>
Here "nDim" specifies the dimension on which to carry out the averaging and "it" is the index corresponding to day "nt" . Since "it" is hard-coded on dimension #1, any value of nDim not equal to 1 will not produce the correct result.
<br>
<br>
Similarly for the 2,3,4D case, <br>
> xStat(nt,:,:,:)  = dim_avg_n( x(it,:,:,:), nDim)<br>
<br>
...requires nDim=0.<br>
<br>
A quick fix would be to modify the 5D case such that it require nDim=0, then add a error condition that nDim=0. Or something more clever to preserve the functionality of nDim! (I think there is also an issue where the xStat is defined according to dimx).<br>
<br>
NB, from the code I think the same error may affect calculate_monthly_values and possibly calculate_segment_values, though I haven't tested this.<br>
<br>
All the best,<br>
Dave MacLeod<br>
-------------------------------------<br>
Postdoctoral Research Scientist<br>
Atmospheric Oceanic and Planetary Physics, University of Oxford<br>
<br>
<br>
MWE demonstrating the problem described above:<br>
<div><font color="000000" size="2"><br>
</font>
<div style="font-family:Tahoma; font-size:13px"><font color="000000" size="2"></font>
<div style="font-family:Tahoma; font-size:13px"><font color="000000" size="2"></font>
<div style="font-family:Tahoma; font-size:13px"><font color="000000" size="2"></font>
<div style="font-family:Tahoma; font-size:13px"><font color="000000" size="2"></font>
<div style="font-family:Tahoma; font-size:13px"><font color="000000" size="2"></font>
<div style="font-family:Tahoma; font-size:13px"><font color="000000" size="2"></font>
<div style="font-family:Tahoma; font-size:13px"><font color="000000" size="2">load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"<br>
begin<br>
<br>
; 2D, 3D, 4D data: only works if nDim=0<br>
x4D=random_uniform(-1.0,1.0,(/4,4,4,4/))        ; dummy data<br>
nDim=0                                          ; choose a dimension to be 'time' - CHANGE
<font color="000000">FROM A <font color="000000">V<font color="000000">ALUE DIFFERENT
<font color="000000">FROM </font></font></font>ZERO TO BREAK</font><br>
x4D!nDim="time"                         ; add metadata; 4 points, over 2 days<br>
x4D&time=fspan(0.25,1.75,4)<br>
x4D&time@units="days since 2017-09-12"<br>
printVarSummary(x4D)<br>
x4DDay = calculate_daily_values (x4D, "avg",nDim, False)<br>
printVarSummary(x4DDay)<br>
<br>
<br>
; 5D data: only works if nDim=1<br>
x5D=random_uniform(-1.0,1.0,(/4,4,4,4,4/))      ; dummy data<br>
nDim=1                                          ; choose a dimension to be 'time'</font><font color="000000" size="2"><font color="000000" size="2"><font color="000000">
</font>- CHANGE <font color="000000">T<font color="000000">O A VALUE <font color="000000">
DIFFERENT</font></font><font color="000000"> FROM ONE</font> TO BREAK<br>
</font></font>x5D!nDim="time"                         ; add metadata; 4 points, over 2 days<br>
x5D&time=fspan(0.25,1.75,4)<br>
x5D&time@units="days since 2017-09-12"<br>
printVarSummary(x5D)<br>
x5DDay = calculate_daily_values (x5D, "avg",nDim, False)<br>
printVarSummary(x5DDay)<br>
end</font><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>