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

Added function to get git deployment info. Updated infor on tcv_get_ids_bolometer

parent 9ef0ddaa
No related branches found
No related tags found
1 merge request!171Resolve "Add tcv_get_ids_bolometer to TCV_IMAS functions"
Pipeline #251754 passed
function info = tcv_get_deploymentinfo(filepath)
% Reads a deployment info file and extracts relevant details
% Author: L. Simons
% Date: 07/03/25
%
% Args:
% filepath: Path to the text file
%
% Returns:
% info: Struct containing extracted information
% Initialize output struct
info = struct();
info.repository=fileparts(filepath);
% Check if file exists
if exist(filepath, 'file') ~= 2
error('File does not exist: %s', filepath);
end
% Open file for reading
fid = fopen(filepath, 'r');
if fid == -1
error('Could not open file: %s', filepath);
end
% Read file line by line
while ~feof(fid)
line = fgetl(fid);
if ischar(line)
tokens = regexp(line, '^(\w+):\s(.+)$', 'tokens');
if ~isempty(tokens)
key = tokens{1}{1};
value = strtrim(tokens{1}{2});
% Store relevant fields in the struct
switch key
case 'DEPLOYMENT_DATE'
info.deployment_date = value;
case 'GIT_TAG'
info.git_tag = value;
case 'GIT_COMMIT'
info.git_commit = value;
case 'GIT_TAG_DATE'
info.git_tag_date = value;
case 'GITLAB_PROJECT_URL'
info.gitlab_project_url = value;
end
end
end
end
% Close the file
fclose(fid);
end
......@@ -30,7 +30,9 @@ ids_bolometer_description = struct();
% Load the bolometer geometry
bolo_geom=bolou_load_geometry();
bolo_geom_gitinfo= ...
tcv_get_deploymentinfo(fullfile(fileparts(which('bolou_load_geometry')), ...
'.this-deployment.info'));
params_eff.data_request='\tcv_shot::top.results.bolo_u.intensity';
params_eff.trialindx=1;
......@@ -45,16 +47,18 @@ 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);
imas_version_number=getenv('IMAS_VERSION')
imas_version_number=getenv('IMAS_VERSION');
if status
nchannel = numel(bolo_u_intensity.x);
ids_bolometer.channel(1:nchannel) = ids_bolometer.channel(1);
for ii = 1:nchannel
%% Fill geometry information
% Fill information from bolo_geom=bolou_load_geometry();
ids_bolometer.channel{ii}.name = bolo_geom.channel{ii}.name;
if strcmp(aa(1),'3')
if strcmp(imas_version_number(1),'3')
ids_bolometer.channel{ii}.identifier = bolo_geom.channel{ii}.identifier;
elseif strcmp(aa(1),'4')
elseif strcmp(imas_version_number(1),'4')
ids_bolometer.channel{ii}.description = bolo_geom.channel{ii}.identifier;
end
ids_bolometer.channel{ii}.detector.geometry_type= bolo_geom.channel{ii}.detector.geometry_type;
......@@ -102,6 +106,12 @@ if status
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;
%% Fill measurement information
% '\tcv_shot::top.results.bolo_u.prad';
% '\tcv_shot::top.results.bolo_u.prad_core';
% '\tcv_shot::top.results.bolo_u.confidence';
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 ' ...
......@@ -133,36 +143,46 @@ if status
ids_bolometer.power_radiated_total = bolo_u_prad.data;
ids_bolometer.power_radiated_validity = 0*bolo_u_prad.data;
end
%% Code legacy for rc_gti_prep
ids_bolometer.code.name = 'rc_gti_prep';
rc_gti_prep_gitinfo= ...
tcv_get_deploymentinfo(fullfile(fileparts(which(ids_bolometer.code.name)),'.this-deployment.info'));
ids_bolometer.code.description = ...
['rc_gti_prep, RADCAM gitlab repo, calls GTI to generate emissivity profiles with liuqe.']
['rc_gti_prep, RADCAM gitlab repo, calls GTI to generate emissivity profiles with liuqe.'];
% '/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.commit=rc_gti_prep_gitinfo.git_commit;
ids_bolometer.code.version=rc_gti_prep_gitinfo.git_tag;
ids_bolometer.code.repository= rc_gti_prep_gitinfo.repository;
ids_bolometer.code.parameters= ...
['(''rc_gti_prep'',$2,[0 2.2],''bolo'', 10, 1, 0.04, 30,' ...
'false, false,false, [], ''automated'', 1)'];
%% Code legacy for TCV_EQ; FBTE
% Call to gti: gti_get_disc
% Call to TCV_eq: temp=tdi('TCV_EQ("psi")',disc.s.equilsrc);
% https://spcwiki.epfl.ch/wiki/Tcv_eq
% a=gdat(shot,'TCV_EQ("psi")');
ids_bolometer.code.library{1}.name = 'fbte';
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{1}.parameters = 'TCV_EQ("psi")';
%% Code legacy for GTI
ids_bolometer.code.library{2}.name = 'gti';
ids_bolometer.code.library{2}.description = ...
'General Tomographic Inversion';
ids_bolometer.code.library{2}.commit = '';
[a1,a2]=unix('git rev-parse --verify HEAD');
[b1,b2]=unix('git rev-parse --abbrev-ref HEAD');
ids_bolometer.code.library{2}.version = sprintf('%s_branch_%s',strtrim(a2),strtrim(b2));
ids_bolometer.code.library{2}.repository = ...
'https://gitlab.epfl.ch/spc/tcv/analysis/gti';
for ii = 1:numel(ids_bolometer.code.library)
library_gitinfo= ...
tcv_get_deploymentinfo(fullfile(fileparts(which('gti_do_inversion')),'.this-deployment.info'));
ids_bolometer.code.library{ii}.commit = library_gitinfo.git_commit;
ids_bolometer.code.library{ii}.version = library_gitinfo.git_tag;
ids_bolometer.code.library{ii}.repository = library_gitinfo.gitlab_project_url;
end
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;
......
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