From 654dc8a4d0de7bb89ed21549fcef4ba13820fd94 Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Tue, 9 May 2017 19:44:47 +0000
Subject: [PATCH] add \rhoq2 ptdata type single requests

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@7307 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/D3D/d3d_requests_mapping.m | 14 +++++++++++---
 crpptbx/D3D/gdat_d3d.m             | 17 ++++++++---------
 2 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/crpptbx/D3D/d3d_requests_mapping.m b/crpptbx/D3D/d3d_requests_mapping.m
index 81e31730..b3560f70 100644
--- a/crpptbx/D3D/d3d_requests_mapping.m
+++ b/crpptbx/D3D/d3d_requests_mapping.m
@@ -2,7 +2,6 @@ function mapping = d3d_requests_mapping(data_request)
 %
 % Information pre-defined for gdat_d3d, you can add cases here to match official cases in gdat_d3d, allowing backward compatibility
 %
-
 % Defaults
 mapping = struct(...
     'label', '', ...
@@ -32,7 +31,11 @@ mapping.label = data_request;
 if iscell(data_request) % || (~ischar(data_request) && length(data_request)>1)
   mapping.label = data_request;
   mapping.method = 'signal'; % assume a full tracename is given, so just try with tdi (could check there are some ":", etc...)
-  mapping.expression = data_request;
+  if length(data_request)==1 && strcmp(data_request{1}(1),'\')
+    mapping.expression = {'d3d',data_request{1}};
+  else
+    mapping.expression = data_request;
+  end
   mapping.gdat_timedim = mapping.timedim;
   return
 end
@@ -345,7 +348,12 @@ switch lower(data_request)
  otherwise
   mapping.label = data_request;
   mapping.method = 'signal'; % assume a full tracename is given, so just try with tdi (could check there are some ":", etc...)
-  mapping.expression = data_request;
+  % pseudo point name: '\ptdata' given, or {'\ptdata'} add D3D as tree
+  if ischar(data_request) && strcmp(data_request(1),'\')
+    mapping.expression = {'d3d',data_request};
+  else
+    mapping.expression = data_request;
+  end
   
 end
 
diff --git a/crpptbx/D3D/gdat_d3d.m b/crpptbx/D3D/gdat_d3d.m
index ba9f6505..82ce6719 100644
--- a/crpptbx/D3D/gdat_d3d.m
+++ b/crpptbx/D3D/gdat_d3d.m
@@ -250,11 +250,11 @@ gdat_params = gdat_data.gdat_params;
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % 1st treat the simplest method: "signal"
 if strcmp(mapping_for_d3d.method,'signal')
-  % allow changing main source with simple signals, 'source' parameter relates to mapping_for_d3d.expression{1}
-  if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) || ~ischar(gdat_data.gdat_params.source)
-    gdat_data.gdat_params.source = mapping_for_d3d.expression{1};
+  % allow changing main tree with simple signals, 'tree' parameter relates to mapping_for_d3d.expression{1}
+  if ~isfield(gdat_data.gdat_params,'tree') || isempty(gdat_data.gdat_params.tree) || ~ischar(gdat_data.gdat_params.tree)
+    gdat_data.gdat_params.tree = mapping_for_d3d.expression{1};
   else
-    mapping_for_d3d.expression{1} = gdat_data.gdat_params.source;
+    mapping_for_d3d.expression{1} = gdat_data.gdat_params.tree;
   end
   shoteff = [];
   if exist('mdscurrent') > 0
@@ -708,16 +708,15 @@ elseif strcmp(mapping_for_d3d.method,'switchcase')
     
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    case {'equil'}
-    if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) || ~ischar(gdat_data.gdat_params.source)
-      gdat_data.gdat_params.source = 'efit03';
+    if ~isfield(gdat_data.gdat_params,'equil') || isempty(gdat_data.gdat_params.equil) || ~ischar(gdat_data.gdat_params.equil)
+      gdat_data.gdat_params.equil = 'efit03';
     else
     end
-    gdat_data.gdat_params.equil = gdat_data.gdat_params.source;
     if exist('read_mds_eq_func')<=0
       if gdat_params.nverbose>=3; disp(['addpath(''/m/GAtools/matlab/efit'',''end'') since needs function read_mds_eq_func']); end
       addpath('/m/GAtools/matlab/efit','end');
     end
-    [equil_all_t,neq,eq,ier]=read_mds_eq_func(shot,gdat_data.gdat_params.source,'d3d');
+    [equil_all_t,neq,eq,ier]=read_mds_eq_func(shot,gdat_data.gdat_params.equil,'d3d');
     gdat_data.rhovolnorm = eq.results.geqdsk.rhovn;
     gdat_data.equil_all_t = equil_all_t;
     gdat_data.eq_raw = eq;
@@ -771,7 +770,7 @@ elseif strcmp(mapping_for_d3d.method,'switchcase')
     gdat_data.data = gdat_data.qvalue; % put q in data
     gdat_data.units='q'; % not applicable
     gdat_data.data_fullpath = ...
-        ['q(:,time) in .data, all from [equil_all_t,neq,eq,ier]=read_mds_eq_func(shot,gdat_data.gdat_params.source,''d3d'');'];
+        ['q(:,time) in .data, all from [equil_all_t,neq,eq,ier]=read_mds_eq_func(shot,gdat_data.gdat_params.equil,''d3d'');'];
     gdat_data.cocos = 2; 
     gdat_data.dim{1} = gdat_data.x;
     gdat_data.dim{2} = gdat_data.t;
-- 
GitLab