pypsa-usa icon indicating copy to clipboard operation
pypsa-usa copied to clipboard

`REM` does not work when `model_topology.topological_boundaries` is set to `state`

Open trevorb1 opened this issue 4 months ago • 0 comments

Version Checks (indicate both or one)

The Issue

If I use the REM opt and set the topological_boundaries to be state I get the error message below

Error in rule solve_network:
    jobid: 2
    input: resources/imports_test_state/western/elec_s50_c12_ec_lv1.0_REM-3h_E.nc, repo_data/ReEDS_Constraints/transmission/transmission_capacity_init_AC_ba_NARIS2024.csv, config/policy_constraints/reeds/prm_annual.csv, config/policy_constraints/reeds/rps_fraction.csv, config/policy_constraints/reeds/ces_fraction.csv
    output: results/imports_test_state/western/networks/elec_s50_c12_ec_lv1.0_REM-3h_E.nc, results/imports_test_state/western/configs/config.elec_s50_c12_lv1.0_REM-3h_E.yaml
    log: logs/imports_test_state/solve_network/western/elec_s50_c12_ec_lv1.0_REM-3h_E_solver.log, logs/imports_test_state/solve_network/western/elec_s50_c12_ec_lv1.0_REM-3h_E_python.log (check log file(s) for error details)
    conda-env: /home/trevor/master/pypsa-usa/workflow/.snakemake/conda/f2078906f69fffefbbcfd811468b7163_

Steps To Reproduce

scenario:
  interconnect: [western] #"usa|texas|western|eastern"
  clusters: [12]
  simpl: [50]
  opts: [REM-3h]
  ll: [v1.0]
  sector: "" # G
  planning_horizons: [2030]    #(2018-2023, 2030, 2040, 2050)
foresight:  'perfect' # myopic, perfect

model_topology:
  transmission_network: 'reeds' # [reeds, tamu]
  topological_boundaries: 'state' # [county, reeds_zone, state]
  interface_transmission_limits: false
  include: # mixed zone types not supported
    # reeds_zone: []
    # reeds_state: ["CA", "OR"]
    # reeds_ba: []
  aggregate: # eligible keys: [reeds_zone, trans_reg]
    # trans_grp: []
    # reeds_zone: []
  # trim: 
  #   zone: ['CA']

Error Message

Traceback (most recent call last):
  File "/home/trevor/master/pypsa-usa/workflow/.snakemake/scripts/tmpdsi_vcjg.solve_network.py", line 408, in <module>
    n = solve_network(
        ^^^^^^^^^^^^^^
  File "/home/trevor/master/pypsa-usa/workflow/.snakemake/scripts/tmpdsi_vcjg.solve_network.py", line 353, in solve_network
    run_optimize(n, rolling_horizon, skip_iterations, cf_solving, **kwargs)
  File "/home/trevor/master/pypsa-usa/workflow/.snakemake/scripts/tmpdsi_vcjg.solve_network.py", line 236, in run_optimize
    status, condition = n.optimize(**kwargs)
                        ^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniforge3/envs/pypsa-usa/lib/python3.11/site-packages/pypsa/optimization/optimize.py", line 615, in __call__
    return optimize(self._parent, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniforge3/envs/pypsa-usa/lib/python3.11/site-packages/pypsa/optimization/optimize.py", line 587, in optimize
    extra_functionality(n, sns)
  File "/home/trevor/master/pypsa-usa/workflow/.snakemake/scripts/tmpdsi_vcjg.solve_network.py", line 170, in extra_functionality
    constraint_registry[opt]()
  File "/home/trevor/master/pypsa-usa/workflow/.snakemake/scripts/tmpdsi_vcjg.solve_network.py", line 155, in <lambda>
    "REM": lambda: add_regional_co2limit(n, config) if n.generators.p_nom_extendable.any() else None,
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/master/pypsa-usa/workflow/rules/../scripts/opts/policy.py", line 379, in add_regional_co2limit
    region_buses = get_region_buses(n, region_list)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/master/pypsa-usa/workflow/rules/../scripts/opts/_helpers.py", line 15, in get_region_buses
    | n.buses.reeds_zone.isin(region_list)
      ^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniforge3/envs/pypsa-usa/lib/python3.11/site-packages/pandas/core/generic.py", line 6299, in __getattr__
    return object.__getattribute__(self, name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'DataFrame' object has no attribute 'reeds_zone'. Did you mean: 'reeds_state'?

Anything else?

No response

trevorb1 avatar Aug 20 '25 19:08 trevorb1