# [ncl-talk] Question about the output of 1-2-1 average

Thu Oct 5 10:59:02 MDT 2017

Hi Lyndz,
The wgt_runave documentation describes how the function works:
https://www.ncl.ucar.edu/Document/Functions/Built-in/wgt_runave.shtml

As you are specifying an odd number of weights, the centered value is where
the smoothed 3yr value will be placed. I find that doing a simple test in
interactive NCL is a quick way to check how many NCL functions work:
ncl
a = (/2.3,1.2,5,-1.2/)
a at _FillValue = -9999.
b = wgt_runave(a,(/0.25,0.5,0.25/),0)
print(b)
;---- output-----
Variable: b
Type: float
Total Size: 16 bytes
4 values
Number of Dimensions: 1
Dimensions and sizes: [4]
Coordinates:
Number Of Attributes: 1
_FillValue : -9999
(0) -9999
(1) 2.425
(2) 2.5
(3) -9999

The average of 2.3, 1.2 and 5 are placed in the (1) slot (=the middle).
Values at the beginning and end are missing as there are no values at (-1)
or (4). As the documentation states, you can set the option to 1 to get
values at the end points:
c = wgt_runave(a,(/0.25,0.5,0.25/),1)
print(c)
;---output-----
Variable: c
Type: float
Total Size: 16 bytes
4 values
Number of Dimensions: 1
Dimensions and sizes: [4]
Coordinates:
Number Of Attributes: 1
_FillValue : -9999
(0) 1.75
(1) 2.425
(2) 2.5
(3) 1.9

Hope that helps. If you have any further questions please reply to the
ncl-talk email list.

On Thu, Oct 5, 2017 at 1:22 AM, Lyndon Mark Olaguera <
olagueralyndonmark429 at gmail.com> wrote:

> Dear ncl-experts,
>
> I am just confused about the output of the 1-2-1 average in NCL.
>
> I have a csv file containing 30 years of data (1979-2008). I attached the
> raw file (P28-P31.csv) and the smoothed file (P28-P31_filt.csv). After
> applying the 3 point 1-2-1 average, I got 29 points with -9999 (missing at
> both ends) after applying the script.
>
> Question:
>
> [1] I'm confused now which output point corresponds to a particular year
> (which point in the smoothed file corresponds to 1979, 1980,etc).
> [2[ Is there a way to add a "filler" value to the points without data
> after smoothing automatically?
>
>
> begin
>    diri     = "./"
>    files     = systemfunc("ls *.csv")
>    numfiles = dimsizes(files)
>    do ifil  = 0,numfiles-1
>      data = lines(1:)
>      rain = tofloat(str_get_field(data,1,","))
> ;;***************************************************
> ;;Apply 1-2-1 running average (three pentads)
> ;;****************************************************
>   x = wgt_runave(rain, (/0.25, 0.50, 0.25/), 0)
>   x at _FillValue = -9999
> ;;****************************************************
> ;;Save output to a csv file
> ;;****************************************************
>   flname = str_get_cols(files(ifil),0,6)+"_filt.csv"
>   asciiwrite(flname,x)
>   end do
> end
>
> Thank you in advance for the help.
>
> Sincerely,
>
> Lyndz
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>

--