From fdd1d5f7f297766482309403c490ab728f7ee740 Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Fri, 11 Apr 2014 16:52:41 +0000
Subject: [PATCH] fix cases 3D

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@4396 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/AUG/loadAUGdata.m | 19 +++++++++++++++----
 crpptbx/AUG/rdaAUG_eff.m  |  7 +++++--
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/crpptbx/AUG/loadAUGdata.m b/crpptbx/AUG/loadAUGdata.m
index 189a5f2d..c754704e 100644
--- a/crpptbx/AUG/loadAUGdata.m
+++ b/crpptbx/AUG/loadAUGdata.m
@@ -441,10 +441,21 @@ switch AUGkeywrdcase{index}
       trace.dim=[{trace.x} ; {trace.t}];
       trace.dimunits=[{'R [m] or rho=sqrt(psi_norm)'} ; {'time [s]'}];
     else
-      disp('how to deal with 3D arrays?')
-      trace.dim=[{trace.x} ; {trace.t} ; {d}];
-      trace.dimunits=[{'R [m] or rho=sqrt(psi_norm)'} ; {'time [s]'} ; {'d'}];
-      trace.d=d;
+      % disp('how to deal with 3D arrays?')
+      % find time dimension
+      ilentime=length(trace.t);
+      ij=find(size(trace.value)==ilentime);
+      if ij==1;
+	% as expected
+	trace.x = [1:size(trace.value,2)];
+	trace.dim=[{trace.t} ; {trace.x} ; {[1:size(trace.value,3)]}];
+	trace.dimunits=[{'time [s]'} ; {''} ; {''}];
+      else
+	trace.dim=[{[]} ; {[]} ; {[]}];
+	trace.dim{ij} = trace.t;
+	trace.dimunits=[{[]} ; {[]} ; {[]}];
+	trace.dimunits{ij}='time [s]';
+      end
     end
     trace.name=[num2str(shot) '/' ppftype '/' tracename];
     
diff --git a/crpptbx/AUG/rdaAUG_eff.m b/crpptbx/AUG/rdaAUG_eff.m
index 5ac675f3..ba3f7715 100644
--- a/crpptbx/AUG/rdaAUG_eff.m
+++ b/crpptbx/AUG/rdaAUG_eff.m
@@ -127,7 +127,6 @@ else
   adata.area = adata_area;
  
   adata.exp = shotfile_exp;
-  
   if (prod(size(adata.value))==length(adata.value))
     % only time signal
     adata.x = [];
@@ -140,7 +139,11 @@ else
   else
     if length(size(adata.value))<=2; adata.value = adata.value'; end % cannot transpose Nd>2 matrix
     if ~isempty(adata.time_aug)
-      adata.x=[1:prod(size(adata.value))/length(adata_time.value)];
+      if length(size(adata.value))<=2;
+	adata.x=[1:prod(size(adata.value))/length(adata_time.value)];
+      else
+	adata.x = [];
+      end
       adata.t=adata.time_aug.value;
     else
       adata.x=[1:size(adata.value,1)];
-- 
GitLab