Maohai:
That is what the user group wanted from Herschel IA --
the Java developers can get all the fancy internal data model
they want, but the end users want something like this can work
in the interactive environment:
-> plot([1,2,5,6,2],title="foo bar")
Actually, you can do:
lineplot(field([1,2,5,6,2]),title="foo bar")
and get your plot (assuming you have imported 'graph'). It would be
trivial to have lineplot() change the first parameter from a list/tuple
to a field, though. By default, the x-axis would be labelled "Domain"
and the y-axis "Values", because no explict names have been assigned to
the values. This is, in fact, an indirect part of the VisAD Data model
- the default names for the axes labels are the names of the "types" of
data you assign to the variables.
The real issue for me is that I think scientists should be using the
VisAD Data model to represent their data, because of the rich meta data
that goes along with it, and not just simple array of numbers. I think
what you are implying is that the Python lists and tuples should somehow
be seamlessly interchangable with VisAD Data objects. This is an
interesting notion, since VisAD's model is sort of a superset of PyTuple
(most VisAD Data objects are immutable) since they can contain not only
numbers, but the associate metadata...as well as also containing other
Data objects. The key, and the biggest stumbling block for most
scientists, is that have to start think of their data in more formal
terms of 'sampling domains' and 'ranges' (or the function between
'independent' and 'dependent' variables). Most seem quite comfortable
with the notation:
((x,y)->value). To that end, most of the methods in subs and graph
allow you to deal just with 'names' instead of having to even using the
word "RealType'.
A Jython cosole has been prototyped for Herschel IA. It
has a history mechanism allowing assemble successful commands
into a script. The Jython interface is one of the areas
which makes me think Herschel IA should join force with VisAD.
There is so much parallel between them.
I recently changed Curtis' JPythonEditor/Frame to include a history (up-
and down-arrows) in its immediate command mode, primarily because we
found in Linux the standard 'readline' does not provide this within the
Jython command line interpreter -- and _that_ is a real pain! As you
may be aware, this question has come up several times in the Jython
community, and you might consider making this available (if possible),
since the idea of automatically pasting successful commands into the
script is quite appealing.
Like I (and others) have mentioned, it is sometimes practical to
interface VisAD Data objects to other graphics libraries...
Then for a long term project multiple external packages have
to be maintained.
Yes, that would be the downside - especially in something that is
evolving. We do not, at this point, though have any projects here that
are in need of more refined 2D graphics presentations; however, I'm
always looking for opportunities here to do things like that. My
history is in this type of work.
I am sure will get back to this. I writing wrapper classes to
simplify 2D plotting using VisAD. It is intended to help Java
developers but Jython users can benefit on the one-stop-shopping
type of plotting control. I feel it bears much resemblence to
part of the python.JpythonMemthods class but I haven't looked
closely. I am still learning the nuts and bolts of VisAD
and writing the wrapper class is a good way to learn.
I'll be very interested in what you come up with! Actually, I've been
putting more stuff into subs.py and graph.py recently...primarily to
allow developers and scientists to use these as examples they can more
easily modify to meet their specific needs.
Thanks again for your thoughts and suggestions...
tom