Source code for pypowsybl.dynamic.impl.simulation_result

# Copyright (c) 2023, RTE (http://www.rte-france.com)
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# SPDX-License-Identifier: MPL-2.0
#
import pandas as pd
from pypowsybl import _pypowsybl as _pp
from pypowsybl.utils import create_data_frame_from_series_array


[docs]class SimulationResult: """Can only be instantiated by :func:`~Simulation.run`""" def __init__(self, handle: _pp.JavaHandle) -> None: self._handle = handle self._status = _pp.get_dynamic_simulation_results_status(self._handle) self._curves = self._get_all_curves()
[docs] def status(self) -> str: """ status of the simulation :returns 'Ok' or 'Not OK' """ return self._status
[docs] def curves(self) -> pd.DataFrame: """Dataframe of the curves results, columns are the curves names and rows are timestep""" return self._curves
def _get_curve(self, curve_name: str) -> pd.DataFrame: series_array = _pp.get_dynamic_curve(self._handle, curve_name) return create_data_frame_from_series_array(series_array) def _get_all_curves(self) -> pd.DataFrame: curve_name_lst = _pp.get_all_dynamic_curves_ids(self._handle) df_curves = [self._get_curve(curve_name) for curve_name in curve_name_lst] return pd.concat(df_curves, axis=1)