[ncl-talk] Binning Data.

Arne Melsom arne.melsom at met.no
Tue Sep 23 09:00:38 MDT 2014


...I don't think ncl has a unique value function, so in case you want to get 'binvaluey' from 'y', try e.g.

 z = y
 z at _FillValue = -999
 v = z
 m = -1
 k =  0
 do while (k .lt. dimsizes(z))
   m = m + 1
   v(m) = min(z)
   indx = ind(z .eq. v(m))
   z(indx) = z at _FillValue
   k = k + dimsizes(indx)
   delete(indx)
 end do
 binvaluey = v(0:m)


----- Original Message -----
> Hi Jonathan,
> There might be a simpler way, but here's a snippet to get you started:
> 
>  x = (/2,3,4,5,6,7,2,1,3/)
>  y = (/1,1,1,1,3,3,2,2,2/)
>  binvaluey =(/1,2,3/)
>  do n=0,dimsizes(binvaluey)-1
>    indx = ind(y .eq. binvaluey(n))
>    print(x(indx))
>    delete(indx)
>  end do
> 
> Good luck!
> Arne
> 
> 
> ----- Original Message -----
> > Hello NCL-Talk,
> > 
> > I am attempting to find a function that will allow me to bin data in one
> > array while using another array as the boundaries.
> > 
> > For ex.
> > x = (/2,3,4,5,6,7,2,1,3/)
> > y = (1,1,1,1,3,3,2,2,2/)
> > 
> > binvaluey = 1, 4 values: (/2,3,4,5/)
> > binvaluey = 2, 3 values: (/2,1,3/)
> > binvaluey = 3, 2 values: (/6,7/)
> > 
> > I tried to find a function that would do this, but I am not seeing anything
> > in the function list.  The only thing I can think of is create an array for
> > each bin range, and using masks to isolate the values in the other array.
> > 
> > -Jonathan
> > _______________________________________________
> > ncl-talk mailing list
> > List instructions, subscriber options, unsubscribe:
> > http://mailman.ucar.edu/mailman/listinfo/ncl-talk
> > 
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
> 


More information about the ncl-talk mailing list