From 6fd1f921295725646f3c9ed3e3c107e2db1f6e29 Mon Sep 17 00:00:00 2001 From: Olivier Sauter <olivier.sauter@epfl.ch> Date: Wed, 8 May 2019 13:28:12 +0000 Subject: [PATCH] temp change before moving to tcv_ids_flux_loop.m git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@11835 d63d8f72-b253-0410-a779-e742ad2e26cf --- crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m | 31 --------- crpptbx/TCV_IMAS/tcv_get_ids_core_profiles.m | 4 +- crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m | 4 +- crpptbx/TCV_IMAS/tcv_get_ids_flux_loop.m | 7 +- crpptbx/TCV_IMAS/tcv_get_ids_ip.m | 17 ----- crpptbx/TCV_IMAS/tcv_get_ids_magnetics.m | 12 ++-- crpptbx/TCV_IMAS/tcv_get_ids_pf_active.m | 9 ++- crpptbx/TCV_IMAS/tcv_get_ids_tf.m | 4 +- crpptbx/TCV_IMAS/tcv_get_ids_wall.m | 8 ++- crpptbx/TCV_IMAS/tcv_ids_bpol_probe.m | 67 +++++++++++++++++++ ...cv_get_ids_circuit.m => tcv_ids_circuit.m} | 0 .../{tcv_get_ids_coil.m => tcv_ids_coil.m} | 0 crpptbx/TCV_IMAS/tcv_ids_ip.m | 30 +++++++++ ...{tcv_get_ids_supply.m => tcv_ids_supply.m} | 0 ...rition_2d.m => tcv_ids_wall_description.m} | 0 15 files changed, 127 insertions(+), 66 deletions(-) delete mode 100644 crpptbx/TCV_IMAS/tcv_get_ids_bpol_probe.m delete mode 100644 crpptbx/TCV_IMAS/tcv_get_ids_ip.m create mode 100644 crpptbx/TCV_IMAS/tcv_ids_bpol_probe.m rename crpptbx/TCV_IMAS/{tcv_get_ids_circuit.m => tcv_ids_circuit.m} (100%) rename crpptbx/TCV_IMAS/{tcv_get_ids_coil.m => tcv_ids_coil.m} (100%) create mode 100644 crpptbx/TCV_IMAS/tcv_ids_ip.m rename crpptbx/TCV_IMAS/{tcv_get_ids_supply.m => tcv_ids_supply.m} (100%) rename crpptbx/TCV_IMAS/{tcv_get_ids_descprition_2d.m => tcv_ids_wall_description.m} (100%) 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 55c345b2..00000000 --- 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 2a7dd14e..647a05eb 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 c05276b3..6d30400d 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 0f2edb80..46d4c507 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 5188537b..00000000 --- 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 2736fe7a..86449e0e 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 aaf6a5a6..92a5cae6 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 066b76c5..d0985503 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 4c1c1a8c..2196f69d 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 00000000..73af32fc --- /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 00000000..90b3f003 --- /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 -- GitLab