Skip to content
Snippets Groups Projects

Add possibility to chose hdf5 backend for saving ids data

Merged Cenk Yildiz requested to merge feature/imas-hdf5-backend into master
2 files
+ 31
8
Compare changes
  • Side-by-side
  • Inline
Files
2
function [ids_put_status] = ids2database(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion,varargin);
function [ids_put_status] = ids2database(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion,imas_backend,varargin);
%
% [ids_put_status] = ids2database(shot,run,occurence,ids2put,varargin);
%
@@ -7,6 +7,7 @@ function [ids_put_status] = ids2database(shot,run,occurence,ids2put,tree_user,tr
% tree_name: getenv('USER') by default, can be 'public'
% tree_tokamak: 'tcv' by default
% tree_majorversion: '3' by default
% imas_backend: "MDSplus" or "HDF5"
%
% varargin{1}: tbd
%
@@ -16,6 +17,7 @@ ids_put_status = 0;
tree_user_default = getenv('USER');
tree_tokamak_default = 'tcv';
tree_majorversion_default = '3';
imas_backend_default = 'MDSplus';
% initialize input parser
p = inputParser;
@@ -28,6 +30,7 @@ p.addOptional('ids2put', struct([]), @(x) (isstruct(x)));
p.addOptional('tree_user', tree_user_default, @(x) (isempty(x) || ischar(x)));
p.addOptional('tree_tokamak', tree_tokamak_default, @(x) (isempty(x) || ischar(x)));
p.addOptional('tree_majorversion', tree_majorversion_default, @(x) (ischar(x)));
p.addOptional('imas_backend', imas_backend_default, @(x) (isempty(x) || ischar(x)));
p.parse;
defaults_ids2database = p.Results; % to keep track of defaults
@@ -53,8 +56,11 @@ elseif nargin==6
elseif nargin==7
p.parse(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion);
params = p.Results;
elseif nargin>=8
p.parse(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion,varargin{:});
elseif nargin==8
p.parse(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion,imas_backend);
params = p.Results;
elseif nargin>=9
p.parse(shot,run,occurence,ids2put,tree_user,tree_tokamak,tree_majorversion,imas_backend,varargin{:});
params = p.Results;
else
p.parse;
@@ -100,6 +106,19 @@ if isempty(ids_names_ok)
return
end
if ~ismember(params_ids2database.imas_backend, {'MDSplus', 'HDF5'})
warning(['Unknown imas_backend: ', imas_backend, ', selecting default: ',imas_backend_default]);
params_ids2database.imas_backend = imas_backend_default;
end
% Get IMAS backend ID
switch params_ids2database.imas_backend
case "HDF5"
backendid=13;
case "MDSplus"
backendid=12;
end
try
%% Initialize the three
shot_is_new = 1; % seems only create is ok even if does already exist
@@ -109,10 +128,9 @@ try
shot_is_new = 0;
end
if shot_is_new
idx = imas_create_env('ids',shot,run,0,0,params_ids2database.tree_user,params_ids2database.tree_tokamak, ...
params_ids2database.tree_majorversion); %
idx = imas_create_env_backend(shot, run, params_ids2database.tree_user,params_ids2database.tree_tokamak, params_ids2database.tree_majorversion, backendid)
else
idx = imas_open_env('ids',shot,run,params_ids2database.tree_user,params_ids2database.tree_tokamak,params_ids2database.tree_majorversion); %
idx = imas_open_env_backend(shot,run,params_ids2database.tree_user,params_ids2database.tree_tokamak,params_ids2database.tree_majorversion,backendid); %
end
%% Put the field
Loading