Autoplot Application (20170901c)

Colorscatter mode is used to make silly plot of Bx, By, and Bz on a rotating spacecraft.
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.
Bugfixes (2017-09-02 r21299):
- 1884: "import autoplot as ap" was broken since the org.virbo refactoring.
- 1511: tighten up code which could reset the y axis autorange property because " " was in the .vap for a filter.
- bugfix: when pngwalk template is file:///home/jbf/ct/hudson/artifacts/test070*.png, the filename was clipped improperly.
- 1883: jython PyQDataSet corrects handling of "property" calls, and __tojava__, to correct mutability bugs.
- cdf export writes DEPEND_1 and DEPEND_2 as non-time-varying when they are rank 1.
- 1882: jython indexing bug, where SPE[i,j,r] is used with scalars i and j, and array r.
- 1881: weightsDataSet always returns a BundleWeightsDataSet, even for simple bundles, because fill was not properly handled.
- rte 0579778410: some path resulted with NullPointerException in CDF editor panel
- 1852: metadata tab for join dataset doesn't show properties of each joined data set.
- 1869: listings of Hudson http showed where subdirectories show up in listings (ls /a/->/a/b/c/), causing strange problems.
- 1875: preserve the scientist's timerange
- 1129: unnecessary 1-second delay in waitUntilIdle when producing pngwalks corrected.
- round of FindBugs cleanup.
- Corrections to waveform dataset plotting with Series renderer mode.
- 1878: FlattenWaveformDataSet can now detect that result is not monotonic.
- 1878: FlattenWaveformDataSet would improperly propagate fill metadata for the DEPEND_0 values.
- 1876: first line of CSV was always handled as a header, dropping the first record.
- 1876: Excel CSVs start with 0xFEFF, to assert UTF-8, which also caused problems.
- error message for dataset length mismatch was mis-reported in validate.
- in PNGWalkTool, show unique part of filenames in .../*/foo/bar.png. Before bar.png was shown for each image.
- item parameter works properly for das2server dialog for all streams now.
- Don't draw lines at tick locations when "opposite axis" is used.
- 1871: many timerange text fields don't use history. Thanks, Dan!
- flattenRank2 always returns a rank 2 dataset, generating 0,1,2,... when DEPEND_0 or DEPEND_1 is missing.
- 1873: incorrect reset of slices filter. Thanks, Joe!
- 1869: restore function of pngwalk:http://jfaden.net/hudson/job/autoplot-test070/*/artifact/test070_008.png.
- Ivar's script caught where new code didn't handle fill properly because BUNDLE_1 hid it.
- convertUnitsTo now checks that a BUNDLE_0 is not present, which might have old UNITS within. Thanks, Ivar!
- 1868: where with append triggered a branch where an immutable dataset's internal buffer was accessed with write code. Thanks, Kristoff!
- 1867: AverageTableRebinner interpolate Y before interpolating X, to support MMS FPI interleaved sample modes.
- rank 4 support was never implemented for ListIndexDataSetIterator, so inline with where would not work.
- 1866: catch CDF recCount=0, which causes reader to enter infinite loop, triggered when [200:300] was used and a non-time-varying DELTA_PLUS was found.
- 1801: dataset iterator is inordinately slow, put in optimal loops for collapse of rank 4 data.
- rte_0164874230: index out of bounds on Slice operation editor panel. Thanks, Kris!
- bug where rank 2 DEPEND_3 wasn't sliced properly is corrected. Thanks, Arya!
- 1865: add a little hysteresis to the LanlNNRebinner, so it doesn't flop back and forth with axis changes.
- small round of findbugs, including one real bug in DigitalRenderer with xaxis units.
- rte_1708171669: space in CDAWeb filter would cause RTE.
- 1860: fill data within bundles of data is marked as fill in the metadata tab.
- fix the setUnits filter, where it was using an old method. Thanks, Kristoff!
- 1858: extend autorange to include all data when bundled data has different units.
Older Bugfixes:
- method "BoxSelected" renamed to "boxSelected" to conform to Java and Java Beans conventions, and Jython refactoring supports old scripts.
- 1661: format to CDF corrected on Windows by doing extra garbage collections. Thanks, Kristoff!
- 1836: copy dataset internally when the mutable dataset is no longer mutable. Thanks, Kristoff!
- rfe528: star imports are supported. Thanks, Kristoff!
- 1836: ds.putProperty( QDataSet.UNITS, None ) would cause RTE. Thanks, Kristoff!
- 1853: copy over code from other makeCanonical branch to handle case where NullPointerException occurred.
- 1854: clean up code which relied on file.toString to construct URLs for the NetCDF library, which would break on Windows. Thanks, Kristoff!
- rte020756902: old bug where getAllUnits() once returned array of strings now returns array of units showed with recent refactoring. Thanks George!
- rfe528: old references to org.virbo.autoplot.AutoplotUI were not supported in jumbojar, because there were no direct references to the routine.
- unintentionally committed testing code prevented PNGWalk creation on Windows machines, since May 03, 2017. Thanks, George!
- improvements to events renderer to better support nominal data.
- HAPI client considers data cadence when requesting data.
- rfe528: correct warning message import being corrected when correction wasn't necessary.
- 1850: when .jyds scripts reject because of error, the red squiggle was placed on the incorrect line.
- 1849: QC save button cannot be enabled if all records have been QC-marked. Thanks, Kris!
- 1766: $(Y,end)$m$(d,delta=10) now works.
- 1836: ArrayDataSet.copy used getBack to get the backing array to determine the class, causing runtime error with new mutability checks.
- 1840: display data made a little less confusing. Thanks, Ivar!
- correction of templates in das2streams. Thanks, Chris!
- das2stream reader allows yunits to be missing, just print a warning.
- rte_2052946987: index-out-of-bounds caused by failure to update firstIndex, lastIndex when data is reduced and all data is outside of the visible region. Thanks, Kris!
- 1839: append of two rank zero datasets should be a rank 1 dataset. Thanks, Kristoff!
- rte_1917581137: bug which shows with x2go and Ubuntu Mate. Thanks, Kris!
- digital renderer allows %E for exponential notation.
- colorbar resize control points allow resize of the vertical direction. Thanks, Ivar!
- rte_0153443069: CSV parser editor GUI would fail with NullPointerException because handling was delegated a sloppy code. Thanks, Mimai!
Features:
- 064: CDF formatting "bundle" named parameter allows bundle dataset to be written to CDF in separate variables.
- 515: improve support for new colorbars created in scripts.
- 592: allow remote scripts to be accessed over SFTP.
- add magnitude (of vectors) to the tree of filter operations.
- 591: Image URIs can be flipped horizontally or vertically, with ?xaxis=[360.,0,0.,2047].
- 064: ExportDataBundle is experimental system from aggregating a set of URIs for export into ascii tables, CDF files, and IDL savesets.
- New compile script for Autoplot which compiles within minutes instead of 20+ minutes, should have no effect
- 588: allow 64-point rank 2 waveforms. Bugfix were waveform scheme test didn't check rank of offsets, which can now be rank 2.
- synchronize functions allow rank2 data, where each channel is synchronized as a rank 1 dataset.
- DataPointRecorder (used with digitizing) allows the units to be reset. Thanks, Bill!
- matlab_jet_black0 color table added. Thanks, Seth!
- "lastyear" keyword supported in timeranges, to indicate the last year boundary.
- time range dialogs properly show recent timeranges.
- das2server dialog shows a droplist of items when they are identified by the server.
- Update RBSP orbits to Feb 2017.
- DasAxis foreground color is exposed in the property editor, under the controller node.
- 585: experimental TriScatRebinner added, to draw spectrograms from scatter data using Delauney triangulation.
- support new scheme, rank2WaveformRank2Offsets in hugeScatter and series renderers, for analysis with Ivar's new CDF files.
- rfe528: after years of being stuck with the "BoxSelected" mistake, this is finally corrected to "boxSelected"
- IDL/Matlab interface includes method for clearing used memory. Thanks, Masafumi!
Less recent features:
- start SAMP now adds a tab to show SAMP hub status. Thanks, Pedro!
- runtime error reporting includes a flag for JavaWebstart use.
- savToHdf.pro included to encourage use of HDF5 and discourage use of IDLSav files.
- 528: giant refactoring where org.virbo.autoplot is moved to org.autoplot, org.virbo.dataset moved to org.das2.qds, etc. More about this here.
- 580: time parser supports "P1D/lastday" to refer to yesterday, where lastday refers to last day boundary; also lasthour and lastmonth.
- 597: export to wav can now write files containing timetag mapping, to support Larry's animations.
- IDL/Matlab bridge supports bundles of data (coming from HAPI servers, for example).
- IDL/Matlab bridge can now be used with native Python (SciPy), using Python JPype package.
- fftPower of rank 3 join detects when results can be combined to make simpler rank 2 result.
- reducex supports rank 3 join.
- 1840: display data dialog allows copy points to clipboard.
- decimate function added, which keeps every Nth point. Thanks, Ivar!
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.