From 684cf4fe839d6f63aee43cf13f978109d904740c Mon Sep 17 00:00:00 2001
From: Olivier Sauter <Olivier.Sauter@epfl.ch>
Date: Tue, 24 Sep 2019 10:39:36 +0200
Subject: [PATCH] fix ec_ angles and nbi frac orientation

---
 matlab/TCV_IMAS/tcv2ids2database.m        | 13 ++++++++++++-
 matlab/TCV_IMAS/tcv_get_ids_ec_antennas.m |  4 ++--
 matlab/TCV_IMAS/tcv_get_ids_nbi.m         |  4 ++--
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/matlab/TCV_IMAS/tcv2ids2database.m b/matlab/TCV_IMAS/tcv2ids2database.m
index 56191700..a95cf90a 100644
--- a/matlab/TCV_IMAS/tcv2ids2database.m
+++ b/matlab/TCV_IMAS/tcv2ids2database.m
@@ -98,7 +98,18 @@ params_not_in_tcv2ids = {'run_out','occurence','tree_user','tree_tokamak','tree_
 params_tcv2ids = rmfield(params_tcv2ids2database,params_not_in_tcv2ids);
 [ids_from_tcv,idsok] = tcv2ids(shot,params_tcv2ids);
 ids_from_tcv.params_tcv2ids2database = params_tcv2ids2database;
-ids_from_tcv.params_tcv2ids2database
+
+% check that coreprofiles is ok, could mean anaprofs did not succeed
+if isfield(ids_from_tcv,'core_profiles')
+  if isempty(ids_from_tcv.core_profiles.time)
+    warning([char(10) '*************' char(10) ...
+           'core_profiles.time is empty, probably no data in CONF nodes for TCV, check with hldsi(shot) command on SPC-EPFL lacs computers' ...
+           char(10) '*************' char(10)]);
+    return
+  end
+end
+
+  
 %% can plot with: [plotids_H] = plotids([],idsok.ids{1},idsok.ids{2});
 if isfield(ids_from_tcv,'tf')
   % avoid present problem of not saving data if ids_from_tcv.tf.field_map{1}.time is not set
diff --git a/matlab/TCV_IMAS/tcv_get_ids_ec_antennas.m b/matlab/TCV_IMAS/tcv_get_ids_ec_antennas.m
index 8203da41..4c40d5ca 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_ec_antennas.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_ec_antennas.m
@@ -74,9 +74,9 @@ for iant=1:nb_antennas
       ids_ec_antennas.antenna{iant}.launching_position.r.time(i) = time_launch;
       ids_ec_antennas.antenna{iant}.launching_position.z.time(i) = time_launch;
       ids_ec_antennas.antenna{iant}.launching_position.phi.time(i) = time_launch;
-      ids_ec_antennas.antenna{iant}.launching_angle_pol.data(i) = launch_params{iant}{it_ok{iant}(i)}.theta_toray * pi/180.;
+      ids_ec_antennas.antenna{iant}.launching_angle_pol.data(i) = (90.-launch_params{iant}{it_ok{iant}(i)}.theta_toray) * pi/180.;
       ids_ec_antennas.antenna{iant}.launching_angle_pol.time(i) = time_launch;
-      ids_ec_antennas.antenna{iant}.launching_angle_tor.data(i) = launch_params{iant}{it_ok{iant}(i)}.phi_toray * pi/180.;
+      ids_ec_antennas.antenna{iant}.launching_angle_tor.data(i) = (180.-launch_params{iant}{it_ok{iant}(i)}.phi_toray) * pi/180.;
       ids_ec_antennas.antenna{iant}.launching_angle_tor.time(i) = time_launch;
       ids_ec_antennas.antenna{iant}.beam.spot.size.data(i,1:2) = 0.05.*ones(size(time_launch));
       ids_ec_antennas.antenna{iant}.beam.spot.size.time(i) = time_launch;
diff --git a/matlab/TCV_IMAS/tcv_get_ids_nbi.m b/matlab/TCV_IMAS/tcv_get_ids_nbi.m
index 5515cf92..ffbbd5ed 100644
--- a/matlab/TCV_IMAS/tcv_get_ids_nbi.m
+++ b/matlab/TCV_IMAS/tcv_get_ids_nbi.m
@@ -75,14 +75,14 @@ for iunit=1:nb_units
   ids_nbi.unit{iunit}.beam_power_fraction.time = p_frac.t;
   ids_nbi_description.unit{iunit}.beam_power_fraction = ['from \results::' results_subname{iunit} ':fraction'];
   if ~isempty(p_frac.data) && size(p_frac.data,2)>=3
-    ids_nbi.unit{iunit}.beam_power_fraction.data = p_frac.data(:,1:3)*0.01;
+    ids_nbi.unit{iunit}.beam_power_fraction.data = p_frac.data(:,1:3)'*0.01;
     i_frac = p_frac.data(:,1:3).*repmat([1 2 3],size(p_frac.data,1),1); % to be compatible with older matlab version .*[1 2 3] not ok
     i_frac = i_frac.*1./repmat(sum(i_frac),size(p_frac.data,1),1);
   else
     ids_nbi.unit{iunit}.beam_power_fraction.data = p_frac.data;
     i_frac = p_frac.data;
   end
-  ids_nbi.unit{iunit}.beam_current_fraction.data = i_frac;
+  ids_nbi.unit{iunit}.beam_current_fraction.data = i_frac';
   ids_nbi.unit{iunit}.beam_current_fraction.time = p_frac.t;
   %% species
   ids_nbi.unit{iunit}.species.a   = species.a(iunit);
-- 
GitLab