Пример #1
0
def environment_ts_data(kind, episode, equipments):
    """
        Get the selected kind of timeserie trace for an equipment used in episode.

        There's four kind of trace possible:
            - Load
            - Production
            - Hazards
            - Maintenances

        :param kind: Type of trace
        :param episode: Episode studied
        :param equipments: A equipment to analyze like substation etc.
        :param prod_types: Different types of production
        :return: A list of plotly object corresponding to a trace
    """
    if kind == "Load":
        return EpisodeTrace.get_load_trace_per_equipment(episode, equipments)
    if kind == "Production":
        prod_types = episode.get_prod_types()
        return EpisodeTrace.get_all_prod_trace(episode, prod_types, equipments)
    if kind == "Hazards":
        return EpisodeTrace.get_hazard_trace(episode, equipments)
    if kind == "Maintenances":
        return EpisodeTrace.get_maintenance_trace(episode, equipments)
Пример #2
0
    def update_agent_log_graph(study_agent, relayout_data_store,
                               figure_overflow, figure_usage, scenario,
                               agent_study_ts, relayoutStoreMacro_ts):

        if agent_study_ts is not None and relayoutStoreMacro_ts is not None:
            condition = (relayout_data_store is not None
                         and relayout_data_store["relayout_data"]
                         and relayoutStoreMacro_ts > agent_study_ts)
        else:
            condition = (relayout_data_store is not None
                         and relayout_data_store["relayout_data"])
        if condition:
            relayout_data = relayout_data_store["relayout_data"]
            layout_usage = figure_usage["layout"]
            new_axis_layout = get_axis_relayout(figure_usage, relayout_data)
            if new_axis_layout is not None:
                layout_usage.update(new_axis_layout)
                figure_overflow["layout"].update(new_axis_layout)
                return figure_overflow, figure_usage
        new_episode = make_episode(study_agent, scenario)
        figure_overflow["data"] = new_episode.total_overflow_trace.copy()
        maintenance_traces = EpisodeTrace.get_maintenance_trace(
            new_episode, ["total"])
        if len(maintenance_traces) != 0:
            maintenance_traces[0].update({"name": "Nb of maintenances"})
            figure_overflow["data"].append(maintenance_traces[0])

        hazard_traces = EpisodeTrace.get_hazard_trace(new_episode,
                                                      ["total"]).copy()
        if len(hazard_traces) != 0:
            hazard_traces[0].update({"name": "Nb of hazards"})
            figure_overflow["data"].append(hazard_traces[0])

        attacks_trace = EpisodeTrace.get_attacks_trace(new_episode).copy()
        if len(attacks_trace) != 0:
            attacks_trace[0].update({"name": "Attacks"})
            figure_overflow["data"].append(attacks_trace[0])

        figure_usage["data"] = new_episode.usage_rate_trace

        return figure_overflow, figure_usage