#pragma TextEncoding = "UTF-8" #pragma rtGlobals=3 // Use modern global access method and strict wave access. Function Dichroism( string wave1str, string wave2str) Wave wave1 = $(wave1str), wave2 = $(wave2str), temp Variable w1x= DimSize(wave1, 0), w1y= DimSize(wave1, 1) Variable w1x0= DimOffset(wave1, 0), w1y0= DimOffset(wave1, 0) Variable w1dx=DimDelta(wave1, 0), w1dy= DimDelta(wave1, 1) String sampleName, dud, IDnum1, IDnum2 //Set up the dichroism wave SplitString/E="([[:alnum:]]+)_([[:digit:]]+)_txt_([[:digit:]]+)" wave1str, sampleName, dud, IDnum1 SplitString/E="([[:alnum:]]+)_([[:digit:]]+)_txt_([[:digit:]]+)" wave2str, sampleName, dud, IDnum2 String dichroWave = "DiWave_" + IDnum1 + "-" + IDnum2 Make/O/N=(w1x, w1y) $(dichroWave) Wave diChro = $(dichroWave) SetScale/P x, w1x0, w1dx, diChro SetScale/P y, w1y0, w1dy, diChro diChro = (wave1 - wave2)/(wave1 + wave2) //make the dichroism if(DataFolderExists("root:Dichroisms")) // set up folders NewDataFolder/O/S root:Dichroisms:dichrowave else NewDataFolder/O/S root:Dichroisms NewDataFolder/O/S root:Dichroisms:dichrowave endif SetDataFolder root:Dichroisms //set up color wave in the right folder Make2DColorTable() Wave ColorTable= RedBlackBlue2D Variable dimColors = DimSize(ColorTable, 1) SetDataFolder root:Dichroisms:dichrowave Make/O/N=(w1x, w1y, dimColors) $("Vol" + dichroWave) Wave VolDiChro= $("Vol" + dichroWave) VolDiChro= 0 SetScale/P x, w1x0, w1dx, VolDiChro SetScale/P y, w1y0, w1dy, VolDiChro variable diMax= WaveMax(diChro), diMin= WaveMin(diChro) variable diDelta = (diMax-diMin)/dimColors variable i, j, k For(i=0; i < w1x; i+=1) For(j=0; i < w1y; j+=1) k= round(diChro[i][j]/diDelta) VolDiChro[i][j][k]= diChro[i][j] EndFor EndFor Display;DelayUpdate For(i=0; i