Curve Digitizer: digitize curves from old datasheets
- Status
- In development
- Licence
- GPL-3.0-or-later
- Platforms
- Linux, Windows
- Requirements
- Python 3, Tkinter/Tcl-Tk, Pillow, NumPy
Curves in old datasheets exist only as a drawing: a scan, often skewed, sometimes photocopied twice. To do anything with them — a fit, a SPICE model, a comparison between two tubes — you need numbers, and the numbers have to be read off by hand. That is what Curve Digitizer is for: open the image, tell the program where the axes are, click along the curve, walk away with a CSV.
What it is for
It was written to digitize families of characteristic curves — Ia = f(Va) at constant grid voltage, say — for later use in a model. The same scheme works for transistors, thyratrons, diodes and sensors: any plot where several curves are told apart by one parameter.
The program never modifies the source image and never invents anything between two points. What comes out of the CSV are the points you picked, converted into the physical values of the axes.
How it works, in three steps
- Calibration: you mark the four corners of the data area and declare the axes (name, unit, minimum, maximum, linear or logarithmic scale). The conversion uses a projective transform rather than a plain proportion, so it holds up on a scan that is rotated or moderately skewed.
- Digitizing: you create one series per curve, each with its own parameter, and click along the curve. An optional snap moves the point to the darkest pixel nearby, while the original click is kept separately.
- Export: the project is saved as JSON and the data leaves as CSV, with both pixels and calibrated values.
What it does not do
No OCR, no automatic curve tracing, no smoothing, interpolation, fitting or model generation. Those belong downstream: this program only reads the plot, reproducibly. That is a decision, not a gap — an interpolated point that looks measured is the fastest way to fool yourself.
What you need to run it
- Python 3 with Tkinter/Tcl-Tk;
- Pillow for image handling and NumPy for the calibration maths;
- PNG, JPG/JPEG or TIFF images.
The manual
The pages below are the full manual: calibration, digitizing, the format of the saved files, two worked procedures on a 6BX7 and a 2D21, and a summary of the known limits.