From 9e9d14928edae2885e157b1f8b9423748df011b5 Mon Sep 17 00:00:00 2001 From: Luke Simons <luke.simons@epfl.ch> Date: Fri, 18 Oct 2024 14:07:43 +0200 Subject: [PATCH] Updates to tcv_get_ids_bolometer.m to make data structure match ids_empty_bolometer.m --- matlab/TCV_IMAS/tcv_get_ids_bolometer.m | 105 +++++++++++++++++++++++- 1 file changed, 101 insertions(+), 4 deletions(-) diff --git a/matlab/TCV_IMAS/tcv_get_ids_bolometer.m b/matlab/TCV_IMAS/tcv_get_ids_bolometer.m index 7e4ceec6..0ded6b68 100644 --- a/matlab/TCV_IMAS/tcv_get_ids_bolometer.m +++ b/matlab/TCV_IMAS/tcv_get_ids_bolometer.m @@ -18,9 +18,14 @@ function [ids_bolometer,ids_bolometer_description] = ... % Initialise structure with default ids_properties % shot=70777; gdat_params=[]; varargin={}; % aa=gdat([],'ids','source','bolometer'); ids_bolometer_empty=aa.bolometer; -[ids_bolometer, ~] = tcv_ids_headpart(shot, ids_bolometer_empty, ... - 'bolometer','homogeneous_time',1,'gdat_params',gdat_params, ... - varargin{:}); +if exist('gdat_params') + [ids_bolometer, ~] = tcv_ids_headpart(shot, ids_bolometer_empty, ... + 'bolometer','homogeneous_time',1,'gdat_params',gdat_params, ... + varargin{:}); +else + [ids_bolometer, ~] = tcv_ids_headpart(shot,ids_bolometer_empty,'bolometer','homogeneous_time',0,varargin{:}); +end + ids_bolometer_description = struct(); % Load the bolometer geometry @@ -45,14 +50,103 @@ 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.channel{ii}.name = bolo_geom.channel{ii}.name; 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.channel{ii}.identifier = ... + bolo_geom.channel{ii}.identifier; ids_bolometer_description.channel{ii}.identifier = ... ['RADCAM bolometer system, global index from order in ' ... '\results::bolo_u tree']; + + ids_bolometer.channel{ii}.detector.geometry_type= ... + bolo_geom.channel{ii}.detector.geometry_type; + ids_bolometer.channel{ii}.detector.centre.phi= ... + bolo_geom.channel{ii}.detector.centre.phi; + ids_bolometer.channel{ii}.detector.centre.r= ... + bolo_geom.channel{ii}.detector.centre.r; + ids_bolometer.channel{ii}.detector.centre.z= ... + bolo_geom.channel{ii}.detector.centre.z; + ids_bolometer.channel{ii}.detector.x1_unit_vector.x= ... + bolo_geom.channel{ii}.detector.x1_unit_vector.x; + ids_bolometer.channel{ii}.detector.x1_unit_vector.y= ... + bolo_geom.channel{ii}.detector.x1_unit_vector.y; + ids_bolometer.channel{ii}.detector.x1_unit_vector.z= ... + bolo_geom.channel{ii}.detector.x1_unit_vector.z; + ids_bolometer.channel{ii}.detector.x2_unit_vector.x= ... + bolo_geom.channel{ii}.detector.x2_unit_vector.x; + ids_bolometer.channel{ii}.detector.x2_unit_vector.y= ... + bolo_geom.channel{ii}.detector.x2_unit_vector.y; + ids_bolometer.channel{ii}.detector.x2_unit_vector.z= ... + bolo_geom.channel{ii}.detector.x2_unit_vector.z; + ids_bolometer.channel{ii}.detector.x3_unit_vector.x= ... + bolo_geom.channel{ii}.detector.x3_unit_vector.x; + ids_bolometer.channel{ii}.detector.x3_unit_vector.y= ... + bolo_geom.channel{ii}.detector.x3_unit_vector.y; + ids_bolometer.channel{ii}.detector.x3_unit_vector.z= ... + bolo_geom.channel{ii}.detector.x3_unit_vector.z; + ids_bolometer.channel{ii}.detector.x1_width= ... + bolo_geom.channel{ii}.detector.x1_width; + ids_bolometer.channel{ii}.detector.x2_width= ... + bolo_geom.channel{ii}.detector.x2_width; + ids_bolometer.channel{ii}.detector.surface= ... + bolo_geom.channel{ii}.detector.surface; + + ids_bolometer.channel{ii}.aperture{1}.geometry_type= ... + bolo_geom.channel{ii}.aperture{1}.geometry_type; + ids_bolometer.channel{ii}.aperture{1}.centre.r= ... + bolo_geom.channel{ii}.aperture{1}.centre.r; + ids_bolometer.channel{ii}.aperture{1}.centre.z= ... + bolo_geom.channel{ii}.aperture{1}.centre.z; + ids_bolometer.channel{ii}.aperture{1}.x1_unit_vector.x= ... + bolo_geom.channel{ii}.aperture{1}.x1_unit_vector.x; + ids_bolometer.channel{ii}.aperture{1}.x1_unit_vector.y= ... + bolo_geom.channel{ii}.aperture{1}.x1_unit_vector.y; + ids_bolometer.channel{ii}.aperture{1}.x1_unit_vector.z= ... + bolo_geom.channel{ii}.aperture{1}.x1_unit_vector.z; + ids_bolometer.channel{ii}.aperture{1}.x2_unit_vector.x= ... + bolo_geom.channel{ii}.aperture{1}.x2_unit_vector.x; + ids_bolometer.channel{ii}.aperture{1}.x2_unit_vector.y= ... + bolo_geom.channel{ii}.aperture{1}.x2_unit_vector.y; + ids_bolometer.channel{ii}.aperture{1}.x2_unit_vector.z= ... + bolo_geom.channel{ii}.aperture{1}.x2_unit_vector.z; + ids_bolometer.channel{ii}.aperture{1}.x3_unit_vector.x= ... + bolo_geom.channel{ii}.aperture{1}.x3_unit_vector.x; + ids_bolometer.channel{ii}.aperture{1}.x3_unit_vector.y= ... + bolo_geom.channel{ii}.aperture{1}.x3_unit_vector.y; + ids_bolometer.channel{ii}.aperture{1}.x3_unit_vector.z= ... + bolo_geom.channel{ii}.aperture{1}.x3_unit_vector.z; + ids_bolometer.channel{ii}.aperture{1}.x1_width= ... + bolo_geom.channel{ii}.aperture{1}.x1_width; + ids_bolometer.channel{ii}.aperture{1}.x2_width= ... + bolo_geom.channel{ii}.aperture{1}.x2_width; + ids_bolometer.channel{ii}.aperture{1}.surface= ... + bolo_geom.channel{ii}.aperture{1}.surface; + + ids_bolometer.channel{ii}.etendue = bolo_geom.channel{ii}.etendue; + ids_bolometer.channel{ii}.etendue_method.name = ... + bolo_geom.channel{ii}.etendue_method.name; + ids_bolometer.channel{ii}.etendue_method.description = ... + bolo_geom.channel{ii}.etendue_method.description; + + ids_bolometer.channel{ii}.line_of_sight.first_point.phi = ... + bolo_geom.channel{ii}.line_of_sight.first_point.phi; + ids_bolometer.channel{ii}.line_of_sight.first_point.r = ... + bolo_geom.channel{ii}.line_of_sight.first_point.r; + ids_bolometer.channel{ii}.line_of_sight.first_point.z = ... + bolo_geom.channel{ii}.line_of_sight.first_point.z; + + ids_bolometer.channel{ii}.line_of_sight.second_point.phi = ... + bolo_geom.channel{ii}.line_of_sight.second_point.phi; + ids_bolometer.channel{ii}.line_of_sight.second_point.r = ... + bolo_geom.channel{ii}.line_of_sight.second_point.r; + ids_bolometer.channel{ii}.line_of_sight.second_point.z = ... + bolo_geom.channel{ii}.line_of_sight.second_point.z; + 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 ' ... @@ -81,6 +175,9 @@ if status % 0.*bolo_u_prad_core.data; ids_bolometer.channel{ii}.power_radiated_validity = 0*bolo_u_prad.data; + ids_bolometer.power_radiated_inside_lcfs = bolo_u_prad_core.data; + ids_bolometer.power_radiated_total = bolo_u_prad.data; + ids_bolometer.power_radiated_validity = 0*bolo_u_prad.data; end ids_bolometer.code.name = 'rc_gti_prep'; ids_bolometer.code.description = ... -- GitLab