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-compat" 6 #include "pearl-gui-tools" 7 #include "pearl-area-import" 78 strconstant
kPreviewDatasets =
"ScientaImage;ScientaSpectrum;ImageAngleDistribution;ImageEnergyDistribution;Counts;SampleCurrent;" 116 newdatafolder /s /o $(
"root:" + ANickName)
117 dfref fileDF = GetDataFolderDFR()
120 HDF5OpenFile /P=$APathName /R fileID as AFileName
123 string /g s_scanpaths
124 s_filepath = s_path + s_filename
177 if (ParamIsDefault(load_data))
180 if (ParamIsDefault(load_attr))
184 dfref saveDF = GetDataFolderDFR()
188 variable /g psh5_perf_secs
189 timerRefNum = startMSTimer
193 dfref fileDF = GetDataFolderDFR()
196 AFileName = s_filepath
197 print "loading " + s_filepath + "\r"
200 variable ng = ItemsInList(s_scanpaths, ";")
204 for (ig = 0; ig < ng; ig += 1)
205 sg = StringFromList(ig, s_scanpaths, ";")
206 folder = ReplaceString("/", sg, "")
207 folder = ReplaceString(" ", folder, "")
210 newdatafolder /s /o $folder
219 psh5_perf_secs = stopMSTimer(timerRefNum) / 1e6
251 function /s
psh5_load_preview(APathName, AFileName, [load_data, load_attr, pref_scans, pref_datasets])
259 if (ParamIsDefault(load_data))
262 if (ParamIsDefault(load_attr))
265 if (ParamIsDefault(pref_scans))
266 pref_scans = "*scan1*;"
268 if (ParamIsDefault(pref_datasets))
272 dfref saveDF = GetDataFolderDFR()
275 string scanpaths = ""
280 variable /g adh5_perf_secs
281 timerRefNum = startMSTimer
283 HDF5OpenFile /P=$APathName /R /Z fileID as AFileName
285 AFileName = s_path + s_filename
286 dfref fileDF = GetDataFolderDFR()
289 variable ng = ItemsInList(scanpaths)
292 variable np = ItemsInList(pref_scans)
297 for (ip = 0; ip < np; ip += 1)
298 for (ig = 0; ig < ng; ig += 1)
299 sg = StringFromList(ig, scanpaths)
300 sp = StringFromList(ip, pref_scans)
301 if (StringMatch(sg, sp))
313 sg = StringFromList(ig, scanpaths)
317 newdatafolder /o/s attr
325 print "no scans found in file " + AFileName
331 if (timerRefNum >= 0)
332 adh5_perf_secs = stopMSTimer(timerRefNum) / 1e6
367 if (ParamIsDefault(load_data))
370 if (ParamIsDefault(load_attr))
374 dfref saveDF = GetDataFolderDFR()
376 dfref dataDF = GetDataFolderDFR()
381 newdatafolder /s /o attr
388 if (load_data && load_attr)
408 HDF5ListGroup /F /TYPE=1 fileID, "/"
411 variable ng = ItemsInList(S_HDF5ListGroup, ";")
415 for (ig = 0; ig < ng; ig += 1)
416 sg = StringFromList(ig, S_HDF5ListGroup, ";")
417 if (cmpstr(sg[1,4], "scan") == 0)
418 scans = AddListItem(sg, scans, ";", inf)
443 variable include_regions
445 if (ParamIsDefault(include_regions))
450 HDF5ListGroup /TYPE=2 /Z fileID, scanpath
451 result = S_HDF5ListGroup
454 HDF5ListGroup /R /TYPE=2 /Z fileID, scanpath
455 variable n = ItemsInList(S_HDF5ListGroup)
458 string region_datasets
459 for (i = 0; i < n; i += 1)
460 ds = StringFromList(i, S_HDF5ListGroup)
461 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.
string PearlCleanupName(string name)
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.