code: def time_at_elevation(self, elevation, direction=SUN_RISING, date=None, local=True):
          
  
          if local and self.timezone is None:
              raise ValueError("Local time requested but Location has no timezone set.")
  
          if self.astral is None:
              self.astral = Astral()
  
          if date is None:
              date = datetime.date.today()
  
          if elevation > 90.0:
              elevation = 180.0 - elevation
              direction = SUN_SETTING
  
          time_ = self.astral.time_at_elevation_utc(
              elevation, direction, date, self.latitude, self.longitude
          )
  
          if local:
              return time_.astimezone(self.tz)
          else:
              return time_
docs: Calculate the time when the sun is at the specified elevation.
  
          Note:
              This method uses positive elevations for those above the horizon.
  
              Elevations greater than 90 degrees are converted to a setting sun
              i.e. an elevation of 110 will calculate a setting sun at 70 degrees.
  
          :param elevation:  Elevation in degrees above the horizon to calculate for.
          :type elevation:   float
  
          :param direction:  Determines whether the time is for the sun rising or setting.
                             Use ``astral.SUN_RISING`` or ``astral.SUN_SETTING``. Default is rising.
          :type direction:   int
  
          :param date: The date for which to calculate the elevation time.
                       If no date is specified then the current date will be used.
          :type date:  :class:`~datetime.date`
  
          :param local: True  = Time to be returned in location's time zone;
                        False = Time to be returned in UTC.
                        If not specified then the time will be returned in local time
          :type local:  bool
  
          :returns: The date and time at which dusk occurs.
          :rtype: :class:`~datetime.datetime`