Skip to content

Implementing transmission nodes through .csv files requires workaround #859

@anedelcu2002

Description

@anedelcu2002

What happened?

I have been working on modeling the heating system for a neighborhood with Calliope. Because of the resolution and scale of the model (up to tens of thousands of nodes), supply and demand techs are defined in the .yaml config file, while nodes, links, and transmission techs are defined procedurally in separate .csv files. I tried to mimic the implementation for the national example in the library files, but putting the transmission nodes in the .csv without any technology or parameter value breaks the model reading operation. The workaround I settled on was applying a heat demand tech to each transmission node and giving it a value of zero. Connecting these nodes works normally.

Which operating systems have you used?

  • macOS
  • Windows
  • Linux

Version

v0.7.0

Relevant log output

ERROR: Analysis failed with exception:
ValueError: not enough values to unpack (expected 2, got 1)

Error summary saved to: outputs\scenario_summary.json
Traceback (most recent call last):
  File "C:\Users\alexn\Documents\GitHub\SC-G5\delft_calliope\run_analysis.py", line 384, in <module>
    model, results = main(CONFIG)
                     ^^^^^^^^^^^^
  File "C:\Users\alexn\Documents\GitHub\SC-G5\delft_calliope\run_analysis.py", line 272, in main
    model = create_scenario_model(
            ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\alexn\Documents\GitHub\SC-G5\delft_calliope\functions\model\create_scenario_model.py", line 256, in create_scenario_model
    model = calliope.read_yaml(temp_yaml_path)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\alexn\.conda\envs\calliope\Lib\site-packages\calliope\model.py", line 79, in read_yaml
    return read_dict(
           ^^^^^^^^^^
  File "C:\Users\alexn\.conda\envs\calliope\Lib\site-packages\calliope\model.py", line 131, in read_dict
    model_data_factory.clean()
  File "C:\Users\alexn\.conda\envs\calliope\Lib\site-packages\calliope\preprocess\model_data.py", line 127, in clean
    self.add_link_distances()
  File "C:\Users\alexn\.conda\envs\calliope\Lib\site-packages\calliope\preprocess\model_data.py", line 338, in add_link_distances
    node1, node2 = tech_def.where(tech_def).dropna("nodes").nodes.values
    ^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions