PyPSA / pypsa-usa

PyPSA-USA: An Open-Source Energy System Optimization Model for the United States
https://pypsa-usa.readthedocs.io
MIT License
35 stars 15 forks source link

Error in `simplify_network` #188

Closed trevorb1 closed 4 months ago

trevorb1 commented 4 months ago

Checklist

The Issue

When running with eia demand data, an error is thrown in simplify network.

Steps To Reproduce

  1. clone the repo
  2. comment out the planning horizon value
  3. run the workflow

Expected Behavior

No response

Error Message

[Sat Feb 24 16:31:17 2024]
rule simplify_network:
    input: data/breakthrough_network/base_grid/western/bus2sub.csv, data/breakthrough_network/base_grid/western/sub.csv, resources/western/elec_base_network_l_pp.nc
    output: resources/western/elec_s.nc
    log: logs/simplify_network/western/elec_s.log
    jobid: 7
    reason: Missing output files: resources/western/elec_s.nc; Input files updated by another job: data/breakthrough_network/base_grid/western/bus2sub.csv, resources/western/elec_base_network_l_pp.nc, data/breakthrough_network/base_grid/western/sub.csv
    wildcards: interconnect=western
    threads: 2
    resources: tmpdir=/tmp, mem_mb=10000, mem_mib=9537

INFO:pypsa.io:Imported network elec_base_network_l_pp.nc has buses, carriers, generators, lines, line_types, links, loads, storage_units, transformers
INFO:__main__:Mapping all network lines onto a single layer
INFO:__main__:Assigning line lengths using haversine function...
INFO:__main__:Aggregating buses to substation level...
Traceback (most recent call last):
  File "/home/trevor/repos/pypsa-usa/workflow/.snakemake/scripts/tmp9zo8mvsl.simplify_network.py", line 199, in <module>
    n = aggregate_to_substations(
        ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/repos/pypsa-usa/workflow/.snakemake/scripts/tmp9zo8mvsl.simplify_network.py", line 86, in aggregate_to_substations
    clustering = get_clustering_from_busmap(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pypsa/clustering/spatial.py", line 534, in get_clustering_from_busmap
    buses = aggregatebuses(n, busmap, custom_strategies=bus_strategies)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pypsa/clustering/spatial.py", line 341, in aggregatebuses
    aggregated = n.buses.groupby(busmap).agg(strategies)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pandas/core/groupby/generic.py", line 1269, in aggregate
    result = op.agg()
             ^^^^^^^^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pandas/core/apply.py", line 163, in agg
    return self.agg_dict_like()
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pandas/core/apply.py", line 420, in agg_dict_like
    results = {
              ^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pandas/core/apply.py", line 421, in <dictcomp>
    key: obj._gotitem(key, ndim=1).agg(how) for key, how in arg.items()
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pandas/core/groupby/generic.py", line 269, in aggregate
    return self._python_agg_general(func, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pandas/core/groupby/generic.py", line 288, in _python_agg_general
    result = self.grouper.agg_series(obj, f)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pandas/core/groupby/ops.py", line 994, in agg_series
    result = self._aggregate_series_pure_python(obj, func)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pandas/core/groupby/ops.py", line 1015, in _aggregate_series_pure_python
    res = func(group)
          ^^^^^^^^^^^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pandas/core/groupby/generic.py", line 285, in <lambda>
    f = lambda x: func(x, *args, **kwargs)
                  ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/site-packages/pypsa/clustering/spatial.py", line 136, in consense
    assert (x == v).all() or x.isnull().all(), (
AssertionError: In Bus cluster LAF_states, the values of attribute LAF_states do not agree:
Bus
2010004    0.000000
2010005    0.000651
Name: LAF_states, dtype: float64
[Sat Feb 24 16:31:22 2024]
Error in rule simplify_network:
    jobid: 7
    input: data/breakthrough_network/base_grid/western/bus2sub.csv, data/breakthrough_network/base_grid/western/sub.csv, resources/western/elec_base_network_l_pp.nc
    output: resources/western/elec_s.nc
    log: logs/simplify_network/western/elec_s.log (check log file(s) for error details)

RuleException:
CalledProcessError in file /home/trevor/repos/pypsa-usa/workflow/rules/build_electricity.smk, line 300:
Command 'set -euo pipefail;  /home/trevor/miniconda3/envs/pypsa-usa/bin/python3.11 /home/trevor/repos/pypsa-usa/workflow/.snakemake/scripts/tmp9zo8mvsl.simplify_network.py' returned non-zero exit status 1.
  File "/home/trevor/repos/pypsa-usa/workflow/rules/build_electricity.smk", line 300, in __rule_simplify_network
  File "/home/trevor/miniconda3/envs/pypsa-usa/lib/python3.11/concurrent/futures/thread.py", line 58, in run
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message

Anything else?

No response