From b622fa38c32a915ea4ad367722ab3d6c475c8d7f Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Thu, 17 Sep 2015 16:12:14 +0000
Subject: [PATCH] added more cases and tested with GUIprofs, proffit,
 toray_automatic so ready to move to new gdat, tag this version first to
 gdat_v3_9

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@5020 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/README                              |   4 +
 crpptbx_new/TCV/gdat_tcv.m                  | 251 +++++++++++++++++---
 crpptbx_new/TCV/tcv_requests_mapping.m      |  40 +++-
 crpptbx_new/demos/html/gdat_tutorial.html   |   8 +-
 crpptbx_new/demos/html/gdat_tutorial_01.png | Bin 6562 -> 4143 bytes
 crpptbx_new/demos/html/gdat_tutorial_02.png | Bin 23913 -> 19209 bytes
 6 files changed, 259 insertions(+), 44 deletions(-)

diff --git a/crpptbx/README b/crpptbx/README
index b7886074..e57b2905 100644
--- a/crpptbx/README
+++ b/crpptbx/README
@@ -19,3 +19,7 @@ The specificity of a given machine are in "help loadNEWMACHINEdata"
 
 Thus the head comments of these functions should be correctly updated and self-explanatory
 
+
+2015/09/17 tag the version before copying new gdat in crpptbx_new to the crpptbx case and removing loadTCVdata
+           note that AUG will not work for a while, but will be repaired next week....
+           svn cp https://crppsvn.epfl.ch/repos/TCV/gdat/trunk https://crppsvn.epfl.ch/repos/TCV/gdat/tags/gdat_v3_9 -m"last version before changing to new gdat with machine_mapping file, first TCV is modified"
diff --git a/crpptbx_new/TCV/gdat_tcv.m b/crpptbx_new/TCV/gdat_tcv.m
index 8e07dd68..269a3fb2 100644
--- a/crpptbx_new/TCV/gdat_tcv.m
+++ b/crpptbx_new/TCV/gdat_tcv.m
@@ -58,6 +58,7 @@ function [gdat_data,gdat_params,error_status,varargout] = gdat_tcv(shot,data_req
 
 varargout{1}=cell(1,1);
 error_status=1;
+nverbose = 1;
 
 % construct default parameters structure
 gdat_params.data_request = '';
@@ -298,7 +299,7 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi')
     aatmp=eval(eval_expr);
   end
   if isempty(aatmp.data) || isempty(aatmp.dim) % || ischar(aatmp.data) (to add?)
-    warning(['problems loading data for ' eval_expr ' for data_request= ' data_request_eff])
+    if (nverbose>=3); warning(['problems loading data for ' eval_expr ' for data_request= ' data_request_eff]); end
     return
   end
   gdat_data.data = aatmp.data;
@@ -349,23 +350,23 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi')
   % end of method "tdi"
 
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-elseif strcmp(mapping_for_tcv.method,'function')
-  % 2nd: method="function"
-  % assume expression contains function to call and which returns a structure
+elseif strcmp(mapping_for_tcv.method,'expression')
+  % 2nd: method="expression"
+  % assume expression contains function to call and which returns a structure into variable gdat_tmp
   % we copy the structure, to make sure default nodes are defined and to avoid if return is an closed object like tdi
-  % eval_expr = ['aatmp=' mapping_for_tcv.expression ';'];
-  aatmp = eval(mapping_for_tcv.expression);
-  if isempty(aatmp) || (~isstruct(aatmp) & ~isobject(aatmp))
+  % eval_expr = [mapping_for_tcv.expression ';'];
+  eval([mapping_for_tcv.expression ';']);
+  if isempty(gdat_tmp) || (~isstruct(gdat_tmp) & ~isobject(gdat_tmp))
     warning(['function expression does not return a structure: ' mapping_for_tcv.expression])
     error_status=801;
     return
   end
-  tmp_fieldnames = fieldnames(aatmp);
-  if sum(strcmp(tmp_fieldnames,'data'))==0 % note: cannot do isfield since aatmp might be an object
+  tmp_fieldnames = fieldnames(gdat_tmp);
+  if sum(strcmp(tmp_fieldnames,'data'))==0 % note: cannot do isfield since gdat_tmp might be an object
     warning(['function does not return a child name ''data'' for ' data_request_eff])
   end
   for i=1:length(tmp_fieldnames)
-    gdat_data.(tmp_fieldnames{i}) = aatmp.(tmp_fieldnames{i});
+    gdat_data.(tmp_fieldnames{i}) = gdat_tmp.(tmp_fieldnames{i});
   end
   % add .t and .x in case only dim is provided
   % do not allow shifting of timedim since should be treated in the relevant function
@@ -623,10 +624,16 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
     
    case {'ne','te'}
     % ne or Te from Thomson data on raw z mesh vs (z,t)
-    nodenameeff=['\results::thomson:' data_request_eff];
+    edge_str_ = '';
+    edge_str_dot = '';
+    if isfield(gdat_data.gdat_params,'edge') && ~isempty(gdat_data.gdat_params.edge) && ...
+          gdat_data.gdat_params.edge>0
+      edge_str_ = '_edge';
+      edge_str_dot = '.edge';
+    end
+    nodenameeff=['\results::thomson' edge_str_dot ':' data_request_eff];
     tracetdi=tdi(nodenameeff);
-    tracestd=tdi(['\results::thomson:' data_request_eff ':error_bar']);
-    trace_fir_rat=tdi('\results::thomson:fir_thom_rat');
+    tracestd=tdi(['\results::thomson' edge_str_dot ':' data_request_eff ':error_bar']);
     gdat_data.data=tracetdi.data'; % Thomson data as (t,z)
     gdat_data.error_bar=tracestd.data';
     gdat_data.data_fullpath=[nodenameeff];
@@ -645,7 +652,7 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
       return
     end
     if strcmp(data_request_eff(1:2),'ne')
-      tracefirrat_data = get_fir_thom_rat_data(shot,'thomson',time);
+      tracefirrat_data = get_fir_thom_rat_data(shot,['thomson' edge_str_],time);
       gdat_data.data_abs = gdat_data.data * diag(tracefirrat_data);
       gdat_data.error_bar_abs = gdat_data.error_bar * diag(tracefirrat_data);
       gdat_data.firrat=tracefirrat_data;
@@ -675,25 +682,31 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
       disp(['!!!!!!!!!!!!!!!!!!!!!!!!! cannot continue with ' data_request_eff])
       return
     end
-    edge_str_col = '';
+    zshift = 0.;
+    if isfield(gdat_data.gdat_params,'zshift') && ~isempty(gdat_data.gdat_params.zshift)
+      zshift = gdat_data.gdat_params.zshift;
+    else
+      gdat_data.gdat_params.zshift = zshift;
+    end
+    edge_str_ = '';
     edge_str_dot = '';
     if isfield(gdat_data.gdat_params,'edge') && ~isempty(gdat_data.gdat_params.edge) && ...
           gdat_data.gdat_params.edge>0
-      edge_str_col = ':edge';
-      edge_str_dot = ':edge';
+      edge_str_ = '_edge';
+      edge_str_dot = '.edge';
     end
     % if nete_rho, do first ne, then Te later (so fir stuff already done)
     if strcmp(data_request_eff,'ne_rho')  || strcmp(data_request_eff,'nete_rho')
-      nodenameeff=['\results::thomson' edge_str_col ':ne'];
+      nodenameeff=['\results::thomson' edge_str_dot ':ne'];
       tracetdi=tdi(nodenameeff);
-      nodenameeff=['\results::thomson' edge_str_col ':ne; error_bar ; fir_thom_rat; (ne,std)*fir_thom_rat'];
-      tracestd=tdi(['\results::thomson'  edge_str_col ':ne:error_bar']);
-      tracefirrat_data = get_fir_thom_rat_data(shot,'thomson',time);
+      nodenameeff=['\results::thomson' edge_str_dot ':ne; error_bar ; fir_thom_rat; (ne,std)*fir_thom_rat'];
+      tracestd=tdi(['\results::thomson'  edge_str_dot ':ne:error_bar']);
+      tracefirrat_data = get_fir_thom_rat_data(shot,['thomson' edge_str_],time);
     else
-      nodenameeff=['\results::thomson' edge_str_col ':te'];
+      nodenameeff=['\results::thomson' edge_str_dot ':te'];
       tracetdi=tdi(nodenameeff);
-      nodenameeff=['\results::thomson' edge_str_col ':te; error_bar'];
-      tracestd=tdi(['\results::thomson' edge_str_col ':te:error_bar']);
+      nodenameeff=['\results::thomson' edge_str_dot ':te; error_bar'];
+      tracestd=tdi(['\results::thomson' edge_str_dot ':te:error_bar']);
     end
     gdat_data.data=tracetdi.data'; % Thomson data as (t,z)
     gdat_data.error_bar=tracestd.data';
@@ -708,6 +721,32 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
     % construct rho mesh
     psi_max=tdi(['\results::thomson' edge_str_dot ':psi_max' substr_liuqe]);
     psiscatvol=tdi(['\results::thomson' edge_str_dot ':psiscatvol' substr_liuqe]);
+    if abs(zshift)>1e-5
+      % calculate new psiscatvol
+      psitdi=tdi(['\results::psi' substr_liuqe]);
+      rmesh=psitdi.dim{1};
+      zmesh=psitdi.dim{2};
+      zthom=mdsdata('dim_of(\thomson:te,1)');
+      zeffshift=zshift;
+      % set zeffshift time array same as psitdi
+      switch length(zeffshift)
+        case 1
+          zeffshift=zeffshift * ones(size(psitdi.dim{3}));
+        case length(psitdi.dim{3})
+          % ok
+        case length(psiscatvol.dim{1})
+          zeffshift=interp1(psiscatvol.dim{1},zeffshift,psitdi.dim{3});
+        otherwise
+          disp(' bad time dimension for zshift')
+          disp(['it should be 1 or ' num2str(length(psiscatvol.dim{1})) ' or ' num2str(length(psitdi.dim{3}))])
+      end
+      for it=1:length(psiscatvol.dim{1})
+        itpsitdi=iround(psitdi.dim{3},psiscatvol.dim{1}(it));
+        psirz=psitdi.data(:,:,itpsitdi);
+        psiscatvol0=griddata(rmesh,zmesh,psirz',0.9*ones(size(zthom)),zthom-zeffshift(itpsitdi));
+        psiscatvol.data(it,:)=psiscatvol0;
+      end
+    end
     if ~isempty(psiscatvol.data) && ~ischar(psiscatvol.data) && ~isempty(psi_max.data) && ~ischar(psi_max.data)
       for ir=1:length(psiscatvol.dim{2})
         rho(ir,:)= sqrt(1.-psiscatvol.data(:,ir)./psi_max.data(:))';
@@ -722,24 +761,106 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
     if any(strcmp(fieldnames(tracetdi),'units'))
       gdat_data.units=tracetdi.units;
     end
+    %%%%%%%%%%% add fitted profiles if 'fit'>=1
+    if isfield(gdat_data.gdat_params,'fit') && ~isempty(gdat_data.gdat_params.fit) && ...
+          gdat_data.gdat_params.fit>0
+      % default is from proffit:avg_time
+      def_proffit = '\results::proffit.avg_time';
+      if isfield(gdat_data.gdat_params,'fit_type') && ~isempty(gdat_data.gdat_params.fit_type)
+        if strcmp(gdat_data.gdat_params.fit_type,'local')
+          def_proffit = '\results::proffit.local_time';
+        else
+          gdat_data.gdat_params.fit_type = 'avg';
+        end
+      else
+        gdat_data.gdat_params.fit_type = 'avg';
+      end
+      if strcmp(data_request_eff(1:2),'ne')
+        nodenameeff = [def_proffit ':neft_abs']; % do first ne if nete asked for
+      elseif strcmp(data_request_eff(1:2),'te')
+        nodenameeff = [def_proffit ':teft'];
+      else
+        disp(['should not be here: data_request_eff, data_request_eff(1:2)= ',data_request_eff, data_request_eff(1:2)]);
+      end
+      if isfield(gdat_data.gdat_params,'trialindx') && ~isempty(gdat_data.gdat_params.trialindx) && ...
+          gdat_data.gdat_params.trialindx>=0
+        nodenameeff=[nodenameeff ':trial'];
+        trialindx = gdat_data.gdat_params.trialindx;
+      else
+        gdat_data.gdat_params.trialindx = [];
+        trialindx = [];
+      end
+      tracetdi=tdi(nodenameeff);
+      if isempty(trialindx)
+        gdat_data.fit.data = tracetdi.data;
+      else
+        if ~isempty(tracetdi.data) && size(tracetdi.data,3)>=trialindx+1
+          gdat_data.fit.data = tracetdi.data(:,:,trialindx+1);
+        else
+          gdat_data.fit.data = [];
+          gdat_data.fit.data_fullpath = [nodenameeff ' with trialindx=' num2str(trialindx) ' is empty'];
+          return
+        end
+      end
+      gdat_data.fit.x=tracetdi.dim{1};
+      gdat_data.fit.t=tracetdi.dim{2};
+      if mapping_for_tcv.timedim~=2 | mapping_for_tcv.gdat_timedim~=2
+        disp(['unexpected timedim in fit: data_request_eff= ' data_request_eff ...
+             ', mapping_for_tcv.timedim= ' mapping_for_tcv.timedim ...
+             ', mapping_for_tcv.gdat_timedim= ' mapping_for_tcv.gdat_timedim]);
+      end
+      gdat_data.dim=tracetdi.dim(1:2);
+      gdat_data.dimunits=tracetdi.dimunits(1:2);
+      if any(strcmp(fieldnames(tracetdi),'units'))
+        gdat_data.fit.units=tracetdi.units;
+      end
+      gdat_data.fit.data_fullpath = nodenameeff;
+      % do te as well if nete asked for
+      if strcmp(data_request_eff(1:4),'nete')
+        gdat_data.fit.ne.data = gdat_data.fit.data;
+        gdat_data.fit.ne.units = gdat_data.fit.units;
+        nodenameeff = [def_proffit ':teft'];
+        if ~isempty(trialindx); nodenameeff=[nodenameeff ':trial']; end
+        tracetdi=tdi(nodenameeff);
+        if isempty(trialindx)
+          gdat_data.fit.te.data = tracetdi.data;
+        else
+        if ~isempty(tracetdi.data) && size(tracetdi.data,3)>=trialindx+1
+          gdat_data.fit.te.data = tracetdi.data(:,:,trialindx+1);
+        else
+          return
+        end
+        end
+        if any(strcmp(fieldnames(tracetdi),'units'))
+          gdat_data.fit.te.units=tracetdi.units;
+        end
+        % construct pe=1.6022e-19*ne*te
+        gdat_data.fit.data = 1.6022e-19.*gdat_data.fit.ne.data .* gdat_data.fit.te.data;
+        gdat_data.fit.units = 'N/m^2; 1.6022e-19 ne Te';
+        gdat_data.fit.data_fullpath = [gdat_data.fit.data_fullpath ' ; ' nodenameeff ' and pe in data'];
+      end
+    else
+      gdat_data.gdat_params.fit = 0;
+    end
+    %%%%%%%%%%%
     % if nete_rho, copy data as .ne, get .te and put pe=e ne Te in data:
-    if strcmp(data_request_eff,'nete_rho')
+    if strcmp(data_request_eff(1:4),'nete')
       gdat_data.ne.data = gdat_data.data_abs;
       gdat_data.ne.error_bar = gdat_data.error_bar_abs;
       gdat_data.ne.firrat=gdat_data.firrat;
       gdat_data.ne.units = 'm^{-3}';
       gdat_data = rmfield(gdat_data,{'firrat','data_abs','error_bar_abs'});
       %
-      nodenameeff=['\results::thomson' edge_str_col ':te'];
+      nodenameeff=['\results::thomson' edge_str_dot ':te'];
       tracetdi=tdi(nodenameeff);
-      nodenameeff=['\results::thomson' edge_str_col ':te; error_bar'];
-      tracestd=tdi(['\results::thomson' edge_str_col ':te:error_bar']);
+      nodenameeff=['\results::thomson' edge_str_dot ':te; error_bar'];
+      tracestd=tdi(['\results::thomson' edge_str_dot ':te:error_bar']);
       gdat_data.te.data=tracetdi.data';
       gdat_data.te.error_bar=tracestd.data';
       gdat_data.te.units = tracetdi.units;
       gdat_data.data_fullpath=['pe=1.6e-19*ne*Te in data, .ne, .te from \results::thomson' ...
-                    edge_str_col ':ne and te and projected on rhopol\_norm'];
-      gdat_data.units='N/m^2';
+                    edge_str_dot ':ne and te and projected on rhopol\_norm'];
+      gdat_data.units='N/m^2; 1.6022e-19 ne Te';
       gdat_data.data = 1.6022e-19 .* gdat_data.ne.data .* gdat_data.te.data;
       gdat_data.error_bar = 1.6022e-19 .* (gdat_data.ne.data .* gdat_data.te.error_bar ...
           + gdat_data.te.data .* gdat_data.ne.error_bar);
@@ -907,12 +1028,66 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
         gdat_data.data_fullpath='sqrt(\results::psitbx:vol/vol_edge)';
         gdat_data.request_description = 'sqrt(volume(rho)/volume(edge))';
       else
-        disp(['should not be here in vol cases with data_request = ' data_request]);
+        disp(['should not be here in vol cases with data_request = ' data_request_eff]);
         return
       end
     end
       gdat_data.t = gdat_data.dim{mapping_for_tcv.gdat_timedim};
     
+   case {'sxr'}
+    % sxr from Xtomo by default or dmpx if 'camera','dmpx' is provided
+
+   case {'profnerho','profterho'}
+    % for backward compatibility but corresponds to ne_rho with param.fit_type='auto' (TCV special)
+    % 
+    nodenameeff=['\results::THOMSON.PROFILES.AUTO:' data_request_eff(5:6)];
+    nodenameeff_vers = [nodenameeff ':version_num'];
+    avers = tdi(nodenameeff_vers);
+    if avers.data==0
+     % may be because nodes not yet filled in, so call once a node
+     ab=tdi(nodenameeff);
+     avers = tdi(nodenameeff_vers);
+    end
+    if avers.data>0
+      tracetdi=tdi(nodenameeff);
+      if avers.data < 2.99
+        % for earlier version the bug made it to have logically (rho,t)
+        gdat_data.data=tracetdi.data;
+        if ~isempty(tracetdi.dim) && ~ischar(tracetdi.data)
+          gdat_data.x=tracetdi.dim{1};
+          gdat_data.t=tracetdi.dim{2};
+          error_status=0;
+        else
+         error_status=2;
+          gdat_data.x=[];
+          gdat_data.t=[];
+        end
+      else
+        gdat_data.data=tracetdi.data'; % error in dimensions for autofits
+        if ~isempty(tracetdi.dim) && ~ischar(tracetdi.data)
+          if nverbose>=3; disp('assumes dim{2} for x in THOMSON.PROFILES.AUTO'); end
+          gdat_data.x=tracetdi.dim{2};
+          gdat_data.t=tracetdi.dim{1};
+          error_status=0;
+        else
+          gdat_data.x=[];
+          gdat_data.t=[];
+         error_status=2;
+        end
+      end
+    else
+      tracetdi=avers;
+      gdat_data.x=[];
+      gdat_data.t=[];
+    end
+    gdat_data.dim=[{gdat_data.x};{gdat_data.t}];
+    gdat_data.dimunits=[{'sqrt(psi\_norm)'} ; {'time [s]'}];
+    if ~isempty(gdat_data.t) && any(strcmp(fieldnames(tracetdi),'units'))
+      gdat_data.units=tracetdi.units;
+    end
+    gdat_data.request_description = 'quick autofits within thomson nodes, using version';
+    gdat_data.fullpath = ['Thomson autfits from ' nodenameeff];
+
    otherwise
     warning(['switchcase= ' data_request_eff ' not known in gdat_tcv'])
     error_status=901;
@@ -972,9 +1147,17 @@ if strcmp(maintracename_eff,'thomson')
     end
   end
 elseif strcmp(maintracename_eff,'thomson_edge')
-  tracefirrat=tdi('\results::thomson_edge:fir_thom_rat');
-  if isempty(tracefirrat.data) || ischar(tracefirrat.data)
-    disp('problem with \results::thomson_edge:fir_thom_rat: empty')
+  if shot>=23801
+    tracefirrat=tdi('\results::thomson.profiles.auto:fir_thom_rat'); %time base not same!!
+    if isempty(tracefirrat.data) || ischar(tracefirrat.data)
+      disp('problem with \results::thomson.profiles.auto:fir_thom_rat: empty, use thomson:fir_thom_rat')
+      tracefirrat=tdi('\results::thomson:fir_thom_rat');
+    end
+  else
+    tracefirrat=tdi('\results::thomson_edge:fir_thom_rat');
+    if isempty(tracefirrat.data) || ischar(tracefirrat.data)
+      disp('problem with \results::thomson_edge:fir_thom_rat: empty')
+    end
   end
 else
   disp('bad input in get_fir_thom_rat_data')
diff --git a/crpptbx_new/TCV/tcv_requests_mapping.m b/crpptbx_new/TCV/tcv_requests_mapping.m
index ddbae25b..94fe43f8 100644
--- a/crpptbx_new/TCV/tcv_requests_mapping.m
+++ b/crpptbx_new/TCV/tcv_requests_mapping.m
@@ -1,4 +1,7 @@
 function mapping = tcv_requests_mapping(data_request)
+%
+% Information pre-defined for gdat_tcv, you can add cases here to match official cases in gdat_tcv, allowing backward compatibility
+%
 
 % Defaults
 mapping = struct(...
@@ -23,7 +26,7 @@ mapping.label = data_request;
 % method = 'tdi' and then expression is the string within tdi (usual case when there is a direct link to an existing signal)
 %                with tdi, if expression cell array, call tdi(cell{1},cell{2},...)
 % method = 'tdiliuqe': same as tdi but adds "_2" or "_3" if 'liuqe',2 or 3 is asked for in options
-% method = 'function', then expression is the funtion to call which should return a structure, which fields are copied to gdat_data
+% method = 'expression', then expression is executed and it should provide the structure gdat_tmp, which fields are copied to gdat_data
 % method = 'switchcase', then there will be a specific case within gdat_tcv (usual case when not directly a signal)
 %
 % label is used for plotting
@@ -62,7 +65,7 @@ switch lower(data_request)
   mapping.timedim = 1;
   mapping.method = 'tdiliuqe';
   mapping.expression = '\results::delta_edge';
-  % mapping.method = 'function';
+  % mapping.method = 'expression';
   % mapping.expression = ['tdi(''\results::q_psi'');']; % for tests
  case 'delta_bottom'
   mapping.timedim = 1;
@@ -123,6 +126,12 @@ switch lower(data_request)
   mapping.timedim = 2;
   mapping.label = 'ne';
   mapping.method = 'switchcase';
+ case 'neft'
+  mapping.timedim = 2;
+  mapping.label = 'ne';
+  mapping.method = 'expression';
+  mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''ne_rho''; ' ...
+                    'params_eff.fit=1;params_eff.fit_type=''avg'';gdat_tmp=gdat_tcv([],params_eff);'];
  case 'nete_rho'
   mapping.timedim = 2;
   mapping.label = 'ne and Te';
@@ -158,6 +167,10 @@ switch lower(data_request)
   mapping.timedim = 2;
   mapping.label = 'q';
   mapping.method = 'switchcase';
+ case 'r_contour'
+  mapping.timedim = 1;
+  mapping.method = 'tdiliuqe';
+  mapping.expression = '\results::r_contour';
  case 'rgeom'
   mapping.timedim = 1;
   mapping.label = 'Rgeom';
@@ -190,6 +203,12 @@ switch lower(data_request)
   mapping.timedim = 2;
   mapping.label = 'Te';
   mapping.method = 'switchcase';
+ case 'teft'
+  mapping.timedim = 2;
+  mapping.label = 'ne';
+  mapping.method = 'expression';
+  mapping.expression = ['params_eff = gdat_data.gdat_params;params_eff.data_request=''te_rho''; ' ...
+                    'params_eff.fit=1;params_eff.fit_type=''avg'';gdat_tmp=gdat_tcv([],params_eff);'];
  case 'ti'
   mapping.timedim = 2;
   mapping.label = 'Ti';
@@ -211,6 +230,10 @@ switch lower(data_request)
   mapping.label = 'Volume(\rho)';
   mapping.method = 'switchcase';
   % mapping.expression = '\results::psitbx:vol'; (if exists for liuqe2 and 3 as well)
+ case 'z_contour'
+  mapping.timedim = 1;
+  mapping.method = 'tdiliuqe';
+  mapping.expression = '\results::z_contour';
  case 'zeff'
   mapping.timedim = 1;
   mapping.label = 'zeff from Ip-Ibs';
@@ -225,8 +248,19 @@ switch lower(data_request)
   mapping.label = 'Zmagaxis';
   mapping.method = 'tdiliuqe';
   mapping.expression = '\results::z_axis';
+  % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  % extra TCV cases (not necessarily in official data_request name list)
+  % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %
+ case {'profnerho','profterho'}
+  mapping.timedim = 1;
+  mapping.label = data_request;
+  mapping.method = 'switchcase';
+  mapping.expression = '';
+  
 % $$$  case ''
-% $$$   mapping.label = '';
+% $$$   mapping.timedim = 1;
+% $$$   mapping.label = data_request;
 % $$$   mapping.method = 'tdi';
 % $$$   mapping.expression = '';
  otherwise
diff --git a/crpptbx_new/demos/html/gdat_tutorial.html b/crpptbx_new/demos/html/gdat_tutorial.html
index dfdd8d7f..8e200f0a 100644
--- a/crpptbx_new/demos/html/gdat_tutorial.html
+++ b/crpptbx_new/demos/html/gdat_tutorial.html
@@ -6,7 +6,7 @@
    <!--
 This HTML was auto-generated from MATLAB code.
 To make changes, update the MATLAB code and republish this document.
-      --><title>gdat_tutorial</title><meta name="generator" content="MATLAB 8.3"><link rel="schema.DC" href="http://purl.org/dc/elements/1.1/"><meta name="DC.date" content="2015-08-27"><meta name="DC.source" content="gdat_tutorial.m"><style type="text/css">
+      --><title>gdat_tutorial</title><meta name="generator" content="MATLAB 8.3"><link rel="schema.DC" href="http://purl.org/dc/elements/1.1/"><meta name="DC.date" content="2015-09-15"><meta name="DC.source" content="gdat_tutorial.m"><style type="text/css">
 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}:focus{outine:0}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0}
 
 html { min-height:100%; margin-bottom:1px; }
@@ -275,12 +275,6 @@ time_eff =
 
      1
 
- read_results_for_chease for shot with LIUQE values for shot = 48836
-wrote /tmp/sauter/EXPEQ_48836t1.0000
-wrote /tmp/sauter/EXPEQ_PP48836t1.0000
-wrote /tmp/sauter/eqdsk.48836t1.0000
-wrote /tmp/sauter/eqdsksigns.48836t1.0000
-wrote /tmp/sauter/EXPEQsigns_48836t1.0000
 do not calculate BR, BZ, Bphi, etc
 Wrote /tmp/sauter/EQDSK_48836t1.0000_COCOS02
 Wrote /tmp/sauter/EQDSK_48836t1.0000_COCOS02_IpB0positive
diff --git a/crpptbx_new/demos/html/gdat_tutorial_01.png b/crpptbx_new/demos/html/gdat_tutorial_01.png
index 985836879c50dee0278900357ef6b53d31116613..f69c2d1cabfb6258b925873a22b0988751534ad2 100644
GIT binary patch
literal 4143
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

literal 6562
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

diff --git a/crpptbx_new/demos/html/gdat_tutorial_02.png b/crpptbx_new/demos/html/gdat_tutorial_02.png
index b3ae183037a80a2ccb4d13c245148fd893c62348..43d6b88d41ba44d533b7685fc87cf3de78e0d3ad 100644
GIT binary patch
literal 19209
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
b=|A(Ci$NdeiN|Vy4u<k{^>bP0l+XkKnZ5;~

literal 23913
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
b|BMFK=iT>Rlu%?~U|{fc^>bP0l+XkK9gs;W

-- 
GitLab