def hour_angle(times, longitude, equation_of_time):
naive_times = times.tz_localize(None)  <EOL>hrs_minus_tzs = <NUM_LIT:1> / NS_PER_HR * (<EOL><NUM_LIT:2> * times.astype(np.int64) - times.normalize().astype(np.int64) -<EOL>naive_times.astype(np.int64))<EOL>return np.asarray(<EOL><NUM_LIT> * (hrs_minus_tzs - <NUM_LIT>) + longitude + equation_of_time / <NUM_LIT>)<EOL>
Hour angle in local solar time. Zero at local solar noon.

Parameters
----------
times : :class:`pandas.DatetimeIndex`
    Corresponding timestamps, must be localized to the timezone for the
    ``longitude``.
longitude : numeric
    Longitude in degrees
equation_of_time : numeric
    Equation of time in minutes.

Returns
-------
hour_angle : numeric
    Hour angle in local solar time in degrees.

References
----------
[1] J. A. Duffie and W. A. Beckman,  "Solar Engineering of Thermal
Processes, 3rd Edition" pp. 13, J. Wiley and Sons, New York (2006)

[2] J. H. Seinfeld and S. N. Pandis, "Atmospheric Chemistry and Physics"
p. 132, J. Wiley (1998)

[3] Daryl R. Myers, "Solar Radiation: Practical Modeling for Renewable
Energy Applications", p. 5 CRC Press (2013)

See Also
--------
equation_of_time_Spencer71
equation_of_time_pvcdrom