annular.market.tulipa.build_model

Build a TulipaEnergy model with bids.

Attributes

logger

TABLES_TO_MODIFY

Functions

validate_input_data(→ None)

Validate input data for using TulipaEnergyModel as market model.

execute(→ None)

Execute duckdb query with parameters.

read_csv_folder(→ None)

Read csv files in a folder into a duckdb connection.

convert_bids_table(→ None)

Convert annular_bids to bids.

define_bid_manager(→ str)

Select a consumer as bid manager.

insert_bids_into_assets(→ None)

Insert bids and constraints into asset tables.

insert_bids_into_flows(→ None)

Insert bids into flow tables.

insert_bids_into_profiles(→ None)

Insert bids into profiles tables.

add_bid_loops(→ None)

Add loops for the bids/UC trick for the demand bids.

insert_bid_profiles_into_rep_periods(→ None)

Create complete profiles for the bids.

build_model_with_bids(→ Tuple[str, int])

Build tulipa energy model with bids.

postprocess_tulipa_model(→ None)

Postprocess results from TulipaEnergyModel.

Module Contents

annular.market.tulipa.build_model.logger[source]
annular.market.tulipa.build_model.TABLES_TO_MODIFY = ['profiles_rep_periods', 'rep_periods_data', 'year_data', 'asset', 'asset_milestone',...[source]
annular.market.tulipa.build_model.validate_input_data(con: _duckdb.DuckDBPyConnection) None[source]

Validate input data for using TulipaEnergyModel as market model.

annular.market.tulipa.build_model.execute(con: _duckdb.DuckDBPyConnection, query: str, params: dict[str, Any]) None[source]

Execute duckdb query with parameters.

Filters a dictionary of parameters based on occurrence of the key in the query string.

annular.market.tulipa.build_model.read_csv_folder(con: _duckdb.DuckDBPyConnection, input_data_folder: pathlib.Path) None[source]

Read csv files in a folder into a duckdb connection.

annular.market.tulipa.build_model.convert_bids_table(con: duckdb.DuckDBPyConnection) None[source]

Convert annular_bids to bids.

annular.market.tulipa.build_model.define_bid_manager(con: duckdb.DuckDBPyConnection) str[source]

Select a consumer as bid manager.

Parameters:

con – connection to database containing data for TulipaEnergyModel.

Notes

We assume that all bids are attached to a single consumer, and that it doesn’t matter which one. In other words, it is always possible to “move” energy around independent of which consumer is the bid manager. This is particularly important in the case of supply bids. If the total bid is negative (i.e., a net supply), then we assume that the bid-manager has the possibility of supplying the excess energy to the rest of grid. This consumer acts like a “Bid Manager” For reproducibility, ORDER BY asset makes sure that for the same input data, the same asset is chosen as the bid manager.

annular.market.tulipa.build_model.insert_bids_into_assets(con: duckdb.DuckDBPyConnection, year: int, num_timesteps: int) None[source]

Insert bids and constraints into asset tables.

annular.market.tulipa.build_model.insert_bids_into_flows(con: duckdb.DuckDBPyConnection, year: int, bid_manager: str) None[source]

Insert bids into flow tables.

annular.market.tulipa.build_model.insert_bids_into_profiles(con: duckdb.DuckDBPyConnection, year: int) None[source]

Insert bids into profiles tables.

annular.market.tulipa.build_model.add_bid_loops(con: duckdb.DuckDBPyConnection, year: int) None[source]

Add loops for the bids/UC trick for the demand bids.

annular.market.tulipa.build_model.insert_bid_profiles_into_rep_periods(con: duckdb.DuckDBPyConnection, num_timesteps: int, year: int, timestep_start: int) None[source]

Create complete profiles for the bids.

Notes

We assume that the bids always have the format YYYY-MM-DD HH:mm:SS and we ignore everything except HH.

annular.market.tulipa.build_model.build_model_with_bids(config: annular.market.tulipa.config._TulipaConfig) Tuple[str, int][source]

Build tulipa energy model with bids.

Extend TulipaEnergyModel defined in config.input_data_folder by adding satellite bids.

Parameters:

config_TulipaConfig with configuration data.

annular.market.tulipa.build_model.postprocess_tulipa_model(db_path: pathlib.Path | str, bid_manager: str, timestep_start: int) None[source]

Postprocess results from TulipaEnergyModel.