1 %> @brief Dataset loader
for OPUS
"0" files
3 %> Uses routine written by Michael Nasse during his time at Synchrotron Radiation Centre in Wisconsin, USA
7 methods(Access=
private)
8 function clear_cubes(o)
9 % Clear globals that start with "cube_"
10 cc = who('cube_*', 'global');
12 evalin('base', sprintf('clear(''global'', ''%s'');', cc{i}));
19 function data = load(o, range)
21 flag_range = exist('range', 'var');
32 % Clear globals that start with "cube_"
33 cc = who('cube_*', 'global');
35 evalin('base', sprintf('clear(''global'', ''%s'');', cc{i}));
38 status = load_opus_file2(o.filename);
41 irerror(sprintf(
'OPUS file loading returned error status %d', status));
44 cc = who(
'cube_*',
'global');
47 irerror('Couldn''t find cube variable in the global space!');
52 eval(['global ', cc{1},
'; cube = ', cc{1},
';']);
53 cube = double(cube); % Comes
as single, originally
54 % cube = permute(cube, [2, 1, 3]); % x-y are originally transposed
55 % cube = cube(:, end:-1:1, :); % seems to be right-to-left
56 % cube = cube(end:-1:1, :, :); % seems to be upside down
58 data.X = reshape(cube, [size(cube, 1)*size(cube, 2), size(cube, 3), 1]);
59 data.X = data.X(:, end:-1:1);
60 data.height = size(cube, 1);
62 data.obsnames = arrayfun(@(x, y) sprintf(
'x=%d, y=%d', x, y), floor(temp/data.height), mod(temp, data.height),
'UniformOutput', 0)
';
65 data.fea_x = spectral_axis(end:-1:1);
67 data.classes = zeros(size(data.X, 1), 1);
68 data.classlabels = {'Class 0
'};
73 % Assigns data.classes correcting numbers for eventual non-zero-based
75 m = min(data.classes);
77 irwarning(sprintf('Class numbers started in %d and thus were shifted down in order to start in zero.
', m));
78 data.classes = data.classes-m;
81 % Produces class labels
82 for i = 1:max(data.classes)+1
83 data.classlabels{i} = sprintf('Class %d
', i-1);
87 data.assert_not_nan();
88 data.filename = o.filename;
90 data = data.make_groupnumbers();
98 function o = save(o, data)
99 irerror('Sorry, IRootLab does not save files in OPUS format
');
Dataset loader/saver common class.
Analysis Session (AS) base class.
Dataset loader for OPUS "0" files.