Re: [ferret_users] Percentile Calculations

Hi Lawal,
Try this and see if it works for the first L (based on a script from Russell Fiedler,2009):

! Get data
use Jan_Rain.nc
sh d
currently SET data sets:
1> ./Jan_Rain.nc  (default)
name     title                             I         J         K         L
PR       Precipitation                    1:110     1:100     1:1600    1:50

! Make a variable with the sorted indices.

let rainsortedindices=sortl(pr[k=1:1600,l=1])

! Save indices to a file. and read back

save/file=indices.nc/clob/jlimits==1:100/j=1 rainsortedindices
repeat/j=2:110 save/file=indices.nc/append rainsortedindices
can var rainsortedindices
use indices.nc

! Make a dummy variable containing the indices of rainfall

let dummy=l[g=pr[d=1]]

! Pick out the indices corresponding to the top 10 & bottom 10 percentiles
! We have a 1 wherever the 90% cutoff is and zeros elsewhere

let masktop10=if(dummy eq rainsortedindices[l=`int(1600*0.9)`]) then 1 else 0       ! 90th percentile
let maskbottom10=if(dummy eq rainsortedindices[l=`int(1600*0.1)`]) then 1 else 0    !10th percentile

! Mask with  the 0/1 array by the original rain to pick out our values

! Sum to get the result

! plot the result

On 9 July 2012 15:07, Kamoru Abiodun Lawal wrote:
Dear Ferreters,
Can someone help with a hint on how to find 90th and 10th percentile of axis K for each axis L in the data structure below:

yes? use Jan_Rain.nc
yes? sh d
currently SET data sets:
1> ./Jan_Rain.nc  (default)
name     title                                      I         J                K         L
PR       Precipitation                    1:110     1:100     1:1600    1:50

Thank you!

Kamoru Abiodun LAWAL
Climate System Analysis Group,
Department of Environmental and Geographical Science,
University of Cape Town, Private Mail Bag X3,
Rondebosch, Cape Town, 7701, South Africa.

--

Izidine S. Pinto