Technical Issues - Importing Index Tables and Functions

1. RefractiveIndex.INFO

Dr. Mikhail Polyanskiy laudably maintains RefractiveIndex.INFO, a web compendium of n,k data for a number of materials. Data is presented in two formats: tables and dispersive formulas. Users should verify data and realize that film properties are different from bulk properties.

1. Tabulated tables have the following format (CSV). Note that wavelength is in microns and that the format was changed in 2014. n and k arrays do not need to have the same wavelength values and the k array will be absent in nonabsorbing materials. This is quite different from the original format.


CSV files can be automatically imported with FilmStar INDEX macro RefractiveIndexInfo.bas, included in the FilmStar installer. Some of the tables have very wide wavelength range. We have consequently modified INDEX's auto-scale function to use log wavelength axis when the max/min wavelength ratio is >=20. The graph below illustrates Al (Rakic). Please contact us if you find a CSV file that INDEX fails to import.

2. A variety of Sellmeier-type relations are utilized for glasses and similar materials. These can be imported into DESIGN and INDEX by clicking 'Expressions for n' and copying the Visual Basic code to the clipboard and pasting into the User Index Function Formula dialog as shown below. Be sure to leave out 'n ='.

Dy2O3 website original: SQR( 1 + x^2/(0.3653*x^2-73e-4) )

Dy2O3 DESIGN/INDEX: SQR( 1 + x^2/(0.3653*x^2-.0073) )

Since DESIGN 2.61.0103 and INDEX 2.51.0102, most formulas can be used directly because x now substitutes for WM (wavelength in microns). A few formulas utilize scientific number notation which causes difficulties for FilmStar's equation parser. For this reason we replaced 73e-4 with .0073 (73*10^-4 works equally well.)



Another source for refractive index data is Guillaume Boisset's Click here for a direct link to the list of n,k files. While these have the same extension (NK) as Sopra files, formats are different. Users should verify data and realize that film properties are different from bulk properties.

Luxpop NK files can be imported with FilmStar INDEX macro LuxpopNK.bas, included in the FilmStar installer. Some of the tables have very wide wavelength range. INDEX's auto-scale function uses log wavelength axis when the max/min wavelength ratio is >=20.

INDEX 2.51.0120 adds Sub Display so that users may review the file header before proceeding. Users of older versions should comment out the following lines:

Display s$, "File Viewer - click <Close> to proceed", _ 
    9000, 4500, "Verdana", 10, 0
If MsgBox("Continue to import file?", vbQuestion + _ 
    vbYesNo, "Luxpop n,k") = vbNo Then End

Wavelengths are in Angstroms as indicated by the string '(A)'. If '(A)' is not found, a 'Wavelength multiplier' prompt is provided for nm and Ám. (If you discover files in other units, please let us know.) NK files will open in Excel; use 'Text to Column' to convert column A into three columns A-C.

As displayed below, files may include hard X-ray to FIR wavelength ranges. The graph below includes 1175 data points.

In the graph below, wavelength range was reduced to VIS-NIR (52 points) by deleting lines in the Index Table. Hold down the <Ctrl+D> key to rapidly delete lines.

3. Extract from n,k Graphs

A third option is to extract data from published graphs. Recently a user requested n,k data for CrN. We couldn't find data in table form, but did find it in Figure 2 in a journal article by Aouadi et al.

The following instructions describe a step-by-step procedure (with links) for creating INDEX (*.itw) files with Dagra digitizing software.

1. Digitize the graph (CrN-Aouadi.dag) and export a CSV file (CrN-Aouadi.csv).

2. Open INDEX and (in this case) select eV in Setup.. Parameters. Open and review the CSV file in Excel. It should be in wave, n, k format. In this case we deleted wavelength column C after making sure it had the same values as column A.

3. Copy data to the clipboard and paste into INDEX with File.. Paste <Ctrl+V>. Optionally change scale to nm and click Graph.. Auto Scale <Ctrl+A>. Tweak axes settings and save as INDEX file (CrN-Aouadi.itw).

INDEX Setup Parameters

4. Importing Excel Data

The following shows how to import Excel n,k tables. The first row contains labels Wave (nm) | n | k . Thus the number of data points is one less than the number of rows.

' IndexXL.bas for FilmStar INDEX
' Import n,k table from Excel
Option Explicit
Option Base 1

Sub Main
    Dim i%, nRows&, xIndx!()
    XLopen "C:\Winfilm\Index\HfO2-Sopra.xls"  ' .xlsx also supported
    XLinfo nRows
    ReDim xIndx(nRows - 1, 3)          ' Compensate for header row
    For i = 1 To nRows - 1
        xIndx(i, 1) = XLcell(i + 1, 1) ' Wave in nm (or convert to nm)
        xIndx(i, 2) = XLcell(i + 1, 2) ' n
        xIndx(i, 3) = XLcell(i + 1, 3) ' k
    Next i
    nkTable = xIndx
End Sub

Adding BASIC's FileSave, a modification of the above could loop through a directory and automatically save multiple .itw files. IsNumeric(XLcell(1, 1)) determines if the first cell is a header cell or not.