Hi Emile,
I'm sending this back to the Users' List so the discussion is available
to
everyone.
I don't know why you were seeing the incorrect results earlier. Please
let
us know if anything like that happens in the future. When Ferret uses
@AVG it looks at the size of the "boxes" along the axis and applies a
weighting factor based on the portion of the box on the source axis that
overlaps the box on the destination axis. Some of this is discussed in
the
FAQ,
http://www.ferret.noaa.gov/Ferret/FAQ/analysis/regridding_with_ave.html
I hope that it has enough explanation to answer your question. I also
find
that studying the output of commands like these are helpful in
understanding
what the commands are doing:
yes? list t[gt=var], tbox[gt=var], tboxlo[gt=var], tboxhi[gt=var]
yes? list t[gt=var12h], tbox[gt=var12h], tboxlo[gt=var12h],
tboxhi[gt=var]
Emilie Vanvyve wrote:
Hi
Ansley,
Thanks for the rapidity of the answer! That's something I really
appreciate with the Ferret users list!!
Here are some technical informations: I run Ferret on an
Apple-Macintosh platform (Mac OS 10.3.4). It is the 5.50 version that
I got from the link on the Ferret website towards Mac OS. Ferret
welcomes me with:
NOAA/PMEL TMAP
FERRET v5.50
apple-darwin6.3 - 02/08/03
29-Jul-04 09:29
But, I just have tried your script right now on this platform (Mac,
Ferret 5.50) and a Linux one (Linux 2.4.3, Ferret 5.51), I have gotten
the same numbers as you this time. In a way, that's a good news, but I
really do not understand why it has changed since yesterday. I am 100%
sure of what I did and sent you. It can not have been confusion with
previous variables I could had defined or something like this, as I
quitted Ferret and reopened it to get what I sent you.
On the other hand, there is still something I do not understand in the
results we both get now. The average does not seem to me to be an
average and the sum a sum.
If the data are as previously:
01-SEP-1993 00:00 / 1: 1.00
01-SEP-1993 06:00 / 2: 2.00
01-SEP-1993 12:00 / 3: 3.00
01-SEP-1993 18:00 / 4: 4.00
02-SEP-1993 00:00 / 5: 5.00
02-SEP-1993 06:00 / 6: 6.00
02-SEP-1993 12:00 / 7: 7.00
02-SEP-1993 18:00 / 8: 8.00
03-SEP-1993 00:00 / 9: 9.00
03-SEP-1993 06:00 / 10: 10.00
03-SEP-1993 12:00 / 11: 11.00
03-SEP-1993 18:00 / 12: 12.00
04-SEP-1993 00:00 / 13: 13.00
I would assume to get those numbers for the average and the sum:
t12h@ave
01-SEP-1993 00:00 / 1: (
1.00 + 2.00) /2 = 1.50 instead of 1.33
01-SEP-1993 12:00 / 2: ( 3.00 + 4.00) /2 = 3.50 3.00
02-SEP-1993 00:00 / 3: ( 5.00 + 6.00) /2 = 5.50 5.00
02-SEP-1993 12:00 / 4: ( 7.00 + 8.00) /2 = 7.50 7.00
03-SEP-1993 00:00 / 5: ( 9.00 + 10.00) /2 = 9.50 9.00
03-SEP-1993 12:00 / 6: (11.00 + 12.00) /2 = 11.50 11.00
04-SEP-1993 00:00 / 7: (13.00 + ? ) /2 = ? 12.67
t1d@ave
01-SEP-1993 00:00 / 1: (
1.00 + 2.00 + 3.00 + 4.00) /4 = 2.50 instead of 1.80
02-SEP-1993 00:00 / 3: ( 5.00 + 6.00 + 7.00 + 8.00) /4 = 6.50 5.00
03-SEP-1993 00:00 / 5: ( 9.00 + 10.00 + 11.00 + 12.00) /4 = 10.50 9.00
04-SEP-1993 00:00 / 7: (13.00 + ? ) /4 = ? 12.20
t12h@sum
01-SEP-1993 00:00 / 1: (
1.00 + 2.00) = 3.00 instead of 2.00
01-SEP-1993 12:00 / 2: ( 3.00 + 4.00) = 7.00 6.00
02-SEP-1993 00:00 / 3: ( 5.00 + 6.00) = 11.00 10.00
02-SEP-1993 12:00 / 4: ( 7.00 + 8.00) = 15.00 14.00
03-SEP-1993 00:00 / 5: ( 9.00 + 10.00) = 19.00 18.00
03-SEP-1993 12:00 / 6: (11.00 + 12.00) = 23.00 22.00
04-SEP-1993 00:00 / 7: (13.00 + ? ) = ? 19.00
t1d@sum
01-SEP-1993 00:00 / 1: (
1.00 + 2.00 + 3.00 + 4.00) = 10.00 instead of 4.50
02-SEP-1993 00:00 / 3: ( 5.00 + 6.00 + 7.00 + 8.00) = 26.00 20.00
03-SEP-1993 00:00 / 5: ( 9.00 + 10.00 + 11.00 + 12.00) = 10.50 36.00
04-SEP-1993 00:00 / 7: (13.00 + ? ) = ? 30.50
If that's not the purpose of @ave and @sum, how could I then do with
Ferret the cumul and mean I have reproduced here above?
Hoping it is possible,
best regards,
Emilie
Le 28 juil. 2004, à 19:35, Ansley Manke a écrit :
Hi Emilie,
Thank you for sending this example. What version of Ferret are you
running, and on
what operating system? The results you are seeing are clearly
wrong. When I run
your script, I see the following results (first I list the script,
then the results. I get these
same results on both our Solaris and Linux machines with Ferret
version 5.6):
! ----------------- regridtime.jnl -----------------
! Create dummy variable
define axis/t="1-sep-1993 00:00":"4-SEP-1993
00:00":6/units=hours t6h
let var = L[gt=t6h]
list var
! Regrid to 12-hour and to 1-day with @sum
define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":12/units=hours t12h
let var12h = var[gt=t12h@ave]
list var12h
define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":1/units=days t1d
let var1d = var[gt=t1d@ave]
list var1d
! Regrid to 12-hour and to 1-day with @sum
define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":12/units=hours t12h
let var12h = var[gt=t12h@sum]
list var12h
define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":1/units=days t1d
let var1d = var[gt=t1d@sum]
list var1d
Here is the output
yes? ! ----------------- regridtime.jnl -----------------
yes? ! Create dummy variable
yes? define axis/t="1-sep-1993 00:00":"4-SEP-1993
00:00":6/units=hours t6h
yes? let var = L[gt=t6h]
yes? list var
VARIABLE : L[GT=T6H]
SUBSET : 13 points (TIME)
01-SEP-1993 00:00 / 1: 1.00
01-SEP-1993 06:00 / 2: 2.00
01-SEP-1993 12:00 / 3: 3.00
01-SEP-1993 18:00 / 4: 4.00
02-SEP-1993 00:00 / 5: 5.00
02-SEP-1993 06:00 / 6: 6.00
02-SEP-1993 12:00 / 7: 7.00
02-SEP-1993 18:00 / 8: 8.00
03-SEP-1993 00:00 / 9: 9.00
03-SEP-1993 06:00 / 10: 10.00
03-SEP-1993 12:00 / 11: 11.00
03-SEP-1993 18:00 / 12: 12.00
04-SEP-1993 00:00 / 13: 13.00
yes? ! Regrid to 12-hour and to 1-day with @sum
yes? define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":12/units=hours t12h
yes? let var12h = var[gt=t12h@ave]
yes? list var12h
VARIABLE : VAR[GT=T12H@AVE]
SUBSET : 7 points (TIME)
01-SEP-1993 00:00 / 1: 1.33
01-SEP-1993 12:00 / 2: 3.00
02-SEP-1993 00:00 / 3: 5.00
02-SEP-1993 12:00 / 4: 7.00
03-SEP-1993 00:00 / 5: 9.00
03-SEP-1993 12:00 / 6: 11.00
04-SEP-1993 00:00 / 7: 12.67
yes? define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":1/units=days t1d
yes? let var1d = var[gt=t1d@ave]
yes? list var1d
VARIABLE : VAR[GT=T1D@AVE]
SUBSET : 4 points (TIME)
01-SEP-1993 00 / 1: 1.80
02-SEP-1993 00 / 2: 5.00
03-SEP-1993 00 / 3: 9.00
04-SEP-1993 00 / 4: 12.20
yes? ! Regrid to 12-hour and to 1-day with @sum
yes? define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":12/units=hours t12h
yes? let var12h = var[gt=t12h@sum]
yes? list var12h
VARIABLE : VAR[GT=T12H@SUM]
SUBSET : 7 points (TIME)
01-SEP-1993 00:00 / 1: 2.00
01-SEP-1993 12:00 / 2: 6.00
02-SEP-1993 00:00 / 3: 10.00
02-SEP-1993 12:00 / 4: 14.00
03-SEP-1993 00:00 / 5: 18.00
03-SEP-1993 12:00 / 6: 22.00
04-SEP-1993 00:00 / 7: 19.00
yes? define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":1/units=days t1d
yes? let var1d = var[gt=t1d@sum]
yes? list var1d
VARIABLE : VAR[GT=T1D@SUM]
SUBSET : 4 points (TIME)
01-SEP-1993 00 / 1: 4.50
02-SEP-1993 00 / 2: 20.00
03-SEP-1993 00 / 3: 36.00
04-SEP-1993 00 / 4: 30.50
! -----------------
Emilie Vanvyve wrote:
Hello!
I need some help to regrid data on time. I have 6-hourly
precipitation values and I'd like to have the cumul and the mean on 1
day. I have tried by defining a new time axis and regridding the data
using gt=my_new_time_axis@sum and @ave. Ferret obviously computes
something, the time axis of my new variable is correct, but I'm a bit
perplex about the results Ferret gives me.
Here is an example with a dummy variable.
yes? list var
SUBSET : 13 points (TIME)
01-SEP-1993 00:00 / 1: 1.00
01-SEP-1993 06:00 / 2: 2.00
01-SEP-1993 12:00 / 3: 3.00
01-SEP-1993 18:00 / 4: 4.00
02-SEP-1993 00:00 / 5: 5.00
02-SEP-1993 06:00 / 6: 6.00
02-SEP-1993 12:00 / 7: 7.00
02-SEP-1993 18:00 / 8: 8.00
03-SEP-1993 00:00 / 9: 9.00
03-SEP-1993 06:00 / 10: 10.00
03-SEP-1993 12:00 / 11: 11.00
03-SEP-1993 18:00 / 12: 12.00
04-SEP-1993 00:00 / 13: 13.00
yes? define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":12/units=hours t12h
yes? let var12h = var[gt=t12h@ave]
yes? list var12h
VARIABLE : VAR[GT=T12H@AVE]
SUBSET : 7 points (TIME)
01-SEP-1993 00:00 / 1: 1.000
01-SEP-1993 12:00 / 2: 2.000
02-SEP-1993 00:00 / 3: 3.000
02-SEP-1993 12:00 / 4: 4.000
03-SEP-1993 00:00 / 5: 5.000
03-SEP-1993 12:00 / 6: 6.000
04-SEP-1993 00:00 / 7: 7.000
yes? define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":1/units=days t1d
yes? let var1d = var[gt=t1d@ave]
yes? list var1d
VARIABLE : VAR[GT=T1D@AVE]
SUBSET : 4 points (TIME)
01-SEP-1993 00 / 1: 1.333
02-SEP-1993 00 / 2: 3.000
03-SEP-1993 00 / 3: 5.000
04-SEP-1993 00 / 4: 6.667
yes? define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":12/units=hours t12h
yes? let var12h = var[gt=t12h@sum]
yes? list var12h
VARIABLE : VAR[GT=T12H@SUM]
SUBSET : 7 points (TIME)
01-SEP-1993 00:00 / 1: 1.000
01-SEP-1993 12:00 / 2: 2.000
02-SEP-1993 00:00 / 3: 3.000
02-SEP-1993 12:00 / 4: 4.000
03-SEP-1993 00:00 / 5: 5.000
03-SEP-1993 12:00 / 6: 6.000
04-SEP-1993 00:00 / 7: 7.000
yes? define axis/t="01-SEP-1993 00:00":"4-SEP-1993
00:00":1/units=days t1d
yes? let var1d = var[gt=t1d@sum]
yes? list var1d
VARIABLE : VAR[GT=T1D@SUM]
SUBSET : 4 points (TIME)
01-SEP-1993 00 / 1: 2.00
02-SEP-1993 00 / 2: 6.00
03-SEP-1993 00 / 3: 10.00
04-SEP-1993 00 / 4: 10.00
yes?
Where am I wrong?
Thanks for any clue!
Emilie
____________________________________________________________
Emilie VANVYVE
Physicist, PhD student
Université catholique de Louvain
(UCL)
Institut d'astronomie et de géophysique G. Lemaître (ASTR)
Chemin du Cyclotron, 2
1348 Louvain-la-Neuve (Belgium)
Phone : +32-(0)10-473300
Fax : +32-(0)10-474722
E-mail :
vanvyve@astr.ucl.ac.be
Web : www.astr.ucl.ac.be
____________________________________________________________
Emilie VANVYVE
Physicist, PhD student
Université catholique de
Louvain (UCL)
Institut d'astronomie et de géophysique G. Lemaître (ASTR)
Chemin du Cyclotron, 2
1348 Louvain-la-Neuve (Belgium)
Phone : +32-(0)10-473300
Fax : +32-(0)10-474722
E-mail : vanvyve@astr.ucl.ac.be
Web : www.astr.ucl.ac.be
|