\(\renewcommand\AA{\unicode{x212B}}\)
ExportSampleLogsToHDF5 v1¶
Summary¶
Export a workspace’s sample logs to HDF5 format
Properties¶
Name |
Direction |
Type |
Default |
Description |
---|---|---|---|---|
InputWorkspace |
Input |
Mandatory |
The workspace containing sample logs to be exported |
|
Blacklist |
Input |
str list |
A list of any sample logs that should not be included in the HDF5 file |
|
Filename |
Input |
string |
Mandatory |
HDF5 file to save to. Allowed extensions: [‘.hdf5’, ‘.h5’, ‘.hdf’] |
Description¶
Exports a workspace’s sample logs to a HDF5 file, with an option to exclude certain logs from being saved.
HDF5 File Format¶
The algorithm makes no attempt to sort the sample logs into a
hierarchy - each log is saved to its own dataset, in a group called
Sample Logs. Time-series logs are averaged, and the first element
of FloatArrayProperty
time series logs is used. Where logs have
units, the units are saved in the dataset’s metadata.
Usage¶
Example - Export sample logs to a new HDF5 file:
import h5py
import os
# The following is needed as strings read from h5py are formatted differently between Python 2 and 3
run_number_output = "Run number (read from file): {}"
format_run_number = lambda run_number: run_number_output.format(run_number.tostring().decode())
input_ws = Load(Filename="ENGINX00213855.nxs")
output_filename = os.path.join(config["defaultsave.directory"],
"ExportSampleLogsToHDF5DocTest.hdf5")
ExportSampleLogsToHDF5(InputWorkspace=input_ws,
Filename=output_filename,
Blacklist="nspectra")
with h5py.File(output_filename, "r") as f:
sample_logs_group = f["Sample Logs"]
print("Proton charge saved to file: {}".format("tot_prtn_chrg" in sample_logs_group))
print(format_run_number(sample_logs_group["run_number"][0]))
print("nspectra (blacklisted) saved to file: {}".format("nspectra" in sample_logs_group))
Output:
Proton charge saved to file: True
Run number (read from file): 213855
nspectra (blacklisted) saved to file: False
Categories: AlgorithmIndex | DataHandling\Logs
Source¶
Python: ExportSampleLogsToHDF5.py