Skip to content

output

Classes:

Frequency

Time span over which the results are assessed: hourly detail, daily bundle, weekly bundle, monthly bundle, annual bundle.

Attributes:

  • HOURLY
  • DAILY
  • WEEKLY
  • MONTHLY
  • ANNUAL

MCAllAreasDataType

Types of files generated by the simulation for each area, containing synthetic results over all years.

Attributes:

  • VALUES

    General values of variables (price, load, generation, etc.). Files of this type have the same size for all areas. In the UI, it corresponds to displaying General values.

  • DETAILS

    Values regarding dispatchable thermal generating plants. File sizes differ by area. In the UI, it corresponds to displaying Thermal plants.

  • DETAILS_ST_STORAGE

    Values regarding the different short-term storages of each area. The sizes of these files differ from one area to another. In the UI, it corresponds to displaying ST storages.

  • DETAILS_RES

    Values regarding the different renewable clusters of each area. The sizes of these files differ from one area to another. In the UI, it corresponds to displaying Ren. clusters.

  • ID

    Identifier (number) of the Monte-Carlo years for which were observed the extreme values of the different variables presented in the values files. In the UI, it corresponds to displaying RecordYear.

MCAllLinksDataType

Types of files generated by the simulation for each area, containing synthetic results over all years.

Attributes:

  • VALUES

    values of different variables (flow, congestion rent) the list of which is common to all interconnections. The files of type values have therefore the same size everywhere. In the UI, it corresponds to displaying General values.

  • ID

    Identifier (number) of the Monte-Carlo years for which were observed the extreme values of the different variables presented in the values files. In the UI, it corresponds to displaying RecordYear.

MCIndAreasDataType

Types of files generated by the simulation for each area, for each year.

Attributes:

  • VALUES

    General values of variables (price, load, generation, etc.). Files of this type have the same size for all areas. In the UI, it corresponds to displaying General values.

  • DETAILS

    Values regarding dispatchable thermal generating plants. File sizes differ by area. In the UI, it corresponds to displaying Thermal plants.

  • DETAILS_ST_STORAGE

    Values regarding the different short-term storages of each area. The sizes of these files differ from one area to another. In the UI, it corresponds to displaying ST storages.

  • DETAILS_RES

    Values regarding the different renewable clusters of each area. The sizes of these files differ from one area to another. In the UI, it corresponds to displaying Ren. clusters.

MCIndLinksDataType

Types of files generated by the simulation for each link, for each year.

Attributes:

  • VALUES

    values of different variables (flow, congestion rent) the list of which is common to all interconnections. The files of type values have therefore the same size everywhere. In the UI, it corresponds to displaying General values.

Output

Output(name: str, archived: bool, output_service: BaseOutputService)

Output of an Antares simulation with/without Xpansion.

Methods:

Attributes:

  • archived (bool) –

    Whether the output is archived or not.

  • name (str) –

    Name of the output.

Source code in src/antares/craft/model/output.py
def __init__(self, name: str, archived: bool, output_service: BaseOutputService):
    self._name = name
    self._archived = archived
    self._output_service: BaseOutputService = output_service

archived property

archived: bool

Whether the output is archived or not.

name property

name: str

Name of the output.

aggregate_mc_all_areas

aggregate_mc_all_areas(
    data_type: MCAllAreasDataType,
    frequency: Frequency,
    areas_ids: Optional[list[str]] = None,
    columns_names: Optional[list[str]] = None,
) -> DataFrame

Return a matrix of aggregated raw data for areas with mc-all

Parameters:

Returns:

  • DataFrame

    Aggregated raw data

Source code in src/antares/craft/model/output.py
def aggregate_mc_all_areas(
    self,
    data_type: MCAllAreasDataType,
    frequency: Frequency,
    areas_ids: Optional[list[str]] = None,
    columns_names: Optional[list[str]] = None,
) -> pd.DataFrame:
    """Return a matrix of aggregated raw data for areas with mc-all

    Args:
        data_type: values from McAllAreas
        frequency: values from Frequency

    Returns:
        Aggregated raw data
    """
    aggregation_entry = AggregationEntry(
        data_type=data_type,
        frequency=frequency,
        type_ids=areas_ids,
        columns_names=columns_names,
    )

    return self._output_service.aggregate_values(self.name, aggregation_entry, "areas", "all")
aggregate_mc_all_links(
    data_type: MCAllLinksDataType,
    frequency: Frequency,
    links_ids: Optional[list[tuple[str, str]]] = None,
    columns_names: Optional[list[str]] = None,
) -> DataFrame

Return a matrix of aggregated raw data for links with mc-all.

Parameters:

Returns:

  • DataFrame

    Aggregated raw data.

Source code in src/antares/craft/model/output.py
def aggregate_mc_all_links(
    self,
    data_type: MCAllLinksDataType,
    frequency: Frequency,
    links_ids: Optional[list[tuple[str, str]]] = None,
    columns_names: Optional[list[str]] = None,
) -> pd.DataFrame:
    """Return a matrix of aggregated raw data for links with mc-all.

    Args:
        data_type: values from McAllLinks
        frequency: values from Frequency

    Returns:
        Aggregated raw data.
    """
    type_ids = (
        [f"{area_from} - {area_to}" for link_id in links_ids for area_from, area_to in [sorted(link_id)]]
        if links_ids
        else None
    )

    aggregation_entry = AggregationEntry(
        data_type=data_type,
        frequency=frequency,
        type_ids=type_ids,
        columns_names=columns_names,
    )

    return self._output_service.aggregate_values(self.name, aggregation_entry, "links", "all")

aggregate_mc_ind_areas

aggregate_mc_ind_areas(
    data_type: MCIndAreasDataType,
    frequency: Frequency,
    mc_years: Optional[list[int]] = None,
    areas_ids: Optional[list[str]] = None,
    columns_names: Optional[list[str]] = None,
) -> DataFrame

Return a matrix of aggregated raw data for areas with mc-ind

Parameters:

Returns:

  • DataFrame

    Aggregated raw data.

Source code in src/antares/craft/model/output.py
def aggregate_mc_ind_areas(
    self,
    data_type: MCIndAreasDataType,
    frequency: Frequency,
    mc_years: Optional[list[int]] = None,
    areas_ids: Optional[list[str]] = None,
    columns_names: Optional[list[str]] = None,
) -> pd.DataFrame:
    """Return a matrix of aggregated raw data for areas with mc-ind

    Args:
        data_type: values from McIndAreasDataType.
        frequency: values from Frequency.

    Returns:
        Aggregated raw data.
    """
    aggregation_entry = AggregationEntry(
        data_type=data_type,
        frequency=frequency,
        mc_years=mc_years,
        type_ids=areas_ids,
        columns_names=columns_names,
    )

    return self._output_service.aggregate_values(self.name, aggregation_entry, "areas", "ind")
aggregate_mc_ind_links(
    data_type: MCIndLinksDataType,
    frequency: Frequency,
    mc_years: Optional[list[int]] = None,
    links_ids: Optional[list[tuple[str, str]]] = None,
    columns_names: Optional[list[str]] = None,
) -> DataFrame

Return a matrix of aggregated raw data for links with mc-ind

Parameters:

Returns:

  • DataFrame

    Aggregated raw data

Source code in src/antares/craft/model/output.py
def aggregate_mc_ind_links(
    self,
    data_type: MCIndLinksDataType,
    frequency: Frequency,
    mc_years: Optional[list[int]] = None,
    links_ids: Optional[list[tuple[str, str]]] = None,
    columns_names: Optional[list[str]] = None,
) -> pd.DataFrame:
    """Return a matrix of aggregated raw data for links with mc-ind

    Args:
        data_type: values from McIndLinks
        frequency: values from Frequency

    Returns:
        Aggregated raw data
    """
    type_ids = (
        [f"{area_from} - {area_to}" for link_id in links_ids for area_from, area_to in [sorted(link_id)]]
        if links_ids
        else None
    )

    aggregation_entry = AggregationEntry(
        data_type=data_type,
        frequency=frequency,
        mc_years=mc_years,
        type_ids=type_ids,
        columns_names=columns_names,
    )

    return self._output_service.aggregate_values(self.name, aggregation_entry, "links", "ind")

get_binding_constraint_ts_numbers

get_binding_constraint_ts_numbers(group_id: str) -> dict[int, int]

Get binding constraint time series numbers for a given constraint group.

Returns:

  • dict[int, int]

    A mapping from the Monte-Carlo year to its selected time series

Source code in src/antares/craft/model/output.py
def get_binding_constraint_ts_numbers(self, group_id: str) -> dict[int, int]:
    """Get binding constraint time series numbers for a given constraint group.

    Returns:
        A mapping from the Monte-Carlo year to its selected time series
    """
    return self._output_service.get_binding_constraint_ts_numbers(group_id, self._name)

get_hydro_ts_numbers

get_hydro_ts_numbers(area_id: str) -> dict[int, int]

Get hydro time series numbers for a given area.

Returns:

  • dict[int, int]

    A mapping from the Monte-Carlo year to its selected time series

Source code in src/antares/craft/model/output.py
def get_hydro_ts_numbers(self, area_id: str) -> dict[int, int]:
    """Get hydro time series numbers for a given area.

    Returns:
        A mapping from the Monte-Carlo year to its selected time series
    """
    return self._output_service.get_hydro_ts_numbers(area_id, self._name)
get_link_ts_numbers(area_from: str, area_to: str) -> dict[int, int]

Get wind time series numbers for a given link.

Returns:

  • dict[int, int]

    A mapping from the Monte-Carlo year to its selected time series

Source code in src/antares/craft/model/output.py
def get_link_ts_numbers(self, area_from: str, area_to: str) -> dict[int, int]:
    """Get wind time series numbers for a given link.

    Returns:
        A mapping from the Monte-Carlo year to its selected time series
    """
    return self._output_service.get_link_ts_numbers(area_from, area_to, self._name)

get_load_ts_numbers

get_load_ts_numbers(area_id: str) -> dict[int, int]

Get load time series numbers for a given area.

Returns:

  • dict[int, int]

    A mapping from the Monte-Carlo year to its selected time series

Source code in src/antares/craft/model/output.py
def get_load_ts_numbers(self, area_id: str) -> dict[int, int]:
    """Get load time series numbers for a given area.

    Returns:
        A mapping from the Monte-Carlo year to its selected time series
    """
    return self._output_service.get_load_ts_numbers(area_id, self._name)

get_mc_all_area

get_mc_all_area(
    frequency: Frequency, data_type: MCAllAreasDataType, area: str
) -> DataFrame

Get data for an area with mc-all.

Parameters:

  • frequency

    (Frequency) –

    Whether "hourly", "daily", "weekly", "monthly", "annual".

  • data_type

    (MCAllAreasDataType) –

    The data-type of mc-all areas.

  • area

    (str) –

    The area name.

Returns:

  • DataFrame

    A dataframe of mc-all data.

Source code in src/antares/craft/model/output.py
def get_mc_all_area(self, frequency: Frequency, data_type: MCAllAreasDataType, area: str) -> pd.DataFrame:
    """Get data for an area with mc-all.

    Args:
        frequency: Whether "hourly", "daily", "weekly", "monthly", "annual".
        data_type: The data-type of mc-all areas.
        area: The area name.

    Returns:
        A dataframe of mc-all data.
    """
    file_path = f"mc-all/areas/{area}/{data_type.value}-{frequency.value}"
    return self._output_service.get_matrix(self.name, file_path, frequency)
get_mc_all_link(
    frequency: Frequency, data_type: MCAllLinksDataType, area_from: str, area_to: str
) -> DataFrame

Get data for a link with mc-all.

Parameters:

  • frequency

    (Frequency) –

    Whether "hourly", "daily", "weekly", "monthly", "annual".

  • data_type

    (MCAllLinksDataType) –

    The data-type of mc-all links.

  • area_from

    (str) –

    area_from ID.

  • area_to

    (str) –

    area_to ID.

Returns:

  • DataFrame

    A dataframe of mc-all data.

Source code in src/antares/craft/model/output.py
def get_mc_all_link(
    self, frequency: Frequency, data_type: MCAllLinksDataType, area_from: str, area_to: str
) -> pd.DataFrame:
    """Get data for a link with mc-all.

    Args:
        frequency: Whether "hourly", "daily", "weekly", "monthly", "annual".
        data_type: The data-type of mc-all links.
        area_from: `area_from` ID.
        area_to: `area_to` ID.

    Returns:
        A dataframe of mc-all data.
    """
    if [area_from, area_to] != sorted([area_from, area_to]):
        raise OutputDataRetrievalError(self.name, "Areas should be sorted alphabetically")
    file_path = f"mc-all/links/{area_from} - {area_to}/{data_type.value}-{frequency.value}"
    return self._output_service.get_matrix(self.name, file_path, frequency)

get_mc_ind_area

get_mc_ind_area(
    mc_year: int, frequency: Frequency, data_type: MCIndAreasDataType, area: str
) -> DataFrame

Get data for an area with mc-ind.

Parameters:

  • mc_year

    (int) –

    Monte-Carlo year index.

  • frequency

    (Frequency) –

    Whether "hourly", "daily", "weekly", "monthly", "annual".

  • data_type

    (MCIndAreasDataType) –

    The data-type of mc-all areas.

  • area

    (str) –

    The area name.

Returns:

  • DataFrame

    A dataframe of mc-ind data.

Source code in src/antares/craft/model/output.py
def get_mc_ind_area(
    self, mc_year: int, frequency: Frequency, data_type: MCIndAreasDataType, area: str
) -> pd.DataFrame:
    """Get data for an area with mc-ind.

    Args:
        mc_year: Monte-Carlo year index.
        frequency: Whether "hourly", "daily", "weekly", "monthly", "annual".
        data_type: The data-type of mc-all areas.
        area: The area name.

    Returns:
        A dataframe of mc-ind data.
    """
    file_path = f"mc-ind/{mc_year:05}/areas/{area}/{data_type.value}-{frequency.value}"
    return self._output_service.get_matrix(self.name, file_path, frequency)
get_mc_ind_link(
    mc_year: int,
    frequency: Frequency,
    data_type: MCIndLinksDataType,
    area_from: str,
    area_to: str,
) -> DataFrame

Get data for a link with mc-ind.

Parameters:

  • mc_year

    (int) –

    Monte-Carlo year index.

  • frequency

    (Frequency) –

    "hourly", "daily", "weekly", "monthly", "annual".

  • data_type

    (MCIndLinksDataType) –

    The data-type of mc-ind links.

  • area_from

    (str) –

    area_from ID.

  • area_to

    (str) –

    area_to ID.

Returns:

  • DataFrame

    A dataframe of mc-ind data.

Source code in src/antares/craft/model/output.py
def get_mc_ind_link(
    self, mc_year: int, frequency: Frequency, data_type: MCIndLinksDataType, area_from: str, area_to: str
) -> pd.DataFrame:
    """Get data for a link with mc-ind.

    Args:
        mc_year: Monte-Carlo year index.
        frequency: "hourly", "daily", "weekly", "monthly", "annual".
        data_type: The data-type of mc-ind links.
        area_from: `area_from` ID.
        area_to: `area_to` ID.

    Returns:
        A dataframe of mc-ind data.
    """
    if [area_from, area_to] != sorted([area_from, area_to]):
        raise OutputDataRetrievalError(self.name, "Areas should be sorted alphabetically")
    file_path = f"mc-ind/{mc_year:05}/links/{area_from} - {area_to}/{data_type.value}-{frequency.value}"
    return self._output_service.get_matrix(self.name, file_path, frequency)

get_solar_ts_numbers

get_solar_ts_numbers(area_id: str) -> dict[int, int]

Get solar time series numbers.

Returns:

  • dict[int, int]

    A mapping from the Monte-Carlo year to its selected time series

Source code in src/antares/craft/model/output.py
def get_solar_ts_numbers(self, area_id: str) -> dict[int, int]:
    """Get solar time series numbers.

    Returns:
        A mapping from the Monte-Carlo year to its selected time series
    """
    return self._output_service.get_solar_ts_numbers(area_id, self._name)

get_st_storage_additional_constraints_numbers

get_st_storage_additional_constraints_numbers(
    area_id: str, st_storage_id: str, constraint_id: str
) -> dict[int, int]

Get short-term storage additional constraints time series numbers for a given constraint.

Returns:

  • dict[int, int]

    A mapping from the Monte-Carlo year to its selected time series

Source code in src/antares/craft/model/output.py
def get_st_storage_additional_constraints_numbers(
    self, area_id: str, st_storage_id: str, constraint_id: str
) -> dict[int, int]:
    """Get short-term storage additional constraints time series numbers for a given constraint.

    Returns:
        A mapping from the Monte-Carlo year to its selected time series
    """
    return self._output_service.get_st_storage_additional_constraints_numbers(
        area_id, st_storage_id, constraint_id, self._name
    )

get_st_storage_inflows_numbers

get_st_storage_inflows_numbers(area_id: str, st_storage_id: str) -> dict[int, int]

Get short-term storage inflows time series numbers for a given st-storage.

Returns:

  • dict[int, int]

    A mapping from the Monte-Carlo year to its selected time series

Source code in src/antares/craft/model/output.py
def get_st_storage_inflows_numbers(self, area_id: str, st_storage_id: str) -> dict[int, int]:
    """Get short-term storage inflows time series numbers for a given st-storage.

    Returns:
        A mapping from the Monte-Carlo year to its selected time series
    """
    return self._output_service.get_st_storage_inflows_numbers(area_id, st_storage_id, self._name)

get_thermal_ts_numbers

get_thermal_ts_numbers(area_id: str, thermal_id: str) -> dict[int, int]

Get thermal time series numbers for a given thermal cluster.

Returns:

  • dict[int, int]

    A mapping from the Monte-Carlo year to its selected time series

Source code in src/antares/craft/model/output.py
def get_thermal_ts_numbers(self, area_id: str, thermal_id: str) -> dict[int, int]:
    """Get thermal time series numbers for a given thermal cluster.

    Returns:
        A mapping from the Monte-Carlo year to its selected time series
    """
    return self._output_service.get_thermal_ts_numbers(area_id, thermal_id, self._name)

get_wind_ts_numbers

get_wind_ts_numbers(area_id: str) -> dict[int, int]

Get wind time series numbers for a given area.

Returns:

  • dict[int, int]

    A mapping from the Monte-Carlo year to its selected time series

Source code in src/antares/craft/model/output.py
def get_wind_ts_numbers(self, area_id: str) -> dict[int, int]:
    """Get wind time series numbers for a given area.

    Returns:
        A mapping from the Monte-Carlo year to its selected time series
    """
    return self._output_service.get_wind_ts_numbers(area_id, self._name)

get_xpansion_result

get_xpansion_result() -> XpansionResult

Get xpansion result.

Returns:

Source code in src/antares/craft/model/output.py
def get_xpansion_result(self) -> XpansionResult:
    """Get xpansion result.

    Returns:
        Xpansion results.
    """
    return self._output_service.get_xpansion_result(self.name)

get_xpansion_sensitivity_result

get_xpansion_sensitivity_result() -> XpansionSensitivityResult

Get xpansion sensitivity results.

Returns:

Source code in src/antares/craft/model/output.py
def get_xpansion_sensitivity_result(self) -> XpansionSensitivityResult:
    """Get xpansion sensitivity results.

    Returns:
        Xpansion sensitivity results.
    """
    return self._output_service.get_xpansion_sensitivity_result(self.name)

XpansionOutputAntares dataclass

XpansionOutputAntares(version: str)

Output of Xpansion investment module.

Attributes:

  • version (str) –

    The version of the module used in the simulation.

XpansionOutputCandidate dataclass

XpansionOutputCandidate(
    solution: float,
    max: float,
    min: float,
    iterations: list[XpansionOutputCandidateInvest],
)

Xpansion output candidate.

Attributes:

  • solution (float) –

    Invested capacity at the end of the algorithm.

  • max (float) –

    Maximum possible investment (in MW).

  • min (float) –

    Minimum possible investment (in MW).

  • iterations (list[XpansionOutputCandidateInvest]) –

    List of the output candidate investment for each iteration.

XpansionOutputCandidateInvest dataclass

XpansionOutputCandidateInvest(invest: float)

Xpansion output candidate investment.

Attributes:

  • invest (float) –

    Amount of investment for a given candidate.

XpansionOutputCandidateSensitivity dataclass

XpansionOutputCandidateSensitivity(
    lb: float,
    ub: float,
    solution_max: XpansionOutputCandidateInvest,
    solution_min: XpansionOutputCandidateInvest,
)

Xpansion output candidate sensitivity study.

Attributes:

XpansionOutputIteration dataclass

XpansionOutputIteration(
    best_ub: float,
    cumulative_number_of_subproblem_resolutions: int,
    investment_cost: float,
    lb: float,
    master_duration: float,
    operational_cost: float,
    optimality_gap: float,
    overall_cost: float,
    relative_gap: float,
    subproblem_duration: float,
    ub: float,
)

Xpansion output for a given iteration.

Attributes:

  • best_ub (float) –

    Best upper bound on the optimal cost.

  • cumulative_number_of_subproblem_resolutions (int) –

    Cumulative number of subproblems solved from the beginning of the Benders algorithm.

  • investment_cost (float) –

    Investment cost of the solution at the current iteration.

  • lb (float) –

    Lower bound on the optimal cost: this is the solution of the master problem as it is a relaxation of the investment problem.

  • master_duration (float) –

    Duration of the master problem resolution.

  • operational_cost (float) –

    Expectation of the yearly operational cost over all MC years of the linear relaxation of an Antares simulation for the system with the current iteration investment level.

  • optimality_gap (float) –

    Absolute gap between the lb and the best_ub ((best_ub - lb)).

  • overall_cost (float) –

    Sum of investment cost and operational_cost.

  • relative_gap (float) –

    At each iteration, the algorithm computes upper and lower bounds on the optimal cost. The algorithm stops as soon as the quantity (best_ub - lb) / max(|best_ub|, |lb|) falls below relative_gap. For a relative gap \(\alpha\), the cost of the solution returned by the algorithm satisfies: $\(\frac{{\scriptstyle\texttt{xpansion solution cost}} - {\scriptstyle\texttt{optimal cost}}}{{\scriptstyle\texttt{optimal cost}}} < \alpha\)$.

  • subproblem_duration (float) –

    Wall time for the resolution of all weekly Antares subproblems at the current iteration.

  • ub (float) –

    Overall cost of the solution of the current iteration. This may be greater than best_ub if a previous iteration led to a better solution.

XpansionOutputOptions dataclass

XpansionOutputOptions(
    log_level: int, master_name: str, problem_format: str, solver_name: str
)

Options of Xpansion output.

Attributes:

  • log_level (int) –

    Solver's log severity in {0, 1, 2}.

  • master_name (str) –

    Name of the master problem file (automatically generated).

  • problem_format (str) –
    • MPS: Problems in MPS text format.
    • OPTIMIZED: Problems in binary SVF format.
  • solver_name (str) –

    Solver used for the resolution of the optimization problem.

XpansionOutputSensitivitySolution dataclass

XpansionOutputSensitivitySolution(
    objective: float, problem_type: str, status: int, system_cost: float
)

Xpansion output sensitivity solution.

Attributes:

  • objective (float) –

    Objective value of the solution of the sensitivity analysis.

  • problem_type (str) –
    • "capex": Find a near-optimal solution with min or max capex.
    • "investment ": Find a near-optimal solution that minimizes or maximizes the investment for a given asset.
  • status (int) –

    Problem status.

  • system_cost (float) –

    System cost with the solution of the sensitivity analysis.

XpansionOutputSolution dataclass

XpansionOutputSolution(
    investment_cost: float,
    iteration: int,
    operational_cost: float,
    optimality_gap: float,
    overall_cost: float,
    problem_status: str,
    relative_gap: float,
    stopping_criterion: str,
)

Xpansion output solution.

Attributes:

  • investment_cost (float) –

    Optimal investment cost found by the algorithm.

  • iteration (int) –

    Corresponding iteration for the best solution.

  • operational_cost (float) –

    Expectation of the yearly operational cost over all MC years of the linear relaxation of an Antares simulation for the system with the best investment.

  • optimality_gap (float) –

    Absolute gap between the lb and the best_ub ((best_ub - lb)).

  • overall_cost (float) –

    Sum of investment cost and operational_cost.

  • problem_status (str) –

    Problem status.

  • relative_gap (float) –

    At each iteration, the algorithm computes upper and lower bounds on the optimal cost. The algorithm stops as soon as the quantity (best_ub - lb) / max(|best_ub|, |lb|) falls below relative_gap. For a relative gap \(\alpha\), the cost of the solution returned by the algorithm satisfies: $\(\frac{{\scriptstyle\texttt{xpansion solution cost}} - {\scriptstyle\texttt{optimal cost}}}{{\scriptstyle\texttt{optimal cost}}} < \alpha\)$.

  • stopping_criterion (str) –

    Stopping criterion for the optimization problem.

XpansionResult dataclass

XpansionResult(
    antares: XpansionOutputAntares,
    antares_xpansion: XpansionOutputAntares,
    begin: datetime,
    end: datetime,
    iterations: dict[int, XpansionOutputIteration],
    nb_weeks: int,
    options: XpansionOutputOptions,
    run_duration: float,
    solution: XpansionOutputSolution,
    candidates: dict[str, XpansionOutputCandidate],
)

Xpansion results.

Attributes:

XpansionSensitivityResult dataclass

XpansionSensitivityResult(
    antares: XpansionOutputAntares,
    antares_xpansion: XpansionOutputAntares,
    best_benders_cost: float,
    epsilon: float,
    candidates: dict[str, XpansionOutputCandidateSensitivity],
    solution_max: XpansionOutputSensitivitySolution,
    solution_min: XpansionOutputSensitivitySolution,
)

Xpansion sensitivity results.

Attributes: