Description
Describe the bug
With #2055, pvlib.solarposition.sun_rise_set_transit_spa
sunrise etc times are in the next/previous day, depending on the time zone of the input timestamps and how close to midnight the timestamps are.
To Reproduce
import pandas as pd
import pvlib
times = pd.to_datetime(["2000-01-01 18:00", "2000-01-01 19:00"]).tz_localize("Etc/GMT+5")
pvlib.solarposition.sun_rise_set_transit_spa(times, 40, -80)['sunrise']
Output:
v0.11.0:
2000-01-01 18:00:00-05:00 2000-01-01 07:41:50.956689024-05:00
2000-01-01 19:00:00-05:00 2000-01-01 07:41:50.956689024-05:00
v0.11.1:
2000-01-01 18:00:00-05:00 2000-01-01 07:41:50.956689024-05:00
2000-01-01 19:00:00-05:00 2000-01-02 07:41:58.457240320-05:00
In v0.11.1, the dates are based on the UTC equivalent of the input timestamps. Previously, the dates were taken directly from the input timestamps.
Expected behavior
The previous behavior is more intuitive to me. If I am calculating sunrise/sunset, I am likely working in local time, and wanting to calculate sunrise/sunset accordingly.
Unlike dayofyear
-based calculations for Earth's orbital position (the focus of #2055), I think sunrise/sunset calculations should respect the timezone of the input timestamps. I think we should revert to the previous behavior.
Additional context
#1631 is somewhat similar, although for a different underlying cause and calculation method.