From 24f77900e474dbb31f8d570e58e5c7d31d23a5e1 Mon Sep 17 00:00:00 2001 From: Antoine Merle <antoine.merle@epfl.ch> Date: Wed, 6 May 2020 12:05:54 +0200 Subject: [PATCH] Use TS system specification in tcv_get_ids_thomson_scattering --- .../TCV_IMAS/tcv_get_ids_thomson_scattering.m | 128 ++++++++---------- 1 file changed, 56 insertions(+), 72 deletions(-) diff --git a/matlab/TCV_IMAS/tcv_get_ids_thomson_scattering.m b/matlab/TCV_IMAS/tcv_get_ids_thomson_scattering.m index e0fdcdbc..ae928d49 100644 --- a/matlab/TCV_IMAS/tcv_get_ids_thomson_scattering.m +++ b/matlab/TCV_IMAS/tcv_get_ids_thomson_scattering.m @@ -16,94 +16,78 @@ end if exist('gdat_params','var') [ids_thomson_scattering, ~] = tcv_ids_headpart(shot, ids_thomson_scattering_empty,'thomson_scattering','homogeneous_time',0,'gdat_params',gdat_params,varargin{:}); - % Main system - params_eff = gdat_params; - params_eff.edge = 0; - params_eff.data_request = 'ne'; - ne0 = gdat_tcv(shot,params_eff); - params_eff.data_request = 'te'; - te0 = gdat_tcv(shot,params_eff); - % Edge system + % All system params_eff = gdat_params; - params_eff.edge = 1; + if ~isfield(gdat_params,'systems') || isempty(gdat_params,'systems') + params_eff.systems = 'all'; + end params_eff.data_request = 'ne'; - ne1 = gdat_tcv(shot,params_eff); + ne = gdat_tcv(shot,params_eff); params_eff.data_request = 'te'; - te1 = gdat_tcv(shot,params_eff); + te = gdat_tcv(shot,params_eff); else [ids_thomson_scattering, ~] = tcv_ids_headpart(shot, ids_thomson_scattering_empty,'thomson_scattering','homogeneous_time',0,varargin{:}); % Main system - ne0 = gdat_tcv(shot, 'ne', 'edge',0); - te0 = gdat_tcv(shot, 'te', 'edge',0); - % Edge system - ne1 = gdat_tcv(shot, 'ne', 'edge',1); - te1 = gdat_tcv(shot, 'te', 'edge',1); + ne = gdat_tcv(shot, 'ne', 'systems','all'); + te = gdat_tcv(shot, 'te', 'systems','all'); end ids_thomson_scattering_description = struct(); -status = ~ischar(ne0.data) & ~ischar(te0.data) & ~ischar(ne1.data) & ~ischar(te1.data); +status = ~ischar(ne.data) & ~ischar(te.data); if status - nchannel0 = size(ne0.data_raw,1); - nchannel1 = size(ne1.data_raw,1); - nchannel = nchannel0 + nchannel1; + nchannel = size(ne.data_raw); ids_thomson_scattering.channel(1:nchannel) = ids_thomson_scattering.channel(1); - for system = {'main','edge'} - switch system{1} - case 'main', nchannel = nchannel0; offset = 0; ne = ne0; te = te0; edge_str = ')'; - case 'edge', nchannel = nchannel1; offset = nchannel0; ne = ne1; te = te1; edge_str = ',''edge'',1'; + for ii = 1:nchannel + system = ne.system{ii}; + ids_thomson_scattering.channel{ii}.name = sprintf('%03d/%s',ii,system); + ids_thomson_scattering_description.channel{ii}.name = sprintf('TS system %s, global index from order in \results::thomson tree',system); + ids_thomson_scattering.channel{ii}.identifier = sprintf('Z=%+5.3gm/%s',ne.x(ii),system); + ids_thomson_scattering_description.channel{ii}.identifier = 'Identifier from Vertical position'; + ids_thomson_scattering.channel{ii}.position.r = 0.9; + ids_thomson_scattering_description.channel{ii}.position.r = 'Fixed R=0.9m'; + ids_thomson_scattering.channel{ii}.position.z = ne.x(ii); + ids_thomson_scattering_description.channel{ii}.position.z = 'Vertical position ne.x from gdat_tcv(shot,''ne''''systems'',''all'')'; + ids_thomson_scattering.channel{ii}.t_e.data = reshape(te.data(ii,:),[],1); + ids_thomson_scattering_description.channel{ii}.t_e.data = 'te.data from gdat_tcv(shot,''te''''systems'',''all'')'; + if (ids_thomson_scattering.ids_properties.homogeneous_time == 0) + ids_thomson_scattering.channel{ii}.t_e.time = reshape(te.t,[],1); + ids_thomson_scattering_description.channel{ii}.t_e.time = 'te.t from gdat_tcv(shot,''te''''systems'',''all'')'; + end + ids_thomson_scattering.channel{ii}.n_e.data = reshape(ne.data_raw(ii,:),[],1); + ids_thomson_scattering_description.channel{ii}.n_e.data = 'ne.data_raw from gdat_tcv(shot,''ne''''systems'',''all'')'; + if (ids_thomson_scattering.ids_properties.homogeneous_time == 0) + ids_thomson_scattering.channel{ii}.n_e.time = reshape(ne.t,[],1); + ids_thomson_scattering_description.channel{ii}.n_e.time = 'ne.t from gdat_tcv(shot,''ne''''systems'',''all'')'; end - for ii = 1:nchannel - jj = ii+offset; - ids_thomson_scattering.channel{jj}.name = sprintf('%s %03d',system{1},ii); - ids_thomson_scattering_description.channel{jj}.name = sprintf('TS system %s, index from order in \results::thomson tree',system{1}); - ids_thomson_scattering.channel{jj}.identifier = sprintf('Z=%+5.3gm',ne.x(ii)); - ids_thomson_scattering_description.channel{jj}.identifier = 'Identifier from Vertical position'; - ids_thomson_scattering.channel{jj}.position.r = 0.9; - ids_thomson_scattering_description.channel{jj}.position.r = 'Fixed R=0.9m'; - ids_thomson_scattering.channel{jj}.position.z = ne.x(ii); - ids_thomson_scattering_description.channel{jj}.position.z = ['Vertical position ne.x from gdat_tcv(shot,''ne'',',edge_str,')']; - ids_thomson_scattering.channel{jj}.t_e.data = reshape(te.data(ii,:),[],1); - ids_thomson_scattering_description.channel{jj}.t_e.data = ['te.data from gdat_tcv(shot,''te'',',edge_str,')']; - if (ids_thomson_scattering.ids_properties.homogeneous_time == 0) - ids_thomson_scattering.channel{jj}.t_e.time = reshape(te.t,[],1); - ids_thomson_scattering_description.channel{jj}.t_e.time = ['te.t from gdat_tcv(shot,''te'',',edge_str,')']; - end - ids_thomson_scattering.channel{jj}.n_e.data = reshape(ne.data_raw(ii,:),[],1); - ids_thomson_scattering_description.channel{jj}.n_e.data = ['ne.data_raw from gdat_tcv(shot,''ne'',',edge_str,')']; - if (ids_thomson_scattering.ids_properties.homogeneous_time == 0) - ids_thomson_scattering.channel{jj}.n_e.time = reshape(ne.t,[],1); - ids_thomson_scattering_description.channel{jj}.n_e.time = ['ne.t from gdat_tcv(shot,''ne'',',edge_str,')']; - end - switch error_bar - case 'delta' - ids_thomson_scattering.channel{jj}.t_e.data_error_upper = reshape(abs(te.error_bar(ii,:)),[],1); - ids_thomson_scattering_description.channel{jj}.t_e.data_error_upper = ['abs(te.error_bar) from gdat_tcv(shot,''te'',',edge_str,') for case ',error_bar]; - ids_thomson_scattering.channel{jj}.n_e.data_error_upper = reshape(abs(ne.error_bar(ii,:)),[],1); - ids_thomson_scattering_description.channel{jj}.n_e.data_error_upper = ['abs(ne.error_bar) from gdat_tcv(shot,''ne'',',edge_str,') for case ',error_bar]; - case 'delta_with_lower' - ids_thomson_scattering.channel{jj}.t_e.data_error_upper = reshape(abs(te.error_bar(ii,:)),[],1); - ids_thomson_scattering_description.channel{jj}.t_e.data_error_upper = ['abs(te.error_bar) from gdat_tcv(shot,''te'',',edge_str,') for case ',error_bar]; - ids_thomson_scattering.channel{jj}.t_e.data_error_lower = reshape(abs(te.error_bar(ii,:)),[],1); - ids_thomson_scattering_description.channel{jj}.t_e.data_error_lower = ['abs(te.error_bar) from gdat_tcv(shot,''te'',',edge_str,') for case ',error_bar]; - ids_thomson_scattering.channel{jj}.n_e.data_error_upper = reshape(abs(ne.error_bar(ii,:)),[],1); - ids_thomson_scattering_description.channel{jj}.n_e.data_error_upper = ['abs(ne.error_bar) from gdat_tcv(shot,''ne'',',edge_str,') for case ',error_bar]; - ids_thomson_scattering.channel{jj}.n_e.data_error_lower = reshape(abs(ne.error_bar(ii,:)),[],1); - ids_thomson_scattering_description.channel{jj}.n_e.data_error_lower = ['abs(ne.error_bar) from gdat_tcv(shot,''ne'',',edge_str,') for case ',error_bar]; - case 'added' - ids_thomson_scattering.channel{jj}.t_e.data_error_upper = reshape(te.data(ii,:)+abs(te.error_bar(ii,:)),[],1); - ids_thomson_scattering_description.channel{jj}.t_e.data_error_upper = ['te.data+abs(te.error_bar) from gdat_tcv(shot,''te'',',edge_str,') for case ',error_bar]; - ids_thomson_scattering.channel{jj}.t_e.data_error_lower = reshape(te.data(ii,:)-abs(te.error_bar(ii,:)),[],1); - ids_thomson_scattering_description.channel{jj}.t_e.data_error_lower = ['te.data-abs(te.error_bar) from gdat_tcv(shot,''te'',',edge_str,') for case ',error_bar]; - ids_thomson_scattering.channel{jj}.n_e.data_error_upper = reshape(ne.data(ii,:)+abs(ne.error_bar(ii,:)),[],1); - ids_thomson_scattering_description.channel{jj}.n_e.data_error_upper = ['ne.data+abs(ne.error_bar) from gdat_tcv(shot,''ne'',',edge_str,') for case ',error_bar]; - ids_thomson_scattering.channel{jj}.n_e.data_error_lower = reshape(ne.data(ii,:)-abs(ne.error_bar(ii,:)),[],1); - ids_thomson_scattering_description.channel{jj}.n_e.data_error_lower = ['ne.data-abs(ne.error_bar) from gdat_tcv(shot,''ne'',',edge_str,') for case ',error_bar]; - end + switch error_bar + case 'delta' + ids_thomson_scattering.channel{ii}.t_e.data_error_upper = reshape(abs(te.error_bar(ii,:)),[],1); + ids_thomson_scattering_description.channel{ii}.t_e.data_error_upper = ['abs(te.error_bar) from gdat_tcv(shot,''te''''systems'',''all'') for case ',error_bar]; + ids_thomson_scattering.channel{ii}.n_e.data_error_upper = reshape(abs(ne.error_bar(ii,:)),[],1); + ids_thomson_scattering_description.channel{ii}.n_e.data_error_upper = ['abs(ne.error_bar) from gdat_tcv(shot,''ne''''systems'',''all'') for case ',error_bar]; + case 'delta_with_lower' + ids_thomson_scattering.channel{ii}.t_e.data_error_upper = reshape(abs(te.error_bar(ii,:)),[],1); + ids_thomson_scattering_description.channel{ii}.t_e.data_error_upper = ['abs(te.error_bar) from gdat_tcv(shot,''te''''systems'',''all'') for case ',error_bar]; + ids_thomson_scattering.channel{ii}.t_e.data_error_lower = reshape(abs(te.error_bar(ii,:)),[],1); + ids_thomson_scattering_description.channel{ii}.t_e.data_error_lower = ['abs(te.error_bar) from gdat_tcv(shot,''te''''systems'',''all'') for case ',error_bar]; + ids_thomson_scattering.channel{ii}.n_e.data_error_upper = reshape(abs(ne.error_bar(ii,:)),[],1); + ids_thomson_scattering_description.channel{ii}.n_e.data_error_upper = ['abs(ne.error_bar) from gdat_tcv(shot,''ne''''systems'',''all'') for case ',error_bar]; + ids_thomson_scattering.channel{ii}.n_e.data_error_lower = reshape(abs(ne.error_bar(ii,:)),[],1); + ids_thomson_scattering_description.channel{ii}.n_e.data_error_lower = ['abs(ne.error_bar) from gdat_tcv(shot,''ne''''systems'',''all'') for case ',error_bar]; + case 'added' + ids_thomson_scattering.channel{ii}.t_e.data_error_upper = reshape(te.data(ii,:)+abs(te.error_bar(ii,:)),[],1); + ids_thomson_scattering_description.channel{ii}.t_e.data_error_upper = ['te.data+abs(te.error_bar) from gdat_tcv(shot,''te''''systems'',''all'') for case ',error_bar]; + ids_thomson_scattering.channel{ii}.t_e.data_error_lower = reshape(te.data(ii,:)-abs(te.error_bar(ii,:)),[],1); + ids_thomson_scattering_description.channel{ii}.t_e.data_error_lower = ['te.data-abs(te.error_bar) from gdat_tcv(shot,''te''''systems'',''all'') for case ',error_bar]; + ids_thomson_scattering.channel{ii}.n_e.data_error_upper = reshape(ne.data(ii,:)+abs(ne.error_bar(ii,:)),[],1); + ids_thomson_scattering_description.channel{ii}.n_e.data_error_upper = ['ne.data+abs(ne.error_bar) from gdat_tcv(shot,''ne''''systems'',''all'') for case ',error_bar]; + ids_thomson_scattering.channel{ii}.n_e.data_error_lower = reshape(ne.data(ii,:)-abs(ne.error_bar(ii,:)),[],1); + ids_thomson_scattering_description.channel{ii}.n_e.data_error_lower = ['ne.data-abs(ne.error_bar) from gdat_tcv(shot,''ne''''systems'',''all'') for case ',error_bar]; end end if (ids_thomson_scattering.ids_properties.homogeneous_time == 1) - ids_thomson_scattering.time = ne0.time(:); + ids_thomson_scattering.time = ne.time(:); ids_thomson_scattering_description.time = 'ne.t from gdat_tcv(shot,''ne'')'; end end -- GitLab