### Autoplot Application (20251212a)

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!

Fun blooper from Juno study. Have a nice AGU everyone!

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 v2025a branch. This is an update to the production version containing bugfixes and minor new features. Java 8 is required.

To run on 32-bit systems, use the single-jar release and a 32-bit version of Java.

Bugfixes (2025-12-10):

- 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)

Older Bugfixes (2025-11-14):

- DataPointRecorder resolution limit increased to 100 nanoseconds, was 100 microseconds. Improve feedback when a bunch of points are received. Thanks, Sadie and Lily!
- rte 567726773: script running code assumed there was a non-null message attached to the caught exception, causing NullPointerException and hiding the actual exception. Thanks, Lily!
- 2762: FlatLAF now also has control for font, as quick fix for high resolution displays. Thanks Connor and George!
- 151: Clipped label containing units with superscript was clipped, because macro was used when calculating bounds. Thanks, Connor!
- 150: Label the ephemeris parameter when it is not time. Thanks, Connor!
- Insert plot looks at adjacent plots to detect when x-axis and title should be turned off.
- 2760: LabelConverter for interval which is not identified
- 2759: Run Batch tool resourceURI parameter didn't like spaces and parens
- Resolve references like %{UNITS} and %{LABEL} when writing Rich PNGs.
- New code which more carefully formats the Rich PNG json showed a bug in DatumUtil.bestFormatter with "Deg F" location units. Thanks, Jenkins!
- 2747: slice-at-datum was disabled, incorrectly.
- 2753: don't reset to time/date ticks if ephemeris data is showing. Thanks, Connor!
- 2752: clear the BUNDLE_1 which was common to all ticks. Thanks, Connor!
- RichPNG supports flipped axis property. This affects PNG Walk Tool, ImageDataSource, and Servlets.
- Case where TCA Ephemeris labels could not be found resulted in NullPointerException. Thanks, George!
- 2750: HDF5 from Personal Space Weather Station showed where slice array was mishandled. Thanks, Bill E!
- rte_0324293530: code which infers typeness to XML and JSON files assumed files were at least 1024 bytes.
- correction to Schemes.isComplexNumbers. Add example to Schemes.complexNumbers.
- |trim(2016-10-04,2016-10-10) now works properly. Thanks, Sadie!
- %{RANGE_NOORBIT} kludge needed more attention. Thanks, Darrelle!
- 3: check for orbits which start with /, since it was very confusing when local file reference did not work. Thanks, Jeremy!
- add verifyJythonInline so that isDataMashupJythonInline can be evaluated without creating a GUI and adding to recent timeranges.

Features:

- 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.

Less recent features:

- automatically turn off x-axis and title when surrounding plots have this turned off to make a tight stack.
- Remember FileChooser size. Thanks, Ivar!
- FileChooser shows details view initially on some platforms. Thanks, Ivar and George!
- 858: RichPNG properly limits resolution when formatting.
- 858: RichPNG checks for axis flipped property.
- add complexNumber QDataSet scheme.
- add median, mode, and mean filters. Thanks, Cindy!

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)
- PDS4 files (.lblx)
- PDS3 files (.lbl)
- Excel spread sheets (.xls)
- das2Streams (.d2s 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)

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