This Page is intended to be a collaborative resource for using the shades-of-gray temperature measurement routines written by L. R. Benedetti for use with Igor Pro (wavemetrics).

General comments about ShadesofGray

The temperature measurement algorithms used in this program are based on the paper:

L. R. Benedetti, P. Loubeyre, “Temperature gradients, wavelength-dependent emissivity, and accuracy of high and very-high temperatures measured in the laser-heated diamond cell, ” High Pressure Research, 24(4): 423, 2004.

Please feel welcome and invited to cite this paper if you find the shades of gray program useful.


Shades of Gray was originally written for beamline ID27 at the ESRF. This version links 2 spectra-physics lasers, 1 or 2 acton spectrometers, and 1 or 2 Jobin Yvon CCDs. While it can collect data either in imaging mode or spectral mode, this version of the Program analyzes data only in spectral mode, not in imaging mode. There is some problem when migrating this version to macintosh computers because of name length issues with some of the procedure files.

It is not difficult to reconfigure Shades of Gray to work in your lab: Especially easy if you use princeton Instruments products and acquire the SIDX software tool that interfaces between PI ccds and Igor. See Installing Your Own ShadesOfGray for issues and instructions.

I have started renumbering versions as of 7 March 2007.

v_21 (or 2.1) done for Boehler.:

+slight change from ESRF version

+changed naming of procedures because some names were too long for mac

+added version number to all procedure (.ipf) names

+added checkresults() and spinoffpartialdataset() to processTempFromsaved_v21.ipf to work with partial datasets.

+added "work with partial dataset" and "save" and "export" to temperaturemenu_v21.ipf

+ tried to resize the welcome window so that "Thanks, let me take data now" button is never hidden. (Havent tested it.)

General notes about Igor

Igor is a program for data analysis and graphing that is produced and sold by Wavemetrics ( The Shades Of Gray procedures work within igor. Each igor file is called an EXPERIMENT.

Your data is stored in the experiment file, filename.pxp… consequently, you should save the entire experiment file frequently when collecting data. Save with control-S.

In order to have the Shades of Gray functionality, several procedure files must be present either in the experiment file or in a folder that igor can find easily. All the shades of gray procedures are in a folder called “ShadesOfGrayProcedures” in the directory c:ccd. In order for igor to find this folder, a shortcut to it is in the folder c:program files/wavemetrics/igorprofolder/userProcedures.

Zoom in on graphs by clicking and dragging the mouse in a graph window. This will give you a rectangle with a dashed border. Clicking within that rectangle gives you the choice between expand, expand horizontal, expand vertical, shrink, shrink horizontal, shrink vertical. Control-A is a shortcur for full unzoom. Each graph has 2 cursors: a circle with crosshairs and a square with and X in it. These cursors may be place on any trace on the graph to determine the value at any point. (pressing control-i toggles whether or not you see the information bar at the bottom of the graph).

The fundamental unit in Igor is the wave. Nearly all operations are performed on waves. A wave is anything that can be put in a spreadsheet, essentially. A column of numbers is a wave; a matrix is a wave; a 3 or 4 dimensional matrix is a wave. A wave can consist of numbers or text. There exist numeric and text (“string”) variables that are used occasionally as well. All waves and variables are organized within

When working in a table, it is necessary to press enter (or move to another cell) after entering a number or it will not be registered.

Curve Fit monitor – note number of passes. If 40, that means that fit did not converge, you should not consider that GOOD DATA.

This program is great! How can i still mess up?

There is no fix for bad data.

If you do not have a good system response spectrum, your fits will be wrong. If you move any of the optics between the sample and the spectrometer, you no longer have a good system response. If you do not choose the correct system response before fitting, your fits will be wrong. If you do not know which filter is between the sample and the spectrometer, you will not be able to choose the correct system response, and your fits will be wrong. If you do not correctly input the temperature of the system response data before fitting, your fits will be wrong.

If you choose delta badly, or do not choose it at all, the uncertainty determined from the std deviation of the histogram will not be as accurate as possible. (if your delta is too big, you just have less data to histogram; if your delta is too small, you are too sensitive to the oscillations in your data).

If you do not collect a dark pattern with each acquisition, you wil not know if you have a light leak somewhere in the hutch.

If you leave the lights on in the hutch, your data will be wrong.

If you do not save your spectra either to a new folder in the igor experiment (F12) or to a text file (F11), your data will be lost on the next acquisition.

If you do not save the experiment (control-s) after saving your data (or anything else significant), you might lose everything if there’s a crash.

If you have the wrong system response chosen and you save the data (f12 or f11) and ask (when prompted) to save systemresponse and fits data as well, the wrong system response information will be stored with your data, and fits that are either incorrect or UNRELATED to your data will be stored with it. And you will be really confused when you go back through the data. It’s not uncommon to just want to save the data in order to take a new spectrum, but if you do this, be sure to select the option to not save the fits. It’s also a good idea, of course, to record information related to the system response in your lab book.

If your guess temperature is not even close to the correct temperature, your fits will probably be wrong. (What is close? You can easily tell the difference between 6000K and 1500K, but the program can’t. If you guess 1500, the curvefitting routine will have to iterate all the way to 6000K, and it will never do that before the 40 iterations of the curvefitting routine. Sometimes, even, it will converge to some ridiculous value, like 1 million K, or a negative value. You don’t have to be within 20K, obviously, but you do need to be within a thousand or so.)

If the fit does not converge, and you do not notice, there is no reason to imagine that the fits are correct. (Try changing the estimated/guessed temperature to the temperature returned by the fitting and then Refit. Normally this is close enough for the fit to converge.)

If you fit only part of the spectrum, YOU may bias the fit temperature. It is recommended to use the entire spectrum in fitting UNLESS some part of it (like the blue part in 1500 K data) is only noise. IF the fit only looks GOOD for a subset of the data but looks bad for the entire data set, the problem is NOT that part of the data is bad. (and how would you know which part, anyway?) The problem may be: a) you have sampled temperature gradients, b) you have a wavelength dependent emissivity, c) there is some chromatic aberration somewhere. That’s the data though, and you have to use it or find a good reason to throw it away. Fortunately for you, the two-color pyrometer+histogram should give you a very large uncertainty for poorly fitting data sets. And there is reason to believe that this uncertainty is at least related to the accuracy of the fit. So just take the temperature and the really big error bar.

If you use the precision of either the Planck or Wien fit as an estimate of the uncertainty of your temperature measurement, you will undoubtedly be wrong.

If the wavelength is not correctly calibrated with the Neon Lamp, your fits will be wrong. Your system response spectra need to cover the same wavelength range as your data. It follows that if you move the spectrometer and do not both recalibrate wavelength with Neon AND collect new system response data, your data will be wrong (because you do not know wavelength) and your system response spectra will be wrong (because they are the response at a different wavelength), and your temperature measurements will be extremely wrong.

If, when working with a variable-box or a table, (like for example, the box in which you enter exposure time, or the one where you enter the temperature of the system response data), you do not press ENTER after entering your number, it may not be updated. And depending on which number this is, the result could make your data BAD or your fits WRONG. Sometimes not only do you need to press ENTER, but in addition, you need to press a BUTTON next to the text box. (e.g. spectrometer and laser controls)

If these warnings to not clearly make sense to you, you should make sure you reread this manual and/or ask your local contact for help.


Nearly all the functionality resides in two menus, the “CCD” menu and the “Temperature menu”

Menu "CCD"

"Acquire/F2" (, totalacquisitionJY())
"calibrate Wavelength/F3"(,wavelengthcal_supersize() )
"I want to Fit the Temperature of this data(vide)",( fitTemperature())
"I want to collect a spectra and Fit Temperature Immediately/F5",(collectonePlusT() )
"I want to run the Laser/F6", (BringLaserWindows())
"I want to run the Spectrometer/F7", (BringSpectrometerWindow() )
"I want to Keep this SYSTEM RESPONSE/F8",(SaveSystemResponseData())
"Next X-ray Diffraction Number Please/F10",(nextxraypattern())
"I want to Keep this data/F12",( SaveDataSet())
"I want to EXPORT this data/F11",( ExportDataSet())
"I want to open and initialize the ccd/0", (initccd_v5())
"I want to have the Collect Control Panel/1"(, AcqParamsCntrlPanelWindow())
"I want to close the ccd/2",(closeccd_v5() )
"I want to re-open as a New Experiment", ( restart() )
"I want to re-analyze old data", ( FromSavedToCurrent())

Menu "Temperature"

"I no longer need the Spectrometer",EndTiestoCCd()
"I'd like to look at the data i took" , PrepareMetadata()
"I want to Keep this SYSTEM RESPONSE/F8",SaveSystemResponseData()
"I want to Keep this data/F12", SaveDataSet()
"I want to EXPORT this data/F11", ExportDataSet()
"I want to re-open as a New Experiment", restart()
"I want to re-analyze old data",FromSavedToCurrent()

– this section is still under construction, and normally/now this menu is not available. The idea is for the user to use this menu, with all references to hardware removed, to reanalyze temperature data AFTER the experiment is finished.

These menus are representative of the ESRF version of the software. and are somewhat outdated.

Getting Started

To begin measuring temperatures open the template file, ShadesOfGrayvXX.pxp. Personalize this file for your experiment by choosing, "I want to re-open as a New Experiment" from the CCD menu. This function will prompt you for a name for your experiment. (Something with your proposal number is not a bad idea), then it will create a new experiment file (with your name) that has all the procedural functionality of shades of gray, but has all previous SavedData removed. You need to make sure that any important data in the template file is saved before calling this function, as it will close the template. At this time it is often a good idea to delete the entire history so you can concentrate easily on your own experiment. Do this by a)press control-J for the command window;b) click in the history portion; c)press control-A (select all); d) press delete.

As a user, much of the data structure is unimportant to you. Of primary interest are three data folders: root:SYSRES:; root:CurrentData: ; and root:SavedData:. All data is collected to the folder root:currentdata. Subsequent exposures overwrite previous exposures in the wave root:currentdata:data. Temperature measurement fits are done on the wave data in the same folder to the waves: raw, planck, wien, Ttc, hist, fit_planck, fit_wien, fit_hist. If you want to keep any of the data in the currentData folder, rather than having it be overwritten by the next exposure, you need to copy that data to another location. The save data functions (see saving data section) copy data and its associated information (acquisition parameters, temperature fits, etc), to a subfolder in the root:SavedData folder. Instead of or or in addition to that, you can save data as a text file with the Export data functions (see saving data).

System Response files are stored in the folder root:SYSRES.

Before data can be collected, the ccd must be initialized; before temperatures can be accurately measured, the correct system response file must be chosen from the data graph, and the temperature of the system response file must be input into data graph.

For the advanced user/local contact, here’s a summary of the other data folders and their contents. root:parameters: root:tab root:tabccd2 root:

What are the windows? And how do I use them?

There are several graphs that are displayed by default to display the data and the associated temperature fits. Any of these graphs can be brought to the front layer by choosing the graph name from the menu: Windows/graphs/graphname Graphs: DataGraph, RawGraph (pink), PlanckGraph (yellow), WienGraph (green), Sliding Two Color Pyrometer (blue), Histogram Graph (purple), choosedelta (gray) The data graph is the most important and complex graph, as it is the point of contact between data collection and temperature fitting. The top part of the graph contains a control bar for selecting several important fitting parameters: the system response spectrum to be used with the fit, whether or not the fit should be of the entire spectrum or just between the cursors on the graphs, what delta should be used for the two-color pyrometer, and an approximate guess of temperature. There is also a button on the control bar to “REFIT T” , which launches the temperature fitting programs for the current data. The other several graphs: RawGraph (pink), PlanckGraph (yellow), WienGraph (green), Sliding Two Color Pyrometer (STCP blue), and Histogram Graph (purple) display the massaged data. Raw: data-dark, also the system response data is shown in blue on the same graph; Planck: data/system response to be fit to the planck function; Wien: the wien function to be fit to a line; SCTP: the temperature determined from the Wien approximation from only 2 points at a distance delta apart (delta is in pixels rather than nm); histogram: a histogram of the SCTP data. The blue points on the several graphs follow the cursors on the RAW graph to show which part of the spectrum is used in the temperature fit. Control Panels allow the user to control hardware with a graphical interface. There are control panels to control the spectrometer; laser1, laser 2, and the acquisition of data from the ccd. These control panels are displayed by F6, F7, and control-1 respectively. The Data Browser shows the hierarchical organization of data structures in the experiment.

Hardware Control


Before data can be collected, the ccd must be initialized. To initialize the ccd choose "I want to open and initialize the ccd" from the CCD menu, or press Control-0 (that’s a zero) or type “initccd_v5()” in the command line. It’s wise to watch the history window when you initialize the ccd, as problems with initializing the ccd will be printed to the history.

It is good form to close the ccd with control-2 or "I want to close the ccd2” from the ccd menu.

See the section “Acquiring Data” for further information about the ccd.

Jobin Yvon Specific CCD operation notes. Some other possibly useful functions (JY ccd) Pingccd_v5() – typing this into the command line will tell you if there is communication between igor and the ccd.

Princeton Specific CCD operation notes can go here:

Laser Control

The laser control panels can be accessed by choosing "I want to run the Laser" from the ccd menu or by pressing F6.

Press the button “ON” to turn the laser on. The function called by this button takes some time because each of the four laser diodes must be individually initialized. Igor will be occupied, and you cannot do anything while it is running. Similarly, pressing the “OFF” button calls a somewhat lengthy procedure to shutdown the laser. It is normal to have a time out error message after turning the laser on. I don’t know why that is. It is a good idea to check the current immediately. If some of the currents give bizarre (like 10 34) values, stacking may not have been achieved, and you may need to turn the laser on again.



The open and close shutter buttons should be self explanatory. They do not effect the on/off state of the laser. Normally, opening the shutter does nothing if the laser is not on. Similarly, the OFF function should close the shutter.

Set the laser current by typing a number in the text box labeled “I(%)”. Be sure to hit enter after your text entry. You may also use the arrows just to the right of the text box. They increment in 0.5% increments. You are setting the current as a percentage of the maximum operating current. Lasing generally starts around 50%; do not set the current above 100%. NOTHING happens just by entering the desired current. You must then press the button labeled “Set Current”.

Pressing the button “What are the current and power?” queries the laser for the current in each diode and the Power in Watts.

ShadesofGray Advanced Laser Control Information

Spectrometer control

The spectrometer control panel can be accessed by choosing "I want to run the Spectrometer" from the ccd menu or by pressing F7.

You can do two things with the spectrometer:

  1. Query the spectrometer to determine the central wavelength. Do this by pressing the Query Spectrometer button. The central wavelength will then appear in the text box next to the button. NOTE that if you have not pressed the button, the central wavelength does NOT automatically update.
  2. send the spectrometer to a specified wavelength. Do this by entering the desired wavelength (nm) into the text box. And then Press the Move Spectometer button.

Advanced information regarding the communications parameters for the lasers and spectrometer is in the procedure file LaserandSpectrometer.ipf.

There is also a new procedure that has greater functionality. With it, multiple gratings can be used and switched between, and ruby/raman measurements can be performed. Right now, i cannot remember how to use it.

Acquiring data

Acquistion Shortcuts: F2 does a general acquisition based on whatever parameters are already chosen or selected. F5 does a general acquisition based on whatever parameters are already chosen. Then it runs the temperture fitting functions immediately. (obviously, the correct system response file and temperature need to have been set in the Data Graph.)

As they are acquired spectral data and darkfield data are displayed in the Data Graph. Most of the general user controls for data acquisition are available in the Acquisition Control Panel. This panel is white with a green button at the top. If it is not clearly displayed, it can be brought to the front/opened by pressing control-1.

The two main buttons at the top of this panel are labeled “acquire with T” and “acquire, no T”. Pressing either one starts an acquisition. The “with T” button runs the temperature fitting macros immediately after the acquisiton. (The correct system response file and temperature need to have been set in the Data Graph.)

From the Acquisition Control Panel you can change the exposure time. The exposure time (in ms) can be adjusted in 10 ms increments by clicking the up or down arrow next to the exposure time variable display box. You can also type a new exposure time directly into the box. (be sure to hit enter after typing the new exposure time.)

The Acquisition Control Panel also has a display called “UN-gain.” Gain 1 collects the data directly from the ccd; gain 2 divides the data by two, allowing you to collect twice as much light before saturating the data handling capacity of the ccd (this is slightly different from physically saturating the ccd). Depending on the ccd adc setting, gain can be set between 1 and 4 or between 1 and 2. It may be possible to use changing of the gain to avoid using neutral density filters or saturation. However, generally we stay on gain 1/adc16 because it is necessary to collect new system response data each different gain or adc setting.

There are two check boxes at the bottom of the panel: “Take dark field exposure” and “Alignment Mode.” If take dark field exposure is checked, a dark will be taken before each spectrum and subtracted directly. This is the reccommended procedure. If take dark is unchecked, the most recently taken dark field will be subtracted from each new spectrum. If “alignment mode” is checked, then pressing the “acquire, No T” button will not collect a single spectrum, but will instead expose the ccd repeatedly. (note that F2/F5 and acquire with T will still collect single spectra only.) To stop taking spectra, press and hold the Escape Key. (You may need to hold it down for several seconds, as the program only looks to see if the escape key is pressed once per exposure cycle.)

The “Change other parameters” button is generally not needed by the general user. It displays a table of all the collection parameters: ccd region of interest, binning, adc mode (14or 16 bit), exposure time, image or spectral mode, etc. Advanced user note: if you change the gain or exposure time in the acquisition parameters table, or for that matter take dark or alignment mode flags they are not updated on the control panel. But the exposure will be taken based on the data in the table. [do not forget:When working in a table, it is necessary to press enter (or move to another cell) after entering a number or it will not be registered.]

If you change ccds between ccd1 (Serial number ends in P39) and ccd2 (Serial number ends in P33), change the ccd field in the Acquisition Parameters Table. You must then reinitialize the ccd (control-zero).

Some of these things are Jobin Yvon specific: ungain, adc, ccd1, ccd2 The relatively similar qualities of PI ccds still need to be elaborated.

Saving Data

Saving Shortcuts: SaveData F12 (saves within igor experiment, convenient for later reanalysis)
ExportData F11 (saves to a text file, convenient for reanalysis with different software and/ or for archival.)
NextXRayDiffractionPattern F10 (increments the automatic naming convention to match the x-ray diffraction pattern)

All data is collected to the folder root:currentdata. Subsequent exposures overwrite previous exposures in the wave root:currentdata:data. Similarly temperature measurement fits overwrite the waves: raw, planck, wien, Ttc, hist, fit_planck, fit_wien, fit_hist.

If you want to keep any of the data the current data set (i.e., it’s a good measurement), you need to save it. The save data functions (see saving data section) copy data and its associated information (acquisition parameters, temperature fits, etc), to a subfolder in the root:SavedData folder. Instead of or or in addition to that, you can save data as a text file extermal to the igor experiment file with the Export data functions (see saving data).

When you initiate save (f12) or export (f11) data, you will be prompted or four things. First, a name to save the data to. Data will be saved in a folder root:saveddata:theNameYouGive. The other three parameters determine which data is to be saved: AcquisitionParameters includes exposure time, gain, ccd region of interest, etc., Data is just the data; Fits and Results includes the name of the system response file, the planck, wien and two color functions and the fits to those functions, and also a table listing the fitted temperatures.

In addition when exporting data you will be prompted for a path to store the data to.

ABOUT savedata autonumberingFeature

We have tried to make the naming of data files intuitive and parallel with the most xray diffraction conventions.

First: there are 2 relevant variables


And two relevant strings:


The Save data function (F12) will automatically guess a name to save data as:
nextdataprefix+_+nextdataXRDnum+letterCorrespondingto Nextdatanum

For example, suppose the User was saving xray diffraction files SampleName_007.mar3450 It would make sense to call the temperatures associated with that diffraction pattern: SampleName_007a, SampleName_007b, SampleName_007c, etc. So to do this, NextDataPrefix=”SampleName”; NextDataXRDNum=7; NextDataNum=4 And the next data will be saved as “SampleName_007d”. Everytime data is saved, the program automatically increments nextdatanum by 1. so the next proposed name will be “SampleName_007e”

When the experiment goes to the next diffraction pattern (SampleName_008), the nextxrd function (F10) changes NextDataXRDNum to 8 and NextDataNum to 1, so that the prompted file name will then be “SampleName_008a”.

Of course, the Save Data Function prompts the user for a file/folder name, so the user can change the name to a different xrd number or sample name, or anything else, at the prompt. As long as the proposed name is of the form “samplenamestring+_+number+letter”, igor will parse that information, and update the associated variables and strings, and increment nextdatanum.

The ExportData function (F11), saves the data in a TEXT file, rather than within the igor experiment. It is a good idea to save data this way. Datanames are prompted as for SAVEDATA (f12) except that nextdatanum is not incremented by one. So if you have just SAVED “SampleName_007c” export will prompt “SampleName_007c” while save will prompt “SampleName_007d”.

In addition, the strings and variables can all be set by command line functions typing the following (according to our example) into the commandline:
Root:currentdata:NextDataXRDNum = 7
Root:currentdata:nextdatanum = 4
Root:currentdata:NextDataPrefix =”SampleName” (note double quotes)

Procedure FromSavedToCurrent()

Listed under ccdmenu as “I want to reanalyze…”

This function first prompts the user for the name of a sub-folder within root:saveddata: Then it copies root:saveddata:sub-folder:raw to root: currentdata However. Because in root:currentdata: there is a dependency, namely, Raw:=data-dark, so that the dark value is subtracted from the read data value, what the procedure actually does is

Root:currentdata:data=root:saveddata:sub-folder:raw+root:currentdata:dark Then, root:currentdata:raw will be equal to root:saveddata:sub-folder:raw. Which is the appropriate values for fitting.

[note: is this still correct with princeton ccd?]

Wavelength Calibration

Normally, the wavelength calibration will be done before the start of your experiment. The spectrometer is pretty reproducible, but if for some reason you change the location of the center with the spectrometer control, it is wise to re-calibrate the wavelength. It is also wise to recalibrate the system response at the same time.

FIRST, take acquisition of neon lamp; get a good spectrum, THEN, press F3 or choose "calibrate Wavelength" from the CCD menu or type “wavelengthcal_supersize()” into the history window. After entering the central wavelength of the spectrometer in nm (normally 650 at ESRF), you are presented with a graph containing the collected spectrum along with vertical bars indicating the expected neon spectrum. If the expected spectrum is not well aligned with the actual spectrum, adjust the two sliders (adjusting the offset and slope of spectrometer) at the top left corner of the graph until the two spectra are very close. The calibration function will fit the observed spectrum to a gaussian at each expected peak. If any of the expected peaks are not well observed or well resolved, set their use-function-parameter to 0 in the top-control section of the graph. (normally, the weak peak at 702.41 is not well enough resolved) Once you have set which peaks to use, press the button “confirm peaks”. This will turn the peaks you are going to use to RED and those you are not going to use in calibration to BLUE. Then press the button “Calibrate.” Each peak is fitted to a gaussian – with the fitted gaussian added to the graph. The fitted peak positions are plotted as wavelength vs pixel. In a new window (called “calibration fitting and confirmation”) they should trace a line.

Confirm the calibration. Or not. With the appropiate button. Confirming will close both windows (Wavelength calibration and Calibration Fitting and confirmation); the “It’s not ok” button closes the confirmation window, returning the user to the calibration window. Try to find a better guess position for slope and offset; choose different peaks to fit; then try again. Before confirming, it is possible, and to be sure, a good idea, to return to the wavelength calibration graph/window , to zoom in on several of the fits to make sure that the correct peaks have been well fit.

The calibration slope and offset (and the time/date) will be printed in the history; the wavelength wave will be updated to conform to the neon calibration -- so allsubsequently saved data will have the correct wavelength data – these parameters will also be saved in the variables Root:neon:wavelengthoffset and root:neon:wavelengthslope

It is a good idea to save (f12) and/or export(f11) the data after calibration. This saves the spectrum, in case you want to recalibrate later.

programmers note; the wavelength calibration function may still have one bug that I havent fixed yet. If you are not in the folder root:neon, when you press confirmpeaks, all the peaks will go white, rather than red or blue. This is because the function uses a lot of local variables. I think this has been fixed.

programmers note 2: if it is determined that the calibration of the ccd needs to include a quadratic term, most of the necessary structure is already present in the function code.

programmer's note 3: if a lamp different from neon is to be used for wavelength calibration, i have much of the code necessary to do that. just ask.

System Response

this is old. needs to be revised. needs to differentiate between types of lamps. needs to differentiate between esrf and elsewhere. Also needs to better differentiate between information for the basic user and advanced information.

About the system response

The system response function is determined from a spectrum taken of a tungsten ribbon lamp. Our lamp (ESRF) was provided by R. Boehler. We run it at XXX A, which puts the tungsten at a temperature near 2500K. Then it is best to determine the temperature precisely by x-ray diffraction. When using the system response data in the temperature fitting, the emitted intensity is determined from the calibration by DeVos (1954), and is a function of both wavelength and temperature. Therefore, when fitting temperature, the temperature of the system response data must be known and MUST BE correct in the appropriate space on DATA graph.

Choosing System response to use. Check that the correct system response spectrum will be used for your temperature fitting: it is displayed at the top of DATA graph. If it is incorrect (e.g. if you have changed the filter), change it by pressing the Choose System Response Button and selecting the correct system response file from the pulldown menu. [note: when the system response spectra are saved initially (F8), 4 waves are created, one of SRNAME and three additional waves named SRNAME_wl, SRNAME_about, and SRNAME_acq_params. Be sure to choose SRNAME and not one of the other 3.] Further note: you must choose a system response from the pulldown menu. If you choose cancel, whatever system response was already chosen will be un-chosen, and no system response will be selected. If no system response is selected, and error message will appear when you try to fit the temperature: “Attempt to operate on null/missing wave.”

Advanced user notes: (wave root:sysres:emm_W_deVos_54) [waves created for each sysres: name_acq_params; name; name_wl;name_about saving a sr file sets that one as the one to use name_about contains the central wavelength of the spectrometer – but only if it has been asked for at least once since the last motion – and also any text information the user put in the text field on saving.

Note on temperature measurements: The validity of the system response may be slightly compromised if the objectives are not moved from the position they had during the system response measurement. Tests with the tungsten lamp at 7.0 A and 4.9 V ( ~2500 K) lead to these observations :

  • horizontal movements : a 2mm movement in one direction leads to approximately a 10 K change in the temperature measured. It is not clear how this change is linked to a probable temperature gradient.
  • vertical movements : a 2-3 mm movement in one direction leads to approximately a 50 K change in the temperature measured (-50 K when going down, +50 K when going up). A temperature gradient in this axis is unlikely.
  • Changing the focus does not significantly change the measurement

This test confirm that moving the objective from it’s original position has a significant effect on the accuracy of the temperature measured (except the change of focus that does not significantly change the system response, but that is still important in a case of a hot spot generation from laser heating)

Collecting the system response

Put the calibration lamp in place where the diamond cell normall sits. Set the current to 7.0 A which should also result in a potential difference of 4.9 V. Use “acquire” F2 to take spectra, varying the exposure time until you have good, clean, not-saturated data. Once the data is good, choose “I want to keep this system response” from the CCD menu (or F8). You will be presented with a dialog box to name the system response file. Type your desired name between the two quotes. Consider the name carefully – you might want all relevant information (like exposuretime/ ifyou used a filter, etc.) to be in the file name. Also in the dialog box is a space for any comments about the system response. You can include information like filter or optical set up or current/power here as well.

Advanced: Saving the system response makes 4 waves in the folder root:SYSRES: : name, name_wl, name_Acq_Params, name_about. Name_wl contains the wavelength; name_Acq_Params contains the information about the aquisition ( exposure time, gain, adc, binning, etc.); name (by itself) contains the intensity data (that is the important data).

Saving the system response also sets that just-saved system response to the SystemResponse file to use.

To choose the correct system response to use, click “Choose System Response File”on the Data Graph. You will have a dialog box that lets you choose from ALL of the waves in the folder root:SYSRES:. Choose name (not name_wl, or name_about).

It is critically important to save the experiment file after you save your system response data. CONTROL-S. If you don’t, and the program crashes, you will be sad.

Using the system response


The temperature fitting routines perform three different fits to the current data: planck, wien, and sliding two-color pyrometer. By doing all 3 fits simultaneously, it is possible to more accurately evaluate the validity of each fit. Further, all three fits are done over the same wavelength range.

If the checkbox “Fit Between Cursors” in DATAGRAPH is checked, then all 3 fits will be done only over the wavelength range between the two cursors in RAW GRAPH. This wavelength range is shown in each of the other graphs by the two blue points. [If one of the cursors is somehow removed from the graph, control-i gives the information bar: pick the cursor off the information bar and place it on one of the traces on RAW graph.]

If the checkbox “Fit Between Cursors” in DATAGRAPH is NOT checked, then all 3 fits will be done over the entire wavelength range.

Three numbers must be entered into the text boxes in data graph to be used in the temperature fitting: “Approx. T (K)” is a guess at the temperature. This guess need not be very close, but the fitting function requires an initial value. If the guess is very far from the actual temperature (e.g. guess=1500 K, actual temp=6000 K), the fit may not converge. “T of SR” is the temperature of the system response spectra, so that the right values can be divided out.

“Two color Delta “ is the distance (in pixels) between each set of two points in the sliding two color pyrometer. To choose a good delta, press the “Choose delta” button on data graph.

Choosedelta: This function varies delta from 20 to 500 (in pixels) in steps of 5. at each step, it calculates t-twocolor as a function of wavelength and then takes the histogram of that data. Then it gives the user a plot of the center and standard deviation of the histogram as a function of delta . For “normal data” these functions will settle into a steadystate value , and delta should be chosen to be as small as possible but still around that value in order to have the most useful data set. User chooses data by moving the round cursor (which is normally already present on the graph) to the desired position. It does not matter if the cursor is placed on the plot of center or that of standard deviation.

RIGHT NOW, the waves for center and standard deviation are Root:metadata:TCcenter and root:metadata:TCsdev The metadata folder exists for comparing and storing the data from several temperature measurements. (Its functionality is still under construction)

In the ideal world, delta would be chosen for each spectrum. You may not have time during the experiment, but it is recommended to re-analyze your data afterword to besure you have used a good delta and consequently have a good estimate of your accuracy.

Fitting Functions
planckfitfunc(w,xx) : fitfunc
	return w[0]*2*pi*h*c^2/((xx*order)^5*(exp(h*c/(xx*order*kb*w[1]))-1))
 * note no +c fit parameter because we subtract the dark, so the +c really should be 0.

//plot vs 1e9/lambda (so that lambda is in m); 


Does the fitting routine compare exposure times in its determination of emissivity ?
I don’t remember.

[Jobin Yvon ccd]I left the computer alone for a while, and now it doesn’t work – I get all manner of errors, most of which say “not o”.
the program loses its gpib connection if it is not activated for some time. Control -0 (zero) (“I want to open and initialize the ccd” from the ccd menu) should (fingers crossed) re-open the connection.

“Attempt to operate on null/missing wave.”
Check that a system response is chosen on the data graph. This is a very general operational error, and it may mean a lot of things, and it may or may not be important. But one thing that it might mean is that there is no system response chosen.

What are all these windows and what do i do with them? link to above

What are the windows? And how do I use them?

Post-experiment processing

SHADES OF GRAY READ ME contents: 1. How to start a new experiment 2. How to take your data home with you 3. New Features


How to start a new experiment

1.To start a new experiment, copy the Template file, "ShadesofGrayBlankExperiment"

to a file with your choice of names (extension .pxp) in your folder (eg usersExperiments).

Then open your new file by double clicking it. This file has no information in it; its wavelength and system response calibrations are wrong.

You may also choose "i want to restart as a new experiment" from the ccd menu of an old ShadesOfGray file.

      • due to recent changes, make sure this file is from after august, 2005.**

[to keep the system response calibration, before restarting save the calibration files you wish to keep as IGORTEXT files under Data/SaveData/. Then import them into a new experiment with Data/LoadData]

How to take your data home with you

2. YOU may want to take your experiment file home with you so that you may look at/analyze your temperatures at home. YOU may want to take your experiment file to a computer that is different from the one on which you collected the data so that you can analyze and work with the measured temperatures in the comfort of your office. Here's what you need to do:

a. you must copy and take home a)your experiment file (yourname.pxp) and b) the folder c:\CCDProgram\ShadesofGrayProcedures b. once home, make a shortcut to the folder shadesofgrayprocedures (wherever you store it) and put the shortcut into the folder: c:\Program Files\Wavemetrics\User Procedures

c. make a backup copy of your experiment file. [this is just good practice, and you are about to make the file unable to collect new data, so just in case you ever want to add to this data set, consider making a backup.]

d. open your experiment file. Choose "I no longer need the spectrometer" from the Temperature menu e. click "ok, continue" when prompted. this step removes all of the files and data associated with running the lasers and spectrometer. f. Open the procedure window by typing Control-M you will see this:

#include "ShadesofGrayIntheLab"
//#include "ShadesofGrayathome"

Replace it with this:

#include "ShadesofGrayathome"

the "//" is the comment symbol. You have just removed ShadesOfGrayInTheLab's set of procedure files, Replacing it wih SHadesOfGrayathome's procedure files. The main difference is that you no longer have the ccd/spectrometer procedures.

New features as of 4 august 2005.

These features are not yet described in the manual.

a. Back calibrate -- choose backcalibrate from the temperature menu -- allows you to change the tags associated with your data if you calibrate the wavelength or systemresponse AFTER you take data. the back calibrate feature does NOT refit your data with the new calibration.

b. post processing. the option "I want to check and confirm my temperature measurements" allows you to look at your saved data, confirm that the delta for the two-color pyrometer is good, check the fits, and refit if necessary. It also prompts the user to choose an aggregate temperature and uncertainty on that temperature, and it saves the results in the folder root:results.

You may reanalyze one or many or all of your data at one time. and you may do this processing during the experiment (taking more data afterward). checking each temperature normally takes less than 1 minute.

When you refit a temperature measurement, the NEW fits are saved in the same folder (root:saveddata:dataname) as before, overwriting any previous fits.

c. Temperature monitor allows you to take temperature measurements at a defined interval (in seconds) , and displays the temperature vs time in a graph.

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.