Skip to content

Commit cf0d970

Browse files
author
Malte Jahn
committed
Change variable names according to the config
1 parent edfde7e commit cf0d970

File tree

3 files changed

+154
-6
lines changed

3 files changed

+154
-6
lines changed

ding0/tools/database.py

+5-6
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
import logging
44
from contextlib import contextmanager
55

6+
import ding0
7+
from ding0.tools import config as cfg_ding0
68
from egoio.tools import db
79
from sqlalchemy import create_engine
810
from sqlalchemy.orm import sessionmaker
911

10-
import ding0
11-
from ding0.tools import config as cfg_ding0
12-
1312
logger = logging.getLogger()
1413

1514
package_path = ding0.__path__[0]
@@ -39,9 +38,9 @@ def engine(overwrite_database=None):
3938
conn = db.connection(readonly=True)
4039
elif database == "local":
4140
conn = create_engine(
42-
f"postgresql+psycopg2://{cfg_ding0.get('local', 'database_user')}:"
43-
f"{cfg_ding0.get('local', 'database_password')}@{cfg_ding0.get('local', 'database_host')}:"
44-
f"{int(cfg_ding0.get('local', 'database_port'))}/{cfg_ding0.get('local', 'database_name')}",
41+
f"postgresql+psycopg2://{cfg_ding0.get('database_credentials', 'user')}:"
42+
f"{cfg_ding0.get('database_credentials', 'password')}@{cfg_ding0.get('database_credentials', 'host')}:"
43+
f"{int(cfg_ding0.get('database_credentials', 'port'))}/{cfg_ding0.get('database_credentials', 'name')}",
4544
echo=False,
4645
)
4746
return conn
File renamed without changes.
+149
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
import pytest
2+
import subprocess
3+
4+
from ding0.tools import database
5+
from ding0.tools import egon_data_integration as db_io
6+
from ding0.core import NetworkDing0
7+
import pandas as pd
8+
9+
class TestEgonDataIntegration:
10+
@pytest.fixture
11+
def session(self):
12+
with database.session_scope() as session:
13+
self.nd = NetworkDing0(name="network", session=session)
14+
print("Open session")
15+
yield session
16+
print("Close session")
17+
18+
@pytest.fixture
19+
def grid_id(self, session):
20+
import saio
21+
import geopandas as gpd
22+
23+
engine = session.bind
24+
25+
saio.register_schema("grid", engine)
26+
saio.register_schema("boundaries", engine)
27+
28+
from saio.grid import egon_hvmv_substation as MVGridDistricts
29+
from saio.boundaries import vg250_lan
30+
31+
table = MVGridDistricts
32+
cells_query = session.query(
33+
table.bus_id.label("subst_id"), table.point.label("geom")
34+
)
35+
df = gpd.read_postgis(
36+
sql=cells_query.statement, con=cells_query.session.bind, index_col=None
37+
)
38+
39+
cells_query = session.query(
40+
vg250_lan.gen.label("name"), vg250_lan.geometry.label("geom")
41+
).filter(vg250_lan.gf == 4)
42+
43+
boundaries_gdf = gpd.read_postgis(
44+
sql=cells_query.statement,
45+
con=cells_query.session.bind,
46+
index_col="name",
47+
)
48+
49+
df = df[
50+
df.geometry.intersects(boundaries_gdf.loc["Schleswig-Holstein", "geom"])
51+
]["subst_id"]
52+
53+
print("Got the DATA!")
54+
return [int(df[1])]
55+
56+
@pytest.fixture
57+
def grid_id_2(self, session):
58+
59+
sql_statement = """
60+
SELECT *
61+
FROM
62+
(
63+
SELECT
64+
generators.bus_id,
65+
count(*) AS count,
66+
count(*) FILTER (WHERE generators.type = 'wind') AS wind,
67+
count(*) FILTER (WHERE generators.type = 'pv_open_place') AS pv_open_place,
68+
count(*) FILTER (WHERE generators.type = 'pv_rooftop') AS pv_rooftop,
69+
count(*) FILTER (WHERE generators.type = 'biomass') AS biomass,
70+
count(*) FILTER (WHERE generators.type = 'hydro') AS hydro
71+
FROM
72+
(
73+
(
74+
SELECT bus_id, 'wind' AS type
75+
FROM supply.egon_power_plants_wind
76+
)
77+
UNION ALL
78+
(
79+
SELECT bus_id, 'pv_open_place' AS type
80+
FROM supply.egon_power_plants_pv
81+
)
82+
UNION ALL
83+
(
84+
SELECT bus_id, 'pv_rooftop' AS type
85+
FROM supply.egon_power_plants_pv_roof_building
86+
)
87+
UNION ALL
88+
(
89+
SELECT bus_id, 'biomass' AS type
90+
FROM supply.egon_power_plants_biomass
91+
)
92+
UNION ALL
93+
(
94+
SELECT bus_id, 'hydro' AS type
95+
FROM supply.egon_power_plants_hydro
96+
)
97+
)
98+
AS generators
99+
GROUP BY generators.bus_id
100+
ORDER BY count DESC
101+
)
102+
AS
103+
test
104+
WHERE test.wind > 1 AND test.pv_open_place > 1 AND test.pv_rooftop > 1 AND test.biomass > 1 AND test.hydro > 1
105+
"""
106+
df = pd.read_sql_query(
107+
sql=sql_statement,
108+
con=session.bind,
109+
index_col=None,
110+
)
111+
112+
return [int(df.bus_id[0])]
113+
114+
@pytest.fixture
115+
def lv_load_area(self, session, grid_id):
116+
print(grid_id)
117+
df = db_io.get_lv_load_areas(self.nd.orm, session, grid_id[0])
118+
return df.loc[3479] # df.loc[3479,"geo_area"]
119+
120+
def test_import_mvgd(self, session, grid_id):
121+
print(grid_id)
122+
df = db_io.get_mv_data(self.nd.orm, session, grid_id)
123+
124+
assert True
125+
126+
def test_import_load_area(self, session, grid_id):
127+
df = db_io.get_lv_load_areas(self.nd.orm, session, grid_id[0])
128+
129+
assert True
130+
131+
def test_get_egon_ways(self, session, lv_load_area):
132+
df = db_io.get_egon_ways(self.nd.orm, session, lv_load_area.geo_area)
133+
134+
assert True
135+
136+
def test_get_egon_buildings(self, session, grid_id, lv_load_area):
137+
df = db_io.get_egon_buildings(self.nd.orm, session, grid_id[0], lv_load_area)
138+
139+
assert True
140+
141+
def test_get_res_generators(self, session, grid_id_2):
142+
df = db_io.get_res_generators(self.nd.orm, session, grid_id_2[0])
143+
144+
assert True
145+
146+
def test_get_conv_generators(self, session, grid_id):
147+
df = db_io.get_conv_generators(self.nd.orm, session, grid_id[0])
148+
149+
assert True

0 commit comments

Comments
 (0)