diff --git a/docs/sphinx/source/whatsnew/v0.16.2.rst b/docs/sphinx/source/whatsnew/v0.16.2.rst index fff7ba5d46..2c243d0921 100644 --- a/docs/sphinx/source/whatsnew/v0.16.2.rst +++ b/docs/sphinx/source/whatsnew/v0.16.2.rst @@ -14,6 +14,9 @@ Deprecations Bug fixes ~~~~~~~~~ +* Correct the Series name in ``ModelChain.results.dc_ohmic_losses`` from + ``i_mp`` to ``p_dc_ohmic_loss`` when using ``dc_ohms_from_percent``. + (:issue:`1959`, :pull:`2912`) * :py:func:`pvlib.tracking.calc_surface_orientation` returns scalar when input is scalar (:issue:`2881`, :pull:`2882`) @@ -62,6 +65,7 @@ Contributors * Chen Yi (:ghuser:`chenyi6758-source`) * Rajiv Daxini (:ghuser:`rdaxini`) * jason-writer (:ghuser:`jason-writer`) +* :ghuser:`xiajiahang` diff --git a/pvlib/modelchain.py b/pvlib/modelchain.py index 32af129fd7..d2112ac25a 100644 --- a/pvlib/modelchain.py +++ b/pvlib/modelchain.py @@ -1008,7 +1008,8 @@ def dc_ohms_from_percent(self): if isinstance(self.results.dc, tuple): Rw = self.system.dc_ohms_from_percent(unwrap=False) self.results.dc_ohmic_losses = tuple( - pvsystem.dc_ohmic_losses(Rw, df['i_mp']) + pvsystem.dc_ohmic_losses(Rw, df['i_mp']).rename( + 'p_dc_ohmic_loss') for Rw, df in zip(Rw, self.results.dc) ) for df, loss in zip(self.results.dc, self.results.dc_ohmic_losses): @@ -1017,7 +1018,7 @@ def dc_ohms_from_percent(self): Rw = self.system.dc_ohms_from_percent() self.results.dc_ohmic_losses = pvsystem.dc_ohmic_losses( Rw, self.results.dc['i_mp'] - ) + ).rename('p_dc_ohmic_loss') self.results.dc['p_mp'] = (self.results.dc['p_mp'] - self.results.dc_ohmic_losses) return self diff --git a/tests/test_modelchain.py b/tests/test_modelchain.py index e15e155dbb..15d580aa6c 100644 --- a/tests/test_modelchain.py +++ b/tests/test_modelchain.py @@ -1623,6 +1623,7 @@ def test_dc_ohmic_model_ohms_from_percent(cec_dc_snl_ac_system, assert m.call_count == 1 assert isinstance(mc.results.dc_ohmic_losses, pd.Series) + assert mc.results.dc_ohmic_losses.name == 'p_dc_ohmic_loss' system = cec_dc_snl_ac_arrays @@ -1639,6 +1640,8 @@ def test_dc_ohmic_model_ohms_from_percent(cec_dc_snl_ac_system, assert len(mc.results.dc_ohmic_losses) == len(mc.system.arrays) assert isinstance(mc.results.dc_ohmic_losses, tuple) + for loss in mc.results.dc_ohmic_losses: + assert loss.name == 'p_dc_ohmic_loss' @pytest.mark.parametrize("input_type", [tuple, list]) @@ -1660,6 +1663,8 @@ def test_dc_ohmic_model_ohms_from_percent_single_array_list_input( mc.run_model_from_effective_irradiance(input_type((data,))) assert isinstance(mc.results.dc_ohmic_losses, tuple) + for loss in mc.results.dc_ohmic_losses: + assert loss.name == 'p_dc_ohmic_loss' assert len(mc.results.dc_ohmic_losses) == 1