code: def dimension_values(self, dimension, expanded=True, flat=True):
          
          values = []
          found = False
          for el in self:
              if dimension in el.dimensions(label=True):
                  values.append(el.dimension_values(dimension))
                  found = True
          if not found:
              return super(CompositeOverlay, self).dimension_values(dimension, expanded, flat)
          values = [v for v in values if v is not None and len(v)]
          if not values:
              return np.array()
          vals = np.concatenate(values)
          return vals if expanded else unique_array(vals)
docs: Return the values along the requested dimension.
  
          Args:
              dimension: The dimension to return values for
              expanded (bool, optional): Whether to expand values
                  Whether to return the expanded values, behavior depends
                  on the type of data:
                    * Columnar: If false returns unique values
                    * Geometry: If false returns scalar values per geometry
                    * Gridded: If false returns 1D coordinates
              flat (bool, optional): Whether to flatten array
  
          Returns:
              NumPy array of values along the requested dimension