diff --git a/matlab/AUG/gdat_aug.m b/matlab/AUG/gdat_aug.m index 9cf69c6fca35670c3579d9c352d382b63e7b00ff..1b9a19ee3239718a3b75bab2ca3795cca0fe156f 100644 --- a/matlab/AUG/gdat_aug.m +++ b/matlab/AUG/gdat_aug.m @@ -345,11 +345,35 @@ if strcmp(mapping_for_aug.method,'signal') if isfield(aatmp,'data'); gdat_data.data = aatmp.data; end if isfield(aatmp,'t'); gdat_data.t = aatmp.t; end if isfield(aatmp,'x'); gdat_data.x = aatmp.x; end + if isfield(aatmp,'dim'); gdat_data.dim = aatmp.dim; end if isfield(aatmp,'dimunits'); gdat_data.dimunits = aatmp.dimunits; end gdat_data.data_fullpath=mapping_for_aug.expression; if isempty(aatmp.data) || (isempty(gdat_data.t) && isempty(gdat_data.x)) return end + % construct .dim if not present (means coming from sf2sig) + if ~isfield(aatmp,'dim') + len_t = numel(aatmp.t); + len_x = numel(aatmp.x); + len_data= size(aatmp.data); + itime = find(len_data==len_t); + nbdims_eff = sum([size(gdat_data.data)~=1]); + aatmp.dim{itime} = aatmp.t; + aatmp.dimunits{itime} = aatmp.time_aug.unit; + if nbdims_eff >= 2 + % assume area-base is main 2nd coordinate (did not find a case with 2 area-base (2 coordinates defined in addition to time) to be able to test) + i_x = setdiff([1:2],itime); + aatmp.dim{i_x} = aatmp.x; + aatmp.dimunits(i_x) = aatmp.area.unit; + if isempty(aatmp.dimunits{i_x}); aatmp.dimunits{i_x} = ''; end + for i=3:nbdims_eff + aatmp.dim{i} = [1:size(aatmp.data,i)]; + aatmp.dimunits{i} = ''; + end + end + gdat_data.dim = aatmp.dim; + gdat_data.dimunits = aatmp.dimunits; + end mapping_for_aug_timedim_orig = mapping_for_aug.timedim; if mapping_for_aug.timedim<=0 % need to guess timedim @@ -404,7 +428,6 @@ if strcmp(mapping_for_aug.method,'signal') 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 diff --git a/matlab/AUG/rdaAUG_eff.m b/matlab/AUG/rdaAUG_eff.m index ddbc37e2a80aae27839f6e74a42e9cd87023df3d..41ac8b710e6f5d989c48f00273981abd5c2ae076 100644 --- a/matlab/AUG/rdaAUG_eff.m +++ b/matlab/AUG/rdaAUG_eff.m @@ -116,7 +116,6 @@ if nargin_eff>=7 && ~isempty(varargin_eff{3}) && ischar(varargin_eff{3}) ... time_base_name=varargin_eff{3}(ij(1)+1:end); end end - did_transpose = 0; if usemdsplus % a_remote=mdsremotelist; does not seem sufficient if connection broken, test with 1+2 @@ -476,6 +475,18 @@ end adata.value = adata.data; +% make sure orientation of .x maps 1st 2 dims if 2D +if sum([size(adata.x)~=1]) == 2 && sum([size(adata.data)~=1]) >= 2 + if size(adata.x,1)==size(adata.data,2) && size(adata.x,2)==size(adata.data,1) + adata.x = adata.x'; + if isfield(adata,'dim') + for i=1:numel(adata.dim) + if isequal(adata.dim{i}',adata.x); adata.dim{i} = adata.x; end + end + end + end +end + if strcmp(upper(sigtype),'PNIQ') % transform 4x2 PINIs in 1:8 PINIs and total in index=9 if (prod(size(adata.data))/length(adata.t) == 8)