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 Eric, > Has anyone used the VisAd classes for displaying simple time-series data? If > so I'd appreciate a pointer to a simple example (and maybe a comment or two > on how to format the data for VisAD injest) . Just to be clear I'm looking > to plot say temp vs time etc for a group of stations. I also have gridded > data types so I know I can already make use of VisAd for that part of the > equation. I've done a few things with time series of images, but not data like you describe. Hopefully someone who has will respond. There are many possibilities. 1. You could organize your data as a FieldImpl with the MathType: (station_index -> (lat, lon, (time -> temperature))) and display it with the mappings: lat -> YAxis lon -> XAxis time -> ZAxis temperature -> ZAxisOffset temperature -> RGB If your stations aren't too dense and you set the right values in a call to setRange on the mapping to ZAxisOffset, you may get a sort of 2-D field of little time series. 2. If you want to select one station's time series at a time, then display the FieldImpl in two Displays. One with the mappings: lat -> YAxis lon -> XAxis the second with the mappings: lat -> SelectRange lon -> SelectRange time -> XAxis temperature -> YAxis Then create a custom cursor in the first Display that you use to select a station, and use the selection to set narrow ranges in lat and lon to select just the time series for that station. A little tricky perhaps. 3. Or you could create some other mechanism for selecting stations, then call getSample() on the FieldImpl with MathType: (station_index -> (lat, lon, (time -> temperature))) to get a station data object with MathType: (lat, lon, (time -> temperature) and just Display it with the mappings: time -> XAxis temperature -> YAxis If this seems confusing, please feel free to ask for clarification. > #2) In trying to run "VerySimple" I get the following error. I've got the > spreadsheet working fine (Implying VisAd Classes are located) , and I > believe all my CLASSPATH variables are set up ok. I'm running NT 4.0,java > version "1.2" > Classic VM (build JDK-1.2-V, native threads) > > D:\JavaCode\misc\VisAD\visad\examples>I like VisAD am not familiar with the > "promiscuous" Unit but would be willing to learn ;). The PromiscuousUnit exists for constants like Real(1.0) that need to be arithmetically compatible within any Unit. Note that Unit = null means something different: that the value has no Unit is not compatible with non-null Units. > D:\JavaCode\misc\VisAD\visad\examples>java -ms64m VerySimple > Couldn't decode attribute y:units="promiscuous": Unit not in database > Couldn't decode attribute x:units="promiscuous": Unit not in database > Exception in thread "main" java.lang.NullPointerException > at visad.util.DataUtility.makeSimpleDisplay(Compiled Code) > at VerySimple.main(VerySimple.java:24) This is puzzling. When I run 'java -ms64m VerySimple' I get: Incompatible initial and maximum heap sizes specified: initial size: 67108864 bytes, maximum size: 25165824 bytes The initial heap size must be less than or equal to the maximum heap size. The default initial and maximum heap sizes are 8388608 and 25165824 bytes. Could not create the Java virtual machine. Please try running 'java VerySimple' (and please make sure you're in the examples directory). If that still gives the NullPointerException, then please run: jdb VerySimple Initializing jdb... 0xc6:class(VerySimple) > run VerySimple and send me the stack dump from that, which will include line numbers to help me figure it out. Thanks, Bill ---------------------------------------------------------- Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706 whibbard@xxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738 http://www.ssec.wisc.edu/~billh/vis.html
visad
archives: