NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: [idvusers] How to use the "applyToRangeValues(function, data)" Jython method

Hi Patrick-

Patrick Koethur wrote:
I have a rather general question about the use of the "applyToRangeValues(function,data)" Jython method.

What is meant by the function argument? What should it look like? Can anyone give an example? Thanks a lot.

The function argument is the name of the function that you
want to apply to each timestep in the field.  An example
might be:

def changeRange(d):
   return   applyToRangeValues('testApplyToRange2',d);

def testApplyToRange(d,**args):
    r = d.getFloats(0)
    total = 0
    for i in xrange(len(r[0])):
        total= total+r[0][i]
    avg = total/len(r[0])
    for i in xrange(len(r[0])):
        if(r[0][i]<avg):
            r[0][i] = 0;
    d.setSamples(r)
    return d

This avoids having to have the code like:

    if (GridUtil.isTimeSequence(newData)):
        for t in range(newData.getDomainSet().getLength()):
            rangeValue = newData.getSample(t)
            XXX do something
            newData.setSample(t,result,0)
    else:
        rangeValue = newData
        XXX do something

when you might have a time sequence or just a single timestep.

Don
*************************************************************
Don Murray                               UCAR Unidata Program
dmurray@xxxxxxxxxxxxxxxx                        P.O. Box 3000
(303) 497-8628                              Boulder, CO 80307
http://www.unidata.ucar.edu/staff/donm
*************************************************************



  • 2009 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the idvusers archives: