Autoplot Application (#{tag})
Study of parallelizing binary operations so that multiple CPU cores are used showed that simply avoiding use of DataSetIterator speeds things up 3-4 times. See the script.
Autoplot allows plotting of data from many data sources, including remote CDF files and OpenDAP servers.
Datasets are identified with URIs, and by the URI's extension, data are loaded into the internal data model. Data are then
displayed by guessing the rendering method and axis ranges to provide a reasonable, useful view of the data. Data can then
be additionally processed with other operations like smooth and FFT, and Jython scripting provides a capable programming environment.
This is the Autoplot v2020a branch. This is an update to the production version containing bugfixes and minor new features.
Java 7 is now required. Java 8 will be required sometime soon.
Run with 4GB of memory (64-bit Java only): autoplot_4GB.jnlp
Single-jar version, autoplot.jar, can be run without network access and from the command line.
Mac DMG Release is available.
Bugfixes (2020-02-14 r24583):
- rfe704: add script to tools uses setScriptLabel and setScriptTitle for menu label.
- Colors are encoded in vaps as "#040404 (Dark Gray)", to improve readability of .vap files.
- 2239: Time Range Tool's NRT tab clean up, use DasAxis to show new setting.
- improve feedback for truncated CDF file.
- applyUnaryOp performance improved for rank 1 data.
- 2235: atan2 documentation tweak
- getApplication().getScriptPanel() would return the editor, not the entire panel. Codes should use getApplication().getScriptEditor() for this.
- bugfix:autoplot --script=https://github.com/.../extractReferences.jy didn't work because it would load the html from GitHub directly, not via GitHubFileSystem.
- clean up of old code which allowed loading URIs found in .vap file.
- 2114: Support vector array in NetCDF file using CDAWeb metadata. Thanks, Andres!
- bugfix parse of |cleanData(11)
- rfe 1978078909: check for null selection in CDFEditorPanel, and review use of all JTrees. Thanks, Dan!
- clean up of row change events to fix noise problems on Jenkins server.
- 064169462: multi-variable selection in CDF editor could lead to NullPointerException. Thanks, pmaf and orufai!
- 242122682: condition where ...cdf?var[:,0] would result in runtime error.
- experiment with Level.CONFIG, to be used to log client use of DasCanvas.
- getCompletions call of CDF would download file, the monitor was used twice.
- editor javadoc location is tolerant of paths missing final /, and generated URLs should not have spaces for new location.
Older Bugfixes:
- 2234: restore vap from InputStream should always assume that the InputStream is UTF-8, since on Windows-jumbojar was using windows-1252. Thanks, Chris and George!
- Ephemeris which did not contain LABEL property used the NAME property instead, but layout code didn't have this logic, clipping the display.
- 2169: properly handle X,Y,Z scatter and X,Y scatter schemes. Thanks, Chris!
- digital renderer would draw text which was outside of the axis bounds, reducing performance.
- 2232: Script editor would load data instead of script when "script=" keyword was used.
- NybbleDataSet slice operator was not implemented. Thanks, Chris!
- AUTOPLOT_DATA setting would not reset pycache area location. Thanks, Darren!
- new SHADE error bar mode didn't consider case where first point was not valid. Thanks, Masafumi!
- round of findbugs cleanup.
- occasional NullPointerException when loading particular .vap files, caused by beans binding, is handled. Thanks, Kris!
- clean up of warnings issued to stderr unnecessarily with magnitude function.
- Single-record spectrograms could not be sliced to show the one record. Improve feedback when no record is found. Thanks, Ivar!
- bugfix: 'insert plot elements from clipboard plot' dialog was not centered on app.
- improve feedback in TimeParser, trivial performance and code clarification.
- 1687: completions bug where extra line prevented come completions fixed, support third-line completions when continuation is used.
- LANLNearestNeighbor supports non-monotonic ytags.
- 2228: migrate preference's get wouldn't check the old location for a value, so old prefs like data cache location could be lost. Thanks, Ivar!
- 2227: Jython fixImports never closed input file, relying on OS to implicitly close the file and preventing some operations on Windows. Thanks, Jim S.!
- rte 1638285244: guard against strange index-out-of-bounds with JTable when digitizing. Thanks, Ivar!
- 2225: new app steals editor panel from old app. Thanks, Ivar!
Features:
- Throw more abstract error when a CDF variable pointer points to a location past the end of the CDF file.
- DasProgressPanel can be a Java/Swing component, so that it can be part of a GUI.
- speed up binary operations for rank 1-3 operands by avoiding DataSetIterator use, which is known to be slow. (By a factor of 3-4!)
- currentLine function reports the Jython code name and line number of the call, useful for debugging.
- editor scripts don't need special "editor" and "script" symbols, since they can use getApplication().getScriptPanel().
- 360: support Jython "examples":[2,3,4,5] which doesn't require that the value be one of these.
- 672: cleanData allows the number of sigmas to be set.
- 672: add "cleanData" function which removes data three sigmas away from the mean.
Less recent features:
- experimental code allows "data_1" to be used for a ticksURI. Do not use this in production.
- 707: CDF reader supports multiple variables to be read into a bundle, GUI supports multiple selection.
- 672: CDF virtual function "arr_slice" is added.
- 705: environment variable "AUTOPLOT_DATA" can be used to reset data and configuration location.
- Jython script editor "inspect URI" mouse menu item now senses exportDataSet and uses the format editor GUI instead.
- 704: autoplot --script ... --help will print the script's arguments.
- 704: add support for boolean Jython parameters (True/False instead of 'T'/'F').
- 2223: contours plot has new line style property.
- 1801: add wordy but fast implementation of magnitude for rank 2 and rank 3 datasets.
Known issues:
- see Source Forge
- Bugs often have a four-digit ID and can be reviewed with https://sourceforge.net/p/autoplot/bugs/<ID>/.
- Features typically have a three-digit ID and can be reviewed with https://sourceforge.net/p/autoplot/feature-requests/<ID>/.
This completes the feature set for the new production branch. No major features will be added before branching this version.
A production branch will be started in a couple of weeks, and the "Start Autoplot" link at the top of
autoplot.org will run this version.
Feedback on the function and quality of this release is greatly appreciated!
Data is input from:
- ASCII files (.dat,.txt)
- CSV files (.csv)
- Binary files (.bin)
- CDF files(.cdf)
- Excel spread sheets (.xls)
- das2Streams (.d2s or .das2Stream)
- ViRBO's TSDS server
- CDAWeb data server (vap+cdaweb:)
- das2servers (vap+das2server:)
- QStreams (.qds), QDataSet on a das2Stream
- Plasma Wave Group das2 Server
- NetCDF files (.nc,.ncml)
- HDF5 files (.h5,.hdf5)
- DODs servers (.dds)
- Cluster Exchange Format files (.cef)
- Fits Format Files
- Images (.jpg, .png, .gif)
- Wav audio files (.wav)
This is not complete, and limitations include:
- Quantities of rank 3 dimensionality (e.g. flux(Time,Energy,pitch) are plotted by slicing.
- Quantities of rank 4 dimensionality (e.g. flux(Time,Energy,azimuth,sector) are plotted by slicing twice.
autoplot.org is the wiki website, and contains
more information than this launch page.