MutliViz Analysis Classes

Utility classes for working with the results from the analysis requests, like summarizing, plotting and exporting to a pandas dataFrame.

Basic usage:

>>> result = parse_results(session.get_analysis_results(request_id))  # call API
>>> result.plot() # plot results
>>> result.summary() # print summary table
>>> df = result.to_df() # convert to dataframe
>>> result.save_pkl() # save to pickle file

The parse function will detect the kind of request and return an object of the correct feature class.

mvg.analysis_classes.parse_results(results, t_zone=None, t_unit=None)

Parses the result from a get_analysis_results call and returns an instance of the analysis class.

Parameters:
  • results (dict) – Dictionary with the server response form a get_analysis_results call.

  • t_zone (str) – timezone, if None, times will remain in epoch time [UTC].

  • t_unit (str) – time unit for conversion from epoch time [ms].

Returns:

Object of the correct analysis class

Return type:

subclass to Analysis

Raises:

KeyError – If a either the dictionary is not well formed or no implementation for the analysis class exists.

Analysis Classes Base Class

class mvg.features.analysis.Analysis(results, t_zone=None, t_unit=None)

Bases: object

Root class for analysis system classes.

check_status()
feature()

feature from request

Returns:

feature

Return type:

str

inputs()

inputs to the request algortihm

Returns:

inputs

Return type:

dict

plot(interactive=True, time_format=None, filename=None)

Pro forma ancestor function.

Parameters:
  • interactive (bool) – True: show plot, False: save plot

  • time_format (str, optional) – strftime format specifier for tick_x_labels. If not given only dates are shown. To show dates and time use %y%m%d-%H:%M:%S

  • filename (str, optional) – filename for the plot.

Returns:

plot file name – name of plot file (or emtpy string in case of interactive plot)

Return type:

str

raw_results()

Raw results as returned by server :returns: raw_results :rtype: dict

request_id()

request_id from request

Returns:

request_id

Return type:

str

results()

results dict as returned from request

Returns:

results

Return type:

dict

save_df(file_name=None)

Save a dataframe with the analysis results. In case of filname is not given, filename will be <request_id>.csv Format of the dataframe depends on specific analysis. Will raise an exception in case no results are available.

Parameters:

file_name (str) – filename to save dataframe under.

Returns:

Actually used file path

Return type:

str

save_json(file_name=None, raw=False)

Saves the request result from the API JSON In case of filname is not given, filename will be <request_id>.json

Parameters:
  • file_name (str) – filename to save object under.

  • raw (boolean) – return only alogrithm results [false, default] return full request response [true]

Returns:

Actually used file path

Return type:

str

save_pkl(file_name=None)

Serializes the analysis object as pickle file. In case of filname is not given, filename will be <request_id>.pkl

Parameters:

file_name (str) – filename to save object under.

Returns:

Actually used file path

Return type:

str

sources()

sources to the request algortihm

Returns:

sources

Return type:

list

status()

status from request

Returns:

status

Return type:

str

summary()

Print header for summary function. Called as super() from specific analysis class. Will raise an exception in case request was not successful

to_df()

Return a dataframe with the analysis results. :returns: Dataframe with analysis results :rtype: dataFrame

Analysis Class for ModeId Feature

class mvg.features.modeid.ModeId(results, t_zone=None, t_unit=None)

Bases: Analysis

mode_table(show_uncertain=False)

Show mode table which gives start time for each consecutive period of equal labels, including number of rows and time difference. Will also show datetimes if timezone is given when instatiating class.

Parameters:

show_uncertain (bool) – wheter to consider uncertain labels in the table (False)

Returns:

mode_table – Dataframe showing times when modes change.

Return type:

df

plot(interactive=True, time_format=None, filename=None)

Generate a basic plot on ModeId.

Parameters:
  • interactive (bool) – True: show plot, False: save plot

  • time_format (str, optional) – strftime format specifier for tick_x_labels. If not given only dates are shown. To show dates and time use %y%m%d-%H:%M:%S

  • filename (str, optional) – filename for the plot. If interactive is True, filename will be ignored. If interactive is False, default filename will be of the format “{source_name}_{analysis_request_id}.png”.

Returns:

plot file name – name of plot file (or emtpy string in case of interactive plot)

Return type:

str

plot_probabilities(selected_modes=None, interactive=True, time_format=None, filename=None)

Generate a basic plot on mode probabilites over time.

Parameters:
  • interactive (bool) – True: show plot, False: save plot

  • selected_modes (List[int]) – Plot the mode probabilities for a list of modes. By default, the probability of all modes will be plotted.

  • time_format (str, optional) – strftime format specifier for x-axis tick labels. If not given, dates will be shown in locale format. To show dates and time use %y%m%d-%H:%M:%S.

  • filename (str, optional) – filename for the plot. If interactive is True, filename will be ignored. If interactive is False, default filename will be of the format “{source_name}_{analysis_request_id}.png”.

Returns:

plot file name – name of plot file (or emtpy string in case of interactive plot)

Return type:

str

summary()

Print summary on ModeId.

Returns:

Summary table

Return type:

dataFrame

Analysis Class for BlackSheep Feature

class mvg.features.blacksheep.BlackSheep(results, t_zone=None, t_unit=None)

Bases: Analysis

plot(interactive=True, time_format=None, filename=None)

Generate a (not so) basic plot for BlackSheep Will show per atypical asset changes to and from atypical modes

Parameters:
  • interactive (bool) – True: show plot, False: save plot

  • time_format (str, optional) – strftime format specifier for tick_x_labels. If not given only dates are shown. To show dates and time use %y%m%d-%H:%M:%S

  • filename (str, optional) – filename for the plot. If interactive is True, filename will be ignored. If interactive is False, default filename will be of the format “{source_1_name}_to_{source_n_name}_{analysis_request_id}.png”.

Returns:

plot file name – name of plot file (or emtpy string in case of interactive plot)

Return type:

str

summary()

Print summary on BlackSheep

Returns:

Summary tables

Return type:

atypical assets and stats

Analysis Class for KPIDemo Feature

class mvg.features.kpidemo.KPIDemo(results, t_zone=None, t_unit=None)

Bases: Analysis

Analysis class for KPIDemo feature.

plot(kpi=None, interactive=True, time_format=None, filename=None)

Generate a basic plot on KPIs.

Parameters:
  • kpi (str) – sting that describes the KPI to be displayed. Default kpi is RMS

  • interactive (bool) – True: show plot, False: save plot

  • time_format (str, optional) – strftime format specifier for tick_x_labels. If not given only dates are shown. To show dates and time use %y%m%d-%H:%M:%S

  • filename (str, optional) – filename for the plot. If interactive is True, filename will be ignored. If interactive is False, default filename will be of the format “{source_name}_{analysis_request_id}.png”.

Returns:

plot file name – name of plot file (or emtpy string in case of interactive plot)

Return type:

str

summary()

Print summary information on RMS.

Returns:

summary table

Return type:

dataFrame

mvg.features.kpidemo.unfold_result_to_df(result: dict) DataFrame