Commit 976bb623 authored by Carmelo Magnafico's avatar Carmelo Magnafico
Browse files

adding paramaters statistics function

parent 8e77e949
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
@@ -277,6 +277,60 @@ classdef MatMust < handle
            end

        end
        function data = MatMust_getTMparStatistics(obj, ds, parname, dateStart, dateStop, varargin )
            if obj.loginstatus
           
                %validate ds
                if ~any(strcmp({obj.userProjects.name},ds))
                    disp('++++ Project not in Available User List, check ds name or check you access rigth ++++');
                    return
                end
           
                query = ['dataproviders/',ds,'/parameters/statistics'];
                obj.GEToptions.HeaderFields = {'Authorization', obj.tockenstruct.token};
                
                if isa(parname,'cell')
                    parname = char(join(parname,','));
                end
                
                args = {'key', 'name',...
                        'values', (parname),...
                        'from', (dateStart),...
                        'to', (dateStop)};

                try
                    data = webread([obj.url,obj.urlsub, query], args{:} ,obj.GEToptions);
                catch ME
                    fprintf('+++ WARNING\n%s - %s\n', ME.identifier, ME.message)
                    return
                end

                %refine date string to adapt MATLAB date format
                for i=1:numel(data)
                    data_par = data(i);
                    if data_par.minDate
                        data_par.minDate_matlab = num2cell(datenum(datetime('1970-01-01', 'TimeZone','utc'))+(str2num(str2mat(data_par.minDate))/1000/86400));
                    end
                    if data_par.maxDate
                        data_par.maxDate_matlab = num2cell(datenum(datetime('1970-01-01', 'TimeZone','utc'))+(str2num(str2mat(data_par.maxDate))/1000/86400));
                    end
                end

                 if nargin > 5
                    if any(ismember(varargin,'dump'))
                        fprintf('+++++++++++++ PARAMETERS STATISTICS +++++++++++++\n');
                        for i=1:numel(data)
                            fprintf('%s parameter %s:\n from: %s to: %s\n', data(i).dataProvider, data(i).parameter, data(i).from, data(i).to );
                            fprintf(' Count: %s\n', data(i).count);
                            fprintf(' min: %s\n', data(i).min);
                            fprintf(' max: %s', data(i).max);
                            fprintf('\n++++++++++++++\n\n');
                        end
                        fprintf('+++++++++++++++++++++++++++++++++++++++++\n');
                    end
                end
            end
        end
        function t = MatMust_searchTMparFromName(obj, namequery, dataproviders, varargin)
            % +++ 
            % MatMust_searchTMparFromName
+54 −0
Original line number Diff line number Diff line
@@ -277,6 +277,60 @@ classdef MatMust < handle
            end

        end
        function data = MatMust_getTMparStatistics(obj, ds, parname, dateStart, dateStop, varargin )
            if obj.loginstatus
           
                %validate ds
                if ~any(strcmp({obj.userProjects.name},ds))
                    disp('++++ Project not in Available User List, check ds name or check you access rigth ++++');
                    return
                end
           
                query = ['dataproviders/',ds,'/parameters/statistics'];
                obj.GEToptions.HeaderFields = {'Authorization', obj.tockenstruct.token};
                
                if isa(parname,'cell')
                    parname = char(join(parname,','));
                end
                
                args = {'key', 'name',...
                        'values', (parname),...
                        'from', (dateStart),...
                        'to', (dateStop)};

                try
                    data = webread([obj.url,obj.urlsub, query], args{:} ,obj.GEToptions);
                catch ME
                    fprintf('+++ WARNING\n%s - %s\n', ME.identifier, ME.message)
                    return
                end

                %refine date string to adapt MATLAB date format
                for i=1:numel(data)
                    data_par = data(i);
                    if data_par.minDate
                        data_par.minDate_matlab = num2cell(datenum(datetime('1970-01-01', 'TimeZone','utc'))+(str2num(str2mat(data_par.minDate))/1000/86400));
                    end
                    if data_par.maxDate
                        data_par.maxDate_matlab = num2cell(datenum(datetime('1970-01-01', 'TimeZone','utc'))+(str2num(str2mat(data_par.maxDate))/1000/86400));
                    end
                end

                 if nargin > 5
                    if any(ismember(varargin,'dump'))
                        fprintf('+++++++++++++ PARAMETERS STATISTICS +++++++++++++\n');
                        for i=1:numel(data)
                            fprintf('%s parameter %s:\n from: %s to: %s\n', data(i).dataProvider, data(i).parameter, data(i).from, data(i).to );
                            fprintf(' Count: %s\n', data(i).count);
                            fprintf(' min: %s\n', data(i).min);
                            fprintf(' max: %s', data(i).max);
                            fprintf('\n++++++++++++++\n\n');
                        end
                        fprintf('+++++++++++++++++++++++++++++++++++++++++\n');
                    end
                end
            end
        end
        function t = MatMust_searchTMparFromName(obj, namequery, dataproviders, varargin)
            % +++ 
            % MatMust_searchTMparFromName