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()
312 setdatafolder $package_path
313 dfref previewDF = GetDataFolderDFR()
315 svar s_preview_source
317 if (! svar_exists(s_file_info))
318 string /g s_file_info
321 dfref tempDF = NewFreeDataFolder()
326 s_preview_file = filename
327 s_preview_source =
"" 329 wave /z data = $dataname
330 if (waveexists(data))
331 duplicate /o data, previewDF:preview_image
333 print
"no data found in file " + filename
336 if (strlen(s_preview_file) > 0)
342 dfref attrDF = tempDF:attr
343 if (DataFolderRefStatus(attrDF))
348 wave /z /sdfr=previewDF preview_image
366 dfref saveDF = GetDataFolderDFR()
367 setdatafolder $package_path
369 svar s_preview_source
371 s_preview_file = filename
372 s_preview_source =
"" 373 wave /z preview_image
376 if (! svar_exists(s_file_info))
377 string /g s_file_info
379 if (strlen(s_preview_file) > 0)
385 if (DataFolderExists(
"attr"))
398 dfref saveDF = GetDataFolderDFR()
399 setdatafolder $package_path
401 svar s_preview_source
408 dfref dataDF = newfreedatafolder()
410 LoadWave /t/p=pearl_explorer_filepath/q filename
411 s_preview_file = s_filename
412 s_preview_source =
"" 438 #if exists("MFR_OpenResultFile") 439 dfref saveDF = GetDataFolderDFR()
440 setdatafolder $package_path
441 variable /g V_MatrixFileReaderOverwrite = 1
442 variable /g V_MatrixFileReaderFolder = 0
443 variable /g V_MatrixFileReaderDouble = 0
445 svar s_preview_source
449 if (strlen(datanames) > 0)
450 s_preview_file = filename
452 dataname = StringFromList(0, datanames)
453 wave data = $dataname
454 duplicate /o $dataname, preview_image
455 s_preview_source = StringByKey(
"Dataset", note(data),
"=",
"\r")
458 if (svar_exists(s_file_info))
463 variable n = ItemsInList(datanames)
465 for (i = 0; i < n; i += 1)
466 s = StringFromList(i, datanames)
470 wave /z preview_image
473 wave /z preview_image = $
"" 486 switch (WaveDims(data))
488 redimension /n=(numpnts(data)) preview
492 redimension /n=(dimsize(data, 0), dimsize(data, 1)) preview
496 redimension /n=(dimsize(data, 0), dimsize(data, 1)) preview
497 z1 = floor(DimSize(data, 2) / 2)
499 wave slab =
ad_extract_slab(data, nan, nan, nan, nan, z1, z2,
"", pscale=1)
506 switch (WaveDims(data))
510 setscale /p y dimoffset(data, 1), dimdelta(data, 1), waveunits(data, 1), preview
512 setscale /p x dimoffset(data, 0), dimdelta(data, 0), waveunits(data, 0), preview
513 setscale d 0, 0, waveunits(data, -1), preview
520 dfref saveDF = GetDataFolderDFR()
522 if (!DataFolderExists(
"root:" + datasetname))
526 setdatafolder $datasetname
527 dfref datadf = GetDataFolderDFR()
530 setdatafolder $package_path
532 svar s_preview_source
534 if (WaveExists(data))
535 s_preview_file = datasetname
536 s_preview_source =
"" 541 s_preview_file = datasetname
549 if (DataFolderExists(
"attr"))
562 dfref saveDF = GetDataFolderDFR()
564 setdatafolder $package_path
566 svar s_preview_source
575 string d_names = WaveList(
"*",
";",
"DP:1")
576 variable nw = ItemsInList(d_names,
";")
577 variable npv = ItemsInList(s_preview_pvs,
";")
579 string wname, wnote, pv_name, pv_match
580 for (iw = 0; iw < nw; iw += 1)
581 wname = StringFromList(iw, d_names,
";")
583 pv_name = StringByKey(
"PV", wnote,
"=",
"\r")
585 for (ipv = 0; ipv < npv; ipv += 1)
586 pv_match = StringFromList(ipv, s_preview_pvs)
587 if (StringMatch(pv_name, pv_match))
589 s_preview_source = pv_name
611 if ((DimOffset(preview, 0) == 0) && (DimDelta(preview, 0) == 1))
612 string xname = StringByKey(
"Axis1", note(data),
"=",
"\r")
613 wave /z xwave = $xname
614 if (WaveExists(xwave))
616 variable monotonic = 0
617 duplicate /free xwave, xdiff
618 differentiate /p xwave /D=xdiff
619 duplicate /free xdiff, xflag
621 monotonic = sum(xflag) > numpnts(xwave) * 0.9
623 monotonic = monotonic || (sum(xflag) > numpnts(xwave) * 0.9)
625 setscale /i x xwave[0], xwave[numpnts(xwave)-1], waveunits(xwave, -1), preview
631 static variable
preview_attributes(dfref attr_folder, dfref dest_folder = defaultValue, wave attr_filter = defaultValue, variable include_datawaves = defaultValue, variable include_infowaves = defaultValue){
641 variable include_datawaves
643 variable include_infowaves
646 dfref saveDF = GetDataFolderDFR()
647 setdatafolder $package_path
649 if (ParamIsDefault(dest_folder))
650 dest_folder = GetDataFolderDFR()
652 if (ParamIsDefault(attr_filter))
653 wave /t /z attr_filter
655 if (ParamIsDefault(include_datawaves))
656 include_datawaves = 1
658 if (ParamIsDefault(include_infowaves))
659 include_infowaves = 1
662 setdatafolder dest_folder
663 wave /t /z attr_names, attr_values
664 if (!WaveExists(attr_names) || !WaveExists(attr_values))
665 make /n=(1) /o /t attr_names, attr_values
670 setdatafolder attr_folder
686 if (WaveExists(IN) && include_infowaves)
691 if (include_datawaves)
692 string waves = WaveList(
"*",
";",
"")
693 string exceptions =
"ID;IN;IU;IV" 694 waves = RemoveFromList(exceptions, waves)
695 nw = ItemsInList(waves,
";")
700 if (WaveExists(attr_filter) && (numpnts(attr_filter) >= 1))
701 nattr = numpnts(attr_filter)
702 redimension /n=(nattr) attr_names
703 attr_names = attr_filter
706 redimension /n=(ninfo) attr_names
707 attr_names = SelectString(strlen(ID[p]) >= 0, IN[p], ID[p])
712 redimension /n=(nattr) attr_names
713 for (iw = 0; iw < nw; iw +=1 )
714 sw = StringFromList(iw, waves,
";")
715 ss = StringByKey(
"PV", note($sw),
"=",
"\r")
716 FindValue /text=sw attr_names
717 if ((v_value < 0) && (strlen(ss) >= 0))
718 attr_names[iattr] = sw
724 redimension /n=(nattr) attr_names, attr_values
725 sort attr_names, attr_names
728 for (iattr = 0; iattr < nattr; iattr += 1)
729 sw = attr_names[iattr]
732 FindValue /text=sw ID
734 attr_values[iattr] = IV[v_value]
736 FindValue /text=sw IN
738 attr_values[iattr] = IV[v_value]
744 switch (WaveType($sw, 1))
747 if (WaveExists(w) && (numpnts(w) >= 1))
748 sprintf ss,
"%g", w[0]
749 attr_values[iattr] = ss
754 if (WaveExists(wt) && (numpnts(wt) >= 1))
755 attr_values[iattr] = wt[0]
769 dfref saveDF = GetDataFolderDFR()
771 if (!DataFolderExists(
"root:" + datasetname))
775 setdatafolder $datasetname
776 dfref datadf = GetDataFolderDFR()
778 if (!WaveExists(data))
782 if (WaveExists(data))
783 switch(WaveDims(data))
799 dfref df = GetDataFolderDFR()
800 wave /t /sdfr=df attr_names
801 wave /t /sdfr=df attr_values
810 dfref saveDF = GetDataFolderDFR()
811 setdatafolder $package_path
812 wave /t/z attr_filter, attr_filter_summary
814 string name = CleanupName(
"nb_" + title[0,28], 0)
815 if (WinType(name) == 5)
816 Notebook $name selection={startOfFile, endOfFile}
817 Notebook $name text=
"" 819 NewNotebook /F=1 /K=1 /N=$name as title
820 GetWindow $name wsize
821 v_right = v_left + 260
822 v_bottom = v_top + 360
823 MoveWindow /W=$name v_left, v_top, v_right, v_bottom
824 Notebook $name tabs={2*72}
828 if (WaveExists(attr_filter_summary) && (numpnts(attr_filter_summary) >= 1))
829 notebook $name fStyle=1, text=
"Summary\r\r" 830 notebook $name fStyle=0
832 notebook $name text=
"\r" 836 notebook $name fStyle=1, text=
"All Attributes\r\r" 837 notebook $name fStyle=0
839 notebook $name selection={startOfFile,startOfFile}, findText={
"",1}
846 wave /t /z attr_filter
850 variable nw = numpnts(attr_names)
855 variable do_filter = WaveExists(attr_filter)
857 for (iw = 0; iw < nw; iw += 1)
860 FindValue /text=sw attr_filter
865 sprintf ss,
"%s\t%s\r", attr_names[iw], attr_values[iw]
866 notebook $notebook_name text=ss
876 dfref saveDF = GetDataFolderDFR()
877 setdatafolder $package_path
879 svar s_profiles_graph
881 svar s_preview_source
882 svar s_preview_trace_graph
884 if ((strlen(s_profiles_graph) > 0) && (WinType(s_profiles_graph) == 1))
885 KillWindow $s_profiles_graph
887 if ((strlen(s_preview_trace_graph) > 0) && (WinType(s_preview_trace_graph) == 1))
888 KillWindow $s_preview_trace_graph
892 if (wavedims(data) == 2)
894 ModifyGraph /w=$s_profiles_graph /z wbRGB=(48640,56832,60160)
895 graphname = s_profiles_graph
896 else if (wavedims(data) == 1)
897 duplicate /o data, preview_trace
898 if (!ParamIsDefault(xdata))
899 duplicate /o xdata, preview_trace_x
901 duplicate /o data, preview_trace_x
903 setscale d 0, 0, WaveUnits(data, 0), preview_trace_x
906 ModifyGraph /w=$s_preview_trace_graph wbRGB=(48640,56832,60160)
907 graphname = s_preview_trace_graph
912 string title =
"Preview " + s_preview_file
913 if (strlen(s_preview_source) > 0)
914 title = title +
" (" + s_preview_source[0,31] +
")" 916 dowindow /f/t $graphname, title
926 display /n=pearl_explorer_1d /k=1 ytrace vs xtrace as
"Preview" 927 string graphname = s_name
928 ModifyGraph /w=$graphname rgb[0]=(0,0,0)
929 ModifyGraph /w=$graphname grid=2
930 ModifyGraph /w=$graphname mirror=1
931 ModifyGraph /w=$graphname minor=1
932 ModifyGraph /w=$graphname axThick=0.5
933 ModifyGraph /w=$graphname gridRGB=(52224,52224,52224)
934 ModifyGraph /w=$graphname gridHair=0
935 ModifyGraph /w=$graphname tick=0
936 ModifyGraph /w=$graphname btLen=4
939 string labels = note(ytrace)
941 lab = StringByKey(
"AxisLabelX", labels,
"=",
"\r")
945 Label /w=$graphname bottom lab +
" (\\U)" 946 lab = StringByKey(
"AxisLabelD", labels,
"=",
"\r")
950 Label /w=$graphname left lab +
" (\\U)" 958 dfref saveDF = GetDataFolderDFR()
959 setdatafolder $package_path
963 variable nn = numpnts(wSelectedFiles)
965 for (ii = 0; ii < nn; ii += 1)
966 if (wSelectedFiles[ii])
967 if (ParamIsDefault(options))
979 static variable
load_file(
string filename,
string options = defaultValue){
983 dfref saveDF = GetDataFolderDFR()
988 if (ParamIsDefault(options))
995 if (ParamIsDefault(options))
1011 setdatafolder saveDF
1017 string mode = StringByKey(
"mode", options,
":",
";")
1018 string reduction_func = StringByKey(
"reduction_func", options,
":",
";")
1020 string modes =
"load_reduced" 1023 if (strlen(mode) == 0)
1024 mode = StringFromList(0, modes,
";")
1026 if (strlen(reduction_func) == 0)
1027 reduction_func = StringFromList(0, reduction_functions,
";")
1030 prompt mode,
"Mode", popup, modes
1031 prompt reduction_func,
"Reduction Function", popup, reduction_functions
1032 doprompt
"HDF5 Loading Options", mode, reduction_func
1035 options = ReplaceStringByKey(
"mode", options, mode,
":",
";")
1036 options = ReplaceStringByKey(
"reduction_func", options, reduction_func,
":",
";")
1063 string prompt_name =
"prompt_" + func_name
1064 if (exists(prompt_name) == 6)
1066 return prompt_func(func_param)
1077 dfref saveDF = GetDataFolderDFR()
1079 string loaded_filename =
"" 1081 if (ParamIsDefault(options))
1084 if (strlen(options) == 0)
1086 options = pref_options
1089 pref_options = options
1096 string mode = StringByKey(
"mode", options,
":",
";")
1099 case "load_reduced":
1100 string reduction_func = StringByKey(
"reduction_func", options,
":",
";")
1101 svar pref_params = $(
package_path +
"s_reduction_params")
1102 string reduction_params = pref_params
1104 pref_params = reduction_params
1105 print reduction_func, reduction_params
1106 psh5_load_reduced(nickname,
"pearl_explorer_filepath", filename, $reduction_func, reduction_params)
1108 loaded_filename = s_filepath
1115 if (strlen(loaded_filename) > 0)
1116 setdatafolder $(
"root:" + nickname)
1117 dataDF = GetDataFolderDFR()
1118 string /g pearl_explorer_import =
"load_pshell_file" 1121 setdatafolder saveDF
1129 dfref saveDF = GetDataFolderDFR()
1131 string loaded_filename =
"" 1133 if (ParamIsDefault(options))
1136 if (strlen(options) == 0)
1138 options = pref_options
1141 pref_options = options
1148 string mode = StringByKey(
"mode", options,
":",
";")
1151 case "load_reduced":
1152 string reduction_func = StringByKey(
"reduction_func", options,
":",
";")
1153 svar pref_params = $(
package_path +
"s_reduction_params")
1154 string reduction_params = pref_params
1156 pref_params = reduction_params
1157 print reduction_func, reduction_params
1158 loaded_filename =
adh5_load_reduced(nickname,
"pearl_explorer_filepath", filename, $reduction_func, reduction_params)
1165 if (strlen(loaded_filename) > 0)
1166 setdatafolder $(
"root:" + nickname)
1167 dataDF = GetDataFolderDFR()
1168 string /g pearl_explorer_import =
"load_hdf_file" 1171 setdatafolder saveDF
1179 dfref saveDF = GetDataFolderDFR()
1182 if (ParamIsDefault(options))
1187 newdatafolder /s/o $(
"root:" + nickname)
1188 dfref dataDF = GetDataFolderDFR()
1195 LoadWave /t/p=pearl_explorer_filepath/q filename
1196 svar waves = s_wavenames
1197 dfref actDF = GetDataFolderDFR()
1199 string /g pearl_explorer_import =
"load_itx_file" 1202 if (!DataFolderRefsEqual(actDF, dataDF))
1205 setdatafolder dataDF
1206 if (ItemsInList(WaveList(
"*",
";",
""),
";") == 0)
1207 killdatafolder /z dataDF
1211 setdatafolder saveDF
1222 dfref saveDF = GetDataFolderDFR()
1225 #if exists("MFR_OpenResultFile") 1227 string datasets =
"" 1229 if (strlen(datasets) > 0)
1230 string /g pearl_explorer_import =
"load_mtrx_file" 1231 string s1 = StringFromList(0, datasets)
1233 dataDF = GetWavesDataFolderDFR(w1)
1237 setdatafolder saveDF
1241 string itx_suggest_foldername(
string filename, variable ignoredate = defaultValue,
string sourcename = defaultValue, variable unique = defaultValue){
1257 if (ParamIsDefault(ignoredate))
1260 if (ParamIsDefault(unique))
1264 string basename = ParseFilePath(3, filename,
":", 0, 0)
1265 string extension = ParseFilePath(4, filename,
":", 0, 0)
1269 if (strsearch(basename,
"X03DA_PC", 0, 2) >= 0)
1270 autosource =
"sscan" 1271 basename = ReplaceString(
"_", basename,
"-")
1273 else if (strsearch(basename,
"otf", 0, 2) >= 0)
1276 if (ParamIsDefault(sourcename))
1277 sourcename = autosource
1280 variable nparts = ItemsInList(basename,
"-")
1282 string datepart = StringFromList(nparts - 2, basename,
"-")
1283 string indexpart = StringFromList(nparts - 1, basename,
"-")
1285 sprintf nickname,
"%s_%s", sourcename, indexpart
1287 sprintf nickname,
"%s_%s_%s", sourcename, datepart, indexpart
1290 nickname = CleanupName(basename, 0)
1293 if (unique && CheckName(nickname, 11))
1294 nickname = UniqueName(nickname +
"_", 11, 0)
1301 PauseUpdate; Silent 1
1302 NewPanel /K=1 /W=(800,0,1530,444) as
"PEARL Data Explorer" 1303 ModifyPanel cbRGB=(48640,56832,60160)
1305 GroupBox gb_filepath,pos={8,4},size={224,52},title=
"file system folder" 1306 TitleBox tb_filepath,pos={20,24},size={174,20},frame=2
1307 TitleBox tb_filepath,variable=root:packages:pearl_explorer:s_filepath,fixedSize=1
1309 Button b_browse_filepath,fColor=(65280,48896,32768)
1311 GroupBox gb_prefs,pos={240,4},size={58,52},title=
"prefs",help={
"explorer package preferences"}
1313 Button b_save_prefs,help={
"save preferences of the data explorer package (data file path, attributes filter)"}
1314 Button b_save_prefs,fColor=(65280,48896,32768)
1316 Button b_load_prefs,help={
"load preferences of the data explorer package"}
1317 Button b_load_prefs,fColor=(65280,48896,32768)
1319 GroupBox gb_filelist,pos={8,64},size={224,372},title=
"data files" 1321 ListBox lb_files,listWave=root:packages:pearl_explorer:wtFiles
1322 ListBox lb_files,selWave=root:packages:pearl_explorer:wSelectedFiles,row= 11,mode= 4
1323 TitleBox tb_file_info,pos={20,300},size={198,78},frame=2,fixedSize=1
1324 TitleBox tb_file_info,variable= root:packages:pearl_explorer:s_file_info
1327 Button b_update_filelist,fColor=(65280,48896,32768)
1328 CheckBox cb_file_preview,pos={84,390},size={60,20},title=
"preview" 1329 CheckBox cb_file_preview,help={
"enable/disable automatic preview window when selecting a data file"}
1330 CheckBox cb_file_preview,value=1
1332 Button b_file_prev,help={
"previous file"}
1333 Button b_file_prev,fColor=(65280,48896,32768)
1335 Button b_file_next,help={
"next file"}
1336 Button b_file_next,fColor=(65280,48896,32768)
1339 Button b_load_files,help={
"load the complete contents from the selected files"}
1340 Button b_load_files,fColor=(65280,48896,32768)
1342 Button b_load_files_opt,help={
"load data from the selected files with options (reduced dimensions)"}
1343 Button b_load_files_opt,fColor=(65280,48896,32768)
1346 GroupBox gb_datasets,pos={240,64},size={224,372},title=
"datasets" 1348 ListBox lb_datasets,listWave=root:packages:pearl_explorer:wtDatasets
1349 ListBox lb_datasets,selWave=root:packages:pearl_explorer:wSelectedDatasets,mode= 1
1350 ListBox lb_datasets,selRow= -1
1353 Button b_update_datasets,help={
"update the list of datasets"}
1354 Button b_update_datasets,fColor=(65280,48896,32768)
1355 CheckBox cb_dataset_preview,pos={316,390},size={60,20},title=
"preview" 1356 CheckBox cb_dataset_preview,help={
"enable/disable automatic preview window when selecting a dataset"}
1357 CheckBox cb_dataset_preview,value=0
1359 Button b_dataset_prev,help={
"goto previous dataset"}
1360 Button b_dataset_prev,fColor=(65280,48896,32768)
1362 Button b_dataset_next,help={
"goto next dataset"}
1363 Button b_dataset_next,fColor=(65280,48896,32768)
1366 Button b_dataset_folder,help={
"set the current data folder of the selected dataset"}
1367 Button b_dataset_folder,fColor=(65280,48896,32768)
1369 Button b_dataset_display,help={
"display the selected dataset in its own window"}
1370 Button b_dataset_display,fColor=(65280,48896,32768)
1372 GroupBox gb_preview,pos={472,4},size={250,52},title=
"preview" 1373 TitleBox tb_preview_file,pos={484,24},size={226,20},frame=2
1374 TitleBox tb_preview_file,variable=root:packages:pearl_explorer:s_preview_file,fixedSize=1
1376 GroupBox gb_attributes,pos={472,64},size={250,372},title=
"attributes" 1378 Button b_attr_notebook,help={
"show attribute list in a notebook"}
1379 Button b_attr_notebook,fColor=(65280,48896,32768)
1381 String fldrSav0= GetDataFolder(1)
1382 SetDataFolder root:packages:pearl_explorer:
1383 Edit/W=(484,84,710,384)/HOST=# attr_names,attr_values
1384 ModifyTable format(Point)=1,width(Point)=0,width(attr_names)=103,width(attr_values)=103
1385 ModifyTable statsArea=85
1386 SetDataFolder fldrSav0
1388 SetActiveSubwindow ##
1392 STRUCT WMButtonAction &ba
1394 switch( ba.eventCode )
1406 STRUCT WMButtonAction &ba
1408 switch( ba.eventCode )
1420 STRUCT WMButtonAction &ba
1422 dfref saveDF = GetDataFolderDFR()
1424 switch( ba.eventCode )
1426 PathInfo /S pearl_explorer_filepath
1427 NewPath /M=
"select data file folder" /O/Z pearl_explorer_filepath
1429 PathInfo /S pearl_explorer_filepath
1439 setdatafolder saveDF
1444 STRUCT WMButtonAction &ba
1446 switch( ba.eventCode )
1458 STRUCT WMButtonAction &ba
1460 switch( ba.eventCode )
1472 STRUCT WMButtonAction &ba
1474 switch( ba.eventCode )
1486 STRUCT WMButtonAction &ba
1488 dfref saveDF = GetDataFolderDFR()
1490 switch( ba.eventCode )
1492 setdatafolder $package_path
1495 FindValue /i=1 wSelectedFiles
1497 if (v_value >= numpnts(wtFiles))
1498 v_value = min(numpnts(wtFiles) - 1, 0)
1500 wSelectedFiles = p == v_value
1502 variable ifile = v_value
1513 setdatafolder saveDF
1518 STRUCT WMButtonAction &ba
1520 dfref saveDF = GetDataFolderDFR()
1522 switch( ba.eventCode )
1524 setdatafolder $package_path
1527 FindValue /i=1 wSelectedFiles
1530 v_value = numpnts(wtFiles) - 1
1532 wSelectedFiles = p == v_value
1534 variable ifile = v_value
1545 setdatafolder saveDF
1550 STRUCT WMListboxAction &lba
1552 Variable row = lba.row
1553 Variable col = lba.col
1554 WAVE/T/Z listWave = lba.listWave
1555 WAVE/Z selWave = lba.selWave
1557 switch( lba.eventCode )
1585 STRUCT WMButtonAction &ba
1587 switch( ba.eventCode )
1599 STRUCT WMButtonAction &ba
1601 switch( ba.eventCode )
1605 setdatafolder $package_path
1607 string dataset = wtDatasets[v_value]
1609 sprintf cmd,
"setdatafolder root:%s", PossiblyQuoteName(dataset)
1611 cmd =
"setdatafolder :scan1" 1613 sprintf cmd,
"setdatafolder %s", GetDataFolder(1)
1625 STRUCT WMButtonAction &ba
1627 switch( ba.eventCode )
1631 setdatafolder $package_path
1633 string dataset = wtDatasets[v_value]
1645 STRUCT WMButtonAction &ba
1647 switch( ba.eventCode )
1650 wave /t wtDatasets = $(s_datafolder + s_value)
1652 if (v_value >= numpnts(wtDatasets))
1653 v_value = min(0, numpnts(wtDatasets) - 1)
1657 variable ids = v_value
1672 STRUCT WMButtonAction &ba
1674 switch( ba.eventCode )
1677 wave /t wtDatasets = $(s_datafolder + s_value)
1680 v_value = max(-1, numpnts(wtDatasets) - 1)
1684 variable ids = v_value
1699 STRUCT WMListboxAction &lba
1701 Variable row = lba.row
1702 Variable col = lba.col
1703 WAVE/T/Z listWave = lba.listWave
1704 WAVE/Z selWave = lba.selWave
1706 switch( lba.eventCode )
1734 STRUCT WMButtonAction &ba
1736 dfref saveDF = GetDataFolderDFR()
1738 switch( ba.eventCode )
1740 setdatafolder $package_path
1742 wave /t /z attr_names
1743 wave /t /z attr_values
1744 if (WaveExists(attr_names))
1752 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.
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)
string psh5_load_preview(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 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