docs: def sunrise_sunset(moment, latitude, longitude):
      r'''Calculates the times at which the sun is at sunset; sunrise; and 
      halfway between sunrise and sunset (transit).
      
      Uses the Reda and Andreas (2004) model described in [1]_, 
      originally incorporated into the excellent 
      `pvlib library <https://github.com/pvlib/pvlib-python>`_    
  
      Parameters
      ----------
      moment : datetime
          Date for the calculationl; needs to contain only the year, month, and
          day, [-]
      latitude : float
          Latitude, between -90 and 90 [degrees]
      longitude : float
          Longitude, between -180 and 180, [degrees]
  
      Returns
      -------
      sunrise : datetime
          The time at the specified day when the sun rises **IN UTC**, [-]
      sunset : datetime
          The time at the specified day when the sun sets **IN UTC**, [-]
      transit : datetime
          The time at the specified day when the sun is at solar noon - halfway 
          between sunrise and sunset **IN UTC**, [-]
  
      Examples
      --------
      >>> sunrise, sunset, transit = sunrise_sunset(datetime(2018, 4, 17), 
      ... 51.0486, -114.07)
      >>> sunrise
      datetime.datetime(2018, 4, 17, 12, 36, 55, 782660)
      >>> sunset
      datetime.datetime(2018, 4, 18, 2, 34, 4, 249326)
      >>> transit
      datetime.datetime(2018, 4, 17, 19, 35, 46, 686265)
      
      Notes
      -----    
      This functions takes on the order of 2 ms per calculation.
      
      The reason the function cannot return the time correct the local
      timezone is that the function does not know the timezone at the specified
      lat/long.
  
      References
      ----------
      .. [1] Reda, Ibrahim, and Afshin Andreas. "Solar Position Algorithm for 
         Solar Radiation Applications." Solar Energy 76, no. 5 (January 1, 2004):
         577-89. https://doi.org/10.1016/j.solener.2003.12.003.
      '''
      from fluids.optional import spa
      delta_t = spa.calculate_deltat(moment.year, moment.month)
      # Strip the part of the day
      moment = datetime(moment.year, moment.month, moment.day)
      import calendar 
      unixtime = calendar.timegm(moment.timetuple())
      unixtime = unixtime - unixtime % (86400) # Remove the remainder of the value, rounding it to the day it is
      transit, sunrise, sunset = spa.transit_sunrise_sunset(np.array([unixtime]), lat=latitude, lon=longitude, delta_t=delta_t, numthreads=1)
      
      transit = datetime.utcfromtimestamp(float(transit))
      sunrise = datetime.utcfromtimestamp(float(sunrise))
      sunset = datetime.utcfromtimestamp(float(sunset))
      return sunrise, sunset, transit