### Autoplot Application (20260213a)

Single-Jar : .jar files can be launched on Windows and Mac, and contain a shell script for launching on Unix computers.
dmg: a self-contained installer for Mac computers.
exe: a self-contained installer for Windows computers.
Built with Install4J multi-platform installer builder and deb and rpm are available as well. Thanks, Install4J!
On 32-bit systems, use the single-jar release and a 32-bit version of Java. These systems will be limited to 1GB of memory.

A Cartesian to Spherical operation was added to the Data Post Processing area.

Autoplot allows plotting of data from many data sources, including remote CDF files and HAPI servers. Datasets are identified with URIs, and by the URI's extension, data are loaded into one uniform data model. Data are then displayed by determining the rendering method and axis ranges to provide a useful display with interactive axes and mouse actions. The data can then be further processed with other operations like smooth and FFT, and Jython scripting provides a capable programming environment.

This is the Autoplot v2026a branch. This is an update to the production version containing bugfixes and minor new features. Java 8 is required.

Autoplot's development is guided by feedback from those using it. Thanks for your feedback!

Bugfixes (2026-02-13):

- 2792: Correct window position code when two monitors are used, total size wasn't accounted for. Thanks, Chris!
- 164: Das2Stream slice of peaks and averages should be conveyed as a bundle of peaks and average, not using BIN_MAX, to match old parser. Thanks, Chris!
- 2788: Don't use "scan" when multiple plot elements, not from one family (Bx,By,Bz), are used. Thanks, Ivar!
- 164: HugeScatter shows limits as well as Series. WARN is drawn after NOMINAL, not before. In the case where they overlap, WARN implies NOMINAL. Thanks, Chris!
- 164: Das2Stream yWarn and yNominal are supported. New Das2Stream to QDataSet parser is used by default. Thanks, Chris!
- 164: Das2Stream to QDataSet parser preserves more metadata in USER_PROPERTIES.
- 155: new Das2Stream parser properly handles data.min, data.max, etc. Thanks, Chris!
- 2787: add explicit resolution limit for Das2Server, clean up GUI. Thanks, Chris!
- 2786: reject when where(...) is used in ASCII URI, should be where=... Thanks, Sadie!
- 162: bug fixed in DataPointRecorder when third column is time column and last is nominal.
- 2785: Strange deadlock observed resolved by removing unnecessary synchronized blocks. Thanks, Connor!
- 161: New code in DataPointRecorder caused runtime error with some existing scripts. Thanks, Andrew!
- Run batch tool sets "copy script URI" mouse action before attempting run.
- 2783: --script --help when PWD is used now works properly.
- Minor corrections to command line arguments, including "Welcome to Autoplot" is not printed with --quietLoggers. Thanks, Kristoff!
- 2781: change hadn't been pushed for build.
- 2781: check bounds when switching dimensions with slice GUI. Thanks, Connor!

Older Bugfixes (2025-01-07):

- 2778: check for integers in float parameter values.
- 2780: Run Batch Tool cancel press is handled properly.
- 2780: Run Batch Tool re-enables "go" button after run and then editing.
- 2779: improper use of the PDS4-parser library resulted in open FileChannels and files which would fill the /tmp drive. Thanks, Larry!
- 2777: getDataSets command didn't indicate progress.
- Remove extra comma in import list when converting from Jython to Java.
- Make the "Here we go..." deep stack recursion detector less sensitive, since it seems to be misfiring. Thanks, Ivar!
- Remove debug printlns from a number of locations.
- Show BIN_MAX_NAME, DELTA_PLUS_NAME, etc in properties metadata tab.
- Das2Stream Datum: and DatumRange: handle time locations in metadata.
- digital renderer handles BUNDLE_1 (bundle descriptor scheme) dataset.
- 2775: get PDS4 metadata for Group_Field_Binary and Group_Field_Character
- 158: properly support bundle of datasets with error bars in Das2Streams. Thanks, Chris!
- 155: restore support for error bars in Das2Streams (see examples).
- Case where ds[0,0] on rank 2 data had runtime error, I think because 0 and 0 were rank 1 QDataSets.
- Remove old PDS-PPI DIT/DOS data source, which is no longer operational and PDS3/4 and HAPI support deprecates it.
- 2774: setOutputParam without constraints works again. Jan 2025 validate code didn't consider that the constraint might not be specified.
- 1687: limit length of string shown in completions, so that resourceURI is not obscured.
- 2768: Initial GUI size needs to be large enough to show all buttons.
- 154: don't drop units in TCA datasets since CDF labels often contain %{UNITS} macro. Thanks, Connor!
- Git pull and commit actions now show dialogs over undocked editor, not the Autoplot canvas.
- 150: allow TCA datasets with L as the independent parameter to get the label "L" from the dataset. Respect " " to mean don't automatically set the label to %{RANGE}. Thanks, Connor!
- In run batch, don't treat escape as cancel when cancel is not enabled.
- 2767: GrannyText editor cannot be resized on Mac, link to documentation.
- GrannyTextRenderer cleanup fixes "glow" property and removes kludgy code which detected URL in text to display image (<img src=""> should be used instead)
- Support UTF-16 encoded character streams for .csv and .dat (ASCII table source now officially supports non-ASCII)

Features:

- script and console tabs initialize sooner, after verifying this did not affect launch time.
- add diffMod, mod, and modp filters to operations on data tab.
- 645: Das2Server uses timetags to indicate progress by default now.
- Das2Stream to QDataSet picks up yWarnMin, yWarnMax etc and puts them in METADATA as with CDF source.
- Das2Stream directly to QDataSet is always used.
- StringTransmogrifer interface throws exception or returns alternate text, and has new find to replace strings found anywhere in text.
- add cartesianToPolar function and filter to match polarToCartesian. add cartesianToSpherical. Thanks, Scott!
- TimeParser supports $Z, three-character time zone codes.
- Be a bit more cautious about assuming PDS4 data type is CDF_TT2000.
- 2670: .batch file can be entered in the address bar to enter the Run Batch GUI with the settings.
- 2670: Run batch supports multiple machines.
- 2670: Run batch can finally be used from the command line.
- 866: Run batch tool file format new format is handled, still write old format unless setenv newBatchFileFormat to true.
- 160: show both 100% confidence and 68% confidence intervals when metadata is available. (This may change.)
- 2670: beginnings of run batch from command line. 1-parameter batch jobs are supported now.
- 159: allow orbits files to be more lax, allowing csv files and comments. Thanks, Darrelle!
- -q is added to mean --quietLoggers. Thanks, Kristoff!
- Look for "v_perp" and "v_par" as well when deciding how to automatically slice a rank 3 qube. Thanks, Connor!
- 865: HAPI client uses abouts.json. Thanks, HAPI team!
- 864: Add option for native file dialog to pick .vap files. Thanks, Allison!
- 863: Run Batch ETA calculation is shown by default.

Less recent features:

- Run Batch Tool has "active focus" checkbox which will scroll the list to what is being worked on.
- add git.jfaden.net to list of gitlab filesystems. Let me know if you have others you would like to add.
- guessSlice looks for "vperp" and "vpar" dimensions. Thanks, Connor!
- Jython to Java detects constructor calls and uses this to declare Java type, instead of using Object for everything.
- Copy full metadata path to clipboard, since this is often useful when coding.
- Improvements to Jython completions, such as limiting the length of strings exposed to protect the GUI.
- improve password handling in KeyChain, don't allow extra space which gets in there somehow.
- Add Largest Triangle Three Buckets (LTTB) code written by ChatGPT (which it wrote using QDataSet, worked without any modifications, see the session)!
- More characters added to list of allowed characters in ASCII file column names (% and #), to support BlueDriver app.
- Introduce "upper" and "lower" keywords for RichPNG, so that plots can be located relative to page bottom.
- Introduce plotInfoFile switch for ImageDataSource, so that third-party images can be decorated.
- Series connector looks at AVERAGE_TYPE for ...MOD24, ...MOD360 etc.

Data is input from:

- ASCII files (.dat,.txt)
- CSV files (.csv)
- Binary files (.bin)
- CDF files(.cdf)
- OpenDAP servers (.dds, .dods)
- PDS4 files (.lblx)
- PDS3 files (.lbl)
- Excel spread sheets (.xls)
- das2Streams (.d2s, .d2t, or .das2Stream)
- HAPI Servers (vap+hapi:)
- CDAWeb data server (vap+cdaweb:)
- das2servers (vap+das2server:)
- QStreams (.qds) (serialized version of internal model QDataSet)
- Plasma Wave Group das2 Server
- NetCDF files (.nc,.ncml)
- HDF5 files (.h5,.hdf5)
- DODs servers (.dds)
- Cluster Exchange Format files (.cef)
- Fits Format Files (.fits)
- Images (.jpg, .png, .gif)
- Wav audio files (.wav)
- ODL files (.sts)
- IDL Savesets (.sav)
- Matlab .mat files
- NumPy .npy files
- JSON lines file (.jsonl)
- RadioJove .sps and .spd files
- ESA TFCat files (.tfcat)

autoplot.org is the website containing more information than this launch page.