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.
Hi Mathias, I recommend that you look into using visad.python.RunJPython (which in turn uses org.python.util.PythonInterpreter - see http://jython.sourceforge.net/docs/javadoc/org/python/util/PythonInterpreter.html for details). RunJPython's exec() method lets you execute a line of Python code, its eval() method executes a line and returns its value (this treats the line of Python as a formula), its execfile() method executes a program in a file, its set() method sets values of variables, and its get() method returns values of variables. Note that the Jython implementation beautifully uses Java reflection so that every Java Object can be an object in the untyped Python language. The formula manager is great, but we have adopted the VisAD connection to Python as our main direction for supporting user scripts. We are providing lots of methods for simplified access to VisAD from Python, as docuemnted in Tom's excellent tutorial at: http://www.ssec.wisc.edu/~tomw/visadtutor/index.html Note also that the VisAD/Python connection gives us something that has been my goal since I started VisAD in 1990: integration of scientific metadata into ordinary programming language syntax. So if you say 'image = image1 - image2' georeferencing and unit conversions are implicit in the arithmetical operation. Or if 'map' is a map outline file, you can say 'image[map[i]]' to get the image pixel at the location of the i-th map point. Cheers, Bill Mathias Stümpert wrote: > > Hi everybody, > > I want to implement a "Command Line" in my application in a way that I > am able to both resolve mathematical equations with my VisAD-Data > objects like the FormulaManager does and that I am able to execute > commands like list() but also methods in my classes like > DisplayImpl.addMap(ScalarMap). Therefore the command line has to be able > to parse expressions like the following examples: > > display.addMap(xmap) > x=y+z > display.addData(x) > list(display.getAllData()) > ... > > where display, xmap, x, y and z are Objects but not necessarily > visad.Thing objects. Is there a way to construct a FormulaManager that > is able to parse all these expressions or do I have to do some kind of > pre-parsing which filters everything the FormulaManager is not able to > parse. > > Is there a way to get Exceptions or "error reports" from the > FormulaManager if it was not able to parse the line? > > Is there a general documentation of the visad.formula package? I only > found the docs and examples included in the visad.ss package and its > documentation. > > Many thanks in advance, Mathias > > ------------------------------------------------------------ > Mathias Stümpert > email: mathias@xxxxxxxxxxxx > homepage: www.stuempert.de -- ---------------------------------------------------------- Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706 hibbard@xxxxxxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738 http://www.ssec.wisc.edu/~billh/vis.html
visad
archives: