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.
The Windows "all-in-one, complete install" for Java, Java3D VisAD and Python at: http://www.ssec.wisc.edu/~tomw/visadtutor/jyvis.exe has been updated to Jython 2.1 and VisAD for January 25th. A few items of potential interest that were in the Jan 25th release of VisAD: ** due a name-collision problem with the Python built-in functions, we've had to change the names of 3 methods in the visad.python.JPythonMethods class: abs(), max(), and min(). These are now named: abs_data(), max_data(), min_data(), respectively. As before, they only work on VisAD Data objects. I appologize for having to make this change and hope the impact is minimal. This will allow you to from visad.python.JPythonMethods import * and still use the built-in Jython functions to operate on non-VisAD Data types. (Note that this is always automatically supplied by the JPythonEditor.) ** some signature addtions: two new method signatures have been added to JPythonMethods to allow you to conveniently get the RealTypes of the domain and range of a FunctionType. In addition, signatures were added to the 'makeDomain()' methods so that the string representing the RealType can be used (see below). ** the subs.makeMaps() method has been modified to allow you to specify the names (as strings) of the Types (you can still use the Type, however). This can sometimes eliminate the need to use "RealType" or "RealTupleType", as seen in the following: In this example, we pick up the Python code only after lots of preceding code (not listed) that generates an array T[20][100][76] of real numbers. We want to interactively control the display of the 2-D field for each T[k], so a VisADSlider was added to the bottom of the panel. ...... from visad.python.JPythonMethods import * from visad import FieldImpl from visad.util import VisADSlider import subs ftype = makeType(" (liq_water -> ( (size, wavelen) -> reflectance) )") fdom = makeDomain("liq_water", .05, 1.0, 20) gdom = makeDomain("(size, wavelen)", 3,102,100, 1,76,76) seq = FieldImpl(ftype, fdom) for i in xrange(0,20): seq.setSample(i, field(gdom, "reflectance", T[i]) ) # at this point, you could simply: plot(seq,1) to use a SpreadSheet cell maps = subs.makeMaps("size","x", "wavelen","y", "reflectance","rgb", "reflectance","z", "liq_water","selectvalue") disp = subs.makeDisplay3D(maps) showAxesScales(disp, 1) subs.addData('reflect',seq, disp) slide=VisADSlider(maps[4]) subs.showDisplay(disp, 400, 400, "Reflectance", bottom=slide) Again, sorry for having to change the names... tom -- Tom Whittaker University of Wisconsin-Madison Space Science and Eng. Center ph: 608.262.2759
visad
archives: