Skip to content
Snippets Groups Projects
Commit 00da861e authored by Luke Simons's avatar Luke Simons
Browse files

Added first draft of tcv_get_ids_bolometer.m.

parent dc94b0e8
No related branches found
No related tags found
1 merge request!171Resolve "Add tcv_get_ids_bolometer to TCV_IMAS functions"
function [ids_bolometer,ids_bolometer_description] = ...
tcv_get_ids_bolometer(shot, ids_bolometer_empty, gdat_params,varargin)
%
% [ids_bolometer,ids_bolometer_description] = ...
% tcv_get_ids_bolometer(shot, ids_bolometer_empty,varargin);
%
% Get the bolometer diagnostics data
%
% ids_bolometer_empty should at least be the empty bolometer ids structure
% in input
%
% gdat_params: gdat_data.gdat_params to get all params passed from original
% call, in particular error_bar options
%
% Date: 20/09/24
% Author: L. Simons
% Initialise structure with default ids_properties
% shot=70777; gdat_params=[]; varargin={};
% ids_bolometer_empty=ids_empty_bolometer;
[ids_bolometer, ~] = tcv_ids_headpart(shot, ids_bolometer_empty, ...
'bolometer','homogeneous_time',1,'gdat_params',gdat_params, ...
varargin{:});
ids_bolometer_description = struct();
% Load the bolometer geometry
bolo_geom=bolou_load_geometry();
params_eff.data_request='\tcv_shot::top.results.bolo_u.intensity';
params_eff.trialindx=1;
params_eff.machine='tcv';
params_eff.doplot=0;
bolo_u_intensity = gdat(shot,params_eff);
params_eff.data_request='\tcv_shot::top.results.bolo_u.prad';
bolo_u_prad = gdat(shot,params_eff);
params_eff.data_request='\tcv_shot::top.results.bolo_u.prad_core';
bolo_u_prad_core = gdat(shot,params_eff);
params_eff.data_request='\tcv_shot::top.results.bolo_u.confidence';
bolo_u_confidence = gdat(shot,params_eff);
status = ~ischar(bolo_u_intensity.data) & ~ischar(bolo_u_prad_core.data);
if status
nchannel = numel(bolo_u_intensity.x);
ids_bolometer.channel(1:nchannel) = ids_bolometer.channel(1);
for ii = 1:nchannel
ids_bolometer.channel(ii) = bolo_geom.channel(ii);
ids_bolometer_description.channel{ii}.name = ...
['RADCAM bolometer detector name, from camera labels and number ' ...
'VT: Vertical Top, UL: Upper Lateral, ML: Middle Lateral, ' ...
'DIV: Divertor, VB: Vertical bottom. Matches cabling.'];
ids_bolometer_description.channel{ii}.identifier = ...
['RADCAM bolometer system, global index from order in ' ...
'\results::bolo_u tree'];
ids_bolometer.channel{ii}.power.data = bolo_u_intensity.data(ii,:);
ids_bolometer_description.channel{ii}.power.data = ...
['From results.bolo_u.intensity data, Radiance measured by ' ...
'Each bolometer foil in units of [W/m^{2}sr]'];
ids_bolometer.channel{ii}.power.t = bolo_u_intensity.t;
ids_bolometer_description.channel{ii}.power.data = ...
['From results.bolo_u.intensity dim{1}, time basis of radiance'];
ids_bolometer.channel{ii}.validity = 0; % FIXME: Always valid data
ids_bolometer.channel{ii}.power_radiated_total = bolo_u_prad.data;
ids_bolometer_description.channel{ii}.power_radiated_total = ...
['From results.bolo_u.prad data, Total radiated power measured by ' ...
'the bolometer system in units of [kW]'];
% ids_bolometer.channel{ii}.power_radiated_total_error_upper = ...
% 0.*bolo_u_prad.data; % FIXME: Zero error
% ids_bolometer.channel{ii}.power_radiated_total_error_lower = ...
% 0.*bolo_u_prad.data; % FIXME: Zero error
ids_bolometer.channel{ii}.power_radiated_inside_lcfs = ...
bolo_u_prad_core.data;
ids_bolometer_description.channel{ii}.power_radiated_inside_lcfs.data = ...
['From results.bolo_u.prad_core data, Total radiated power ' ...
'radiated from inside the last closed flux surface measured by ' ...
'the bolometer system and liuqe reconstruction in units of [kW]'];
% ids_bolometer.channel{ii}.power_radiated_inside_lcfs_error_upper = ...
% 0.*bolo_u_prad_core.data;
% ids_bolometer.channel{ii}.power_radiated_inside_lcfs_error_lower = ...
% 0.*bolo_u_prad_core.data;
ids_bolometer.channel{ii}.power_radiated_validity = 0*bolo_u_prad.data;
end
ids_bolometer.code.name = 'rc_gti_prep';
ids_bolometer.code.description = ...
['rc_gti_prep, RADCAM gitlab repo, calls General Tomographic ' ...
'Inversion (GTI) commands to generate tomographic inversions ' ...
'of the emissivity profile and uses liuqe magnetic equilibrium ' ...
'reconstruction to determine radiated power in the core. ' ...
'/usr/local/bin/matlab960 -nojvm -nosplash -nodisplay -r ' ...
'"anasrvmat(''rc_gti_prep'',$2,[0 2.2],''bolo'', 10, 1, 0.04, 30,' ...
'false, false,false, [], ''automated'', 1)"'];
ids_bolometer.code.commit='';
ids_bolometer.code.version='';
ids_bolometer.code.repository= ...
'https://gitlab.epfl.ch/spc/tcv/diag/radcam/';
ids_bolometer.code.parameters='';
ids_bolometer.code.library{1}.name = 'meq';
ids_bolometer.code.library{1}.description = 'Magnetic equilibrium';
ids_bolometer.code.library{1}.commit = '';
ids_bolometer.code.library{1}.version = '';
ids_bolometer.code.library{1}.repository = ...
'https://gitlab.epfl.ch/spc/tcv/tbx/meq';
ids_bolometer.code.library{1}.parameters = '';
ids_bolometer.code.library{2}.name = 'GTI';
ids_bolometer.code.library{2}.description = ...
'General Tomographic Inversion';
ids_bolometer.code.library{2}.commit = '';
ids_bolometer.code.library{2}.version = '';
ids_bolometer.code.library{2}.repository = ...
'https://gitlab.epfl.ch/spc/tcv/analysis/gti';
ids_bolometer.code.library{2}.parameters = '';
% FIXME: Values of bolo_u_confidence don't match output_flag
ids_bolometer.code.output_flag=bolo_u_confidence;
ids_bolometer.time = bolo_u_intensity.t;
else
warning('Failed to load data for shot %d',shot);
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment