Skip to content
Merged
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
3 changes: 3 additions & 0 deletions docs/sphinx/source/whatsnew/v0.6.2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Enhancements

Bug fixes
~~~~~~~~~
* Compatibility with pandas 0.24 deprecations. (:issue:`659`)


Testing
Expand All @@ -28,3 +29,5 @@ Testing

Contributors
~~~~~~~~~~~~
* cwhanse
* wholmgren
2 changes: 1 addition & 1 deletion pvlib/clearsky.py
Original file line number Diff line number Diff line change
Expand Up @@ -670,7 +670,7 @@ def detect_clearsky(measured, clearsky, times, window_length,
"""

# calculate deltas in units of minutes (matches input window_length units)
deltas = np.diff(times) / np.timedelta64(1, '60s')
deltas = np.diff(times.values) / np.timedelta64(1, '60s')

# determine the unique deltas and if we can proceed
unique_deltas = np.unique(deltas)
Expand Down
2 changes: 1 addition & 1 deletion pvlib/test/test_atmosphere.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def test_airmass(model, expected, zeniths):
assert_allclose(out, expected, equal_nan=True, atol=0.001)
# test series in/out. index does not matter
# hits the isinstance() block in get_relative_airmass
times = pd.DatetimeIndex(start='20180101', periods=len(zeniths), freq='1s')
times = pd.date_range(start='20180101', periods=len(zeniths), freq='1s')
zeniths = pd.Series(zeniths, index=times)
expected = pd.Series(expected, index=times)
out = atmosphere.get_relative_airmass(zeniths, model)
Expand Down
4 changes: 2 additions & 2 deletions pvlib/test/test_clearsky.py
Original file line number Diff line number Diff line change
Expand Up @@ -619,8 +619,8 @@ def test_detect_clearsky_irregular_times(detect_clearsky_data):

def test_bird():
"""Test Bird/Hulstrom Clearsky Model"""
times = pd.DatetimeIndex(start='1/1/2015 0:00', end='12/31/2015 23:00',
freq='H')
times = pd.date_range(start='1/1/2015 0:00', end='12/31/2015 23:00',
freq='H')
tz = -7 # test timezone
gmt_tz = pytz.timezone('Etc/GMT%+d' % -(tz))
times = times.tz_localize(gmt_tz) # set timezone
Expand Down
14 changes: 7 additions & 7 deletions pvlib/test/test_irradiance.py
Original file line number Diff line number Diff line change
Expand Up @@ -389,8 +389,8 @@ def test_disc_overirradiance():
columns = ['dni', 'kt', 'airmass']
ghi = np.array([3000])
solar_zenith = np.full_like(ghi, 0)
times = pd.DatetimeIndex(start='2016-07-19 12:00:00', freq='1s',
periods=len(ghi), tz='America/Phoenix')
times = pd.date_range(start='2016-07-19 12:00:00', freq='1s',
periods=len(ghi), tz='America/Phoenix')
out = irradiance.disc(ghi=ghi, solar_zenith=solar_zenith,
datetime_or_doy=times)
expected = pd.DataFrame(np.array(
Expand Down Expand Up @@ -462,7 +462,7 @@ def test_disc_min_cos_zenith_max_zenith():


def test_dirint_value():
times = pd.DatetimeIndex(['2014-06-24T12-0700','2014-06-24T18-0700'])
times = pd.DatetimeIndex(['2014-06-24T12-0700', '2014-06-24T18-0700'])
ghi = pd.Series([1038.62, 254.53], index=times)
zenith = pd.Series([10.567, 72.469], index=times)
pressure = 93193.
Expand All @@ -472,7 +472,7 @@ def test_dirint_value():


def test_dirint_nans():
times = pd.DatetimeIndex(start='2014-06-24T12-0700', periods=5, freq='6H')
times = pd.date_range(start='2014-06-24T12-0700', periods=5, freq='6H')
ghi = pd.Series([np.nan, 1038.62, 1038.62, 1038.62, 1038.62], index=times)
zenith = pd.Series([10.567, np.nan, 10.567, 10.567, 10.567], index=times)
pressure = pd.Series([93193., 93193., np.nan, 93193., 93193.], index=times)
Expand Down Expand Up @@ -797,7 +797,7 @@ def test_clearsky_index():
expected = 0.01
assert_allclose(out, expected, atol=0.001)
# series
times = pd.DatetimeIndex(start='20180601', periods=2, freq='12H')
times = pd.date_range(start='20180601', periods=2, freq='12H')
ghi_measured = pd.Series([100, 500], index=times)
ghi_modeled = pd.Series([500, 1000], index=times)
out = irradiance.clearsky_index(ghi_measured, ghi_modeled)
Expand Down Expand Up @@ -853,7 +853,7 @@ def test_clearness_index():
expected = 0.725
assert_allclose(out, expected, atol=0.001)
# series
times = pd.DatetimeIndex(start='20180601', periods=2, freq='12H')
times = pd.date_range(start='20180601', periods=2, freq='12H')
ghi = pd.Series([0, 1000], index=times)
solar_zenith = pd.Series([90, 0], index=times)
extra_radiation = pd.Series([1360, 1400], index=times)
Expand Down Expand Up @@ -887,7 +887,7 @@ def test_clearness_index_zenith_independent(airmass_kt):
expected = 0.443
assert_allclose(out, expected, atol=0.001)
# series
times = pd.DatetimeIndex(start='20180601', periods=2, freq='12H')
times = pd.date_range(start='20180601', periods=2, freq='12H')
clearness_index = pd.Series([0, .5], index=times)
airmass = pd.Series([np.nan, 2], index=times)
out = irradiance.clearness_index_zenith_independent(clearness_index,
Expand Down
63 changes: 20 additions & 43 deletions pvlib/test/test_location.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,12 +75,16 @@ def test_location_print_pytz():
assert tus.__str__() == expected_str


@pytest.fixture
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good addition

def times():
return pd.date_range(start='20160101T0600-0700',
end='20160101T1800-0700',
freq='3H')


@requires_scipy
def test_get_clearsky(mocker):
def test_get_clearsky(mocker, times):
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
times = pd.DatetimeIndex(start='20160101T0600-0700',
end='20160101T1800-0700',
freq='3H')
m = mocker.spy(pvlib.clearsky, 'ineichen')
out = tus.get_clearsky(times)
assert m.call_count == 1
Expand Down Expand Up @@ -110,11 +114,8 @@ def test_get_clearsky_ineichen_supply_linke(mocker):
assert (out.columns.values == ['ghi', 'dni', 'dhi']).all()


def test_get_clearsky_haurwitz():
def test_get_clearsky_haurwitz(times):
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
times = pd.DatetimeIndex(start='20160101T0600-0700',
end='20160101T1800-0700',
freq='3H')
clearsky = tus.get_clearsky(times, model='haurwitz')
expected = pd.DataFrame(data=np.array(
[[ 0. ],
Expand All @@ -127,11 +128,8 @@ def test_get_clearsky_haurwitz():
assert_frame_equal(expected, clearsky)


def test_get_clearsky_simplified_solis():
def test_get_clearsky_simplified_solis(times):
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
times = pd.DatetimeIndex(start='20160101T0600-0700',
end='20160101T1800-0700',
freq='3H')
clearsky = tus.get_clearsky(times, model='simplified_solis')
expected = pd.DataFrame(data=np.
array([[ 0. , 0. , 0. ],
Expand All @@ -145,11 +143,8 @@ def test_get_clearsky_simplified_solis():
assert_frame_equal(expected, clearsky, check_less_precise=2)


def test_get_clearsky_simplified_solis_apparent_elevation():
def test_get_clearsky_simplified_solis_apparent_elevation(times):
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
times = pd.DatetimeIndex(start='20160101T0600-0700',
end='20160101T1800-0700',
freq='3H')
solar_position = {'apparent_elevation': pd.Series(80, index=times),
'apparent_zenith': pd.Series(10, index=times)}
clearsky = tus.get_clearsky(times, model='simplified_solis',
Expand All @@ -166,11 +161,8 @@ def test_get_clearsky_simplified_solis_apparent_elevation():
assert_frame_equal(expected, clearsky, check_less_precise=2)


def test_get_clearsky_simplified_solis_dni_extra():
def test_get_clearsky_simplified_solis_dni_extra(times):
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
times = pd.DatetimeIndex(start='20160101T0600-0700',
end='20160101T1800-0700',
freq='3H')
clearsky = tus.get_clearsky(times, model='simplified_solis',
dni_extra=1370)
expected = pd.DataFrame(data=np.
Expand All @@ -185,11 +177,8 @@ def test_get_clearsky_simplified_solis_dni_extra():
assert_frame_equal(expected, clearsky)


def test_get_clearsky_simplified_solis_pressure():
def test_get_clearsky_simplified_solis_pressure(times):
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
times = pd.DatetimeIndex(start='20160101T0600-0700',
end='20160101T1800-0700',
freq='3H')
clearsky = tus.get_clearsky(times, model='simplified_solis',
pressure=95000)
expected = pd.DataFrame(data=np.
Expand All @@ -204,11 +193,8 @@ def test_get_clearsky_simplified_solis_pressure():
assert_frame_equal(expected, clearsky, check_less_precise=2)


def test_get_clearsky_simplified_solis_aod_pw():
def test_get_clearsky_simplified_solis_aod_pw(times):
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
times = pd.DatetimeIndex(start='20160101T0600-0700',
end='20160101T1800-0700',
freq='3H')
clearsky = tus.get_clearsky(times, model='simplified_solis',
aod700=0.25, precipitable_water=2.)
expected = pd.DataFrame(data=np.
Expand All @@ -223,11 +209,8 @@ def test_get_clearsky_simplified_solis_aod_pw():
assert_frame_equal(expected, clearsky, check_less_precise=2)


def test_get_clearsky_valueerror():
def test_get_clearsky_valueerror(times):
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
times = pd.DatetimeIndex(start='20160101T0600-0700',
end='20160101T1800-0700',
freq='3H')
with pytest.raises(ValueError):
clearsky = tus.get_clearsky(times, model='invalid_model')

Expand Down Expand Up @@ -255,7 +238,7 @@ def test_from_tmy_2():


def test_get_solarposition(expected_solpos, golden_mst):
times = pd.date_range(datetime.datetime(2003,10,17,12,30,30),
times = pd.date_range(datetime.datetime(2003, 10, 17, 12, 30, 30),
periods=1, freq='D', tz=golden_mst.tz)
ephem_data = golden_mst.get_solarposition(times, temperature=11)
ephem_data = np.round(ephem_data, 3)
Expand All @@ -264,11 +247,8 @@ def test_get_solarposition(expected_solpos, golden_mst):
assert_frame_equal(expected_solpos, ephem_data[expected_solpos.columns])


def test_get_airmass():
def test_get_airmass(times):
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
times = pd.DatetimeIndex(start='20160101T0600-0700',
end='20160101T1800-0700',
freq='3H')
airmass = tus.get_airmass(times)
expected = pd.DataFrame(data=np.array(
[[ nan, nan],
Expand All @@ -292,11 +272,8 @@ def test_get_airmass():
assert_frame_equal(expected, airmass)


def test_get_airmass_valueerror():
def test_get_airmass_valueerror(times):
tus = Location(32.2, -111, 'US/Arizona', 700, 'Tucson')
times = pd.DatetimeIndex(start='20160101T0600-0700',
end='20160101T1800-0700',
freq='3H')
with pytest.raises(ValueError):
clearsky = tus.get_airmass(times, model='invalid_model')

Expand Down Expand Up @@ -329,8 +306,8 @@ def test_get_sun_rise_set_transit(golden):
declination = declination_spencer71(dayofyear)
eot = equation_of_time_spencer71(dayofyear)
result = golden.get_sun_rise_set_transit(times, method='geometric',
declination=declination,
equation_of_time=eot)
declination=declination,
equation_of_time=eot)
assert all(result.columns == ['sunrise', 'sunset', 'transit'])


Expand Down
16 changes: 8 additions & 8 deletions pvlib/test/test_modelchain.py
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,8 @@ def test_deprecated_07():

@requires_scipy
def test_basic_chain_required(sam_data):
times = pd.DatetimeIndex(start='20160101 1200-0700',
end='20160101 1800-0700', freq='6H')
times = pd.date_range(start='20160101 1200-0700',
end='20160101 1800-0700', freq='6H')
latitude = 32
longitude = -111
altitude = 700
Expand All @@ -505,8 +505,8 @@ def test_basic_chain_required(sam_data):

@requires_scipy
def test_basic_chain_alt_az(sam_data):
times = pd.DatetimeIndex(start='20160101 1200-0700',
end='20160101 1800-0700', freq='6H')
times = pd.date_range(start='20160101 1200-0700',
end='20160101 1800-0700', freq='6H')
latitude = 32.2
longitude = -111
altitude = 700
Expand All @@ -529,8 +529,8 @@ def test_basic_chain_alt_az(sam_data):

@requires_scipy
def test_basic_chain_strategy(sam_data):
times = pd.DatetimeIndex(start='20160101 1200-0700',
end='20160101 1800-0700', freq='6H')
times = pd.date_range(start='20160101 1200-0700',
end='20160101 1800-0700', freq='6H')
latitude = 32.2
longitude = -111
altitude = 700
Expand All @@ -551,8 +551,8 @@ def test_basic_chain_strategy(sam_data):

@requires_scipy
def test_basic_chain_altitude_pressure(sam_data):
times = pd.DatetimeIndex(start='20160101 1200-0700',
end='20160101 1800-0700', freq='6H')
times = pd.date_range(start='20160101 1200-0700',
end='20160101 1800-0700', freq='6H')
latitude = 32.2
longitude = -111
altitude = 700
Expand Down
20 changes: 10 additions & 10 deletions pvlib/test/test_pvsystem.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ def pvsyst_module_params():

def test_sapm(sapm_module_params):

times = pd.DatetimeIndex(start='2015-01-01', periods=5, freq='12H')
times = pd.date_range(start='2015-01-01', periods=5, freq='12H')
effective_irradiance = pd.Series([-1, 0.5, 1.1, np.nan, 1], index=times)
temp_cell = pd.Series([10, 25, 50, 25, np.nan], index=times)

Expand Down Expand Up @@ -380,7 +380,7 @@ def test_PVSystem_sapm_effective_irradiance(sapm_module_params, mocker):


def test_calcparams_desoto(cec_module_params):
times = pd.DatetimeIndex(start='2015-01-01', periods=3, freq='12H')
times = pd.date_range(start='2015-01-01', periods=3, freq='12H')
effective_irradiance = pd.Series([0.0, 800.0, 800.0], index=times)
temp_cell = pd.Series([25, 25, 50], index=times)

Expand Down Expand Up @@ -408,7 +408,7 @@ def test_calcparams_desoto(cec_module_params):


def test_calcparams_cec(cec_module_params):
times = pd.DatetimeIndex(start='2015-01-01', periods=3, freq='12H')
times = pd.date_range(start='2015-01-01', periods=3, freq='12H')
effective_irradiance = pd.Series([0.0, 800.0, 800.0], index=times)
temp_cell = pd.Series([25, 25, 50], index=times)

Expand Down Expand Up @@ -437,7 +437,7 @@ def test_calcparams_cec(cec_module_params):


def test_calcparams_pvsyst(pvsyst_module_params):
times = pd.DatetimeIndex(start='2015-01-01', periods=2, freq='12H')
times = pd.date_range(start='2015-01-01', periods=2, freq='12H')
effective_irradiance = pd.Series([0.0, 800.0], index=times)
temp_cell = pd.Series([25, 50], index=times)

Expand Down Expand Up @@ -868,7 +868,7 @@ def test_mpp_series():

@requires_scipy
def test_singlediode_series(cec_module_params):
times = pd.DatetimeIndex(start='2015-01-01', periods=2, freq='12H')
times = pd.date_range(start='2015-01-01', periods=2, freq='12H')
effective_irradiance = pd.Series([0.0, 800.0], index=times)
IL, I0, Rs, Rsh, nNsVth = pvsystem.calcparams_desoto(
effective_irradiance,
Expand Down Expand Up @@ -957,7 +957,7 @@ def test_singlediode_floats_ivcurve():

@requires_scipy
def test_singlediode_series_ivcurve(cec_module_params):
times = pd.DatetimeIndex(start='2015-06-01', periods=3, freq='6H')
times = pd.date_range(start='2015-06-01', periods=3, freq='6H')
effective_irradiance = pd.Series([0.0, 400.0, 800.0], index=times)
IL, I0, Rs, Rsh, nNsVth = pvsystem.calcparams_desoto(
effective_irradiance,
Expand Down Expand Up @@ -1049,7 +1049,7 @@ def test_sapm_celltemp_dict_like():


def test_sapm_celltemp_with_index():
times = pd.DatetimeIndex(start='2015-01-01', end='2015-01-02', freq='12H')
times = pd.date_range(start='2015-01-01', end='2015-01-02', freq='12H')
temps = pd.Series([0, 10, 5], index=times)
irrads = pd.Series([0, 500, 0], index=times)
winds = pd.Series([10, 5, 0], index=times)
Expand Down Expand Up @@ -1108,7 +1108,7 @@ def test_pvsyst_celltemp_model_non_option():


def test_pvsyst_celltemp_with_index():
times = pd.DatetimeIndex(start="2015-01-01", end="2015-01-02", freq="12H")
times = pd.date_range(start="2015-01-01", end="2015-01-02", freq="12H")
temps = pd.Series([0, 10, 5], index=times)
irrads = pd.Series([0, 500, 0], index=times)
winds = pd.Series([10, 5, 0], index=times)
Expand Down Expand Up @@ -1244,8 +1244,8 @@ def test_PVSystem_get_aoi():

def test_PVSystem_get_irradiance():
system = pvsystem.PVSystem(surface_tilt=32, surface_azimuth=135)
times = pd.DatetimeIndex(start='20160101 1200-0700',
end='20160101 1800-0700', freq='6H')
times = pd.date_range(start='20160101 1200-0700',
end='20160101 1800-0700', freq='6H')
location = Location(latitude=32, longitude=-111)
solar_position = location.get_solarposition(times)
irrads = pd.DataFrame({'dni':[900,0], 'ghi':[600,0], 'dhi':[100,0]},
Expand Down
Loading