From 31b20428b25c341a45e08531a7ae79ba89551684 Mon Sep 17 00:00:00 2001 From: Becker Date: Sun, 5 Jun 2022 19:22:14 +0200 Subject: [PATCH 1/3] Attempt to fix the deprecation warning causes of the new pvlib version. - dni in the pvlib test has been calculated so that the old test target is reached. - I am not quite sure if the chosen dni is not too high. --- src/feedinlib/models/pvlib.py | 28 +++++++++++++++------------- tests/test_models.py | 3 +++ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/feedinlib/models/pvlib.py b/src/feedinlib/models/pvlib.py index 667e579..caf15ce 100644 --- a/src/feedinlib/models/pvlib.py +++ b/src/feedinlib/models/pvlib.py @@ -112,6 +112,8 @@ def power_plant_requires(self): "module_name", ["albedo", "surface_type"], "inverter_name", + "module_type", + "racking_model" ] # ToDo @Günni: is this necessary? if super().power_plant_requires is not None: @@ -146,9 +148,9 @@ def pv_system_area(self): """ if self.power_plant: return ( - self.power_plant.module_parameters.Area - * self.power_plant.strings_per_inverter - * self.power_plant.modules_per_string + self.power_plant.arrays[0].module_parameters.Area + * self.power_plant.arrays[0].strings + * self.power_plant.arrays[0].modules_per_string ) else: return None @@ -170,18 +172,18 @@ def pv_system_peak_power(self): if self.power_plant: if self.mode == "ac": return min( - self.power_plant.module_parameters.Impo - * self.power_plant.module_parameters.Vmpo - * self.power_plant.strings_per_inverter - * self.power_plant.modules_per_string, + self.power_plant.arrays[0].module_parameters.Impo + * self.power_plant.arrays[0].module_parameters.Vmpo + * self.power_plant.arrays[0].strings + * self.power_plant.arrays[0].modules_per_string, self.power_plant.inverter_parameters.Paco, ) elif self.mode == "dc": return ( - self.power_plant.module_parameters.Impo - * self.power_plant.module_parameters.Vmpo - * self.power_plant.strings_per_inverter - * self.power_plant.modules_per_string + self.power_plant.arrays[0].module_parameters.Impo + * self.power_plant.arrays[0].module_parameters.Vmpo + * self.power_plant.arrays[0].strings + * self.power_plant.arrays[0].modules_per_string ) else: raise ValueError( @@ -315,9 +317,9 @@ def feedin(self, weather, power_plant_parameters, **kwargs): mc.run_model(weather=weather) if self.mode == "ac": - return mc.ac + return mc.results.ac elif self.mode == "dc": - return mc.dc.p_mp + return mc.results.dc.p_mp else: raise ValueError( "{} is not a valid `mode`. `mode` must " diff --git a/tests/test_models.py b/tests/test_models.py index bc45ff8..0cd6853 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -30,6 +30,7 @@ def pvlib_weather(self): "temp_air": [10.0], "dhi": [150.0], "ghi": [300], + "dni": [610.11], }, index=pd.date_range("1/1/1970 12:00", periods=1, tz="UTC"), ) @@ -61,6 +62,8 @@ def pvlib_pv_system(self): "azimuth": 180, "tilt": 30, "albedo": 0.2, + "module_type": "glass_glass", + "racking_model": "open_rack" } @pytest.fixture From f31d3621ac4d0bd6aded1d9b40525fe629db54f2 Mon Sep 17 00:00:00 2001 From: Becker Date: Mon, 6 Jun 2022 09:52:03 +0200 Subject: [PATCH 2/3] Remove deprecated shapely method call. Point.to_wkt() has been removed from shapely, and therefore must be replaced with Point.wkt. --- src/feedinlib/open_FRED.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/feedinlib/open_FRED.py b/src/feedinlib/open_FRED.py index 3073615..dd36853 100644 --- a/src/feedinlib/open_FRED.py +++ b/src/feedinlib/open_FRED.py @@ -301,7 +301,7 @@ def from_df(klass, df): def location(self, point: Point): """ Get the measurement location closest to the given `point`. """ - point = WKTE(point.to_wkt(), srid=4326) + point = WKTE(point.wkt, srid=4326) return ( self.session.query(self.db["Location"]) .order_by(self.db["Location"].point.distance_centroid(point)) @@ -311,7 +311,7 @@ def location(self, point: Point): def within(self, region=None): """ Get all measurement locations within the given `region`. """ - region = WKTE(region.to_wkt(), srid=4326) + region = WKTE(region.wkt, srid=4326) return ( self.session.query(self.db["Location"]) .filter(self.db["Location"].point.ST_Within(region)) From 8c1aa4c62e669efa536aae9574e8211a9f6b2183 Mon Sep 17 00:00:00 2001 From: jtock <102952410+jtock@users.noreply.github.com> Date: Mon, 1 Dec 2025 17:10:16 +0100 Subject: [PATCH 3/3] requirements(setup.py): add open_fred_cli --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 1f5c532..964b69b 100755 --- a/setup.py +++ b/setup.py @@ -87,6 +87,7 @@ def read(*names, **kwargs): "oedialect >= 0.0.6.dev0", "pvlib >= 0.7.0", "tables", + "open_FRED-cli", "windpowerlib > 0.2.0", "pandas >= 1.0", "xarray >= 0.12.0",