From 6dce500f7ff5824bfab00abbc5b913b1924dd1ce Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Wed, 27 Mar 2019 21:13:33 +0000
Subject: [PATCH] adapt some tcv_get_ids

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@11657 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/TCV_IMAS/ids2database.m           |  4 +---
 crpptbx/TCV_IMAS/tcv2ids2database.m       |  3 ++-
 crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m |  5 +++--
 crpptbx/TCV_IMAS/tcv_get_ids_circuit.m    |  1 +
 crpptbx/TCV_IMAS/tcv_get_ids_coil.m       | 12 ++++--------
 crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m  |  4 ++--
 crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m  |  4 +++-
 crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m  |  2 ++
 crpptbx/TCV_IMAS/tcv_get_ids_supply.m     |  1 +
 crpptbx/TCV_IMAS/tcv_get_ids_wall.m       |  9 ++++++++-
 10 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/crpptbx/TCV_IMAS/ids2database.m b/crpptbx/TCV_IMAS/ids2database.m
index 1aec6e42..c28a897e 100644
--- a/crpptbx/TCV_IMAS/ids2database.m
+++ b/crpptbx/TCV_IMAS/ids2database.m
@@ -78,7 +78,7 @@ try
 
   %% Put the field
   for i=1:length(ids_names_ok)
-    ids_to_get = ids_names_ok{i};
+    ids_to_get = ids_names_ok{i}
     if occurence <= 0
       ids_put(idx,ids_to_get,ids2put.(ids_to_get));
     else
@@ -91,6 +91,4 @@ try
 catch ME
   disp('problems in putting data in database:')
   rethrow(ME)
-  idx
-  keyboard
 end
diff --git a/crpptbx/TCV_IMAS/tcv2ids2database.m b/crpptbx/TCV_IMAS/tcv2ids2database.m
index 7c865b8c..b2b298a8 100644
--- a/crpptbx/TCV_IMAS/tcv2ids2database.m
+++ b/crpptbx/TCV_IMAS/tcv2ids2database.m
@@ -3,10 +3,11 @@
 %
 
 shot=40000;
+shot=62745;
 run_out=999;
 occurence=0;
 
-ids2get = []; % default will load all defined so far
+ids2get = {'equilibrium', 'magnetics', 'pf_active','wall'}; % default will load all defined so far
 [ids_from_tcv,idsok] = tcv2ids(shot,ids2get);
 
 %% can plot with: [plotids_H] = plotids([],idsok.ids{1},idsok.ids{2});
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m b/crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m
index 1991c3a9..55c345b2 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m
@@ -24,7 +24,8 @@ for ii=1:Nprobes
     
     %ids_struct_out{ii}.position.toroidal_angle  =  mdsdata('STATIC("ANG_M"  )[$1]',ids_struct_out{ii}.position.name); 
     %ids_struct_out{ii}.position.poloidal_angle  =  0; % TO BE FOUND   
-    ids_struct_out{ii}.position.field.data_error_upper = 0.001;% TO BE FOUND;   
-    ids_struct_out{ii}.position.field.data_error_upper = 0.001;% TO BE FOUND;    
+
+    ids_struct_out{ii}.field.data_error_upper = 0.001.*ones(size(ids_struct_out{ii}.field.data));% TO BE FOUND;   
+    %(not filled if symmetric) ids_struct_out{ii}.position.field.data_error_lower = 0.001;%.*ones(size(ids_struct_out{ii}.field.data));% TO BE FOUND;    
 end
 
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m b/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m
index 2f13a8fc..4bca1772 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m
@@ -10,6 +10,7 @@ for ii=1:tcv_circuit_info.ntotcircuits
     tmpdata = tdi(tcv_circuit_info.mds_paths{ii}); % Get current
     ids_struct_out{ii}.current.data = tmpdata.data;
     ids_struct_out{ii}.current.time = tmpdata.dim{1};
+    % ids_struct_out{ii}.current.data_error_upper = 0.03.*max(abs(ids_struct_out{ii}.current.data)).*ones(size(ids_struct_out{ii}.current.data));
     ids_struct_out{ii}.connections = tcv_circuit_info.connection_matrix{ii};
     ids_struct_out{ii}.name = tcv_circuit_info.circuit_names{ii}{1};
 end
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_coil.m b/crpptbx/TCV_IMAS/tcv_get_ids_coil.m
index be5a702c..29795881 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_coil.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_coil.m
@@ -62,8 +62,8 @@ for ii=1:ncircuits2ids
     tmpdata = tdi(mds_paths2ids{ii});
     ids_struct_out{ind_coil_ids}.current.data = tmpdata.data;
     ids_struct_out{ind_coil_ids}.current.time = tmpdata.dim{1};
-    ids_struct_out{ind_coil_ids}.current.data_error_lower = 200;
-    ids_struct_out{ind_coil_ids}.current.data_error_upper = 200;    
+    ids_struct_out{ind_coil_ids}.current.data_error_upper = 200.*ones(size(ids_struct_out{ind_coil_ids}.current.data));
+    % (leave empty when symmetric) ids_struct_out{ind_coil_ids}.current.data_error_lower = 200;    
     
 
     % Find index on static tree
@@ -74,14 +74,10 @@ for ii=1:ncircuits2ids
     ids_struct_out{ind_coil_ids}.element{1}.geometry.rectangle.height = h_c(tmpind);
     ids_struct_out{ind_coil_ids}.element{1}.turns_with_sign = nt_c(tmpind);
     ids_struct_out{ind_coil_ids}.element{1}.geometry.geometry_type = 2; % 1 outline, 2 rectangle, 4 arc of circle
-    %ids_struct_out{ind_coil_ids}.current.data_error_upper = % TO BE FOUND;
-    %ids_struct_out{ind_coil_ids}.current.data_error_lower = % TO BE FOUND;
+    % ids_struct_out{ind_coil_ids}.current.data_error_upper = % TO BE FOUND;
+    % (leave empty when symmetric) ids_struct_out{ind_coil_ids}.current.data_error_lower = % TO BE FOUND;
     end
 end
 
 
 
-end 
-
-
-
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m b/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m
index 4ec85cf4..0f2edb80 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m
@@ -20,8 +20,8 @@ for ii=1:Nprobes
     ids_struct_out{ii}.flux.data  =  data(:,ii);
     ids_struct_out{ii}.flux.time  =  time;
 
-    ids_struct_out{ii}.flux.data_error_upper = 0.0012;
-    ids_struct_out{ii}.flux.data_error_lower = 0.0012;
+    ids_struct_out{ii}.flux.data_error_upper = 0.0012.*ones(size(ids_struct_out{ii}.flux.data));
+    %(not filled if symmetric) ids_struct_out{ii}.flux.data_error_lower = 0.0012;%.*ones(size(ids_struct_out{ii}.flux.data));
     %ids_struct_out{ii}.position.phi  =  0; % TO BE FOUND    
 end
 
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m b/crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m
index 883da13a..2736fe7a 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m
@@ -1,6 +1,6 @@
 function [ids_magnetics,ids_magnetics_description,varargout] = tcv_get_ids_magnetics(shot, ids_magnetics_empty, varargin)
 %
-%  [ids_equilibrium,ids_equilibrium_description,varargout] = get_ids_equilibrium_fixed_boundary(shot,varargin);
+%  [ids_magnetics,ids_magnetics_description,varargout] = tcv_get_ids_magnetics(shot, ids_magnetics_empty, varargin);
 %
 
 [ids_magnetics, params_magnetics] = tcv_ids_headpart(shot, ids_magnetics_empty,'magnetics','homogeneous_time',0,varargin{:});
@@ -9,5 +9,7 @@ function [ids_magnetics,ids_magnetics_description,varargout] = tcv_get_ids_magne
 [ids_magnetics.flux_loop]= tcv_get_ids_flux_loop(params_magnetics.shot, ids_magnetics.flux_loop(1));
 [ids_magnetics.method]= tcv_get_ids_ip(params_magnetics.shot, ids_magnetics.method(1));
 
+% make arrays not filled in empty: not the case for magnetics
+
 %% Temporarely documentation
 ids_magnetics_description = struct([]);
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m b/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m
index 7e2f6d63..aaf6a5a6 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m
@@ -8,6 +8,8 @@ function [ids_pf_active,ids_description,varargout] = tcv_get_ids_pf_active(shot,
 [ids_pf_active.circuit]= tcv_get_ids_circuit(params.shot, ids_pf_active.circuit(1));
 [ids_pf_active.supply]= tcv_get_ids_supply(params.shot, ids_pf_active.supply(1));
 
+% make arrays not filled in empty: not the case for magnetics
+ids_pf_active.vertical_force = {};
 
 %% Temporarely 
 ids_description = struct();
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_supply.m b/crpptbx/TCV_IMAS/tcv_get_ids_supply.m
index 2ad3bd3b..da4d3d2b 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_supply.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_supply.m
@@ -10,5 +10,6 @@ for ii=1:tcv_circuit_info.ntotpowersupplies
     tmpdata = tdi(tcv_circuit_info.mds_paths{ii}); % Get current
     ids_struct_out{ii}.current.data = abs(tmpdata.data);
     ids_struct_out{ii}.current.time = tmpdata.dim{1};
+    % ids_struct_out{ii}.current.data_error_upper = 0.03.*max(abs(ids_struct_out{ii}.current.data)).*ones(size(ids_struct_out{ii}.current.data));
     ids_struct_out{ii}.name = tcv_circuit_info.power_supply_names{ii};
 end
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_wall.m b/crpptbx/TCV_IMAS/tcv_get_ids_wall.m
index dcefe347..f588dc02 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_wall.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_wall.m
@@ -6,5 +6,12 @@ function [ids_wall,ids_description,varargout] = tcv_get_ids_wall(shot, ids_wall_
 % Get data of outline
 [ids_wall.description_2d]= tcv_get_ids_descprition_2d(params.shot, ids_wall.description_2d(1));
 
+% make arrays not filled in empty: not the case for magnetics
+% put does not work: ids_wall.global_quantities = struct([]);
+% put does not work: ids_wall.global_quantities.electrons = struct([]);
+ids_wall.global_quantities.neutral = {}; % wall does not work with Antoine's addpath
+ids_wall.description_ggd = {};
+% put does not work: ids_wall.description_2d{1}.type = struct([]);
+
 %% TODO 
-ids_description = [];
\ No newline at end of file
+ids_description = [];
-- 
GitLab