Autoplot Application (20180224a)
Plotting many orbits.
Autoplot attempts to allow 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 Autoplot2017a 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.
Single-jar version, autoplot.jar, can be run without network access and from the command line.
Mac DMG Release is available.
SourceForge has made changes which require special actions in the release process. Please be aware that this may cause unusual behavior.
Bugfixes (2018-02-21 r22097):
- always get the makeTutorialHtml from the website, since release showed there were issues.
- 1962: catch strange ConcurrentModificationException when running http://autoplot.org/data/script/examples/plotsAndAnnos2018.jy
- 1956: horizontal lines were not drawn because bounding box had height=0.
- dataset toString method had a branch which would cause RTE when format was %d (integer).
- clean up of synchronize function, recent changes could cause index-out-of-bounds error.
- 1687: various improvements and clean-up of Jython completions engine.
- rte 0413258104: format timetags of Units.cdfTT2000 was mis-handled for SCALEMIN and SCALEMAX properties.
- rte553: property assign units for ds[0,:]=ds1 and ds1 has units and ds does not.
- print a warning when a FloatDataSet is used to store time location data, since this is rarely going to work.
- 1959: fix layout doesn't swap plot positions when rows are out-of-order (item 4).
- 1956: FCE line which was way off-canvas still affected PDF output, messing up the bounding box. Thanks, Bill!
- 1957: correct where set depend0 cadence would reset improperly to picoseconds. Thanks, Bill!
- 1958: NetCDF library didn't properly handle spaces in filenames. Thanks, Masafumi!
- 1953: Masafumi found cases where rounding was done incorrectly, probably because kludgy code was removed. Thanks, Masafumi!
- Autoplot server (port 12345) improperly created the Jython environment, breaking plot named parameters. Thanks, Eric!
- 1952: uncommitted changes implementing flag for indexed properties and allowing just AbstractDataSet to handle properties.
- rte_1463914178: throw a more descriptive error do we can figure out what's going on.
- 1953: kludgy code resulted in errors with some CDF_TT2000 times, showing 23:61 instead of 00:01 under some conditions. Thanks, Ivar!
- 1952: reimplement isInheritedProperty to avoid so much string searching with slice operations.
- extent code used isMonotonicAndIncreasingQuick, when new isMonotonicQuick is sufficient. Thanks, Ivar!
- 1952: rewrite within(), used in huge scatter, to dramatically improve performance. Thanks, Ivar!
- 1952: "where" uses bigger blocksize for 5000000 record operation, showing modest (20-30%) speed improvements. Thanks, Ivar!
- direct access of longs from CDF file was never verified, now it's correct.
- rte_0609678840: old icon reference in jnlp single-instance code corrected. Thanks daekyu!
- 1952: Ivar had a code which showed where a check for each of 5000000 points' properties was slowing things down, this test is limited to QDataSet.MAX_PLANE_COUNT (=50) now..
- 1748: insert PWD before completions. Thanks, Masafumi!
- minor improvements to the contours renderer. Thanks, Masafumi!
- NullPointerException when Python getDataSet didn't properly handle null. Thanks, Ivar!
- rank 1 Join of us2000 datums didn't properly report the units, breaking autoranging for "vap+inline:2016-10-12T12:00Z&RENDER_TYPE=eventsBar
- getDataSet calls were invoked with completions, causing strange delays and failures.
- 1950: make PyQDataSet putProperty consistent with Ops.putProperty. Support "dimensionless - Hz" to result in Hz, regardless of argument order.
- tweaks to the mash up GUI, such as reducing its size and correcting layout problems. Thanks, Craig!
- 1949: small angle bug in filled circle. Disable path-simplifaction code which was messing this up. Thanks, Masafumi!
- 1948: spaces in CDF parameter names fails.
- 1596: Mash-Up URIs, which use vap+inline, support make-aggregation. Thanks, Craig!
- added programmatic method to reset the axis units to a convertible unit. Thanks, Masafumi!
- putValues function was inadvertently broken in early January, when dataset had units. Thanks, Sadie!
- AutoplotServer "-o -" didn't work (to output to stdout), because arguments parser didn't handle "-" properly.
- 1946: cadence was handled inconsistently for filled histogram, between the fill and the outline. Thanks, Scott!
- in ensureMonotonicAndIncreasingWithFill, where the last value was assigned even though the value was not monotonic. Thanks, Ivar!
- updating QC status properly repaints.
- 1939: FILL_VALUE is now propagated to CDF. Thanks, Ivar!
- 1944: invalid .jy reference in the address bar would prevent "load" action on script panel.
- improve error feedback when time location is added to time location.
- colons in filenames of pngwalks are again handled properly. Correct interpolation used to make thumbnails of small images, and properly handle .gif files.
- downloadResourceAsTempFile assumed it had a monitor, and old code example used None for monitor.
- 1942: limits on interpolation in synchronize.
- collapse GUI needs to check to avoid runtime errors.
- 1941: orphaned monitor with aggregation.
- format to CDF removes old CDF file before writing new one, so new result is not affected. Thanks, Ivar!
- improve error message when ISO8601 time is sent to DatumRangeUtil.parseTimeRange (not parseTime).
- add tickSpacing property to orbit control GUI.
- console "AP>" prompt tooltip shows the stack trace at the last highlighted message.
- indgen returns an IndexDataSet that takes no memory and is well-suited for Jython scripts.
- Orbit plot allows the tick frequency to be controlled. Thanks, Bill!
- Property editor now allows "edit selected" on root of array. Thanks, Jeremy!
- Jython gets new "dataset" command which takes properties as named parameters.
- annotation command allows "OutsideSE", and corrects offset for OutsideNE. Thanks, Ivar!
- annotation command allows "" for rowId and columnId, which anchors to the canvas boundaries.
- Improve create-pngwalk feedback with $Y$j_$H$M$S(subsec,places=3), and include $H$M$S$(subsec,places=3) in examples.
- AutoplotDataServer supports HAPI by generating info and data responses. Thanks, Bob!
- tune huge scatter for when data units are the same as axis units.
- FDataSet can provide access to raw float values, avoiding numerical noise from float-to-double casting, using new capability.
- several rebin functions renamed to binAverage, since they are unlike the IDL routines and the name causes confusion. Thanks, Masafumi!
- new annotation command is easier to use than previous calls to create annotations from scripts. Thanks, Masafumi!
- Contours renderer has more controls now. LabelCadence is now a string to support "20em". Thanks, Masafumi!
Less recent features:
- update RBSP orbits to 2017-10-02.
- script editor has "print" menu item, which provides dialog and prints with syntax highlighting.
- LDataSet can provide access to long64 values, using new capability.
- Check for valid access URL in CDAWeb metadata, so that valid datasets continue to work.
- LDataSet.putValue() checks for NaN and assign the smallest long value, so at least it's clear when a mistake is made.
- orbit mode has control for tick spacing (e.g. "2hr"), under the controller node.
- introduce cumulativeMin and cumulativeMax to scripting.
- 617: ASCII editor improvements.
- improvements to completions in Jython script panel.
- 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.