5@brief Demonstrates reading an SDDS file using the SDDS Python module
7This script showcases how to utilize the SDDS Python module to read and display
8the contents of an SDDS (Self Describing Data Set) file. The script performs the
111. Initializes an SDDS object.
122. Loads an existing SDDS file specified by the user.
133. Determines and displays the file mode (binary or ASCII).
144. Prints the description text and contents if available.
155. Lists all parameters, arrays, and columns along with their metadata.
166. Iterates through each loaded page and displays the data for parameters,
20 Ensure that the SDDS Python module is installed and the input SDDS file
21 (`output_all_data_types.sdds`) is present in the working directory.
29 input_file =
"output_all_data_types.sdds"
35 if sdds_obj.mode == sdds.SDDS_BINARY:
36 print(
"SDDS file mode: SDDS_BINARY")
38 print(
"SDDS file mode: SDDS_ASCII")
41 if sdds_obj.description[0]:
42 print(f
"SDDS file description text: {sdds_obj.description[0]}")
45 if sdds_obj.description[1]:
46 print(f
"SDDS file description contents: {sdds_obj.description[1]}")
49 if sdds_obj.parameterName:
50 print(
"\nParameters:")
51 for i, definition
in enumerate(sdds_obj.parameterDefinition):
52 name = sdds_obj.parameterName[i]
55 description = definition[2]
57 print(f
" Datatype: {datatype}", end=
"")
59 print(f
", Units: {units}", end=
"")
61 print(f
", Description: {description}", end=
"")
65 if sdds_obj.arrayName:
67 for i, definition
in enumerate(sdds_obj.arrayDefinition):
68 name = sdds_obj.arrayName[i]
71 description = definition[2]
72 dimensions = definition[7]
74 print(f
" Datatype: {datatype}, Dimensions: {dimensions}", end=
"")
76 print(f
", Units: {units}", end=
"")
78 print(f
", Description: {description}", end=
"")
82 if sdds_obj.columnName:
84 for i, definition
in enumerate(sdds_obj.columnDefinition):
85 name = sdds_obj.columnName[i]
88 description = definition[2]
90 print(f
" Datatype: {datatype}", end=
"")
92 print(f
", Units: {units}", end=
"")
94 print(f
", Description: {description}", end=
"")
98 for page
in range(sdds_obj.loaded_pages):
99 print(f
"\nPage: {page + 1}")
102 for i, name
in enumerate(sdds_obj.parameterName):
103 value = sdds_obj.parameterData[i][page]
104 print(f
" Parameter '{name}': {value}")
107 for i, name
in enumerate(sdds_obj.arrayName):
108 value = sdds_obj.arrayData[i][page]
109 print(f
" Array '{name}': {value}")
112 for i, name
in enumerate(sdds_obj.columnName):
113 value = sdds_obj.columnData[i][page]
114 print(f
" Column '{name}': {value}")
119if __name__ ==
"__main__":
sdds_data_type_to_string(data_type_code)
Converts a numeric SDDS data type code to its string representation.
SDDS load(input_file)
Loads an SDDS file into the SDDS object.