Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expand TCT functionality to work with Sector Studies #522

Open
trevorb1 opened this issue Feb 3, 2025 · 0 comments
Open

Expand TCT functionality to work with Sector Studies #522

trevorb1 opened this issue Feb 3, 2025 · 0 comments
Labels
enhancement New feature or request Sector Sector Coupling Issue

Comments

@trevorb1
Copy link
Collaborator

trevorb1 commented Feb 3, 2025

Feature Request

The TCT constraint hard codes in to filter over Generators and StroageUnits. This is good for electricity studies, but not good for sector studies which rely heavily on Links/Stores. For example, all natural gas generators are converted to links, making TCT not possible for this.

It would be good to extend TCT functionality to work with sector studies (as this is quite a valuable policy dimension)

Suggested Solution

I see three options:

Option 1

Manually add in filters for the missing components. ie. add the following filters to the add_technology_capacity_target_constraints(...) function for Links, Stores, ect.. :

filtered = filter_components(
    n=n,
    component_type="xxx",
    planning_horizon=planning_horizon,
    carrier_list=carrier_list,
    region_buses=region_buses.index,
    extendable=True,
)

Advantage

  • Easiest to add
  • No need to change existing TCT config

Disadvantage

  • Messiest to read
  • May run into issues if multiple components use same carrier

Option 2

Iterate over all components. I can't quite remember the syntax, but something like this

for c in n.iterate_components():
    filtered = filter_components(
        n=n,
        component_type=c.name,
        planning_horizon=planning_horizon,
        carrier_list=carrier_list,
        region_buses=region_buses.index,
        extendable=True,
    )
    ...

Advantage

  • Easy to add and quite clear
  • No need to change existing TCT config

Disadvantage

  • May run into issues if multiple components use same carrier
  • Can lead to double definitions, as users can now specify (for example) line expansion limits here

Option 3

Update TCT configuration to specify component. For example, something like,

name,planning_horizon,region,carrier,component,min,max
solar_limit,all,CA,solar,Generator,,32420
wind_limit,all,CA,"onwind, offwind_floating",Generator,,9620
reeds_storage_mandate,2030,CA,StorageUnit,4hr_battery_storage,2325,

And directly read in the component to filter in add_technology_capacity_target_constraints()

Advantage

  • Most explicit

Disadvantage

  • Need to change TCT config
  • Might not be clear for new users
  • Need to check for proper spelling ect.

Additional Info

@ktehranchi, do you have any thoughts. My preference is option 3

@trevorb1 trevorb1 added enhancement New feature or request Sector Sector Coupling Issue labels Feb 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Sector Sector Coupling Issue
Projects
None yet
Development

No branches or pull requests

1 participant