diff --git a/matlab/AUG/gdat_aug.m b/matlab/AUG/gdat_aug.m index 3bce4c3bb4f18a5635de2563a26b163eb5b2e6b7..9cf69c6fca35670c3579d9c352d382b63e7b00ff 100644 --- a/matlab/AUG/gdat_aug.m +++ b/matlab/AUG/gdat_aug.m @@ -350,6 +350,7 @@ if strcmp(mapping_for_aug.method,'signal') if isempty(aatmp.data) || (isempty(gdat_data.t) && isempty(gdat_data.x)) return end + mapping_for_aug_timedim_orig = mapping_for_aug.timedim; if mapping_for_aug.timedim<=0 % need to guess timedim if prod(size(aatmp.data)) == length(aatmp.data) @@ -379,11 +380,31 @@ if strcmp(mapping_for_aug.method,'signal') gdat_data.dim{mapping_for_aug.timedim} = gdat_data.t; gdat_data.dimunits{mapping_for_aug.timedim} = 'time [s]'; nbdims = length(size(gdat_data.data)); - for i=1:nbdims - if i~=mapping_for_aug.timedim - ieff=i; - if i>mapping_for_aug.timedim; ieff=i-1; end - gdat_data.dim{i} = gdat_data.x{ieff}; + % should copy dims from aatmp but skip time dm already set + if numel(aatmp.dim) ~= nbdims + error(['in gdat_aug: numel(aatmp.dim)(=',num2str(numel(aatmp.dim)),') ~= nbdims(=',num2str(nbdims),')']); + else + iotherdims = setdiff([1:nbdims],mapping_for_aug.timedim); + % set 1st non-time dim to .x + if ~isequal(aatmp.x,aatmp.dim{iotherdims(1)}); warning('aatmp.x was not 1st non-time dim'); end + gdat_data.dim(iotherdims) = aatmp.dim(iotherdims); + gdat_data.dimunits(iotherdims) = aatmp.dimunits(iotherdims); + gdat_data.x = gdat_data.dim{iotherdims(1)}; + % often time as 1st dim, but would be more "our" standard as 2nd dim, at this stage change systematically + if mapping_for_aug_timedim_orig <= 0 && mapping_for_aug.timedim==1 + % switch 1st two dimensions + adim = gdat_data.dim; + gdat_data.dim(1:2) = adim([2 1]); + adimunits = gdat_data.dimunits; + gdat_data.dimunits(1:2) = adimunits([2 1]); + mapping_for_aug.timedim = 2; + mapping_for_aug.gdat_timedim = mapping_for_aug.timedim; + if numel(size(gdat_data.dim{1}))==2; gdat_data.dim{1} = gdat_data.dim{1}'; end + gdat_data.x = gdat_data.dim{1}; + gdat_data.t = gdat_data.dim{mapping_for_aug.timedim}; + adata = gdat_data.data; + gdat_data.data = permute(adata,[2 1 3:numel(size(adata))]); + end end end