1 #pragma rtGlobals=1 // Use modern global access method. 2 #pragma IgorVersion = 6.1 3 #pragma ModuleName = PearlOtfImport 39 if (strlen(pathname) <= 0)
41 pathname =
"otf_load_itx" 43 string filelist = IndexedFile($pathname, -1,
".itx")
44 filelist = ListMatch(filelist, "otf*.itx", ";")
45 variable nfile = ItemsInList(filelist, ";")
47 for (ifile = 0; ifile < nfile; ifile += 1)
48 filename = StringFromList(ifile, filelist, ";")
62 if (strlen(pathname) <= 0)
66 string filelist = IndexedFile($pathname, -1, ".itx")
67 filelist = ListMatch(filelist, matchstr, ";")
68 variable nfile = ItemsInList(filelist, ";")
70 for (ifile = 0; ifile < nfile; ifile += 1)
71 filename = StringFromList(ifile, filelist, ";")
84 dfref savedf = GetDataFolderDFR()
87 newdatafolder /s/o otf_load_itx_temp
88 if (strlen(pathname) > 0)
89 LoadWave /O/P=$pathname/Q/T filename
91 LoadWave /O/Q/T filename
95 foldername = ParseFilePath(3, s_filename, "/", 0, 0)
96 foldername = foldername[0,16]
97 foldername = CleanupName(foldername, 0)
99 renamedatafolder root:otf_load_itx_temp, $foldername
100 printf "loaded otf data from file %s into folder %s\r", s_filename, foldername
119 string prefix, sdate, stime
122 src_folder = GetDataFolder(0, df)
123 sscanf src_folder, "%[^_]_%[0-9]_%[0-9]", prefix, sdate, stime
125 if (strlen(sdate) > 0)
128 if (strlen(stime) > 0)
131 dst_folder = StringByKey("destfolder", sdata)
133 src_name = StringByKey("xwavematch", sdata)
134 src_name = WaveList(src_name, "", "")
135 if (ItemsInList(src_name) >= 1)
136 src_name = StringFromList(0, src_name)
137 dst_name = dst_folder + src_name + df_id
139 duplicate $src_name, $dst_name
142 src_name = StringByKey("ywavematch", sdata)
143 src_name = WaveList(src_name, "", "")
144 if (ItemsInList(src_name) >= 1)
145 src_name = StringFromList(0, src_name)
146 dst_name = dst_folder + src_name + df_id
148 duplicate $src_name, $dst_name
159 return
gather_batch("otf*", ywavematch, xwavematch, destfolder)
170 dfref savedf = GetDataFolderDFR()
171 newdatafolder /o/s $destfolder
172 destfolder = GetDataFolder(1)
174 string iteratordata = ""
175 iteratordata = ReplaceStringByKey("xwavematch", iteratordata, xwavematch)
176 iteratordata = ReplaceStringByKey("ywavematch", iteratordata, ywavematch)
177 iteratordata = ReplaceStringByKey("destfolder", iteratordata, destfolder)
190 string pattern = StringByKey("pattern", sdata)
191 variable unique_index = NumberByKey("unique_index", sdata)
192 string new_suffix = StringByKey("new_suffix", sdata)
196 string sprefix, sdate, stime, ssuffix
199 src_folder = GetDataFolder(0, df)
201 sscanf src_folder, "otf_%[0-9]_%[0-9]%s", sdate, stime, ssuffix
203 if ((strlen(sdate) == 0) || (strlen(stime) == 0))
208 if (cmpstr(pattern[0], "0") != 0)
209 dst_folder += "_" + sdate
211 if (cmpstr(pattern[1], "0") != 0)
212 dst_folder += "_" + stime
214 if (cmpstr(pattern[2], "0") != 0)
215 if (strlen(new_suffix) > 0)
216 ssuffix = "_" + new_suffix
218 dst_folder += ssuffix
221 if ((unique_index > 0) || (CheckName(dst_folder, 11) != 0))
222 dst_folder = UniqueName(dst_folder + "_", 11, unique_index)
226 print src_folder + " -> " + dst_folder
227 RenameDataFolder $src_folder, $dst_folder
237 variable unique_index
249 dfref savedf = GetDataFolderDFR()
251 if (ParamIsDefault(unique_index))
254 if (ParamIsDefault(new_suffix))
257 if (ParamIsDefault(match_str))
261 string iteratordata = ""
262 iteratordata = ReplaceStringByKey("pattern", iteratordata, pattern)
263 iteratordata = ReplaceNumberByKey("unique_index", iteratordata, unique_index)
264 iteratordata = ReplaceStringByKey("new_suffix", iteratordata, new_suffix)
277 wave ch1 = current_ch1
278 wave ch2 = current_ch2
279 wave pe = photonenergy
281 wave rc = ringcurrent
283 duplicate /o ch1, current_ch1_int
284 wave ch1i = current_ch1_int
285 duplicate /o ch2, current_ch2_int
286 wave ch2i = current_ch2_int
287 duplicate /o pe, photonenergy_int
288 wave pei = photonenergy_int
289 duplicate /o cff, cff_int
291 duplicate /o rc, ringcurrent_int
292 wave rci = ringcurrent_int
294 redimension /n=(npts) ch1i, ch2i, pei, cffi, rci
295 setscale /i x e1, e2, "eV", ch1i, ch2i, pei, cffi, rci
311 duplicate /free win, wtmp
312 smooth /b /e=3 smo, wtmp
313 wout = interp(x, wpe, wtmp)
variable otf_gather_iterator(dfref df, string *sdata)
variable otf_load_itx(string pathname, string filename)
variable otf_interp(variable e1, variable e2, variable npts, variable smo)
variable gather_batch(string foldermatch, string ywavematch, string xwavematch, string destfolder)
variable otf_load_itx_match(string pathname, string matchstr)
variable otf_gather_batch(string ywavematch, string xwavematch, string destfolder)
variable otf_rename_folders(string pattern, variable unique_index=defaultValue, string new_suffix=defaultValue, string match_str=defaultValue)
variable otf_rename_folders_iterator(dfref df, string *sdata)
variable otf_load_itx_all(string pathname)
variable otf_smo_int(wave win, wave wout, wave wpe, variable smo)