diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m b/crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m deleted file mode 100644 index 55c345b217b09c36e4c079b43eb71ff5bbcbe44c..0000000000000000000000000000000000000000 --- a/crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m +++ /dev/null @@ -1,31 +0,0 @@ -function [ids_struct_out, varargout] = tcv_get_ids_bpol_probe(shot, ids_structures) -% Get magnetics.bpol_probe - -mdsopen(shot); -tmp = gdat( shot, '\MAGNETICS::BPOL_003'); - -% Get data -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; - - -for ii=1:Nprobes - ids_struct_out{ii}.name = [names{ii}]; - ids_struct_out{ii}.position.r = mdsvalue('STATIC("R_M" )[$1]',ids_struct_out{ii}.name); - ids_struct_out{ii}.position.z = mdsvalue('STATIC("Z_M" )[$1]',ids_struct_out{ii}.name); - - ids_struct_out{ii}.field.data = data(:,ii); - ids_struct_out{ii}.field.time = time; - - %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}.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_core_profiles.m b/crpptbx/TCV_IMAS/tcv_get_ids_core_profiles.m index 2a7dd14ef9e22056fa4b4ac8c079762f20aba6a8..647a05eb592e85a81265adb78f33047a9ee5688f 100644 --- a/crpptbx/TCV_IMAS/tcv_get_ids_core_profiles.m +++ b/crpptbx/TCV_IMAS/tcv_get_ids_core_profiles.m @@ -1,8 +1,10 @@ -function [ids_cores_profiles,ids_cores_profiles_description,varargout] = tcv_get_ids_core_profiles(shot,ids_equil_empty,varargin); +function [ids_cores_profiles,ids_cores_profiles_description,varargout] = tcv_get_ids_core_profiles(shot,ids_equil_empty, gdat_params,varargin); % % [ids_cores_profiles,ids_cores_profiles_description,varargout] = tcv_get_ids_cores_profiles(shot,ids_equil_empty,varargin); % % +% gdat_params: gdat_data.gdat_params to get all params passed from original call, in particular error_bar options +% machine = 'tcv'; tens_time = -1; diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m b/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m index c05276b3320e19e96ab43ea25eb08616e7ba605b..6d30400d278e9460cba418ed1dcd2b54dc0a54b5 100644 --- a/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m +++ b/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m @@ -1,8 +1,10 @@ -function [ids_equilibrium,ids_equilibrium_description,varargout] = tcv_get_ids_equilibrium(shot,ids_equil_empty,varargin); +function [ids_equilibrium,ids_equilibrium_description,varargout] = tcv_get_ids_equilibrium(shot,ids_equil_empty, gdat_params,varargin); % % [ids_equilibrium,ids_equilibrium_description,varargout] = tcv_get_ids_equilibrium(shot,ids_equil_empty,varargin); % % +% gdat_params: gdat_data.gdat_params to get all params passed from original call, in particular error_bar options +% machine = 'tcv'; diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m b/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m index 0f2edb80b56ad992974881d6c6bdab77b89533a6..46d4c5074823397132a1d33f74e65b1dce01c7bb 100644 --- a/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m +++ b/crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m @@ -2,8 +2,7 @@ function ids_struct_out = tcv_get_ids_flux_loop(shot, ids_structures) % Get ids field magnetics.fluxx_loop % Get data -mdsopen(shot); -tmp = gdat(shot, 'tcv_idealloop("FLUX")'); +tmp = gdat_tcv(shot, 'tcv_idealloop("FLUX")'); names = tmp.dim{2}; time = tmp.dim{1}; data = tmp.data; @@ -20,8 +19,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.*ones(size(ids_struct_out{ii}.flux.data)); + 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 + %ids_struct_out{ii}.position.phi = 0; % TO BE FOUND end diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_ip.m b/crpptbx/TCV_IMAS/tcv_get_ids_ip.m deleted file mode 100644 index 5188537ba686c49178c48a2ca592e2aad398759c..0000000000000000000000000000000000000000 --- a/crpptbx/TCV_IMAS/tcv_get_ids_ip.m +++ /dev/null @@ -1,17 +0,0 @@ -function [ids_struct_out] = tcv_get_ids_ip(shot, ids_structures) -% Get magnetics.method{1}.ip - -mdsopen(shot); -tmp = gdat( shot, 'ip_trapeze'); - -time = tmp.dim{1}; -data = tmp.data; - -% Preallocate dimension -ids_struct_out = ids_structures; - -% Put data into ids structure -ids_struct_out{1}.ip.data = data; -ids_struct_out{1}.ip.time = time; - - diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m b/crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m index 2736fe7a7a81604d22baf8f75ca17f8d6478272b..86449e0e1efb992e144eb4334efa5124179a9f25 100644 --- a/crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m +++ b/crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m @@ -1,15 +1,15 @@ -function [ids_magnetics,ids_magnetics_description,varargout] = tcv_get_ids_magnetics(shot, ids_magnetics_empty, varargin) +function [ids_magnetics,ids_magnetics_description,varargout] = tcv_get_ids_magnetics(shot, ids_magnetics_empty, gdat_params, varargin) % % [ids_magnetics,ids_magnetics_description,varargout] = tcv_get_ids_magnetics(shot, ids_magnetics_empty, varargin); % +% gdat_params: gdat_data.gdat_params to get all params passed from original call, in particular error_bar options +% [ids_magnetics, params_magnetics] = tcv_ids_headpart(shot, ids_magnetics_empty,'magnetics','homogeneous_time',0,varargin{:}); -[ids_magnetics.bpol_probe]= tcv_get_ids_bpol_probe(params_magnetics.shot, ids_magnetics.bpol_probe(1)); -[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)); +[ids_magnetics.bpol_probe,ids_magnetics_description.bpol_probe]= tcv_ids_bpol_probe(params_magnetics.shot, ids_magnetics.bpol_probe(1),gdat_params); +[ids_magnetics.flux_loop,ids_magnetics_description.flux_loop]= tcv_ids_flux_loop(params_magnetics.shot, ids_magnetics.flux_loop(1),gdat_params); +[ids_magnetics.method,ids_magnetics_description.method]= tcv_ids_ip(params_magnetics.shot, ids_magnetics.method(1),gdat_params); % 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 aaf6a5a6cb67bcd0705b93ef78e062b07099ba30..92a5cae65803cb21ca8130bc75c295a1ae5c7b3f 100644 --- a/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m +++ b/crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m @@ -1,11 +1,14 @@ -function [ids_pf_active,ids_description,varargout] = tcv_get_ids_pf_active(shot, ids_pf_active_empty, varargin) +function [ids_pf_active,ids_description,varargout] = tcv_get_ids_pf_active(shot, ids_pf_active_empty, gdat_params, varargin) +% +% gdat_params: gdat_data.gdat_params to get all params passed from original call, in particular error_bar options +% % Input pharser [ids_pf_active, params] = tcv_ids_headpart(shot, ids_pf_active_empty,'pf_active','homogeneous_time',0,varargin{:}); % Get subfield -[ids_pf_active.coil]= tcv_get_ids_coil(params.shot, ids_pf_active.coil(1)); -[ids_pf_active.circuit]= tcv_get_ids_circuit(params.shot, ids_pf_active.circuit(1)); +[ids_pf_active.coil]= tcv_ids_coil(params.shot, ids_pf_active.coil(1)); +[ids_pf_active.circuit]= tcv_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 diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_tf.m b/crpptbx/TCV_IMAS/tcv_get_ids_tf.m index 066b76c5b3ab14a2dd46487457169c3820850a3d..d0985503b3c8d59f7155274230b3d9775e143e32 100644 --- a/crpptbx/TCV_IMAS/tcv_get_ids_tf.m +++ b/crpptbx/TCV_IMAS/tcv_get_ids_tf.m @@ -1,4 +1,4 @@ -function [ids_tf_out,ids_tf_out_description] = tcv_get_ids_tf(shot, ids_tf_empty,varargin) +function [ids_tf_out,ids_tf_out_description] = tcv_get_ids_tf(shot, ids_tf_empty, gdat_params,varargin) % % [ids_tf_out] = tcv_get_ids_tf(shot, ids_tf_empty,varargin); % @@ -6,6 +6,8 @@ function [ids_tf_out,ids_tf_out_description] = tcv_get_ids_tf(shot, ids_tf_empt % % ids_tf_empty should at least be the empty tf ids structure in input % +% gdat_params: gdat_data.gdat_params to get all params passed from original call, in particular error_bar options +% ids_tf_out = ids_tf_empty; diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_wall.m b/crpptbx/TCV_IMAS/tcv_get_ids_wall.m index 4c1c1a8c2d4c7a41c7e05e78429527acbf4fa535..2196f69dba15b5b1a36b5b163b489f43bbe05c6e 100644 --- a/crpptbx/TCV_IMAS/tcv_get_ids_wall.m +++ b/crpptbx/TCV_IMAS/tcv_get_ids_wall.m @@ -1,10 +1,14 @@ -function [ids_wall,ids_description,varargout] = tcv_get_ids_wall(shot, ids_wall_empty, varargin) +function [ids_wall,ids_description,varargout] = tcv_get_ids_wall(shot, ids_wall_empty, gdat_params, varargin) +% +% +% gdat_params: gdat_data.gdat_params to get all params passed from original call, in particular error_bar options +% % Input pharser [ids_wall, params] = tcv_ids_headpart(shot, ids_wall_empty,'wall','homogeneous_time',0,varargin{:}); % Get data of outline -[ids_wall.description_2d]= tcv_get_ids_descprition_2d(params.shot, ids_wall.description_2d(1)); +[ids_wall.description_2d]= tcv_ids_wall_description_2d(params.shot, ids_wall.description_2d(1)); % make arrays not filled in empty: not the case for magnetics ids_wall.global_quantities.neutral = {}; % wall does not work with Antoine's addpath diff --git a/crpptbx/TCV_IMAS/tcv_ids_bpol_probe.m b/crpptbx/TCV_IMAS/tcv_ids_bpol_probe.m new file mode 100644 index 0000000000000000000000000000000000000000..73af32fcd36af7147d06d849cdf05e30508b305d --- /dev/null +++ b/crpptbx/TCV_IMAS/tcv_ids_bpol_probe.m @@ -0,0 +1,67 @@ +function [sub_ids_struct_out,sub_ids_struct_out_description, varargout] = tcv_ids_bpol_probe(shot, ids_structures, gdat_params, varargin) +% +% [sub_ids_struct_out,sub_ids_struct_out_description, varargout] = tcv_ids_bpol_probe(shot, ids_structures, gdat_params, varargin) +% +% Get magnetics.bpol_probe +% +% 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, '\MAGNETICS::BPOL_003'); +names = tmp.dim{2}; +time = tmp.dim{1}; +data = tmp.data; +ang_m = gdat_tcv( shot, 'static("ANG_M")'); + +% Preallocate output structure +Nprobes = size(tmp.data,2); +sub_ids_struct_out(1:Nprobes) = ids_structures; + +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.r = mdsvalue('STATIC("R_M" )[$1]',sub_ids_struct_out{ii}.name); + sub_ids_struct_out_description{ii}.position_r = ['from ''STATIC("R_M" )[' sub_ids_struct_out{ii}.name ']''']; + sub_ids_struct_out{ii}.position.z = mdsvalue('STATIC("Z_M" )[$1]',sub_ids_struct_out{ii}.name); + sub_ids_struct_out_description{ii}.position_z = ['from ''STATIC("Z_M" )[' sub_ids_struct_out{ii}.name ']''']; + sub_ids_struct_out{ii}.field.data = data(:,ii); + sub_ids_struct_out_description{ii}.field_data = 'from ''\MAGNETICS::BPOL_003'''; + sub_ids_struct_out{ii}.field.time = time; + + sub_ids_struct_out{ii}.toroidal_angle = 0.; % to see if should match sector 3 (bpol003) + aa = gdat_tcv( shot, ['static("ANG_M")[$1]'',''' sub_ids_struct_out{ii}.name '']); + sub_ids_struct_out{ii}.poloidal_angle = aa.data; + sub_ids_struct_out_description{ii}.poloidal_angle = ['from ' aa.data_fullpath]; + sub_ids_struct_out_description{ii}.toroidal_angle = 'set to 0 although BPOL_003 means sector 3'; +end + +fixed_error = 0.009999999776483; +switch error_bar + case 'relative' + for ii=1:Nprobes + sub_ids_struct_out{ii}.field.data_error_upper = fixed_error.*ones(size(sub_ids_struct_out{ii}.field.data));% TO BE FOUND; + sub_ids_struct_out_description{ii}.field_data_error_upper = ['from fixed error value in case ' error_bar]; + sub_ids_struct_out_description{ii}.field_data_error_lower = ['not provided since symmetric']; + end + case 'added' + for ii=1:Nprobes + sub_ids_struct_out{ii}.field.data_error_upper = sub_ids_struct_out{ii}.field.data + fixed_error.*ones(size(sub_ids_struct_out{ii}.field.data)); + sub_ids_struct_out{ii}.field.data_error_lower = sub_ids_struct_out{ii}.field.data - fixed_error.*ones(size(sub_ids_struct_out{ii}.field.data)); + sub_ids_struct_out_description{ii}.field_data_error_upper = ['from data + fixed error value in case ' error_bar]; + sub_ids_struct_out_description{ii}.field_data_error_lower = ['from data - fixed error value in case ' error_bar]; + end + otherwise + error(['tcv_ids_bpol_loop: error_bar option not known: ' error_bar]) +end + + + + diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_circuit.m b/crpptbx/TCV_IMAS/tcv_ids_circuit.m similarity index 100% rename from crpptbx/TCV_IMAS/tcv_get_ids_circuit.m rename to crpptbx/TCV_IMAS/tcv_ids_circuit.m diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_coil.m b/crpptbx/TCV_IMAS/tcv_ids_coil.m similarity index 100% rename from crpptbx/TCV_IMAS/tcv_get_ids_coil.m rename to crpptbx/TCV_IMAS/tcv_ids_coil.m diff --git a/crpptbx/TCV_IMAS/tcv_ids_ip.m b/crpptbx/TCV_IMAS/tcv_ids_ip.m new file mode 100644 index 0000000000000000000000000000000000000000..90b3f0036f10a7dcbec550f06dd33c2e56afe76e --- /dev/null +++ b/crpptbx/TCV_IMAS/tcv_ids_ip.m @@ -0,0 +1,30 @@ +function [ids_struct_out,ids_struct_out_description] = tcv_ids_ip(shot, ids_structures, gdat_params, varargin) +% +% [ids_struct_out,ids_struct_out_description] = tcv_ids_ip(shot, ids_structures, gdat_params, varargin); +% +% Get magnetics.method{1}.ip +% +% 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, 'ip_trapeze'); +time = tmp.dim{1}; +data = tmp.data; + +% Preallocate dimension +ids_struct_out = ids_structures; + +% Put data into ids structure +ids_struct_out{1}.ip.data = data; +ids_struct_out_description{1}.ip = ['from ' tmp.data_fullpath]; +ids_struct_out{1}.ip.time = time; + + diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_supply.m b/crpptbx/TCV_IMAS/tcv_ids_supply.m similarity index 100% rename from crpptbx/TCV_IMAS/tcv_get_ids_supply.m rename to crpptbx/TCV_IMAS/tcv_ids_supply.m diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_descprition_2d.m b/crpptbx/TCV_IMAS/tcv_ids_wall_description.m similarity index 100% rename from crpptbx/TCV_IMAS/tcv_get_ids_descprition_2d.m rename to crpptbx/TCV_IMAS/tcv_ids_wall_description.m