docs: def aggregate_daily(image_coll, start_date=None, end_date=None,
                      agg_type='mean'):
      """Aggregate images by day without using joins
  
      The primary purpose of this function is to join separate Landsat images
      from the same path into a single daily image.
  
      Parameters
      ----------
      image_coll : ee.ImageCollection
          Input image collection.
      start_date :  date, number, string, optional
          Start date.
          Needs to be an EE readable date (i.e. ISO Date string or milliseconds).
      end_date :  date, number, string, optional
          Exclusive end date.
          Needs to be an EE readable date (i.e. ISO Date string or milliseconds).
      agg_type : {'mean'}, optional
          Aggregation type (the default is 'mean').
          Currently only a 'mean' aggregation type is supported.
  
      Returns
      -------
      ee.ImageCollection()
  
      Notes
      -----
      This function should be used to mosaic Landsat images from same path
          but different rows.
      system:time_start of returned images will be 0 UTC (not the image time).
  
      """
      if start_date and end_date:
          test_coll = image_coll.filterDate(ee.Date(start_date), ee.Date(end_date))
      elif start_date:
          test_coll = image_coll.filter(ee.Filter.greaterThanOrEquals(
              'system:time_start', ee.Date(start_date).millis()))
      elif end_date:
          test_coll = image_coll.filter(ee.Filter.lessThan(
              'system:time_start', ee.Date(end_date).millis()))
      else:
          test_coll = image_coll
  
      # Build a list of dates in the image_coll
      def get_date(time):
          return ee.Date(ee.Number(time)).format('yyyy-MM-dd')
  
      date_list = ee.List(test_coll.aggregate_array('system:time_start'))\
          .map(get_date).distinct().sort()
  
      def aggregate_func(date_str):
          start_date = ee.Date(ee.String(date_str))
          end_date = start_date.advance(1, 'day')
          agg_coll = image_coll.filterDate(start_date, end_date)
  
          # if agg_type.lower() == 'mean':
          agg_img = agg_coll.mean()
          # elif agg_type.lower() == 'median':
          #     agg_img = agg_coll.median()
  
          return agg_img.set({
              'system:index': start_date.format('yyyyMMdd'),
              'system:time_start': start_date.millis(),
              'date': start_date.format('yyyy-MM-dd'),
          })
  
      return ee.ImageCollection(date_list.map(aggregate_func))