Welcome to FBMC quality analysis’s documentation!


Indices and tables

Introduction

Module reference

fbmc_quality.linearisation_analysis.compute_functions.compute_cnec_vulnerability_to_err(cnec_data, target_net_positions, target_flow, alt_fmax=None, relative_or_absolute='relative')

returns the mean value of the vulnerability score, and mean basecase relative margin

vulnerability is the fraction of linearisation-error to the margin in MW in the target situation:

v = linearisation-error/(f_max - target-flow)

basecase relative margin is the

Parameters:
  • cnec_data (DataFrame[CnecData]) – zonal ptdfs and y axis offset

  • target_net_positions (DataFrame[NetPosition]) – target net positions to linearise from

  • target_flow (pd.Series[pd.Float64Dtype]) – target for computing linearisation error

Returns:

frame with vulnerability score, basecase_relative_margin

Return type:

pd.DataFrame

fbmc_quality.linearisation_analysis.compute_functions.compute_linearisation_error(cnec_data, target_net_positions, target_flow)

Computes the linearisation error as a relative error, with target_flow - linear_flow as the return value

Parameters:
  • cnec_data (DataFrame[CnecData]) – Zonal PTDFs and y axis offset

  • target_net_positions (DataFrame[NetPosition]) – net positions to use for the linearisation

  • target_flow (pd.Series[pd.Float64Dtype]) – observed flow at the given net positions

Returns:

linearisation error

Return type:

pd.Series[pd.Float64Dtype]

fbmc_quality.linearisation_analysis.compute_functions.compute_linearised_flow(cnec_data, target_net_positions)

Computes the FBMC linearised flow given a set of target net positions, zonal PTDFS and the y-axis offset

Parameters:
  • cnec_data (DataFrame[CnecData]) – Zonal PTDFs and y axis offset

  • target_net_positions (DataFrame[NetPosition]) – Net positions to use as targets for computing the flow

Returns:

linearlised flow

Return type:

pd.Series[pd.Float64Dtype]

class fbmc_quality.linearisation_analysis.dataclasses.CnecDataAndNPS(cnec_id: str, cnec_name: str, cnecData: DataFrame[CnecData], basecaseNPs: DataFrame[NetPosition], observedNPs: DataFrame[NetPosition], observed_flow: DataFrame)

Dataclass conaining pandas Dataframes of data from JAO and observed and basecase Net Positions, as well as observed flow. For a single CNEC.

basecaseNPs: DataFrame[NetPosition]

Alias for field number 3

cnecData: DataFrame[CnecData]

Alias for field number 2

cnec_id: str

Alias for field number 0

cnec_name: str

Alias for field number 1

observedNPs: DataFrame[NetPosition]

Alias for field number 4

observed_flow: DataFrame

Alias for field number 5

class fbmc_quality.linearisation_analysis.dataclasses.JaoDataAndNPS(jaoData: DataFrame[JaoData], basecaseNPs: DataFrame[NetPosition], observedNPs: DataFrame[NetPosition])

Dataclass conaining pandas Dataframes of data from JAO and observed and basecase Net Positions

basecaseNPs: DataFrame[NetPosition]

Alias for field number 1

jaoData: DataFrame[JaoData]

Alias for field number 0

observedNPs: DataFrame[NetPosition]

Alias for field number 2

class fbmc_quality.linearisation_analysis.dataclasses.PlotData(expected_observed_flow: Series, unweighted_delta_net_pos: DataFrame[NetPosition], x: ndarray, y: ndarray)

Simple container used for plotting when investigating the difference between basecase Net Positions and an observed state.

expected_observed_flow: Series

Alias for field number 0

unweighted_delta_net_pos: DataFrame[NetPosition]

Alias for field number 1

x: ndarray

Alias for field number 2

y: ndarray

Alias for field number 3

fbmc_quality.linearisation_analysis.process_data.load_data_for_corridor_cnec(cnecName, jaodata_and_net_positions)

Loads data for a given cnec from its name as it appears in the JAO API

Parameters:
  • cnecName (str) – Name of the CNEC as it appears in the JAO API

  • jao_and_entsoe_data (JaoDataAndNPS) – Data from JAO and Entsoe APIs

Raises:

ValueError – If the cnecName is a border CNEC - raises if no mapping to ENTSOE transparency is found

Returns:

CNEC data if any is found

Return type:

CnecDataAndNPS | None

fbmc_quality.linearisation_analysis.process_data.load_data_for_internal_cnec(cnecName, fetch_cnec_data, jaodata_and_net_positions)

Loads data for a given cnec from its name as it appears in the JAO API. Takes a callable to fetch data from an arbitrary source

Parameters:
  • cnecName (str) – Name of the CNEC as it appears in the JAO API

  • fetch_cnec_data (Callable[[date, date, str], pd.DataFrame]) – Callable that queries for cnec data

  • jaodata_and_net_positions (JaoDataAndNPS) – Data from JAO and target Net Positions

Returns:

Data on the CNEC and with relevant net_positions

Return type:

CnecDataAndNPS | None

fbmc_quality.linearisation_analysis.process_data.transform_delta_np_and_ptdfs_to_numpy(unweighted_delta_np, cnec_ds)

takes net position and ptdf data array and concatenates them to a numpy array. Will replace NaN with 0 in the PTDF matrix

Parameters:
  • unweighted_delta_np (DataFrame[NetPosition]) – Dataframe net_positions

  • cnec_ds (DataFrame[JaoData]) – Dataframe with ptdfs

Returns:

Array with dimensions (time, bidding_zones x 2)

Return type:

np.ndarray

fbmc_quality.jao_data.analyse_jao_data.compute_basecase_net_pos(start, end, bidding_zones=None, filter_non_conforming_hours=False)
Computes the net-positions in a period from start to end from data in dataset,

for the given bidding_zones

Parameters:
  • dataset (DataFrame[JaoData]) – Data used to compute the net positions.

  • start (date | None, optional) – Date to start filter the computation on.

  • end (date | None, optional) – Date to end filter the computation on.

  • bidding_zones (BiddingZonesEnum | list[BiddingZones] | None, optional) – Bidding zones to compute the net position for. Defaults to None, which will compute for ALL bidding zones.

Return type:

Optional[DataFrame[NetPosition]]

Returns DataFrame[JaoData]:

fbmc_quality.jao_data.analyse_jao_data.get_cnec_id_from_name(cnecName, dataset, alternative_names={'NO_NO2_DE->NO2': ['DE->NO2'], 'NO_NO2_DK1->NO2': ['DK1->NO2'], 'NO_NO2_NL->NO2': ['NL->NO2']})

Gets the CNEC-ID for a given cnec name. Returns the id(s) associated with this name at the 0th timestep of the dataset

Parameters:
  • cnecName (str) – CNEC to find the correspondig ID for

  • dataset (DataFrame[JaoData]) – Dataset of CNEC information. See make_data_array_from_datetime for the schema

  • alternative_names (dict[str, list[str]]) – mapping of names that may have changed

Returns:

Possibly Id(s) of the cnecs that correspond to the

Return type:

np.ndarray | int

fbmc_quality.jao_data.analyse_jao_data.get_cross_border_cnec_ids(df, bidding_zones=None, bidding_zone_cnec_map={BiddingZonesEnum.DK1: [('Border_CNEC_DK1_DE-DK1', BiddingZonesEnum.DK1_DE), ('Border_CNEC_DK1_KS-DK1', BiddingZonesEnum.DK1_KS), ('Border_CNEC_DK1_SB-DK1', BiddingZonesEnum.DK1_SB), ('Border_CNEC_DK1_CO-DK1', BiddingZonesEnum.DK1_CO), ('Border_CNEC_DK1_SK-DK1', BiddingZonesEnum.DK1_SK)], BiddingZonesEnum.DK1_CO: [('Border_CNEC_DK1-DK1_CO', BiddingZonesEnum.DK1)], BiddingZonesEnum.DK1_DE: [('Border_CNEC_DK1-DK1_DE', BiddingZonesEnum.DK1)], BiddingZonesEnum.DK1_KS: [('Border_CNEC_DK1-DK1_KS', BiddingZonesEnum.DK1)], BiddingZonesEnum.DK1_SB: [('Border_CNEC_DK1-DK1_SB', BiddingZonesEnum.DK1)], BiddingZonesEnum.DK1_SK: [('Border_CNEC_DK1-DK1_SK', BiddingZonesEnum.DK1)], BiddingZonesEnum.DK2: [('Border_CNEC_DK2_SB-DK2', BiddingZonesEnum.DK2_SB), ('Border_CNEC_DK2_KO-DK2', BiddingZonesEnum.DK2_KO), ('Border_CNEC_SE4-DK2', BiddingZonesEnum.SE4)], BiddingZonesEnum.FI: [('Border_CNEC_NO4-FI', BiddingZonesEnum.NO4), ('Border_CNEC_SE1-FI', BiddingZonesEnum.SE1), ('Border_CNEC_FI_FS-FI', BiddingZonesEnum.FI_FS), ('Border_CNEC_FI_EL-FI', BiddingZonesEnum.FI_EL)], BiddingZonesEnum.FI_EL: [('Border_CNEC_FI-FI_EL', BiddingZonesEnum.FI)], BiddingZonesEnum.FI_FS: [('Border_CNEC_FI-FI_FS', BiddingZonesEnum.FI)], BiddingZonesEnum.NO1: [('NO2->NO1', BiddingZonesEnum.NO2), ('NO3->NO1', BiddingZonesEnum.NO3), ('NO5->NO1', BiddingZonesEnum.NO5), ('SE3->NO1', BiddingZonesEnum.SE3)], BiddingZonesEnum.NO2: [('NO_NO2_NL->NO2', BiddingZonesEnum.NO2_ND), ('NO_NO2_DE->NO2', BiddingZonesEnum.NO2_NK), ('NO_NO2_DK1->NO2', BiddingZonesEnum.NO2_SK), ('NO5->NO2', BiddingZonesEnum.NO5), ('NO1->NO2', BiddingZonesEnum.NO1)], BiddingZonesEnum.NO2_ND: [('Border_CNEC_NO2-NO2_ND', BiddingZonesEnum.NO2)], BiddingZonesEnum.NO2_NK: [('Border_CNEC_NO2-NO2_NK', BiddingZonesEnum.NO2)], BiddingZonesEnum.NO2_SK: [('Border_CNEC_NO2-NO2_SK', BiddingZonesEnum.NO2)], BiddingZonesEnum.NO3: [('NO1->NO3', BiddingZonesEnum.NO1), ('NO5->NO3', BiddingZonesEnum.NO5), ('NO4->NO3', BiddingZonesEnum.NO4), ('SE2->NO3', BiddingZonesEnum.SE2)], BiddingZonesEnum.NO4: [('SE1->NO4', BiddingZonesEnum.SE1), ('FI->NO4', BiddingZonesEnum.FI), ('NO3->NO4', BiddingZonesEnum.NO3), ('SE2->NO4', BiddingZonesEnum.SE2)], BiddingZonesEnum.NO5: [('NO1->NO5', BiddingZonesEnum.NO1), ('NO3->NO5', BiddingZonesEnum.NO3), ('NO2->NO5', BiddingZonesEnum.NO2)], BiddingZonesEnum.SE1: [('Border_CNEC_NO4-SE1', BiddingZonesEnum.NO4), ('Border_CNEC_SE2-SE1', BiddingZonesEnum.SE2), ('Border_CNEC_FI-SE1', BiddingZonesEnum.FI)], BiddingZonesEnum.SE2: [('Border_CNEC_SE1-SE2', BiddingZonesEnum.SE1), ('Border_CNEC_SE3-SE2', BiddingZonesEnum.SE3), ('Border_CNEC_NO4-SE2', BiddingZonesEnum.NO4), ('Border_CNEC_NO3-SE2', BiddingZonesEnum.NO3)], BiddingZonesEnum.SE3: [('Border_CNEC_NO1-SE3', BiddingZonesEnum.NO1), ('Border_CNEC_SE3_KS-SE3', BiddingZonesEnum.SE3_KS), ('Border_CNEC_SE3_FS-SE3', BiddingZonesEnum.SE3_FS), ('Border_CNEC_SE4-SE3', BiddingZonesEnum.SE4), ('Border_CNEC_SE2-SE3', BiddingZonesEnum.SE2)], BiddingZonesEnum.SE3_FS: [('Border_CNEC_SE3-SE3_FS', BiddingZonesEnum.SE3)], BiddingZonesEnum.SE3_KS: [('Border_CNEC_SE3-SE3_KS', BiddingZonesEnum.SE3)], BiddingZonesEnum.SE4: [('Border_CNEC_SE3-SE4', BiddingZonesEnum.SE3), ('Border_CNEC_SE4_BC-SE4', BiddingZonesEnum.SE4_BC), ('Border_CNEC_SE4_SP-SE4', BiddingZonesEnum.SE4_SP), ('Border_CNEC_SE4_NB-SE4', BiddingZonesEnum.SE4_NB), ('Border_CNEC_DK2-SE4', BiddingZonesEnum.DK2)], BiddingZonesEnum.SE4_BC: [('Border_CNEC_SE4-SE4_BC', BiddingZonesEnum.SE4)], BiddingZonesEnum.SE4_NB: [('Border_CNEC_SE4-SE4_NB', BiddingZonesEnum.SE4)], BiddingZonesEnum.SE4_SP: [('Border_CNEC_SE4-SE4_SP', BiddingZonesEnum.SE4)]})

From a dataset find the cnec ids (a coordinate in the DS) that correspond to the cross border flows. The mapping is maintained in BIDDING_ZONE_CNEC_MAP

Parameters:
  • ds (DataFrame[JaoData]) – Dataset in which to find the cross border flows. Must have index cnec_id, and column cnecName

  • bidding_zones (BiddingZonesEnum | list[BiddingZones] | None, optional) – Bidding zones for which to find cross border cnecs. Defaults to None.

  • bidding_zone_cnec_map (dict[BiddingZonesEnum, list[str]]) – Mapping from bidding zone to cnec names, i.e. >>> bidding_zone_cnec_map = { >>> BiddingZonesEnum.NO1: [ >>> “NO2->NO1”, >>> “NO3->NO1”, >>> “NO5->NO1”, >>> “SE3->NO1”, >>> ], >>> … >>> }

Returns:

mapping of bidding zone to cnec_id strings

Return type:

dict[BiddingZonesEnum, list[str]]

fbmc_quality.jao_data.fetch_jao_data.fetch_jao_dataframe_timeseries(from_time, to_time)

Reads JAO data from the API and returns the corresponding frame. Pulls data from cache in the write_path

Parameters:
  • from_time (timedata) – from when to pull data

  • to_time (timedata) – to when to pull data

  • write_path (Path | None, optional) – Path to use for data caching. Defaults to None, and uses ~/.linearisation_error.

Raises:

FileError – If write_path does not exist

Returns:

pandas Dataframe with JAO date,

returns None if no data is found in API or cache

Return type:

DataFrame[JaoData] | None

async fbmc_quality.jao_data.fetch_jao_data.get_ptdfs(date, session)

get PTDFs from JAO, query by datetime

Parameters:

date (datetime) – date to query the JAO by

Returns:

HTTP payload from the API request

Return type:

Dict[str, object]

fbmc_quality.entsoe_data.fetch_entsoe_data.fetch_entsoe_data_from_bidding_zones(start_date, end_date, from_area, to_area)

Calculates the flow on a border CNEC between two areas for a time period

Parameters:
  • from_area (BiddingZonesEnum) – Start biddingzone - flow from this area has a positive sign

  • to_area (BiddingZonesEnum) – End biddingzone - flow to this area has positive sign

  • start_date (date) – start date to pull data from

  • end_date (date) – enddate to pull data to

Raises:

ENTSOELookupException – Mapping error if ENTSOE_BIDDING_ZONE_MAP does not contain the from/to zone.

Returns:

Frame with time as index and one column flow

Return type:

DataFrame

fbmc_quality.entsoe_data.fetch_entsoe_data.fetch_entsoe_data_from_cnecname(start_date, end_date, cnecName)

Calculates the flow on a border CNEC between two areas for a time period Wrapper around fetch_entsoe_data_from_bidding_zones

Parameters:
  • start_date (date) – start date to pull data from

  • end_date (date) – enddate to pull data to

  • cnecName (str) – name of cnec to pull data for

Raises:

ENTSOELookupException – Mapping error if ENTSOE_BIDDING_ZONE_MAP does not contain the from/to zone.

Returns:

Frame with time as index and one column flow

Return type:

DataFrame

fbmc_quality.entsoe_data.fetch_entsoe_data.fetch_net_position_from_crossborder_flows(start, end, bidding_zones=None, filter_non_conforming_hours=False)
Computes the net-positions in a period from start to end from data from ENTSOE Transparency,

for the given bidding_zones

Parameters:
  • start (datetime | pd.Timestamp) – Datetime to start filter the computation on.

  • end (datetime | pd.Timestamp) – Datetime to end filter the computation on.

  • bidding_zones (BiddingZones | list[BiddingZones] | None, optional) – Bidding zones to compute the net position for. Defaults to None, which will compute for ALL bidding zones.

Return type:

Optional[DataFrame[NetPosition]]

Returns DataFrame[NetPosition]:

fbmc_quality.entsoe_data.fetch_entsoe_data.get_cross_border_flow(start, end, area_from, area_to)

Gets the cross border flow from in a date-range for an interchange from/to an Area. Timestamps are converted to UTC before querying the API. Returned time-data is in UTC.

Parameters:
  • start (date) – start of the retrieval range, in local time

  • end (date) – end of the retrieval range, in local time

  • area_from (Area) – from area

  • area_to (Area) – to area

Returns:

series of cross border flow

Return type:

pd.Series

enum fbmc_quality.enums.bidding_zones.AltBiddingZonesEnum(value)

An enumeration.

Member Type:

str

Valid values are as follows:

NO_NO2_NL = <AltBiddingZonesEnum.NO_NO2_NL: 'NO_NO2_NL'>
NO_NO2_DE = <AltBiddingZonesEnum.NO_NO2_DE: 'NO_NO2_DE'>
NO_NO2_DK1 = <AltBiddingZonesEnum.NO_NO2_DK1: 'NO_NO2_DK1'>
enum fbmc_quality.enums.bidding_zones.BiddingZonesEnum(value)

An enumeration.

Member Type:

str

Valid values are as follows:

DK1 = <BiddingZonesEnum.DK1: 'DK1'>
DK1_SB = <BiddingZonesEnum.DK1_SB: 'DK1_SB'>
DK1_CO = <BiddingZonesEnum.DK1_CO: 'DK1_CO'>
DK1_DE = <BiddingZonesEnum.DK1_DE: 'DK1_DE'>
DK1_KS = <BiddingZonesEnum.DK1_KS: 'DK1_KS'>
DK1_SK = <BiddingZonesEnum.DK1_SK: 'DK1_SK'>
DK2_SB = <BiddingZonesEnum.DK2_SB: 'DK2_SB'>
DK2_KO = <BiddingZonesEnum.DK2_KO: 'DK2_KO'>
DK2 = <BiddingZonesEnum.DK2: 'DK2'>
FI = <BiddingZonesEnum.FI: 'FI'>
FI_EL = <BiddingZonesEnum.FI_EL: 'FI_EL'>
FI_FS = <BiddingZonesEnum.FI_FS: 'FI_FS'>
NO1 = <BiddingZonesEnum.NO1: 'NO1'>
NO2 = <BiddingZonesEnum.NO2: 'NO2'>
NO2_ND = <BiddingZonesEnum.NO2_ND: 'NO2_ND'>
NO2_SK = <BiddingZonesEnum.NO2_SK: 'NO2_SK'>
NO2_NK = <BiddingZonesEnum.NO2_NK: 'NO2_NK'>
NO3 = <BiddingZonesEnum.NO3: 'NO3'>
NO4 = <BiddingZonesEnum.NO4: 'NO4'>
NO5 = <BiddingZonesEnum.NO5: 'NO5'>
SE1 = <BiddingZonesEnum.SE1: 'SE1'>
SE2 = <BiddingZonesEnum.SE2: 'SE2'>
SE3 = <BiddingZonesEnum.SE3: 'SE3'>
SE3_FS = <BiddingZonesEnum.SE3_FS: 'SE3_FS'>
SE3_KS = <BiddingZonesEnum.SE3_KS: 'SE3_KS'>
SE4 = <BiddingZonesEnum.SE4: 'SE4'>
SE4_BC = <BiddingZonesEnum.SE4_BC: 'SE4_BC'>
SE4_NB = <BiddingZonesEnum.SE4_NB: 'SE4_NB'>
SE4_SP = <BiddingZonesEnum.SE4_SP: 'SE4_SP'>
class fbmc_quality.dataframe_schemas.BiddingZones(*args, **kwargs)
class Config
name: Optional[str] = 'BiddingZones'

name of schema

DK1: Optional[Series[float]] = 'DK1'

value of bidding zone

DK1_CO: Series[float] = 'DK1_CO'

value of bidding zone

DK1_DE: Series[float] = 'DK1_DE'

value of bidding zone

DK1_KS: Series[float] = 'DK1_KS'

value of bidding zone

DK1_SK: Series[float] = 'DK1_SK'

value of bidding zone

DK2: Series[float] = 'DK2'

value of bidding zone

DK2_KO: Series[float] = 'DK2_KO'

value of bidding zone

FI: Series[float] = 'FI'

value of bidding zone

FI_EL: Series[float] = 'FI_EL'

value of bidding zone

FI_FS: Series[float] = 'FI_FS'

value of bidding zone

NO1: Series[float] = 'NO1'

value of bidding zone

NO2: Series[float] = 'NO2'

value of bidding zone

NO2_ND: Series[float] = 'NO2_ND'

value of bidding zone

NO2_NK: Series[float] = 'NO2_NK'

value of bidding zone

NO2_SK: Series[float] = 'NO2_SK'

value of bidding zone

NO3: Series[float] = 'NO3'

value of bidding zone

NO4: Series[float] = 'NO4'

value of bidding zone

NO5: Series[float] = 'NO5'

value of bidding zone

SE1: Series[float] = 'SE1'

value of bidding zone

SE2: Series[float] = 'SE2'

value of bidding zone

SE3: Series[float] = 'SE3'

value of bidding zone

SE3_FS: Series[float] = 'SE3_FS'

value of bidding zone

SE3_KS: Series[float] = 'SE3_KS'

value of bidding zone

SE4: Series[float] = 'SE4'

value of bidding zone

SE4_BC: Series[float] = 'SE4_BC'

value of bidding zone

SE4_NB: Series[float] = 'SE4_NB'

value of bidding zone

SE4_SP: Series[float] = 'SE4_SP'

value of bidding zone

class fbmc_quality.dataframe_schemas.NetPosition(*args, **kwargs)

Schema describing net positions of a set of areas

DK1: Optional[Series[float]] = 'DK1'

value of bidding zone

DK1_CO: Series[float] = 'DK1_CO'

value of bidding zone

DK1_DE: Series[float] = 'DK1_DE'

value of bidding zone

DK1_KS: Series[float] = 'DK1_KS'

value of bidding zone

DK1_SK: Series[float] = 'DK1_SK'

value of bidding zone

DK2: Series[float] = 'DK2'

value of bidding zone

DK2_KO: Series[float] = 'DK2_KO'

value of bidding zone

FI: Series[float] = 'FI'

value of bidding zone

FI_EL: Series[float] = 'FI_EL'

value of bidding zone

FI_FS: Series[float] = 'FI_FS'

value of bidding zone

NO1: Series[float] = 'NO1'

value of bidding zone

NO2: Series[float] = 'NO2'

value of bidding zone

NO2_ND: Series[float] = 'NO2_ND'

value of bidding zone

NO2_NK: Series[float] = 'NO2_NK'

value of bidding zone

NO2_SK: Series[float] = 'NO2_SK'

value of bidding zone

NO3: Series[float] = 'NO3'

value of bidding zone

NO4: Series[float] = 'NO4'

value of bidding zone

NO5: Series[float] = 'NO5'

value of bidding zone

SE1: Series[float] = 'SE1'

value of bidding zone

SE2: Series[float] = 'SE2'

value of bidding zone

SE3: Series[float] = 'SE3'

value of bidding zone

SE3_FS: Series[float] = 'SE3_FS'

value of bidding zone

SE3_KS: Series[float] = 'SE3_KS'

value of bidding zone

SE4: Series[float] = 'SE4'

value of bidding zone

SE4_BC: Series[float] = 'SE4_BC'

value of bidding zone

SE4_NB: Series[float] = 'SE4_NB'

value of bidding zone

SE4_SP: Series[float] = 'SE4_SP'

value of bidding zone

time: Index[Annotated[DatetimeTZDtype]] = 'time'

time index

class fbmc_quality.dataframe_schemas.JaoData(*args, **kwargs)

Schema describing the flow based market clearing data coming from JAO.

DK1: Optional[Series[float]] = 'DK1'

value of bidding zone

DK1_CO: Series[float] = 'DK1_CO'

value of bidding zone

DK1_DE: Series[float] = 'DK1_DE'

value of bidding zone

DK1_KS: Series[float] = 'DK1_KS'

value of bidding zone

DK1_SK: Series[float] = 'DK1_SK'

value of bidding zone

DK2: Series[float] = 'DK2'

value of bidding zone

DK2_KO: Series[float] = 'DK2_KO'

value of bidding zone

FI: Series[float] = 'FI'

value of bidding zone

FI_EL: Series[float] = 'FI_EL'

value of bidding zone

FI_FS: Series[float] = 'FI_FS'

value of bidding zone

NO1: Series[float] = 'NO1'

value of bidding zone

NO2: Series[float] = 'NO2'

value of bidding zone

NO2_ND: Series[float] = 'NO2_ND'

value of bidding zone

NO2_NK: Series[float] = 'NO2_NK'

value of bidding zone

NO2_SK: Series[float] = 'NO2_SK'

value of bidding zone

NO3: Series[float] = 'NO3'

value of bidding zone

NO4: Series[float] = 'NO4'

value of bidding zone

NO5: Series[float] = 'NO5'

value of bidding zone

SE1: Series[float] = 'SE1'

value of bidding zone

SE2: Series[float] = 'SE2'

value of bidding zone

SE3: Series[float] = 'SE3'

value of bidding zone

SE3_FS: Series[float] = 'SE3_FS'

value of bidding zone

SE3_KS: Series[float] = 'SE3_KS'

value of bidding zone

SE4: Series[float] = 'SE4'

value of bidding zone

SE4_BC: Series[float] = 'SE4_BC'

value of bidding zone

SE4_NB: Series[float] = 'SE4_NB'

value of bidding zone

SE4_SP: Series[float] = 'SE4_SP'

value of bidding zone

aac: Series[float] = 'aac'

JAO field value

amr: Series[float] = 'amr'

JAO field value

cneEic: Series[pd.StringDtype] = 'cneEic'

JAO field value

cneName: Series[pd.StringDtype] = 'cneName'

JAO field value

cneStatus: Series[pd.StringDtype] = 'cneStatus'

JAO field value

cneType: Series[pd.StringDtype] = 'cneType'

JAO field value

cnecName: Series[pd.StringDtype] = 'cnecName'

JAO field value

cnecType: Series[pd.StringDtype] = 'cnecType'

JAO field value

cnec_id: Index[pd.StringDtype] = 'cnec_id'

Index value

contName: Series[pd.StringDtype] = 'contName'

JAO field value

contStatus: Series[pd.StringDtype] = 'contStatus'

JAO field value

contingencies: Series[pd.StringDtype] = 'contingencies'

JAO field value

dateTimeUtc: Series[Annotated[pd.DatetimeTZDtype, 'ns', 'utc']] = 'dateTimeUtc'

JAO field value

fall: Series[float] = 'fall'

JAO field value

fmax: Series[float] = 'fmax'

JAO field value

fnrao: Series[float] = 'fnrao'

JAO field value

fref: Series[float] = 'fref'

JAO field value

frm: Series[float] = 'frm'

JAO field value

id: Series[pd.Int64Dtype] = 'id'

JAO field value

imax: Series[float] = 'imax'

JAO field value

imaxMethod: Series[pd.StringDtype] = 'imaxMethod'

JAO field value

iva: Series[float] = 'iva'

JAO field value

maxFlow: Series[float] = 'maxFlow'

JAO field value

minFlow: Series[float] = 'minFlow'

JAO field value

nonRedundant: Series[pd.BooleanDtype] = 'nonRedundant'

JAO field value

ram: Series[float] = 'ram'

JAO field value

significant: Series[pd.BooleanDtype] = 'significant'

JAO field value

substationFrom: Series[pd.StringDtype] = 'substationFrom'

JAO field value

substationTo: Series[pd.StringDtype] = 'substationTo'

JAO field value

time: Index[Annotated[pd.DatetimeTZDtype, 'ns', 'utc']] = 'time'

Index value

tso: Series[pd.StringDtype] = 'tso'

JAO field value

u: Series[float] = 'u'

JAO field value

class fbmc_quality.dataframe_schemas.CnecData(*args, **kwargs)

Schema describing the flow based market clearing data coming from JAO. For a single CNEC

DK1: Optional[Series[float]] = 'DK1'

value of bidding zone

DK1_CO: Series[float] = 'DK1_CO'

value of bidding zone

DK1_DE: Series[float] = 'DK1_DE'

value of bidding zone

DK1_KS: Series[float] = 'DK1_KS'

value of bidding zone

DK1_SK: Series[float] = 'DK1_SK'

value of bidding zone

DK2: Series[float] = 'DK2'

value of bidding zone

DK2_KO: Series[float] = 'DK2_KO'

value of bidding zone

FI: Series[float] = 'FI'

value of bidding zone

FI_EL: Series[float] = 'FI_EL'

value of bidding zone

FI_FS: Series[float] = 'FI_FS'

value of bidding zone

NO1: Series[float] = 'NO1'

value of bidding zone

NO2: Series[float] = 'NO2'

value of bidding zone

NO2_ND: Series[float] = 'NO2_ND'

value of bidding zone

NO2_NK: Series[float] = 'NO2_NK'

value of bidding zone

NO2_SK: Series[float] = 'NO2_SK'

value of bidding zone

NO3: Series[float] = 'NO3'

value of bidding zone

NO4: Series[float] = 'NO4'

value of bidding zone

NO5: Series[float] = 'NO5'

value of bidding zone

SE1: Series[float] = 'SE1'

value of bidding zone

SE2: Series[float] = 'SE2'

value of bidding zone

SE3: Series[float] = 'SE3'

value of bidding zone

SE3_FS: Series[float] = 'SE3_FS'

value of bidding zone

SE3_KS: Series[float] = 'SE3_KS'

value of bidding zone

SE4: Series[float] = 'SE4'

value of bidding zone

SE4_BC: Series[float] = 'SE4_BC'

value of bidding zone

SE4_NB: Series[float] = 'SE4_NB'

value of bidding zone

SE4_SP: Series[float] = 'SE4_SP'

value of bidding zone

aac: Series[float] = 'aac'

JAO field value

amr: Series[float] = 'amr'

JAO field value

cneEic: Series[pd.StringDtype] = 'cneEic'

JAO field value

cneName: Series[pd.StringDtype] = 'cneName'

JAO field value

cneStatus: Series[pd.StringDtype] = 'cneStatus'

JAO field value

cneType: Series[pd.StringDtype] = 'cneType'

JAO field value

cnecName: Series[pd.StringDtype] = 'cnecName'

JAO field value

cnecType: Series[pd.StringDtype] = 'cnecType'

JAO field value

contName: Series[pd.StringDtype] = 'contName'

JAO field value

contStatus: Series[pd.StringDtype] = 'contStatus'

JAO field value

contingencies: Series[pd.StringDtype] = 'contingencies'

JAO field value

dateTimeUtc: Series[Annotated[pd.DatetimeTZDtype, 'ns', 'utc']] = 'dateTimeUtc'

JAO field value

fall: Series[float] = 'fall'

JAO field value

fmax: Series[float] = 'fmax'

JAO field value

fnrao: Series[float] = 'fnrao'

JAO field value

fref: Series[float] = 'fref'

JAO field value

frm: Series[float] = 'frm'

JAO field value

id: Series[pd.Int64Dtype] = 'id'

JAO field value

imax: Series[float] = 'imax'

JAO field value

imaxMethod: Series[pd.StringDtype] = 'imaxMethod'

JAO field value

iva: Series[float] = 'iva'

JAO field value

maxFlow: Series[float] = 'maxFlow'

JAO field value

minFlow: Series[float] = 'minFlow'

JAO field value

nonRedundant: Series[pd.BooleanDtype] = 'nonRedundant'

JAO field value

ram: Series[float] = 'ram'

JAO field value

significant: Series[pd.BooleanDtype] = 'significant'

JAO field value

substationFrom: Series[pd.StringDtype] = 'substationFrom'

JAO field value

substationTo: Series[pd.StringDtype] = 'substationTo'

JAO field value

time: Index[Annotated[DatetimeTZDtype]] = 'time'

time index

tso: Series[pd.StringDtype] = 'tso'

JAO field value

u: Series[float] = 'u'

JAO field value