From 1b792b40f13bf40266563138d450896f79531161 Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Thu, 11 Feb 2016 13:38:34 +0000
Subject: [PATCH] add various cases, to check further...

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@5441 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/AUG/aug_requests_mapping.m |  10 ++
 crpptbx/AUG/gdat_aug.m             | 153 +++++++++++++++++++++++++++++
 crpptbx/AUG/run_torbeam_fullshot.m |   2 +-
 crpptbx/gdat_plot.m                |   5 +-
 4 files changed, 168 insertions(+), 2 deletions(-)

diff --git a/crpptbx/AUG/aug_requests_mapping.m b/crpptbx/AUG/aug_requests_mapping.m
index 393c495f..b88aed29 100644
--- a/crpptbx/AUG/aug_requests_mapping.m
+++ b/crpptbx/AUG/aug_requests_mapping.m
@@ -144,6 +144,12 @@ switch lower(data_request)
 		    'params_eff.data_request={''MOD'',''EvenN''};' ...
 		    'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.data(:,2)=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ...
 		    'gdat_tmp.n_even.data = gdat_tmp2.data;gdat_tmp.n_even.data_request=params_eff.data_request;gdat_tmp.label={''n\_odd'',''n\_even''};' ...
+		    'params_eff.data_request={''MOD'',''OddNAmp''};' ...
+		    'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.n_odd.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ...
+		    'gdat_tmp.n_odd.amp_t=gdat_tmp2.t;' ...
+		    'params_eff.data_request={''MOD'',''EvenNAmp''};' ...
+		    'gdat_tmp2=gdat_aug(shot,params_eff);gdat_tmp.n_even.amp=reshape(gdat_tmp2.data,length(gdat_tmp2.data),1);' ...
+		    'gdat_tmp.n_even.amp_t=gdat_tmp2.t;' ...
 		    'gdat_tmp.full_path=''MOD/Odd in data and .n_odd; .n_even'';' ...
 		    'gdat_tmp.gdat_request=''mhd'';gdat_tmp.gdat_params.data_request=gdat_tmp.gdat_request;'];
  case 'ne'
@@ -174,6 +180,10 @@ switch lower(data_request)
   mapping.method = 'switchcase';
  case 'ni'
   mapping.method = 'switchcase'; % especially since might have option fit, etc
+ case 'pgyro'
+  mapping.timedim = 1;
+  mapping.label = 'EC gyros';
+  mapping.method = 'switchcase';
  case 'powers'
   mapping.timedim = 1;
   mapping.label = 'various powers';
diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m
index c382962a..9eccee66 100644
--- a/crpptbx/AUG/gdat_aug.m
+++ b/crpptbx/AUG/gdat_aug.m
@@ -1066,6 +1066,159 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
       gdat_data.label = 'pe';
     end
     
+    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+   case {'pgyro'}
+    %  LOAD MULTI CHANNEL DATA ECS
+    %  powers, frequencies, etc 
+    params_eff = gdat_data.gdat_params;
+    params_eff.data_request={'ECS','PECRH'};
+    % pgyro tot in index=9
+    try
+      gdat_data=gdat_aug(shot,params_eff);
+    catch
+      if gdat_params.nverbose>=3; disp(['problems with ' params_eff.data_request]); end
+      return
+    end
+    nb_timepoints = length(gdat_data.t);
+    pgyro = NaN*ones(nb_timepoints,9);
+    pgyro(:,9) = reshape(gdat_data.data,nb_timepoints,1);
+    gdat_data.data = pgyro;
+    labels{9} = 'ECtot';
+    for i=1:4
+      % "old" ECRH1 gyrotrons: gyro 1 to 4 in pgyro
+      params_eff.data_request={'ECS',['PG' num2str(i)]};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i} = gdat_data_i;
+	gdat_data.data(:,i) = reshape(gdat_data_i.data,nb_timepoints,1);
+	gdat_data.dim = [{gdat_data_i.t} {[1:9]}];
+	if max(gdat_data_i.data) > 0.
+	  labels{i} = ['EC_' num2str(i)];
+	end
+      end
+      try
+	a = sf2par('ECS',shot,'gyr_freq',['P_sy1_g' num2str(i)]);
+      catch
+	% gyr_freq not present (old shots for example)
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i}.freq = a;
+	gdat_data.freq_ec(i) = a.value;
+      end
+      try
+	a = sf2par('ECS',shot,'GPolPos',['P_sy1_g' num2str(i)]);
+      catch
+	% GPolPos not present
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i}.polpos = a.value;
+	gdat_data.polpos_ec(i) = a.value;
+      end
+      try
+	a = sf2par('ECS',shot,'GTorPos',['P_sy1_g' num2str(i)]);
+      catch
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i}.torpos = a.value;
+	gdat_data.torpos_ec(i) = a.value;
+      end
+      % "new" ECRH2 gyrotrons: gyro 5 to 8 in pgyro
+      params_eff.data_request={'ECS',['PG' num2str(i) 'N']};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i+4} = gdat_data_i;
+	gdat_data.data(:,i+4) = reshape(gdat_data_i.data,nb_timepoints,1);
+	gdat_data.dim = [{gdat_data_i.t} {[1:9]}];
+	if max(gdat_data_i.data) > 0.
+	  labels{i+4} = ['EC_' num2str(i+4)];
+	end
+      end
+      try
+	a = sf2par('ECS',shot,'gyr_freq',['P_sy2_g' num2str(i)]);
+      catch
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i+4}.freq = a;
+	gdat_data.freq_ec(i+4) = a.value;
+      end
+      try
+	a = sf2par('ECS',shot,'GPolPos',['P_sy2_g' num2str(i)]);
+      catch
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i+4}.polpos = a.value;
+	gdat_data.polpos_ec(i+4) = a.value;
+      end
+      try
+	a = sf2par('ECS',shot,'GTorPos',['P_sy2_g' num2str(i)]);
+      catch
+	a=[];
+      end
+      if isempty(a)
+      else
+	gdat_data.ec{i+4}.torpos = a.value;
+	gdat_data.torpos_ec(i+4) = a.value;
+      end
+      params_eff.data_request={'ECN',['G' num2str(i) 'POL']};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i+4}.gpol_ec = gdat_data_i;
+      end
+      params_eff.data_request={'ECN',['G' num2str(i) 'TOR']};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i+4}.gtor_ec = gdat_data_i;
+      end
+      params_eff.data_request={'ECN',['G' num2str(i) 'PO4']};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i+4}.gpo4_ec = gdat_data_i;
+      end
+      params_eff.data_request={'ECN',['G' num2str(i) 'PO8']};
+      gdat_data_i=gdat_aug(shot,params_eff);
+      if isempty(gdat_data_i.data) || isempty(gdat_data_i.dim)
+      else
+	gdat_data.ec{i+4}.gpo8_ec = gdat_data_i;
+      end
+    end
+    if ~isempty(gdat_data.dim)
+      gdat_data.t = gdat_data.dim{1};
+      gdat_data.x = gdat_data.dim{2};
+      gdat_data.dimunits=[{'time [s]'} {'ECRH1(1:4) ECRH2(1:4) ECtot'}];
+      gdat_data.units='W';
+      gdat_data.freq_ech_units = 'GHz';
+      gdat_data.data_fullpath=['ECS/' 'PGi and PGiN, etc'];
+      icount=0;
+      for i=1:length(labels)
+	if ~isempty(labels{i})
+	  icount=icount+1;
+	  gdat_data.label{icount} = labels{i};
+	end
+      end
+    else
+      gdat_data.freq_ech_units =[]';
+      gdat_data.ec = [];
+      gdat_data.freq_ec = [];
+      gdat_data.polpos_ec = [];
+      gdat_data.torpos_ec = [];
+    end
+
+
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    case {'powers'}
     % case total only
diff --git a/crpptbx/AUG/run_torbeam_fullshot.m b/crpptbx/AUG/run_torbeam_fullshot.m
index 6bdaa684..eb206fb0 100644
--- a/crpptbx/AUG/run_torbeam_fullshot.m
+++ b/crpptbx/AUG/run_torbeam_fullshot.m
@@ -45,7 +45,7 @@ if nargin>=3 && mod(length(varargin),2)==0
 end
 
 if shot>0
-  pgyro=gdat(shot,'pgyro',1);
+  powers=gdat(shot,'powers');
 
   hhDCR = sfread('DCR', shot);
   dousedcr = '';
diff --git a/crpptbx/gdat_plot.m b/crpptbx/gdat_plot.m
index 147f1c46..8282386d 100644
--- a/crpptbx/gdat_plot.m
+++ b/crpptbx/gdat_plot.m
@@ -67,12 +67,15 @@ if prod(isfield(gdat_data,{'data','t'})) && ~isempty(gdat_data.data) && ~isempty
       xlabel(['time']);
     end
     ylabel_eff = gdat_data.label;
-    if iscell(gdat_data.label) && length(gdat_data.label)>=2; ylabel_eff = gdat_data.label{2}; end
+    if iscell(gdat_data.label) && length(gdat_data.label)>=2; ylabel_eff = gdat_data.label{end}; end
     if ~isempty(gdat_data.units)
       hylabel=ylabel([ylabel_eff '[' gdat_data.units ']']);
     else
       hylabel=ylabel(ylabel_eff);
     end
+    if iscell(gdat_data.label) && length(gdat_data.label)>=2;
+      legend(gdat_data.label)
+    end
     zoom on;
   end
   if strcmp(gdat_data.gdat_request,'mhd')
-- 
GitLab