Electro-optical system design, data analysis and modeling involve a significant amount of calculation and processing. Many of these calculations are of a repetitive and general nature, suitable for including in a generic toolkit. The availability of such a toolkit facilitates and increases productivity during subsequent tool development: “develop once and use many times”. The concept of an extendible toolkit lends itself naturally to the open-source philosophy, where the toolkit user-base develops the capability cooperatively, for mutual benefit. This paper covers the underlying philosophy to the toolkit development, brief descriptions and examples of the various tools and an overview of the electro-optical toolkit.
The toolkit is an extendable, integrated collection of basic functions, code modules, documentation, example templates, tests and resources, that can be applied towards diverse calculations in the electro-optics domain. The toolkit covers (1) models of physical concepts (e.g. Planck’s Law), (2) mathematical operations (e.g. spectral integrals, spatial integrals, convolution, 3-D noise calculation), (3) data manipulation (e.g. file input/output, interpolation, normalisation), and (4) graphical visualisation (2-D and 3-D graphs).
Toolkits are often written in scriptable languages, such as Python and Matlab. This specific toolkit is implemented in Python and its associated modules Numpy, SciPy, Matlplotlib, Mayavi, and PyQt/PySide. In recent years these tools have stabilized and matured sufficiently to support mainstream tool development. Collectively, these tools provide a very powerful capability, even beyond the confines of this toolkit alone. Furthermore, these tools are freely available.
Rudimentary radiometric theory is given in the paper to support the examples given. Examples of the toolkit use, as described in the paper, include (1) spectral radiometric calculations of arbitrary source-medium-sensor configurations, (2) spectral convolution processing, (3) 3-D noise analysis, (4) loading of ASCII text files, binary files, Modtran tape7 and FLIR Inc *.ptw files, (5) data visualization in 2-D and 3-D graphs and plots, (6) detector modeling from detail design parameters (bulk material detectors), (7) color coordinate calculations, and (8) various utility functions.
The toolkit is developed as a cooperative effort between the CSIR, Denel SOC and DCTA. The project, available on Google Code at http://code.google.com/p/pyradi, is managed in accordance with general practice in the open source community.