code: def _interpolate_turbidity(lts, time):
      
      # Data covers 1 year. Assume that data corresponds to the value at the
      # middle of each month. This means that we need to add previous Dec and
      # next Jan to the array so that the interpolation will work for
      # Jan 1 - Jan 15 and Dec 16 - Dec 31.
      lts_concat = np.concatenate([[lts[-1]], lts, [lts[0]]])
  
      # handle leap years
      try:
          isleap = time.is_leap_year
      except AttributeError:
          year = time.year
          isleap = _is_leap_year(year)
  
      dayofyear = time.dayofyear
      days_leap = _calendar_month_middles(2016)
      days_no_leap = _calendar_month_middles(2015)
  
      # Then we map the month value to the day of year value.
      # Do it for both leap and non-leap years.
      lt_leap = np.interp(dayofyear, days_leap, lts_concat)
      lt_no_leap = np.interp(dayofyear, days_no_leap, lts_concat)
      linke_turbidity = np.where(isleap, lt_leap, lt_no_leap)
  
      linke_turbidity = pd.Series(linke_turbidity, index=time)
  
      return linke_turbidity
docs: Interpolated monthly Linke turbidity onto daily values.
  
      Parameters
      ----------
      lts : np.array
          Monthly Linke turbidity values.
      time : pd.DatetimeIndex
          Times to be interpolated onto.
  
      Returns
      -------
      linke_turbidity : pd.Series
          The interpolated turbidity.