OPC Calibrator is software to calibrate an optical particle counter. The methodology is published in the peer reviewed journal Atmospheric Measurement Techniques.You can download the paper at https://www.atmos-meas-tech.net/5/1147/2012/.
The basic premise is that optical particle counters measure light scattered from individual particles and this in a highly nonlinear and often non-monotonic function of particle size - the property we actually want to know. For calibration puposes we much prefer to deal with linear functions so with this software we calculate the scattering cross section of our calibration particles (which is proportional to amount of light scattered) and calibrate in terms of this property. When we know the calibration of the instrument in terms of scattering cross section another piece of software called CS to D Converter (https://sourceforge.net/projects/cstodconverter/) can convert the calibration to particle diameter based upon the scattering properties of the particles we are measuring in the real world.
For Windows you can simply download the latest binary release zip file from https://sourceforge.net/projects/opccalibrator/files. Unzip the files to any folder on your computer or even a thumb drive. Then double click the exe file to run the software.
For Linux or Mac, the software will need to be built from source. You can grab the source code using git from https://sourceforge.net/p/opccalibrator/code/ci/master/tree/. I will confess to never having tried to build this software on anything other than windows, but everything uses supposedly cross platform code and libraries. You will need to first install wxWidgets version 3.0 (the software will not compile against version 2.8) and PLplot. Note that PLplot version 5.13.0 (the current version as I write this) has a bug which means that exporting the plots from OPC Calibrator will not work properly. The bug is now fixed, so you can either build the library from the trunk source or await version 5.14. You will then need to write a makefile or set up an Eclipse or Xcode or similar project to build the source code. If you are interested to do this then let me know, I'd be happy to help you out and feed any code changes back into the project.
The idea is that this software should be much more user friendly than trying to do things with generic plotting and fitting software. Here are the basic steps requires
This is in the dropdown on the top left. The selection is for both the instrument and the file type. If you have an instrument that is not listed or log with some different software then get in touch and it might be possible to add support.
Hit the "Add OPC data file" button and select a file containing calibration data. You can add multiple files if needed.
Edit the table by changing the contents of the particle Diameter (micron), +/- (micron), Standard Deviation(micron), Particle Composition, Start Time, End Time and Date columns. As you do so the calculated values in other columns will change and the plots at the bottom right will start to be populated. Note that the Standard Deviation column is actually not used in the calibration, so can be omitted if you wish.
Often the channel with the highest peak is not the actual mode channel representing the calibration particles. This may be due to a large number of small particle contaminants or an effect of multiple gain stages. The histograms show the number of particles in a channel divided by the channel width in A-D counts which can cause a step change at gain stage matching points. The mode channel in the histogram is hashed with diagonal lines. If the mode channel selected by the software is not correct then simply edit it in the table. You will note that when you select a histogram, the apropriate line in the table is highlighted, when you edit the mode channel column the hashed histogram bar will change and the edited text will be in bold to show it has been edited. At this time you can also edit the +/- (A-D counts) column, if for example two channels are almost exactly the same height so you wish to increase the uncertainty to reflect this.
Check for strange points and outliers. If there are any then you should clearly understand why they are there. Was there a problem with the calibration, is there a problem with the instrument or your calibration samples.
Hit the "Save calibration" button to save the results of the claibration in a format that can be read by CS to D Converter and hit the "Save plots" button to save the plots generated by the software as png files.
The particle composition data is a set of tables which give the scattering cross section of particles as a function of diameter for light scattered over a particular angular range, suitable for the instrument in question. Perhaps your instrument has had the angular range of its collecting optics calibrated or perhaps you use calibration particles of a different composition. In this case you can add extra data. To do so download MieConScat (https://sourceforge.net/projects/mieconscat/) and use it to generate a new table of data for your instrument/particle type. Put this table in the Scattering Data with a name with no spaces, then restart OPC Calibrator. The new data should be listed when you click the dropdown in the Particle Composition column.
If you get part way through processing a calibration or wish to go back and continue or change a calibration, then to avoid reinputting all the data you can load up previously saved calibrations by hitting the "Load Cal File" button. For calibration files created using OPC Calibrator v1.01 and later this should just work. For older versions and for this software's predecessor, PCASP Calibrator, the instrument type was not listed in the caibration file. Therefore the correct instrument must first be selected from the dropdown top left. If this is an issue then you will receive a warning when you load the file.
The default list of calibration samples were taken from the stocks of samples I used to calibrate a PCASP OPC when I first wrote this software. These are stored in a text file called beadsdata.txt. YOucan edit this file if you wish to represent your collection of samples or if you have multiple collections, perhaps for different instruments, then you can create additional text files holding the information and load them as needed using the "Read Bead Data" button. Note that when you load a new set of bead data in this way, all the information you typed into the grid will be erased!!!
The format of the files is 4 whitespace separated columns, which will be loaded as the values for the columns Particle Diameter (micron), +/- (micron), Standard Deviation (micron) and Particle Composition.
This feature was included as I had a DMA set up to scan through multiple sizes of aerosol to calibrate a PCASP OPC. The control software logged the time of each size selected and this function loads that file. To load in a file like this then go to File->Load DMA Data. You will be asked to select the composition for the particles used and the data of the calibration. As well as the log file. The file format should be as follows. One header line, which is ignored, followed by 5 tab delimited columns. Column1: time of the size change in hh:mm:ss format. Note that the first 30 seconds after this time are not used. Column 2: number of seconds that the sample was run at this size. Column 3: Particle diameter. Columns 4/5: DMA flow rates. The flow rates are used to derive the standard deviation data for the sample and the uncertainty is set to a default of 1 nm - it is up to you to adjust this if you need.
This was the migration from PCASP Calibrator to OPC Calibrator.
Added support for additional instruments.
Added ability to reload calibration files.
Added ability to scale histograms and export plots.
Various bug fixes - I didn't really keep track of them all in the interim versions, but you can find them in the git logs if you want. I will try to track the cahnges better from now on :-)
This release was generated because I think the v1.00.05 binary package included an out of date binary. The only real change was the addition of this readme.md file with instructions.