1 #pragma rtGlobals=3// Use modern global access method and strict wave access. 2 #pragma IgorVersion = 6.1 3 #pragma ModuleName = PearlDataExplorer 5 #include "pearl-area-import" 6 #include "pearl-area-profiles" 7 #include "pearl-area-display" 8 #include "pearl-pshell-import" 9 #if exists("MFR_OpenResultFile") 10 #include "pearl-matrix-import" 37 static const string package_path =
"root:packages:pearl_explorer:";
47 execute /q/z
"PearlDataExplorer()" 57 dfref savefolder = GetDataFolderDFR()
59 newdatafolder /o/s packages
60 newdatafolder /o/s $package_name
61 if (exists(
"v_InitPanelDone") == 2)
62 SetDataFolder savefolder
67 make /o/n=0/i wSelectedFiles,wSelectedDatasets
68 make /o/n=0/t wtDatasets
69 make /o/n=0/t wtPositioners,wtDetectors
70 make /o/n=0/i wSelectedPositioners,wSelectedDetectors
72 make /o/n=(1,1) preview_image
73 make /o/n=0 preview_trace
74 make /o/n=0/t attr_names, attr_values, attr_filter, attr_filter_summary
77 string /g s_filepath =
"" 78 string /g s_hdf_options =
"" 79 string /g s_reduction_params =
"" 80 string /g s_preview_pvs =
"" 82 s_preview_pvs =
"*OP:CURRENT*;*Stats*Total*;*CADC*" 85 string /g s_preview_file =
"" 86 string /g s_preview_source =
"" 87 string /g s_profiles_graph =
"" 88 string /g s_preview_trace_graph =
"" 89 string /g s_file_info =
"" 91 variable/g v_InitPanelDone = 1
93 SetDataFolder savefolder
99 dfref saveDF = GetDataFolderDFR()
101 string fullPath = SpecialDirPath(
"Packages", 0, 0, 0)
103 NewPath/O/C/Q tempPackagePrefsPath, fullPath
104 fullPath +=
":preferences.pxp" 106 SetDataFolder root:packages
107 SetDataFolder $package_name
108 string objects =
"attr_filter;attr_filter_summary;s_filepath;s_hdf_options;s_reduction_params;s_preview_pvs" 109 SaveData /O /Q /J=objects fullPath
111 KillPath/Z tempPackagePrefsPath
119 dfref saveDF = GetDataFolderDFR()
123 NewDataFolder /O/S packages
124 NewDataFolder /O/S $package_name
125 dfref packageDF = GetDataFolderDFR()
126 string fullPath = SpecialDirPath(
"Packages", 0, 0, 0)
129 GetFileFolderInfo /Q /Z fullPath
131 fullPath +=
":preferences.pxp" 132 GetFileFolderInfo /Q /Z fullPath
134 LoadData /O /R /Q fullPath
140 svar /sdfr=packageDF filepath = s_filepath
141 NewPath /O/Z pearl_explorer_filepath, filepath
170 #if exists("MFR_OpenResultFile") 185 dfref saveDF = GetDataFolderDFR()
189 wave wSelectedFiles = $(
package_path +
"wSelectedFiles")
192 PathInfo pearl_explorer_filepath
194 all_files = IndexedFile(pearl_explorer_filepath, -1,
"????")
195 nn = ItemsInList(all_files)
201 make /n=(nn) /t /free wtAllFiles
202 wtAllFiles = StringFromList(p, all_files)
204 Sort /A /R wtFiles, wtFiles
206 redimension /n=(numpnts(wtFiles)) wSelectedFiles
216 dfref saveDF = GetDataFolderDFR()
219 dfref rootdf = GetDataFolderDFR()
220 setdatafolder $package_path
221 dfref privatedf = GetDataFolderDFR()
224 wave wSelectedDatasets
225 variable maxdf = CountObjectsDFR(rootdf, 4)
226 redimension /n=(maxdf) wtDatasets
233 sdf = GetIndexedObjNameDFR(rootdf, 4, idf)
234 if (strlen(sdf) >= 1)
237 svar /z importer = pearl_explorer_import
238 if (svar_exists(importer))
239 wtDatasets[ndf] = sdf
248 redimension /n=(ndf) wtDatasets, wSelectedDatasets
249 wSelectedDatasets = 0
250 sort wtDatasets, wtDatasets
258 dfref saveDF = GetDataFolderDFR()
278 if (WaveExists(image))
281 if (exists(
"PearlElog#set_panel_attributes") == 6)
283 sprintf cmd,
"PearlElog#set_panel_attributes(\"\", \"File=%s\")", ParseFilePath(0, filename,
":", 1, 0)
285 if (strlen(graphname) > 0)
286 sprintf cmd,
"PearlElog#set_panel_graphs(\"\", \"%s\")", graphname
310 dfref saveDF = GetDataFolderDFR()
311 setdatafolder $package_path
313 svar s_preview_source
315 s_preview_file = filename
316 s_preview_source =
"" 317 wave /z preview_image
320 if (! svar_exists(s_file_info))
321 string /g s_file_info
323 if (strlen(s_preview_file) > 0)
329 if (DataFolderExists(
"attr"))
353 dfref saveDF = GetDataFolderDFR()
354 setdatafolder $package_path
356 svar s_preview_source
358 s_preview_file = filename
359 s_preview_source =
"" 360 wave /z preview_image
363 if (! svar_exists(s_file_info))
364 string /g s_file_info
366 if (strlen(s_preview_file) > 0)
372 if (DataFolderExists(
"attr"))
385 dfref saveDF = GetDataFolderDFR()
386 setdatafolder $package_path
388 svar s_preview_source
395 dfref dataDF = newfreedatafolder()
397 LoadWave /t/p=pearl_explorer_filepath/q filename
398 s_preview_file = s_filename
399 s_preview_source =
"" 425 #if exists("MFR_OpenResultFile") 426 dfref saveDF = GetDataFolderDFR()
427 setdatafolder $package_path
428 variable /g V_MatrixFileReaderOverwrite = 1
429 variable /g V_MatrixFileReaderFolder = 0
430 variable /g V_MatrixFileReaderDouble = 0
432 svar s_preview_source
436 if (strlen(datanames) > 0)
437 s_preview_file = filename
439 dataname = StringFromList(0, datanames)
440 wave data = $dataname
441 duplicate /o $dataname, preview_image
442 s_preview_source = StringByKey(
"Dataset", note(data),
"=",
"\r")
445 if (svar_exists(s_file_info))
450 variable n = ItemsInList(datanames)
452 for (i = 0; i < n; i += 1)
453 s = StringFromList(i, datanames)
457 wave /z preview_image
460 wave /z preview_image = $
"" 473 switch (WaveDims(data))
475 redimension /n=(numpnts(data)) preview
479 redimension /n=(dimsize(data, 0), dimsize(data, 1)) preview
483 redimension /n=(dimsize(data, 0), dimsize(data, 1)) preview
484 z1 = floor(DimSize(data, 2) / 2)
486 wave slab =
ad_extract_slab(data, nan, nan, nan, nan, z1, z2,
"", pscale=1)
493 switch (WaveDims(data))
497 setscale /p y dimoffset(data, 1), dimdelta(data, 1), waveunits(data, 1), preview
499 setscale /p x dimoffset(data, 0), dimdelta(data, 0), waveunits(data, 0), preview
500 setscale d 0, 0, waveunits(data, -1), preview
507 dfref saveDF = GetDataFolderDFR()
509 if (!DataFolderExists(
"root:" + datasetname))
513 setdatafolder $datasetname
514 dfref datadf = GetDataFolderDFR()
517 setdatafolder $package_path
519 svar s_preview_source
521 if (WaveExists(data))
522 s_preview_file = datasetname
523 s_preview_source =
"" 528 s_preview_file = datasetname
536 if (DataFolderExists(
"attr"))
549 dfref saveDF = GetDataFolderDFR()
551 setdatafolder $package_path
553 svar s_preview_source
562 string d_names = WaveList(
"*",
";",
"DP:1")
563 variable nw = ItemsInList(d_names,
";")
564 variable npv = ItemsInList(s_preview_pvs,
";")
566 string wname, wnote, pv_name, pv_match
567 for (iw = 0; iw < nw; iw += 1)
568 wname = StringFromList(iw, d_names,
";")
570 pv_name = StringByKey(
"PV", wnote,
"=",
"\r")
572 for (ipv = 0; ipv < npv; ipv += 1)
573 pv_match = StringFromList(ipv, s_preview_pvs)
574 if (StringMatch(pv_name, pv_match))
576 s_preview_source = pv_name
598 if ((DimOffset(preview, 0) == 0) && (DimDelta(preview, 0) == 1))
599 string xname = StringByKey(
"Axis1", note(data),
"=",
"\r")
600 wave /z xwave = $xname
601 if (WaveExists(xwave))
603 variable monotonic = 0
604 duplicate /free xwave, xdiff
605 differentiate /p xwave /D=xdiff
606 duplicate /free xdiff, xflag
608 monotonic = sum(xflag) > numpnts(xwave) * 0.9
610 monotonic = monotonic || (sum(xflag) > numpnts(xwave) * 0.9)
612 setscale /i x xwave[0], xwave[numpnts(xwave)-1], waveunits(xwave, -1), preview
618 static variable
preview_attributes(dfref attr_folder, dfref dest_folder = defaultValue, wave attr_filter = defaultValue, variable include_datawaves = defaultValue, variable include_infowaves = defaultValue){
628 variable include_datawaves
630 variable include_infowaves
633 dfref saveDF = GetDataFolderDFR()
634 setdatafolder $package_path
636 if (ParamIsDefault(dest_folder))
637 dest_folder = GetDataFolderDFR()
639 if (ParamIsDefault(attr_filter))
640 wave /t /z attr_filter
642 if (ParamIsDefault(include_datawaves))
643 include_datawaves = 1
645 if (ParamIsDefault(include_infowaves))
646 include_infowaves = 1
649 setdatafolder dest_folder
650 wave /t /z attr_names, attr_values
651 if (!WaveExists(attr_names) || !WaveExists(attr_values))
652 make /n=(1) /o /t attr_names, attr_values
657 string /g s_attr_folder = GetDataFolder(1, attr_folder)
658 setdatafolder attr_folder
674 if (WaveExists(IN) && include_infowaves)
679 if (include_datawaves)
680 string waves = WaveList(
"*",
";",
"")
681 string exceptions =
"ID;IN;IU;IV" 682 waves = RemoveFromList(exceptions, waves)
683 nw = ItemsInList(waves,
";")
688 if (WaveExists(attr_filter) && (numpnts(attr_filter) >= 1))
689 nattr = numpnts(attr_filter)
690 redimension /n=(nattr) attr_names
691 attr_names = attr_filter
694 redimension /n=(ninfo) attr_names
695 attr_names = SelectString(strlen(ID[p]) >= 0, IN[p], ID[p])
700 redimension /n=(nattr) attr_names
701 for (iw = 0; iw < nw; iw +=1 )
702 sw = StringFromList(iw, waves,
";")
703 ss = StringByKey(
"PV", note($sw),
"=",
"\r")
704 FindValue /text=sw attr_names
705 if ((v_value < 0) && (strlen(ss) >= 0))
706 attr_names[iattr] = sw
712 redimension /n=(nattr) attr_names, attr_values
713 sort attr_names, attr_names
716 for (iattr = 0; iattr < nattr; iattr += 1)
717 sw = attr_names[iattr]
720 FindValue /text=sw ID
722 attr_values[iattr] = IV[v_value]
724 FindValue /text=sw IN
726 attr_values[iattr] = IV[v_value]
732 switch (WaveType($sw, 1))
735 if (WaveExists(w) && (numpnts(w) >= 1))
736 sprintf ss,
"%g", w[0]
737 attr_values[iattr] = ss
742 if (WaveExists(wt) && (numpnts(wt) >= 1))
743 attr_values[iattr] = wt[0]
757 dfref saveDF = GetDataFolderDFR()
759 if (!DataFolderExists(
"root:" + datasetname))
763 setdatafolder $datasetname
764 dfref datadf = GetDataFolderDFR()
766 if (!WaveExists(data))
770 if (WaveExists(data))
771 switch(WaveDims(data))
787 dfref df = GetDataFolderDFR()
788 wave /t /sdfr=df attr_names
789 wave /t /sdfr=df attr_values
798 dfref saveDF = GetDataFolderDFR()
799 setdatafolder $package_path
800 wave /t/z attr_filter, attr_filter_summary
802 string name = CleanupName(
"nb_" + title[0,28], 0)
803 if (WinType(name) == 5)
804 Notebook $name selection={startOfFile, endOfFile}
805 Notebook $name text=
"" 807 NewNotebook /F=1 /K=1 /N=$name as title
808 GetWindow $name wsize
809 v_right = v_left + 260
810 v_bottom = v_top + 360
811 MoveWindow /W=$name v_left, v_top, v_right, v_bottom
812 Notebook $name tabs={2*72}
816 if (WaveExists(attr_filter_summary) && (numpnts(attr_filter_summary) >= 1))
817 notebook $name fStyle=1, text=
"Summary\r\r" 818 notebook $name fStyle=0
820 notebook $name text=
"\r" 824 notebook $name fStyle=1, text=
"All Attributes\r\r" 825 notebook $name fStyle=0
827 notebook $name selection={startOfFile,startOfFile}, findText={
"",1}
834 wave /t /z attr_filter
838 variable nw = numpnts(attr_names)
843 variable do_filter = WaveExists(attr_filter)
845 for (iw = 0; iw < nw; iw += 1)
848 FindValue /text=sw attr_filter
853 sprintf ss,
"%s\t%s\r", attr_names[iw], attr_values[iw]
854 notebook $notebook_name text=ss
864 dfref saveDF = GetDataFolderDFR()
865 setdatafolder $package_path
867 svar s_profiles_graph
869 svar s_preview_source
870 svar s_preview_trace_graph
872 if ((strlen(s_profiles_graph) > 0) && (WinType(s_profiles_graph) == 1))
873 KillWindow $s_profiles_graph
875 if ((strlen(s_preview_trace_graph) > 0) && (WinType(s_preview_trace_graph) == 1))
876 KillWindow $s_preview_trace_graph
880 if (wavedims(data) == 2)
882 ModifyGraph /w=$s_profiles_graph /z wbRGB=(48640,56832,60160)
883 graphname = s_profiles_graph
884 else if (wavedims(data) == 1)
885 duplicate /o data, preview_trace
886 if (!ParamIsDefault(xdata))
887 duplicate /o xdata, preview_trace_x
889 duplicate /o data, preview_trace_x
891 setscale d 0, 0, WaveUnits(data, 0), preview_trace_x
894 ModifyGraph /w=$s_preview_trace_graph wbRGB=(48640,56832,60160)
895 graphname = s_preview_trace_graph
900 string title =
"Preview " + s_preview_file
901 if (strlen(s_preview_source) > 0)
902 title = title +
" (" + s_preview_source[0,31] +
")" 904 dowindow /f/t $graphname, title
914 display /n=pearl_explorer_1d /k=1 ytrace vs xtrace as
"Preview" 915 string graphname = s_name
916 ModifyGraph /w=$graphname rgb[0]=(0,0,0)
917 ModifyGraph /w=$graphname grid=2
918 ModifyGraph /w=$graphname mirror=1
919 ModifyGraph /w=$graphname minor=1
920 ModifyGraph /w=$graphname axThick=0.5
921 ModifyGraph /w=$graphname gridRGB=(52224,52224,52224)
922 ModifyGraph /w=$graphname gridHair=0
923 ModifyGraph /w=$graphname tick=0
924 ModifyGraph /w=$graphname btLen=4
927 string labels = note(ytrace)
929 lab = StringByKey(
"AxisLabelX", labels,
"=",
"\r")
933 Label /w=$graphname bottom lab +
" (\\U)" 934 lab = StringByKey(
"AxisLabelD", labels,
"=",
"\r")
938 Label /w=$graphname left lab +
" (\\U)" 946 dfref saveDF = GetDataFolderDFR()
947 setdatafolder $package_path
951 variable nn = numpnts(wSelectedFiles)
953 for (ii = 0; ii < nn; ii += 1)
954 if (wSelectedFiles[ii])
955 if (ParamIsDefault(options))
967 static variable
load_file(
string filename,
string options = defaultValue){
971 dfref saveDF = GetDataFolderDFR()
976 if (ParamIsDefault(options))
983 if (ParamIsDefault(options))
1005 string mode = StringByKey(
"mode", options,
":",
";")
1006 string reduction_func = StringByKey(
"reduction_func", options,
":",
";")
1008 string modes =
"load_reduced" 1011 if (strlen(mode) == 0)
1012 mode = StringFromList(0, modes,
";")
1014 if (strlen(reduction_func) == 0)
1015 reduction_func = StringFromList(0, reduction_functions,
";")
1018 prompt mode,
"Mode", popup, modes
1019 prompt reduction_func,
"Reduction Function", popup, reduction_functions
1020 doprompt
"HDF5 Loading Options", mode, reduction_func
1023 options = ReplaceStringByKey(
"mode", options, mode,
":",
";")
1024 options = ReplaceStringByKey(
"reduction_func", options, reduction_func,
":",
";")
1051 string prompt_name =
"prompt_" + func_name
1052 if (exists(prompt_name) == 6)
1054 return prompt_func(func_param)
1065 dfref saveDF = GetDataFolderDFR()
1067 string loaded_filename =
"" 1069 if (ParamIsDefault(options))
1072 if (strlen(options) == 0)
1074 options = pref_options
1077 pref_options = options
1084 string mode = StringByKey(
"mode", options,
":",
";")
1087 case "load_reduced":
1088 string reduction_func = StringByKey(
"reduction_func", options,
":",
";")
1089 svar pref_params = $(
package_path +
"s_reduction_params")
1090 string reduction_params = pref_params
1092 pref_params = reduction_params
1093 print reduction_func, reduction_params
1094 psh5_load_reduced(nickname,
"pearl_explorer_filepath", filename, $reduction_func, reduction_params)
1096 loaded_filename = s_filepath
1103 if (strlen(loaded_filename) > 0)
1104 setdatafolder $(
"root:" + nickname)
1105 dataDF = GetDataFolderDFR()
1106 string /g pearl_explorer_import =
"load_pshell_file" 1109 setdatafolder saveDF
1117 dfref saveDF = GetDataFolderDFR()
1119 string loaded_filename =
"" 1121 if (ParamIsDefault(options))
1124 if (strlen(options) == 0)
1126 options = pref_options
1129 pref_options = options
1136 string mode = StringByKey(
"mode", options,
":",
";")
1139 case "load_reduced":
1140 string reduction_func = StringByKey(
"reduction_func", options,
":",
";")
1141 svar pref_params = $(
package_path +
"s_reduction_params")
1142 string reduction_params = pref_params
1144 pref_params = reduction_params
1145 print reduction_func, reduction_params
1146 loaded_filename =
adh5_load_reduced(nickname,
"pearl_explorer_filepath", filename, $reduction_func, reduction_params)
1153 if (strlen(loaded_filename) > 0)
1154 setdatafolder $(
"root:" + nickname)
1155 dataDF = GetDataFolderDFR()
1156 string /g pearl_explorer_import =
"load_hdf_file" 1159 setdatafolder saveDF
1167 dfref saveDF = GetDataFolderDFR()
1170 if (ParamIsDefault(options))
1175 newdatafolder /s/o $(
"root:" + nickname)
1176 dfref dataDF = GetDataFolderDFR()
1183 LoadWave /t/p=pearl_explorer_filepath/q filename
1184 svar waves = s_wavenames
1185 dfref actDF = GetDataFolderDFR()
1187 string /g pearl_explorer_import =
"load_itx_file" 1190 if (!DataFolderRefsEqual(actDF, dataDF))
1193 setdatafolder dataDF
1194 if (ItemsInList(WaveList(
"*",
";",
""),
";") == 0)
1195 killdatafolder /z dataDF
1199 setdatafolder saveDF
1210 dfref saveDF = GetDataFolderDFR()
1213 #if exists("MFR_OpenResultFile") 1215 string datasets =
"" 1217 if (strlen(datasets) > 0)
1218 string /g pearl_explorer_import =
"load_mtrx_file" 1219 string s1 = StringFromList(0, datasets)
1221 dataDF = GetWavesDataFolderDFR(w1)
1225 setdatafolder saveDF
1229 string itx_suggest_foldername(
string filename, variable ignoredate = defaultValue,
string sourcename = defaultValue, variable unique = defaultValue){
1245 if (ParamIsDefault(ignoredate))
1248 if (ParamIsDefault(unique))
1252 string basename = ParseFilePath(3, filename,
":", 0, 0)
1253 string extension = ParseFilePath(4, filename,
":", 0, 0)
1257 if (strsearch(basename,
"X03DA_PC", 0, 2) >= 0)
1258 autosource =
"sscan" 1259 basename = ReplaceString(
"_", basename,
"-")
1261 else if (strsearch(basename,
"otf", 0, 2) >= 0)
1264 if (ParamIsDefault(sourcename))
1265 sourcename = autosource
1268 variable nparts = ItemsInList(basename,
"-")
1270 string datepart = StringFromList(nparts - 2, basename,
"-")
1271 string indexpart = StringFromList(nparts - 1, basename,
"-")
1273 sprintf nickname,
"%s_%s", sourcename, indexpart
1275 sprintf nickname,
"%s_%s_%s", sourcename, datepart, indexpart
1278 nickname = CleanupName(basename, 0)
1281 if (unique && CheckName(nickname, 11))
1282 nickname = UniqueName(nickname +
"_", 11, 0)
1289 PauseUpdate; Silent 1
1290 NewPanel /K=1 /W=(800,0,1530,444) as
"PEARL Data Explorer" 1291 ModifyPanel cbRGB=(48640,56832,60160)
1293 GroupBox gb_filepath,pos={8,4},size={224,52},title=
"file system folder" 1294 TitleBox tb_filepath,pos={20,24},size={174,20},frame=2
1295 TitleBox tb_filepath,variable=root:packages:pearl_explorer:s_filepath,fixedSize=1
1297 Button b_browse_filepath,fColor=(65280,48896,32768)
1299 GroupBox gb_prefs,pos={240,4},size={58,52},title=
"prefs",help={
"explorer package preferences"}
1301 Button b_save_prefs,help={
"save preferences of the data explorer package (data file path, attributes filter)"}
1302 Button b_save_prefs,fColor=(65280,48896,32768)
1304 Button b_load_prefs,help={
"load preferences of the data explorer package"}
1305 Button b_load_prefs,fColor=(65280,48896,32768)
1307 GroupBox gb_filelist,pos={8,64},size={224,372},title=
"data files" 1309 ListBox lb_files,listWave=root:packages:pearl_explorer:wtFiles
1310 ListBox lb_files,selWave=root:packages:pearl_explorer:wSelectedFiles,row= 11,mode= 4
1311 TitleBox tb_file_info,pos={20,300},size={198,78},frame=2,fixedSize=1
1312 TitleBox tb_file_info,variable= root:packages:pearl_explorer:s_file_info
1315 Button b_update_filelist,fColor=(65280,48896,32768)
1316 CheckBox cb_file_preview,pos={84,390},size={60,20},title=
"preview" 1317 CheckBox cb_file_preview,help={
"enable/disable automatic preview window when selecting a data file"}
1318 CheckBox cb_file_preview,value=1
1320 Button b_file_prev,help={
"previous file"}
1321 Button b_file_prev,fColor=(65280,48896,32768)
1323 Button b_file_next,help={
"next file"}
1324 Button b_file_next,fColor=(65280,48896,32768)
1327 Button b_load_files,help={
"load the complete contents from the selected files"}
1328 Button b_load_files,fColor=(65280,48896,32768)
1330 Button b_load_files_opt,help={
"load data from the selected files with options (reduced dimensions)"}
1331 Button b_load_files_opt,fColor=(65280,48896,32768)
1334 GroupBox gb_datasets,pos={240,64},size={224,372},title=
"datasets" 1336 ListBox lb_datasets,listWave=root:packages:pearl_explorer:wtDatasets
1337 ListBox lb_datasets,selWave=root:packages:pearl_explorer:wSelectedDatasets,mode= 1
1338 ListBox lb_datasets,selRow= -1
1341 Button b_update_datasets,help={
"update the list of datasets"}
1342 Button b_update_datasets,fColor=(65280,48896,32768)
1343 CheckBox cb_dataset_preview,pos={316,390},size={60,20},title=
"preview" 1344 CheckBox cb_dataset_preview,help={
"enable/disable automatic preview window when selecting a dataset"}
1345 CheckBox cb_dataset_preview,value=0
1347 Button b_dataset_prev,help={
"goto previous dataset"}
1348 Button b_dataset_prev,fColor=(65280,48896,32768)
1350 Button b_dataset_next,help={
"goto next dataset"}
1351 Button b_dataset_next,fColor=(65280,48896,32768)
1354 Button b_dataset_folder,help={
"set the current data folder of the selected dataset"}
1355 Button b_dataset_folder,fColor=(65280,48896,32768)
1357 Button b_dataset_display,help={
"display the selected dataset in its own window"}
1358 Button b_dataset_display,fColor=(65280,48896,32768)
1360 GroupBox gb_preview,pos={472,4},size={250,52},title=
"preview" 1361 TitleBox tb_preview_file,pos={484,24},size={226,20},frame=2
1362 TitleBox tb_preview_file,variable=root:packages:pearl_explorer:s_preview_file,fixedSize=1
1364 GroupBox gb_attributes,pos={472,64},size={250,372},title=
"attributes" 1366 Button b_attr_notebook,help={
"show attribute list in a notebook"}
1367 Button b_attr_notebook,fColor=(65280,48896,32768)
1369 String fldrSav0= GetDataFolder(1)
1370 SetDataFolder root:packages:pearl_explorer:
1371 Edit/W=(484,84,710,384)/HOST=# attr_names,attr_values
1372 ModifyTable format(Point)=1,width(Point)=0,width(attr_names)=103,width(attr_values)=103
1373 ModifyTable statsArea=85
1374 SetDataFolder fldrSav0
1376 SetActiveSubwindow ##
1380 STRUCT WMButtonAction &ba
1382 switch( ba.eventCode )
1394 STRUCT WMButtonAction &ba
1396 switch( ba.eventCode )
1408 STRUCT WMButtonAction &ba
1410 dfref saveDF = GetDataFolderDFR()
1412 switch( ba.eventCode )
1414 PathInfo /S pearl_explorer_filepath
1415 NewPath /M=
"select data file folder" /O/Z pearl_explorer_filepath
1417 PathInfo /S pearl_explorer_filepath
1427 setdatafolder saveDF
1432 STRUCT WMButtonAction &ba
1434 switch( ba.eventCode )
1446 STRUCT WMButtonAction &ba
1448 switch( ba.eventCode )
1460 STRUCT WMButtonAction &ba
1462 switch( ba.eventCode )
1474 STRUCT WMButtonAction &ba
1476 dfref saveDF = GetDataFolderDFR()
1478 switch( ba.eventCode )
1480 setdatafolder $package_path
1483 FindValue /i=1 wSelectedFiles
1485 if (v_value >= numpnts(wtFiles))
1486 v_value = min(numpnts(wtFiles) - 1, 0)
1488 wSelectedFiles = p == v_value
1490 variable ifile = v_value
1501 setdatafolder saveDF
1506 STRUCT WMButtonAction &ba
1508 dfref saveDF = GetDataFolderDFR()
1510 switch( ba.eventCode )
1512 setdatafolder $package_path
1515 FindValue /i=1 wSelectedFiles
1518 v_value = numpnts(wtFiles) - 1
1520 wSelectedFiles = p == v_value
1522 variable ifile = v_value
1533 setdatafolder saveDF
1538 STRUCT WMListboxAction &lba
1540 Variable row = lba.row
1541 Variable col = lba.col
1542 WAVE/T/Z listWave = lba.listWave
1543 WAVE/Z selWave = lba.selWave
1545 switch( lba.eventCode )
1573 STRUCT WMButtonAction &ba
1575 switch( ba.eventCode )
1587 STRUCT WMButtonAction &ba
1589 switch( ba.eventCode )
1593 setdatafolder $package_path
1595 string dataset = wtDatasets[v_value]
1597 sprintf cmd,
"setdatafolder root:%s", PossiblyQuoteName(dataset)
1599 cmd =
"setdatafolder :scan1" 1601 sprintf cmd,
"setdatafolder %s", GetDataFolder(1)
1613 STRUCT WMButtonAction &ba
1615 switch( ba.eventCode )
1619 setdatafolder $package_path
1621 string dataset = wtDatasets[v_value]
1633 STRUCT WMButtonAction &ba
1635 switch( ba.eventCode )
1638 wave /t wtDatasets = $(s_datafolder + s_value)
1640 if (v_value >= numpnts(wtDatasets))
1641 v_value = min(0, numpnts(wtDatasets) - 1)
1645 variable ids = v_value
1660 STRUCT WMButtonAction &ba
1662 switch( ba.eventCode )
1665 wave /t wtDatasets = $(s_datafolder + s_value)
1668 v_value = max(-1, numpnts(wtDatasets) - 1)
1672 variable ids = v_value
1687 STRUCT WMListboxAction &lba
1689 Variable row = lba.row
1690 Variable col = lba.col
1691 WAVE/T/Z listWave = lba.listWave
1692 WAVE/Z selWave = lba.selWave
1694 switch( lba.eventCode )
1722 STRUCT WMButtonAction &ba
1724 dfref saveDF = GetDataFolderDFR()
1726 switch( ba.eventCode )
1728 setdatafolder $package_path
1730 wave /t /z attr_names
1731 wave /t /z attr_values
1732 if (WaveExists(attr_names))
1740 setdatafolder saveDF
static dfr load_mtrx_file(string filename, string options=defaultValue)
load a matrix (STM) data file
static const string package_path
string psh5_load_reduced(string ANickName, string APathName, string AFileName, funcref reduction_func, string reduction_param, variable progress=defaultValue)
load and reduce the ScientaImage dataset of the first scan of a PShell data file. ...
string adh5_load_preview(string ANickName, string APathName, string AFileName, variable load_data=defaultValue, variable load_attr=defaultValue)
load a single image from a HDF5 file created by the Area Detector software.
static variable update_datasets()
static variable bp_browse_filepath(WMButtonAction *ba)
static variable preview_file(string filename)
variable prompt_default_process(string *param)
prototype for prompting for processing function parameters.
string adh5_load_info(string APathName, string AFileName)
load descriptive info from a HDF5 file created by the Area Detector software.
static variable bp_dataset_prev(WMButtonAction *ba)
static string display_preview_trace(wave xtrace, wave ytrace)
static variable bp_file_prev(WMButtonAction *ba)
variable ad_brick_slicer(wave data)
open a slicer panel for 3D data.
static variable lbp_datasets(WMListboxAction *lba)
static variable bp_load_files_opt(WMButtonAction *ba)
static variable load_selected_files(string options=defaultValue)
static variable bp_load_files(WMButtonAction *ba)
static variable preview_datafolder()
static variable bp_file_next(WMButtonAction *ba)
static variable lbp_filelist(WMListboxAction *lba)
static variable prompt_hdf_options(string *options)
static variable bp_update_datasets(WMButtonAction *ba)
static const string ks_filematch_pshell
static const string ks_filematch_adh5
static wave preview_mtrx_file(string filename)
load the preview of a Matrix STM file.
string psh5_load_preview(string ANickName, string APathName, string AFileName, variable load_data=defaultValue, variable load_attr=defaultValue, string pref_scans=defaultValue, string pref_datasets=defaultValue)
load a preview image from a PShell data file.
static variable init_package()
initialize the global variables of the data explorer.
static wave preview_pshell_file(string filename)
load the preview of a PShell HDF5 file.
static variable bp_dataset_folder(WMButtonAction *ba)
static variable preview_dataset(string datasetname)
static const string package_name
static variable update_filelist()
read a list of PEARL files from the file system
static dfr load_itx_file(string filename, string options=defaultValue)
static variable bp_attr_notebook(WMButtonAction *ba)
static variable load_file(string filename, string options=defaultValue)
preview and import panel for PEARL data
static variable bp_load_prefs(WMButtonAction *ba)
static variable preview_setscale_x(wave data, wave preview)
static variable bp_save_prefs(WMButtonAction *ba)
static dfr load_hdf_file(string filename, string options=defaultValue)
string ad_suggest_foldername(string filename, variable ignoredate=defaultValue, string sourcename=defaultValue, variable unique=defaultValue)
generate the name of a data folder based on a file name.
static wave preview_hdf_file(string filename)
load the preview of a PEARL HDF5 file.
static variable pearl_file_type(string filename)
check whether a file can be imported by this module.
static variable bp_dataset_display(WMButtonAction *ba)
static const string ks_filematch_itx
string adh5_load_complete(string ANickName, string APathName, string AFileName, variable load_data=defaultValue, variable load_attr=defaultValue)
import everything from a HDF5 file created by the Area Detector software.
static variable bp_dataset_next(WMButtonAction *ba)
static variable extract_preview_image(wave data, wave preview)
string psh5_load_info(string APathName, string AFileName)
load descriptive info from a PShell data file.
string adh5_load_reduced(string ANickName, string APathName, string AFileName, funcref reduction_func, string reduction_param, variable load_data=defaultValue, variable load_attr=defaultValue, variable progress=defaultValue)
load and reduce a dataset from a HDF5 file created by the Area Detector software. ...
string ad_display_profiles(wave image, string filter=defaultValue)
open a new profiles graph window.
static variable bp_update_filelist(WMButtonAction *ba)
variable pearl_data_explorer()
string itx_suggest_foldername(string filename, variable ignoredate=defaultValue, string sourcename=defaultValue, variable unique=defaultValue)
string psh5_load_complete(string ANickName, string APathName, string AFileName, variable load_data=defaultValue, variable load_attr=defaultValue)
load everything from a PShell data file.
static variable load_prefs()
variable prompt_func_params(string func_name, string *func_param)
static wave preview_itx_file(string filename)
static variable display_dataset(string datasetname)
static dfr load_pshell_file(string filename, string options=defaultValue)
static variable save_prefs()
variable test_attributes_notebook()
static string show_preview_graph(wave data, wave xdata=defaultValue)
string mtrx_load_preview(string destName, string pathName, string fileName, string traces=defaultValue)
load a preview image from a Matrix data file.
string ad_display_slice(wave data)
display three-dimensional data by 2D slice.
static const string ks_filematch_mtrx
static variable attributes_notebook(wave attr_names, wave attr_values, string title)
string mtrx_load_file(string pathName, string fileName, string traces=defaultValue)
load all data from a Matrix data file.
static variable preview_attributes(dfref attr_folder, dfref dest_folder=defaultValue, wave attr_filter=defaultValue, variable include_datawaves=defaultValue, variable include_infowaves=defaultValue)
string adh5_list_reduction_funcs()
get a list of functions which can be used as reduction functions.
static variable notebook_add_attributes(string notebook_name, wave attr_filter, wave attr_names, wave attr_values)
threadsafe wave ad_extract_slab(wave dataset, variable x1, variable x2, variable y1, variable y2, variable z1, variable z2, string destname, variable noavg=defaultValue, variable pscale=defaultValue)
2D cut through 3D dataset, integrate in normal dimension