Re: log10

From: Dennis Shea (shea AT XXXXXX)
Date: Fri Jan 30 2004 - 16:13:52 MST

  • Next message: Mary Haley: "Note about NCL Linux binaries"

    Ben,

    An f90 type where is on NCL's list-of-things-to-do but for now:

         var = a->$vars(n)$(time2plot,:,:,lons2plot(i))

    Approach 1: This is very fast
         
         var = var > 0.0 ; make all values lt 0.0 = 0.0
                              ; like f90: where(var.lt.0.0) var = 0.0
         var@_FillValue = 0.0 ; set zero as _Fillvalue [will be ignored in log10]
         var = log10(var)
         ... ; There is a bug when trying to plot
                                 ; contours with a _FillValue = 0.0, so change
         var@_FillValue = 1.e20 ; all 0.0 changed to 1.e20
         plot var
        
    Approach 2:

         var_1d = ndtooned(var) ; make 1d
         indx = ind(var_1d.le.0.0)
         var_1d(indx) = 1.e20
         var = onedtond(var_1d, dimsizes(var))
         var@_FillValue = 1.e20
         var = log10(var)
         
    Note if this is done often u could build a function to do this.

    Regards
    Dennis
    >Hi ncl-talk:
    >
    >Here's a simple question. I want to plot log10 of my field, e.g.:
    >
    > var = a->$vars(n)$(time2plot,:,:,lons2plot(i))
    > var = log10(var)
    > ...
    > plot var
    >
    >If there are values of var <= 0., I get -INF in those areas of the
    >array after the log10 (no error or warning messages). It then hangs
    >in the plot call.
    >
    >I don't think ncl has a "where" function, and I don't want to loop
    >w/ conditionals, so what is the best way to take log10 of the field
    >and substitute a fill_value where the array is <= 0.? Thanks,
    >
    >--Ben
    >
    >
    >-----------------------------------------------------------------------
    >Ben Foster High Altitude Observatory (HAO)
    >foster@ucar.edu phone: 303-497-1595 fax: 303-497-1589
    >Nat. Center for Atmos. Res. P.O. Box 3000 Boulder CO 80307 USA
    >-----------------------------------------------------------------------
    >
    >_______________________________________________
    >ncl-talk mailing list
    >ncl-talk@ucar.edu
    >http://mailman.ucar.edu/mailman/listinfo/ncl-talk

    _______________________________________________
    ncl-talk mailing list
    ncl-talk@ucar.edu
    http://mailman.ucar.edu/mailman/listinfo/ncl-talk



    This archive was generated by hypermail 2b29 : Fri Jan 30 2004 - 15:56:34 MST