def test_pvwatts_scalars():
    expected = 85.58556604752516
    out = inverter.pvwatts(90, 100, 0.95)
    assert_allclose(out, expected)
    # GH 675
    expected = 0.
    out = inverter.pvwatts(0., 100)
    assert_allclose(out, expected)
def test_pvwatts_arrays():
    pdc = np.array([[np.nan], [0], [50], [100]])
    pdc0 = 100
    expected = np.array([[np.nan],
                         [0.],
                         [47.60843624],
                         [95.]])
    out = inverter.pvwatts(pdc, pdc0, 0.95)
    assert_allclose(out, expected, equal_nan=True)
示例#3
0
def power_pvwatts(request, clearsky_july, solarposition_july):
    pdc0 = 100
    pdc0_inverter = 110
    tilt = 30
    azimuth = 180
    pdc0_marker = request.node.get_closest_marker("pdc0_inverter")
    if pdc0_marker is not None:
        pdc0_inverter = pdc0_marker.args[0]
    poa = irradiance.get_total_irradiance(
        tilt, azimuth,
        solarposition_july['zenith'], solarposition_july['azimuth'],
        **clearsky_july
    )
    cell_temp = temperature.sapm_cell(
        poa['poa_global'], 25, 0,
        **TEMPERATURE_MODEL_PARAMETERS['sapm']['open_rack_glass_glass']
    )
    dc = pvsystem.pvwatts_dc(poa['poa_global'], cell_temp, pdc0, -0.004)
    return inverter.pvwatts(dc, pdc0_inverter)
def test_pvwatts_series():
    pdc = pd.Series([np.nan, 0, 50, 100])
    pdc0 = 100
    expected = pd.Series(np.array([np.nan, 0., 47.608436, 95.]))
    out = inverter.pvwatts(pdc, pdc0, 0.95)
    assert_series_equal(expected, out)
def test_pvwatts_possible_negative():
    # pvwatts could return a negative value for (pdc / pdc0) < 0.006
    # unless it is clipped. see GH 541 for more
    expected = 0
    out = inverter.pvwatts(0.001, 1)
    assert_allclose(out, expected)