specINTI & specINTI Editor

Appendix: The Lab'Ex application


Among the observations that can be made with a spectrograph, we can mention the "laboratory" type measurements, which are made on a table. The subjects concerned are as diverse as optical metrology, chemistry, biology, mineralogy, controls, etc. The applications can be scientific, industrial or educational (tutorials in various disciplines).


We take advantage of the flexibility offered by the specINTI software to show some examples of such measurements and how to carry them out. Following the Sol'Ex and Star'Ex projects, we adopt the name Lab'Ex (contraction of "Laboratory Explorer") to describe these extensions, both hardware and software.


Lab'Ex is divided into two parts:


- a set-up to illuminate the samples you wish to measure spectrally. Note that this setup is not necessarily specific to a spectrograph like Star'Ex, but we will use it to illustrate the examples in this appendix.


- a software that extracts the characteristics of transmissions, reflections or spectral emissions of samples, if possible in the simplest and most automatic way possible in order to concentrate on the subject of the analysis.



A1 : The measuring bench


As far as the "optical bench" part is concerned, there are many technical choices, with more or less sophistication. It also depends on what you want to measure. To illustrate this appendix, we propose a really minimalist setup, compact and easily portable on the field, to take these first steps in the field of optical transmission measurements of elements such as filters or liquids. Let's also underline that to realize "manipulations" with such an extension is very formative as for the use of a spectrograph. These experiments, often playful and spectacular, are a very good springboard to tackle later the spectrography of the stars of the sky, which is not much more complicated, but more intimidating.


The following pictures show the layout of our Lab'Ex "mini bench":

The structure, made of 3D printed parts, is directly mounted on the 31.75mm slider of the Star'Ex telescope interface. Note that we use here a Star'Ex called "low resolution" (BR) in order to have a global vision of the spectrum. The guiding module that can be seen on the photographs is not at all essential here. The samples to be measured, filters for example, are screwed on the runner or placed on the flat part of the bench (see below). The light source is a simple flashlight.


The mechanical set consists of 3 parts to be printed (but remember that this is only one of the possible forms of the measurement set). You can download the corresponding STL files by clicking here. M4 screw inserts complete the set:

The type of light source used here to illuminate the samples is a very expedient technical solution: a miniature flashlight equipped with an incandescent bulb and operated almost as is. Only the small plastic entrance window is removed to ensure a better transmission in the ultraviolet. Moreover, a 10 mm diameter diaphragm, covered with a piece of tracing paper, is placed just at the exit of the torch so that the spectrograph does not see directly the tiny filament, which would cause measurement errors.  The arrangement is not perfect (ideally the beam should be collimated), but it is a lesser evil:

Unfortunately, the tungsten filament lamps, at the origin of a light having a spectral distribution of black body, are very rare nowadays. LEDs replace everything, and this is very unfortunate, because the light they produce is far from being of homogeneous intensity in the spectrum, with moreover a limited spectral range covered. You should not be fooled by the "whiteness" of a LED lamp, like this one: 

It is a decoy. A LED lamp is indeed a spectral fraud as shown by the spectra below, left, that of a filament lamp, with a deficit in the blue given the low color temperature, but the signal everywhere approaching the daylight, right, that of a LED lamp, not able to send signal in the deep blue, presenting a huge peak in the blue (thank you for the eyes) and a big too hole in the green blue, etc.. All this makes the use of LED lamps quite tricky for the application described here.

A2 : The principle of processing


The work of the software, and hopefully also that of the operator, is quite simple.


As always it is necessary to relate the points of the spectrum to wavelengths, this is the spectral calibration. Interesting point, since the spectrograph remains more or less on the table, the calibration is almost done once and for all, a kind of "factory setting".


Once done, the next step is to generate two acquisitions that will give a single result, the spectral transmission of our sample:


- an acquisition "A" through the sample whose spectral transmission we want to know.  The result is the spectrum "A".


- an acquisition "B" without the sample, which gives the spectrum "B", called reference.


- The result is the spectral transmission "C" of the sample, which is found by dividing point to point the two previous spectra, in the without C = A / B. The denominator "B" eliminates the various biases present in the raw data "A" and "B" (spectral distribution of the source, spectral response of the instrument ...).


Here is a concrete example, with at the top the image of the spectrum "A" through an Astrodon Series Gen2 R bandpass filter, and at the bottom the spectrum "B" taken after removing the filter (thus the spectrum of the light source alone):

As always, blue is on the left and red on the right. The spectrograph used is a low resolution Star'Ex (80x80 configuration, 300 lines/mm grating), equipped with a 35 microns wide slit and an ASI533MM camera (note that we only keep the central part of the image along the vertical axis, or spatial axis). Be careful not to saturate any point in the images. From there, we extract the spectral profiles by making a large vertical agglomeration (binning), we calibrate in wavelength, then we perform the operation : 

The true transmission of the filter as a function of wavelength (or transmittance) is the "C" spectrum. This result is free of bais, such as oscillations related to the quantum efficiency of the detector, because the signature of these defects is present identically in the numerator and denominator.



A3: The use of specINTI software


Since the entire height of the slit is illuminated, we are confronted with the processing of a spatially broad source, as opposed to the spectrum of a star, which is a thin thread in the images. The processing strategy is therefore different. We will also exploit the specINTI software in a simplified way, well adapted to the Lab'Ex situation.


The spectral calibration mode chosen is #1, see section 10 of this documentation. This means that a pre-calculated dispersion polynomial must be provided to specINTI. To evaluate this, we use the lines of a neon lamp temporarily placed in front of the slit:

Here is the image acquired in this situation:

We identify a few lines whose wavelengths are known (see section 7.7, a "map" of the neon spectrum) and then we plot their horizontal positions in the center of the image with the mouse pointer, to the nearest pixel in the image - this precision is sufficient. As an example, here is a list of the line lengths identified in our calibration image:


[3948.979, 4044.418, 4259.362, 5037.751, 5116.590, 5400.562, 5852.488, 6143.063, 6402.248, 6506.528, 6717.043, 7032.413, 7245.166, 7438.898, 7635.106]


and the corresponding coordinates found in pixels :


[307, 369, 508, 1009, 1061, 1244, 1535, 1722, 1889, 1955, 2090, 2292, 2427, 2551, 2675]


These values must be in base 0. If the coordinate of the leftmost pixel is 1, you must subtract 1 from all values found.


From these values, we will calculate the spectral dispersion polynomial, which relates the positions found to their respective wavelengths. Several methods are possible, but here we will use the simplest one exploited by specINTI Editor, although manual. It corresponds to the special mode -4 (see section 11, attention you must have version 2.0.3 and above of specINTI to activate this mode). The usage is simple: the previous lists are passed respectively as values of the parameters "fit_wavelength" and "fit_posx", while specifying the order of the polynomial that we want to calculate via the parameter "fit_order". Here is what the "Configuration" tab of specINTI Editor looks like:

Here is this brief listing that you can use as inspiration:



# ********************************************************************

# Polynomial adjustment utility (spectral calibration)

# Calibration mode -4

# ********************************************************************


# ----------------------------------------------------------------

# Spectral calibration mode

# ----------------------------------------------------------------

calib_mode: -4


# ----------------------------------------------------------------

# Order of the dispersion polynomial to be evaluated

# ----------------------------------------------------------------

fit_order: 3


# ----------------------------------------------------------------

# Wavelengths of the standard lines

# ----------------------------------------------------------------

fit_wavelength: [3948.979, 4044.418, 4259.362, 5037.751, 5116.590, 5400.562, 5852.488,  6143.063, 6402.248, 6506.528, 6717.043, 7032.413, 7245.166, 7438.898, 7635.106]


# ----------------------------------------------------------------

# Coordinates of the standard lines in pixels in the image

# ----------------------------------------------------------------

fit_posx: [307, 369, 508, 1009, 1061, 1244, 1535, 1722, 1889, 1955, 2090, 2292, 2427, 2551, 2675]


We find the definition of the mode of use of the configuration file (the special mode -4), the order of the chosen polynomial (here the degree 3), then the two lists for the wavelengths and the positions of the calibration lines. After clicking on the "Run" button, specINTI delivers the terms of the polynomial (as well as the "Observed-Calculated" for the wavelengths, as well as the RMS error of the polynomial fit): 

 As mentioned above, if you don't mistreat your Lab'Ex too much, this result can be considered as an internal constant of the device. We are done with the spectral calibration.


Now let's calculate the optical transmission of the measured element. Let us assume that we are dealing with a narrow bandpass filter of the Baader brand. Arbitrarily, we decided to make two pairs of acquisitions with and without the filter (the exposure time is less than 1 second, so it is fast). More precisely, our protocol is the following, with the generic name "Baader_Ha" given to the image files:


Baader_HaR-1, Baader_HaR-2, Baader_Ha-1, Baader_Ha-2, Baader_HaR-3, Baader_HaR-4


The order of the measurements is important. The "Baader_HaR-xxx" images are taken with the filter removed (these are the reference images), the "Baader_Ha-xxx" images are taken with the filter in place. Note that in this protocol we have framed the measurement of the filter by measurements without the filter. The goal is to reduce the error induced by a possible variation in light intensity of the lamp (quite real risk with the model used, powered by batteries). In any case, the measurements must be made in a short time, without waiting between them.


In this case, the "Observation" tab is completed in this way, while recalling the possible use of the "Auto" button:

As the exposure times are very short, we do not consider it useful here to calculate an image of the dark signal.


As for the configuration file, here is a first version:

# ********************************************************************

# Lab'Ex configuration

# Calibration mode 1 and large source

# ********************************************************************


# ----------------------------------------------------------------

# Working directory

# ----------------------------------------------------------------

working_path: D:/labex1


# ----------------------------------------------------------------

# Processing batch file

# ----------------------------------------------------------------

batch_name: obs_Baader


# ----------------------------------------------------------------

# Spectral calibration mode

# ----------------------------------------------------------------

calib_mode: 1


# --------------------------------------------------------------

# Extracting the profile for a large source

# -------------------------------------------------------------

wide_source: 1


# -------------------------------------------------------------------------------------------------

# Spectral dispersion function

# -------------------------------------------------------------------------------------------------

calib_coef: [2.8404816113483127e-09, -7.287918197640875e-06, 1.5556000224311262, 3471.4336461710245]


# ------------------------------------------------------------------------------------------

# Vertical coordinate of the center of the binning area

# ------------------------------------------------------------------------------------------

posy: 600


# ----------------------------------------------------------------

# Binning width

# ----------------------------------------------------------------

bin_size: 500


# ----------------------------------------------------------------

# Wavelength clipping

# ----------------------------------------------------------------

crop_wave: [3800, 7400]


# ----------------------------------------------------------------

# Spectral resolving power

# ---------------------------------------------------------------

power_res: 800

We recognize the parameter "calib_mode", with the value 1, which specifies the chosen spectral calibration method.


Next, you will find a parameter specific to the type of data we are processing, which will allow us to shorten the size of the configuration file. It is the "wide_source" parameter, with the value 1. It informs specINTI that we are not working on the spectrum of a star, but on the spectrum of a spatially wide source. This is the context of L'ab'Ex. 


Through the parameter "calib_coef", we provide the coefficients of the dispersion polynomial previously calculated (you can copy and paste from the output console, which avoids transcription errors).


The "posy" parameter (required) sets the vertical coordinate of the center of the binning area, usually. This is usually the approximate pixel coordinate of a center of the processed images along the Y axis.


The "bin_size" parameter specifies the width of the binning zone, centered on the "posy" coordinate. Here it is very high (500 pixels), reducing the effect of detector noise to almost nothing. The agglomeration of the intensities leading to the spectral profile is thus carried out here on a zone of +/- 250 pixels compared to "posy".


We decide to limit the spectral coverage between 3800 and 7400 angstroms in the results.


Finally, it is mandatory to specify the approximate resolving power of the spectrograph, as the value of the "power_ref" parameter. This is purely informative for further analysis.


After a few seconds of running the process with this configuration file, this is what we get. These are the profiles "A" and "B", the ratio of which should result in the desired transmission spectral profile:

At this point you could calculate the "C" profile by adding the "_pro_div" function (division of two profiles, see section 13) somewhere in the configuration file, but there are better and faster ways. Just add the parameter "ratio" in the current configuration file with the value 1 :


# --------------------------------------------------------------------------------------------------

# Calculation of the ratio of the first two spectra of the input list

# --------------------------------------------------------------------------------------------------

ratio: 1


Restart the processing. Apparently nothing changes. But pay attention to the result that is displayed in the console, at the very end:


You will find the lines "Ratio file", then a file name, whose title always ends with "_ratio". As you may have guessed, this profile is the result of the division of the "A" and "B" spectra, i.e. the spectral transmission of our filter. You can display the content of this profile, for example from the "Visu profile" tab of specINTI Editor, while adding colors, or any other application.

How is this possible? Once you have added the parameter "ratio = 1" in the configuration file, specINTI checks if you have requested the processing of two sets of spectra in the observation file, and if so, it automatically divides the profile of the first calculated spectrum by the profile of the second calculated spectrum. The result is a file taking the name of the first spectrum, but adding "_ratio" to it.


Note: if you process only one spectrum series, there is no error message returned, but of course the A/B ratio is not calculated. If you process more than two series of spectra in the observation file and the "ratio" value is set to 1, again there is no error message returned, but the division will only concern the first two spectra of the series provided.


The " wide_source " and " ratio " parameters are the basis of the Lab'Ex data processing.



A4. Applications


The following example is the Lab'Ex measurement result of the optical transmission of a typical series of RBVL filters (Astrodon, Series Gen2):

The following example shows more complex profiles, from top to bottom, Baader's "semi-APO" filter, aimed at reducing the effect of chromatism from astronomical scopes and pollution from sodium lamps, and then the transmission of a Lumicon light pollution filter:

Most interference filters have their transmission peak wavelengths shifted towards the blue when the light rays reach the surface at an angle to the perpendicular (or when they are placed in a beam with a certain aperture). This property, which plays with the tilt of the filter, can be used to adjust the wavelength of the transmission peak for particular applications. This is the case, for example, with the Baader Solar Continuum filter, with a bandwidth of 10 nm, set at the nominal wavelength of 540 nm, but which we would like to use at a wavelength of 530 nm. Indeed, precisely at 5302 A is a line of iron very strongly ironized, Fe XIV, emitted by the low solar corona. Isolating this very discrete line with a band-pass filter gives the opportunity to better detect the solar corona outside eclipses with an instrument as simple as sol'Ex, by reducing the part of internal stray light scattered by it. This increase in contrast is an important issue for a particularly attractive observation.


The following photographs show a small accessory available from Azur3DPrint, which can be mounted in a few minutes. The purpose of this accessory is to tilt a standard 1-1/4 inch filter at an angle of one's choice on the front of the Sol'Ex instrument: :

The result of the operation is presented on the following figure, with in blue, the transmission curve when the plane face of the filter is approximately perpendicular to the beam, in red line, when this face is tilted (here of approximately 15°). In this last situation, the filter is centered on the desired wavelength of 530 nm. We also notice a loss of transmission at the peak, but quite moderate and without consequence for the intended observation:

It is perfectly possible to measure the spectral characteristics of liquid substances using a small laboratory glass cell (Sodilab, ref 40651), for example here the olive oil:

The result:

Olive oil also has the property to emit a strong reddish fluorescent light when excited with a UV lamp. Here is the "manipulation":

The observation of fluorescence of olive oil, a nice experiment to show in schools because it can lead to a lot of development (for example, to make aware that the light does not come from the lamp, but from the substance itself) :

You can extend this experiment to the IR spectrum by using the infrared version of Star’Ex in exactly the same way, up to a wavelength of at least 1 micron:

For information, here is the configuration file used to evaluate the spectral dispersion polynomial in the infrared (note that order 2 gives sufficient accuracy):

# ********************************************************************

# Polynomial adjustment utility (spectral calibration)

# Calibration mode -4

# ********************************************************************


# ----------------------------------------------------------------

# Spectral calibration mode

# ----------------------------------------------------------------

calib_mode: -4


# ----------------------------------------------------------------

# Order of the dispersion polynomial to be evaluated

# ----------------------------------------------------------------

fit_order: 3


# ----------------------------------------------------------------

# Wavelengths of the standard lines

# ----------------------------------------------------------------

fit_wavelength: [5944.834, 6266.495, 6506.528, 6678.278, 7032.413, 7245.166, 7438.898, 7635.106, 7948.176, 8377.607, 8495.359, 8780.622, 9122.967, 9657.786]


# ----------------------------------------------------------------

# Coordinates of the standard lines in pixels in the image

# ----------------------------------------------------------------

fit_posx: [369, 574, 726, 836, 1062, 1198, 1322, 1447, 1646, 1919, 1995, 2175, 2391, 2727]




Below is the Lab'Ex spectrum (300 lines/mm grating, 23 microns slit) of a neon-argon miniature lamp (Conrad E10 lamp), from which the IR spectral calibration is performed via the -4 mode - see part A4:

Here the measurement of a Baader filter Methane 889 nm, known to observers of gas planets:

or the infrared spectral signature of some other substances...!

It is even possible to measure a complete system, as here the optical transmission of an eyepiece (attention, in relative value):

A5. The optica fibers


The Sol'Ex/Star'Ex system can also be coupled to an optical fiber. It then becomes "Fib'Ex". The specINTI functions described on this page can still be used in this situation. The applications are numerous in the fields of science and industry, and for a cost , thus very low compared to the one generally practiced for this type of measuring device. The advantage of fiber optics is its great flexibility of use (the location of the spectrograph is easily offset from the point of measurement).


Of course the general quality is not "industrial", but with a little care and method, it is possible to obtain valuable results, which can be useful for teaching and even in a laboratory.


The views below show a very simple interface, machined as it should be in 3D printing, which replaces the input slot and which does not require any particular adjustment of Sol'Ex/Star'Ex. We use here a model of fiber with a standard FC/PC connector (see ThorLabs for example for the specific connector).

The document below shows, with two contrasts, the characteristic aspect of the image of the infrared spectrum of a 125V neon/argon minuature lamp(Conrad) using a multimode fiber of 50 microns core (Polymicro origin) associated with a Star'Ex low resolution infrared version (300 l/mm gratin). The acquisition camera is a CMOS ZWO ASI183MM operated in 4x4 binning. The OG570 filter is screwed into the 1-1/4 inch runner of this camera. We can note the detection of a spectral line of argon beyond 1 micron wavelength:

Given the diameter of the fiber (50 microns, so roughly, the equivalent of a slit of 50 microns wide, the power of resolution does not exceed here R = 350). This type of assembly can be used for example to measure the spectral luminance of TV screens, telephones ... (here relative to daylight):

Fib'Ex can also be used to measure the reflectance spectrum, as below, of plants, in the visible as well as in the near infrared (here we used successively a Star'Ex VIS model and a Star'Ex IR model). The principle is relatively simple: we calculate the ratio of the spectrum taken on the measured object and the spectrum taken on a reference screen (here white featherboard), the whole being illuminated by the same light source. As for the filter measurement with Lab'Ex, the names of the acquired data are indicated first in the specINTI object list and in this order. By declaring the "ratio" variable in the configuration file, we obtain directly the reflectance spectrum. Note on the following pictures the practical side of things: on the left, Star'Ex is placed on a table, without having to manipulate it, while the actual measurement is done much further away, with a 10 meters long fiber, in the center, the actual measurement by pointing the fiber other end towards a plant, on the right, the taking of the reference spectrum :

The result concerning a « Laurier-Rose » (a typical plant of the South-East of France) and a Cycas revoluta :

The sudden increase in the reflectivity up to 700 nm wavelength is a well-known phenomenon, linked to chlorophyll. It is called "red-edge" and is the subject of extensive observations, particularly from satellites to analyze the Earth's vegetation cover. The spectral signatures allow to distinguish plant species, but also to identify diseases and stresses that affect them.


The measurements can be used in industry and control, as shown below for textiles. Notice how a black short becomes almost white in the infrared (40 times more optical flux returned in the infrared than in the red - appearances are sometimes deceiving!

Many things can be measured with a spectrograph, sometimes surprising and playful, in addition to our dear stars and galaxies!


Go to the introduction                                                                                                                                                                                                                                     Back