Skip to content
Snippets Groups Projects
Commit bb525048 authored by 's avatar
Browse files

modification to search resoults

parent f2c9df8f
No related branches found
No related tags found
No related merge requests found
......@@ -168,35 +168,51 @@ classdef MatMust < handle
'mode', 'SIMPLE'};
try
data = webread([obj.url,obj.urlsub, query], args{:} ,obj.GEToptions);
response = webread([obj.url,obj.urlsub, query], args{:} ,obj.GEToptions);
catch ME
fprintf('+++ WARNING\n%s - %s\n', ME.identifier, ME.message)
return
end
if isa(response,'struct')
data{1} = response;
else
data = response;
end
%refine date string to adapt MATLAB date format
for i=1:numel(data)
data_par = data(i).data;
for i=1:numel(data{1})
if isempty(data{1}(i).data)
fprintf('+++ WARNING\n%s for %s\n', 'No Data existing in time span', data.name)
continue
end
data_par = data{1}(i).data;
t = num2cell(datenum(datetime('1970-01-01', 'TimeZone','utc'))+(str2num(str2mat(data_par.date))/1000/86400));
[data(i).data.dateMAT] = deal(t{:});
[data{1}(i).data.dateMAT] = deal(t{:});
clear t
end
if nargin > 5
if any(ismember(varargin,'dump'))
fprintf('+++++++++++++ DATA RESULT LIST +++++++++++++\n');
for i=1:numel(data)
data_par = data(i).data;
fprintf('%s-%s: %s -> %s\n', data(i).subsystem, data(i).type, data(i).name, data(i).description );
for i=1:numel(data{1})
if isempty(data{i}(i).data)
continue
end
data_par = data{i}.data;
fprintf('%s-%s: %s -> %s\n', data{1}(i).subsystem, data{1}(i).type, data{1}(i).name, data{1}(i).description );
%TODO filter for several kind of dataType 'DOUBLE',
%'SIGNED_SMALL_INT', 'STRING'
switch data(i).dataType
switch data{1}(i).dataType
case 'DOUBLE'
format = '%f';
case 'SIGNED_SMALL_INT'
case {'SIGNED_SMALL_INT', 'UNSIGNED_INT'}
format = '%i';
case 'STRING'
format = '%s';
otherwise
format = '%s';
end
format = ['%s - ',format,'\n'];
for i = 1:numel(data_par)
......@@ -208,10 +224,13 @@ classdef MatMust < handle
fprintf('+++++++++++++++++++++++++++++++++++++++++\n');
end
if any(ismember(varargin,'plot'))
for i=1:numel(data)
data_par = data(i).data;
for i=1:numel(data{1})
if isempty(data{1}(i).data)
continue
end
data_par = data{1}(i).data;
figure
title(sprintf('%s-%s: %s -> %s\n', data(i).subsystem, data(i).type, data(i).name, data(i).description ))
title(sprintf('%s-%s: %s -> %s\n', data{1}(i).subsystem, data{1}(i).type, data{1}(i).name, data{1}(i).description ))
if strcmp(calibrate,'true')
switch class(data_par(1).calibratedValue)
case 'char'
......@@ -231,10 +250,10 @@ classdef MatMust < handle
plot([data_par.dateMAT], [data_par.value], '-x' );
end
xlabel('time');
if isfield(data(i), 'unit')
ylabel(data(i).unit);
if isfield(data{1}(i), 'unit')
ylabel(data{1}(i).unit);
end
title([data(i).description,' - ',data(i).name]);
title([data{1}(i).description,' - ',data{1}(i).name]);
datetick('x');
grid on
end
......@@ -242,7 +261,7 @@ classdef MatMust < handle
end
end
function t = MatMust_searchTMparFromName(obj, namequery, dataproviders, varargin)
function o = MatMust_searchTMparFromName(obj, namequery, dataproviders, varargin)
% +++
% MatMust_searchTMparFromName
% Search a parameter into the requested dataprovider (es. BEPICRUISE)
......@@ -262,16 +281,18 @@ classdef MatMust < handle
query = 'metadata/treesearch';
obj.GEToptions.HeaderFields = {'Authorization', obj.tockenstruct.token};
if isa(dataproviders,'cell')
dataproviders = char(join(dataproviders,','));
dataprovidersstr = char(join(dataproviders,','));
else
dataprovidersstr = dataproviders;
end
try
optindx = strcmp(varargin,'Description')+strcmp(varargin,'Unit')+strcmp(varargin,'Id');
if any(find(optindx))
field = join(varargin(find(optindx)),',');
response = webread([obj.url,obj.urlsub, query], 'field',['name,',char(field)],'text',namequery,'dataproviders', dataproviders ,obj.GEToptions);
response = webread([obj.url,obj.urlsub, query], 'field',['name,',char(field)],'text',namequery,'dataproviders', dataprovidersstr ,obj.GEToptions);
else
response = webread([obj.url,obj.urlsub, query], 'field','name','text',namequery,'dataproviders', dataproviders ,obj.GEToptions);
response = webread([obj.url,obj.urlsub, query], 'field','name','text',namequery,'dataproviders', dataprovidersstr ,obj.GEToptions);
end
t = response ;
catch ME
......@@ -297,6 +318,26 @@ classdef MatMust < handle
end
end
end
% output only requested ds
if isa(dataproviders,'cell')
c = 0;
for i = 1:numel(t)
for j = 1:numel(dataproviders)
if strcmp(t(i).type, [dataproviders(j), ' params'] )
c = c+1;
o(c) = t(i);
end
end
end
else
c = 0;
for i = 1:numel(t)
if strcmp(t(i).type, [dataproviders, ' params'] )
c = c+1;
o(c) = t(i);
end
end
end
end
function MatMust_login(obj, varargin )
% login
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment