1 #pragma rtGlobals=3 // Use modern global access method and strict wave access. 2 #pragma IgorVersion = 6.36 3 #pragma ModuleName = PearlPShellImport 4 #include <HDF5 Browser> 5 #include "pearl-gui-tools" 6 #include "pearl-area-import" 77 strconstant
kPreviewDatasets =
"ScientaImage;ScientaSpectrum;ImageAngleDistribution;ImageEnergyDistribution;Counts;SampleCurrent;" 115 newdatafolder /s /o $(
"root:" + ANickName)
116 dfref fileDF = GetDataFolderDFR()
119 HDF5OpenFile /P=$APathName /R fileID as AFileName
122 string /g s_scanpaths
123 s_filepath = s_path + s_filename
176 if (ParamIsDefault(load_data))
179 if (ParamIsDefault(load_attr))
183 dfref saveDF = GetDataFolderDFR()
187 variable /g psh5_perf_secs
188 timerRefNum = startMSTimer
192 dfref fileDF = GetDataFolderDFR()
195 AFileName = s_filepath
196 print "loading " + s_filepath + "\r"
199 variable ng = ItemsInList(s_scanpaths, ";")
203 for (ig = 0; ig < ng; ig += 1)
204 sg = StringFromList(ig, s_scanpaths, ";")
205 folder = ReplaceString("/", sg, "")
206 folder = ReplaceString(" ", folder, "")
207 folder = CleanupName(folder, 0)
209 newdatafolder /s /o $folder
218 psh5_perf_secs = stopMSTimer(timerRefNum) / 1e6
250 function /s
psh5_load_preview(APathName, AFileName, [load_data, load_attr, pref_scans, pref_datasets])
258 if (ParamIsDefault(load_data))
261 if (ParamIsDefault(load_attr))
264 if (ParamIsDefault(pref_scans))
265 pref_scans = "*scan1*;"
267 if (ParamIsDefault(pref_datasets))
271 dfref saveDF = GetDataFolderDFR()
274 string scanpaths = ""
279 variable /g adh5_perf_secs
280 timerRefNum = startMSTimer
282 HDF5OpenFile /P=$APathName /R /Z fileID as AFileName
284 AFileName = s_path + s_filename
285 dfref fileDF = GetDataFolderDFR()
288 variable ng = ItemsInList(scanpaths)
291 variable np = ItemsInList(pref_scans)
296 for (ip = 0; ip < np; ip += 1)
297 for (ig = 0; ig < ng; ig += 1)
298 sg = StringFromList(ig, scanpaths)
299 sp = StringFromList(ip, pref_scans)
300 if (StringMatch(sg, sp))
312 sg = StringFromList(ig, scanpaths)
316 newdatafolder /o/s attr
324 print "no scans found in file " + AFileName
330 if (timerRefNum >= 0)
331 adh5_perf_secs = stopMSTimer(timerRefNum) / 1e6
366 if (ParamIsDefault(load_data))
369 if (ParamIsDefault(load_attr))
373 dfref saveDF = GetDataFolderDFR()
375 dfref dataDF = GetDataFolderDFR()
380 newdatafolder /s /o attr
387 if (load_data && load_attr)
407 HDF5ListGroup /F /TYPE=1 fileID, "/"
410 variable ng = ItemsInList(S_HDF5ListGroup, ";")
414 for (ig = 0; ig < ng; ig += 1)
415 sg = StringFromList(ig, S_HDF5ListGroup, ";")
416 if (cmpstr(sg[1,4], "scan") == 0)
417 scans = AddListItem(sg, scans, ";", inf)
442 variable include_regions
444 if (ParamIsDefault(include_regions))
449 HDF5ListGroup /TYPE=2 /Z fileID, scanpath
450 result = S_HDF5ListGroup
453 HDF5ListGroup /R /TYPE=2 /Z fileID, scanpath
454 variable n = ItemsInList(S_HDF5ListGroup)
457 string region_datasets
458 for (i = 0; i < n; i += 1)
459 ds = StringFromList(i, S_HDF5ListGroup)
460 if (StringMatch(ds, "region*
const string kEnergyDimLabel
Dimension label for the energy dispersive dimension of multi-dimensional datasets.
string psh5_load_scan_preview(variable fileID, string scanpath, variable set_scale=defaultValue, string pref_datasets=defaultValue)
load a preview dataset from an open PShell HDF5 file.
string psh5_load_scan_attrs(variable fileID, string scanpath, variable attr_sets=defaultValue)
load attributes of a PShell scan group.
const string kTransposedDatasets
List of datasets that should be transposed upon loading.
string psh5_load_scan_complete(variable fileID, string scanpath, variable load_data=defaultValue, variable load_attr=defaultValue)
load all data of a selected scan from a PShell data file.
const string kScanDimLabel
Dimension label for the scan dimension of multi-dimensional datasets.
const string kAngleDimLabel
Dimension label for the angle dispersive dimension of multi-dimensional datasets. ...
const string kDataDimLabel
Dimension label for the data dimension.
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.
variable psh5_open_file(string ANickName, string APathName, string AFileName)
open a HDF5 file created by the PShell data acquisition program and prepare the data folder...
variable ps_scale_datasets()
set the dimension scales of loaded PShell Scienta datasets according to attributes.
string psh5_load_scan_meta(variable fileID, string scanpath)
load metadata of a PShell scan group.
const string kScientaScalingDatasets
List of datasets that must be loaded to determine the axis scaling of a Scienta image.
string psh5_list_scan_datasets(variable fileID, string scanpath, variable include_regions=defaultValue)
list datasets of a PShell scan group.
string psh5_load_scan_data(variable fileID, string scanpath)
load all datasets of a PShell scan group.
const variable kDetectorSensitivity
multiply scienta detector intensity by this value to get actual counts.
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.
string psh5_list_scans(variable fileID)
list scan groups of a PShell data file.
variable psh5_close_file(variable fileID)
close a HDF5 file opened by psh5_open_file.
const string kPreviewDatasets
List of preferred datasets to load for preview.