From 0f7c8aeecac999ee2f766dd22c7f8886cd90380c Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Wed, 8 May 2019 13:31:04 +0000
Subject: [PATCH] change all tcv_get_ids_xxx.m names to tcv_ids_xxx.m if xxx is
 not an ids

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@11836 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m | 26 -----------
 crpptbx/TCV_IMAS/tcv_ids_flux_loop.m     | 58 ++++++++++++++++++++++++
 2 files changed, 58 insertions(+), 26 deletions(-)
 delete mode 100644 crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m
 create mode 100644 crpptbx/TCV_IMAS/tcv_ids_flux_loop.m

diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m b/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m
deleted file mode 100644
index 46d4c507..00000000
--- a/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m
+++ /dev/null
@@ -1,26 +0,0 @@
-function ids_struct_out = tcv_get_ids_flux_loop(shot, ids_structures)
-% Get ids field magnetics.fluxx_loop 
-
-% Get data 
-tmp = gdat_tcv(shot, 'tcv_idealloop("FLUX")');
-names = tmp.dim{2};
-time = tmp.dim{1};
-data = tmp.data;
-
-% Preallocate output structure
-Nprobes = size(tmp.data,2);
-ids_struct_out(1:Nprobes) = ids_structures;
-
-% Put data on ids structure
-for ii=1:Nprobes
-    ids_struct_out{ii}.name  = [names{ii}];
-    ids_struct_out{ii}.position{1}.r  = mdsvalue('STATIC("R_F"  )[$1]',ids_struct_out{ii}.name);
-    ids_struct_out{ii}.position{1}.z  = mdsvalue('STATIC("Z_F"  )[$1]',ids_struct_out{ii}.name);
-    ids_struct_out{ii}.flux.data  =  data(:,ii);
-    ids_struct_out{ii}.flux.time  =  time;
-
-    ids_struct_out{ii}.flux.data_error_upper = 0.001200000056997.*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_ids_flux_loop.m b/crpptbx/TCV_IMAS/tcv_ids_flux_loop.m
new file mode 100644
index 00000000..ffb338de
--- /dev/null
+++ b/crpptbx/TCV_IMAS/tcv_ids_flux_loop.m
@@ -0,0 +1,58 @@
+function [sub_ids_struct_out,sub_ids_struct_out_description] = tcv_ids_flux_loop(shot, ids_structures, gdat_params, varargin)
+%
+% [sub_ids_struct_out,sub_ids_struct_out_description] = tcv_ids_flux_loop(shot, ids_structures, gdat_params, varargin)
+% 
+% Get ids field magnetics.flux_loop 
+%
+% error_bar: from gdat_params.error_bar
+%            'relative' (default): value to be added
+%            'added': value already added to data: data +- error_bar
+%
+
+error_bar = 'relative';
+if exist('gdat_params') && isfield(gdat_params,'error_bar') && ~isempty(gdat_params.error_bar)
+  error_bar = gdat_params.error_bar;
+end
+
+% Get data 
+tmp = gdat_tcv(shot, 'tcv_idealloop("FLUX")');
+names = tmp.dim{2};
+time = tmp.dim{1};
+data = tmp.data;
+
+% Preallocate output structure
+Nprobes = size(tmp.data,2);
+sub_ids_struct_out(1:Nprobes) = ids_structures;
+
+% Put data on ids structure
+for ii=1:Nprobes
+    sub_ids_struct_out{ii}.name  = [names{ii}];
+    sub_ids_struct_out_description{ii}.name  = [names{ii}];
+    sub_ids_struct_out{ii}.position{1}.r  = mdsvalue('STATIC("R_F"  )[$1]',sub_ids_struct_out{ii}.name);
+    sub_ids_struct_out_description{ii}.position_r  = ['from ''STATIC("R_F"  )[' sub_ids_struct_out{ii}.name ']'''];
+    sub_ids_struct_out{ii}.position{1}.z  = mdsvalue('STATIC("Z_F"  )[$1]',sub_ids_struct_out{ii}.name);
+    sub_ids_struct_out_description{ii}.position_z  = ['from ''STATIC("Z_F"  )[' sub_ids_struct_out{ii}.name ']'''];
+    sub_ids_struct_out{ii}.flux.data  =  data(:,ii);
+    sub_ids_struct_out_description{ii}.flux_data  =  'from ''tcv_idealloop("FLUX")''';
+    % sub_ids_struct_out{ii}.position.phi  =  0; % TO BE FOUND
+end
+
+switch error_bar
+ case 'relative'
+  for ii=1:Nprobes 
+    sub_ids_struct_out{ii}.flux.data_error_upper = 0.001200000056997.*ones(size(sub_ids_struct_out{ii}.flux.data));
+    sub_ids_struct_out_description{ii}.flux_data_error_upper = ['from fixed error value in case ' error_bar];
+    sub_ids_struct_out_description{ii}.flux_data_error_lower = ['not provided since symmetric'];
+    %(not filled if symmetric) sub_ids_struct_out{ii}.flux.data_error_lower = 0.0012;%.*ones(size(sub_ids_struct_out{ii}.flux.data));
+  end
+ case 'added'
+  for ii=1:Nprobes 
+    sub_ids_struct_out{ii}.flux_data_error_upper = sub_ids_struct_out{ii}.flux.data + 0.001200000056997.*ones(size(sub_ids_struct_out{ii}.flux.data));
+    sub_ids_struct_out{ii}.flux_data_error_lower = sub_ids_struct_out{ii}.flux.data - 0.001200000056997.*ones(size(sub_ids_struct_out{ii}.flux.data));
+    sub_ids_struct_out_description{ii}.flux.data_error_upper = ['from data + fixed error value in case ' error_bar];
+    sub_ids_struct_out_description{ii}.flux.data_error_lower = ['from data - fixed error value in case ' error_bar];
+  end
+ otherwise
+  error(['tcv_ids_flux_loop: error_bar option not known: ' error_bar])
+end
+
-- 
GitLab