Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,18 @@ repos:
# rev: pylint-2.6.0
# hooks:
# - id: pylint
- repo: https://github.com/Lucas-C/pre-commit-hooks
rev: v1.5.5
hooks:
- id: insert-license
files: \.py$
exclude: ^tests/
args:
- --license-filepath
- .license-header.txt
- --comment-style
- "#"
- --no-extra-eol
- repo: https://github.com/kynan/nbstripout
rev: 0.8.1
hooks:
Expand Down
24 changes: 10 additions & 14 deletions doc/conf.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
"""This file is part of DINGO, the DIstribution Network GeneratOr.
DINGO is a tool to generate synthetic medium and low voltage power
distribution grids based on open data.

It is developed in the project open_eGo: https://openegoproject.wordpress.com

DINGO lives at github: https://github.com/openego/dingo/
The documentation is available on RTD: https://edisgo.readthedocs.io/en/dev/"""

__copyright__ = "Reiner Lemoine Institut gGmbH"
__license__ = "GNU Affero General Public License Version 3 (AGPL-3.0)"
__url__ = "https://github.com/openego/eDisGo/blob/dev/LICENSE"
__author__ = "nesnoj, gplssm"

# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

# -*- coding: utf-8 -*-
#
Expand Down
11 changes: 11 additions & 0 deletions edisgo/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

from edisgo.edisgo import EDisGo # noqa: F401
23 changes: 17 additions & 6 deletions edisgo/edisgo.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

from __future__ import annotations

import copy
Expand Down Expand Up @@ -2646,8 +2657,8 @@ def plot_voltage_over_dist(
if getattr(v_a, "empty", True) or getattr(v_b, "empty", True):
raise RuntimeError(
"Voltage results (results.v_res) are empty. "
"Run analyze() with timesteps/snapshots so voltage results "
"are generated."
"Run analyze() with timesteps/snapshots so voltage "
"results are generated."
)
# Resolve LV grids (index-based resolution)
lv_grids_a = list(self.topology.mv_grid.lv_grids)
Expand Down Expand Up @@ -2816,8 +2827,8 @@ def _lv_source_bus(lv_grid):

def plot_voltage_over_dist_mv(self, mv_id, other, save_as=False, return_data=False):
"""
Plot MV voltage over distance to the HV/MV transformer, comparing two
EDisGo objects.
Plot MV voltage over distance to the HV/MV transformer,
comparing two EDisGo objects.

Parameters
----------
Expand All @@ -2839,8 +2850,8 @@ def plot_voltage_over_dist_mv(self, mv_id, other, save_as=False, return_data=Fal
if getattr(v_a, "empty", True) or getattr(v_b, "empty", True):
raise RuntimeError(
"Voltage results (results.v_res) are empty. "
"Run analyze() with timesteps/snapshots so voltage results "
"are generated."
"Run analyze() with timesteps/snapshots so voltage "
"results are generated."
)
mv_a = self.topology.mv_grid
mv_b = other.topology.mv_grid
Expand Down
10 changes: 10 additions & 0 deletions edisgo/flex_opt/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later
11 changes: 11 additions & 0 deletions edisgo/flex_opt/battery_storage_operation.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

import logging
import math

Expand Down
15 changes: 13 additions & 2 deletions edisgo/flex_opt/charging_strategies.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

from __future__ import annotations

import logging
Expand Down Expand Up @@ -224,8 +235,8 @@ def charging_strategy(
# "residual" charging
# only use charging processes from integrated charging parks
charging_processes_df = edisgo_obj.electromobility.charging_processes_df[
edisgo_obj.electromobility.charging_processes_df.charging_park_id.isin(
target_park_ids
edisgo_obj.electromobility.charging_processes_df.charging_park_id.isin(
target_park_ids
)
]

Expand Down
11 changes: 11 additions & 0 deletions edisgo/flex_opt/check_tech_constraints.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

import logging

import numpy as np
Expand Down
15 changes: 12 additions & 3 deletions edisgo/flex_opt/costs.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

import logging
import os

Expand Down Expand Up @@ -162,9 +173,7 @@ def _get_line_costs(lines_added):
]["quantity"].to_frame()
lines_added_unique = lines_added.index.unique()
lines_added = (
lines_added.groupby(level=0)
.sum()
.loc[lines_added_unique, ["quantity"]]
lines_added.groupby(level=0).sum().loc[lines_added_unique, ["quantity"]]
)
# use the minimum of quantity and num_parallel, as sometimes lines are added
# and in a next reinforcement step removed again, e.g. when feeder is split
Expand Down
12 changes: 12 additions & 0 deletions edisgo/flex_opt/exceptions.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later


class Error(Exception):
"""Base class for exceptions in this module."""

Expand Down
11 changes: 11 additions & 0 deletions edisgo/flex_opt/heat_pump_operation.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

import logging

import pandas as pd
Expand Down
11 changes: 11 additions & 0 deletions edisgo/flex_opt/q_control.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

import numpy as np
import pandas as pd

Expand Down
11 changes: 11 additions & 0 deletions edisgo/flex_opt/reinforce_grid.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

from __future__ import annotations

import datetime
Expand Down
17 changes: 14 additions & 3 deletions edisgo/flex_opt/reinforce_measures.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

from __future__ import annotations

import logging
Expand Down Expand Up @@ -506,9 +517,9 @@ def reinforce_lines_voltage_issues(edisgo_obj, grid, crit_nodes):
else:
raise ValueError("Bus not in line buses. Please check.")
# change line length and type
edisgo_obj.topology._lines_df.at[
crit_line_name, "length"
] = path_length_dict[node_2_3]
edisgo_obj.topology._lines_df.at[crit_line_name, "length"] = (
path_length_dict[node_2_3]
)
edisgo_obj.topology.change_line_type([crit_line_name], standard_line)
lines_changes[crit_line_name] = 1
# TODO: Include switch disconnector
Expand Down
10 changes: 10 additions & 0 deletions edisgo/io/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later
11 changes: 11 additions & 0 deletions edisgo/io/db.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

from __future__ import annotations

import importlib.util
Expand Down
17 changes: 14 additions & 3 deletions edisgo/io/ding0_import.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

import os

import pandas as pd
Expand Down Expand Up @@ -45,9 +56,9 @@ def sort_transformer_buses(transformers_df):
voltage_bus1 = edisgo_obj.topology.buses_df.loc[
transformers_df.bus1
].v_nom.values
transformers_df.loc[
voltage_bus1 > voltage_bus0, ["bus0", "bus1"]
] = transformers_df.loc[voltage_bus1 > voltage_bus0, ["bus1", "bus0"]].values
transformers_df.loc[voltage_bus1 > voltage_bus0, ["bus0", "bus1"]] = (
transformers_df.loc[voltage_bus1 > voltage_bus0, ["bus1", "bus0"]].values
)
return transformers_df

def sort_hvmv_transformer_buses(transformers_df):
Expand Down
11 changes: 11 additions & 0 deletions edisgo/io/dsm_import.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

from __future__ import annotations

import logging
Expand Down
21 changes: 16 additions & 5 deletions edisgo/io/electromobility_import.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# This file is part of eDisGo (Electrical Distribution Grid Optimization),
# a Python package for analyzing flexibility options in distribution grids.
#
# Copyright (c) Reiner Lemoine Institut gGmbH
# Contributors are listed in the version control history:
# https://github.com/openego/eDisGo/
#
# Documentation: https://edisgo.readthedocs.io/
#
# SPDX-License-Identifier: AGPL-3.0-or-later

from __future__ import annotations

import json
Expand Down Expand Up @@ -1079,11 +1090,11 @@ def distribute_public_charging_demand(edisgo_obj, **kwargs):
idx, "charging_point_id"
] = charging_point_id

available_charging_points_df.loc[
charging_point_id
] = edisgo_obj.electromobility.charging_processes_df.loc[
idx, available_charging_points_df.columns
].tolist()
available_charging_points_df.loc[charging_point_id] = (
edisgo_obj.electromobility.charging_processes_df.loc[
idx, available_charging_points_df.columns
].tolist()
)

designated_charging_point_capacity_df.at[
charging_park_id, "designated_charging_point_capacity"
Expand Down
Loading
Loading