Releases: p-j-miller/csvgraph
csvgraph 4v3
There is no new functionality in 4v3.
The latest version of ya_sprintf (2v3) from https://github.com/p-j-miller/ya-sprintf is now
used, in particular the function ya_shortf() is used in “save as CSV” which means this
operation is much faster (over 5* faster on large files when writing to a SSD). A side effect of
this change is that the CSV file created will be smaller (a file that was previously 6GB was
reduced to 5GB, while a 64KB file reduced to 50KB). Writing a csv file in this way and then
reading it back is now guaranteed to be “round trip exact” and this has been validated for all
possible values.
All 3 versions of the executable provide identical functionality, csvgraph64x is recommended as this is the fastest.
csvgraph 4v2
Cepstrum analysis added. This is useful for seeing the harmonic structure of a waveform. It
has been used for defect detection, measuring the existance and delay time of echo’s etc.
Window for FFT changed from Hanning to Nuttall Figure 12 (see 7.30 FFT in the manual).
Prompt relating to duplicate X values (when they were present in the input csv file) deleted
– duplicates are left (and will be saved if the “save-as CSV” function is used).
Right Clicking on a point in the graph now displays 1/X as well as X (useful for Cepstrum
analysis where 1/X is frequency).
1st version built with Target Platform "Windows 64-bit (Modern)" of the C++ Builder 12.1
compiler (supplied as csvgraph64x.exe). This has resulted in a significantly larger executable,
but has also provided faster execution of many functions. It has also resulted in the “RAM
used” shown being different to that shown in Task Manager (the increments when traces
are loaded are the same in both).
Updated icon – which better scales to different sizes.
Latest sorting code from https://github.com/p-j-miller/yasort-and-yamedian used. This is a
little faster.
Per-Monitor (V2) DPI awareness has been fully implemented, this needs Windows 10 1703
or above. This gives crisper looking text & graphics on screens with a scaling factor of >100%.
A side effect of this is that the font size for the axis titles can now be set over a wider range.
The right hand controls panel can now be hidden/restored with a left mouse click (previously
it had to be first undocked , then it could be hidden)
Csvgraph 4v1
Central moving average and Kalman filters added.
Standard median filter implementation improved (faster & more accurate).
If equal x values found in the input, CSVgraph now allows user to leave them as is or move repeated values slightly so the x values always increase.
Minimum absolute/relative error line fit improved (previously occasionally it would not find the best straight line).
GMR line fit could in rare situations generate a line with the wrong slope – fixed.
Changed to using C++ Builder 12.1 compiler.
csvgraph 4v0
Csvgraph now works with Unicode text (uft-8) so any characters can be used. That means that a csv file that is uft-8 encoded will be correctly read, and its BOM (Byte Order Mark) if present correctly processed. Column headings, the main titles and axis titles can all include utf8 characters. Utf-8 is backwards compatible with 7-bit ASCII so “conventional” csv files should be processed exactly as before. When saving a csv file, you have the option to specify that the file is created with a BOM. Filenames and the paths to files may also contain Unicode characters (utf-8). Note that saving a CSV file with recent versions of Excel creates a utf-8 format csv file with a BOM, and a BOM is required for Excel to recognise the csv file if you try and open it.
csvgraph 3v10
Added Smoothing spline filter
CSVgraph 3v9
Changes with 3v9:
Can now open a file that excel already has open (and error messages are better on failing to open files).
Better trapping of user pressing a "command" button while a previous command is still running.
Derivative now uses 17-point Savitzky Golay algorithm with user specified order (1->10 is actually used, can be set 1->infinity by user).
Savitzky Golay smoothing added as a filtering option (25 points, with user specified order, 1->10 is actually used, can be set 1->infinity by user).
Added 2nd derivative (d2y/d2x) to list of filters which uses a 25-point Savitzky Golay algorithm with user specified order (1->10 is actually used, can be set 1->infinity by user).
If a number is missing in a column referred to in an expression this will be set to nan.
Added constant "nan" for expressions.
If an expression evaluates to nan the line is skipped so this can be a powerful way to select points for csvgraph to display.
Added "variables" x and line to expressions. x is current x value, and line is current line number.
Updated expression handler so nan==nan and nan!=nan work as expected in expressions.
csvgraph 3v7
3v7 10/6/2023 –
“Show legends” tick-box added.
Changed to using Builder C++ 11.3 compiler.
Title is now centred above the graph.
Minor changes to sizes, fonts, etc in csvgraph.
csvgraph 3v6
3v6 3/6/2023
Changes from 3v5:
- Long column headers now cause a scroll bar to be automatically added to the X & Y listboxes so they can be fully seen.
- Save x range on screen as CSV added to File menu.
- Option (tickbox) added to add basename of filename to legends of traces on the graph, which is useful if the same column is read from multiple files.
- Y axis title automatically added unless user specifies one (based on column header of 1st trace added).
- Added option to load X as Value/60 (sec->min), Val/3600 (sec->hrs), val/86400 (sec->days).
- Error handling for X values in a user defined date/time format improved, and trailing whitespace now allowed.
csvgraph 3v5
On a right mouse click when a line is selected then the slope of this line (dy/dx) is given as well as the coordinates of both ends of the line.
A filename can be given on the command line (on earlier versions this did not work for the 64-bit version).
An expression containing a function is now allowed for the y axis (e.g. max($2,0) ).
csvgraph 3v4
This fixes a dpi handling issue with multiple monitors on the 64 bit version.
No changes to functionality.