code: def values(cls, dataset, dim, expanded=True, flat=True, compute=True):
          
          dim_idx = dataset.get_dimension_index(dim)
          if dim_idx in [0, 1]:
              l, b, r, t = dataset.bounds.lbrt()
              dim2, dim1 = dataset.data.shape[:2]
              xdate, ydate = isinstance(l, util.datetime_types), isinstance(b, util.datetime_types)
              if l == r or dim1 == 0:
                  xlin = np.full((dim1,), l, dtype=('datetime64[us]' if xdate else 'float'))
              elif xdate:
                  xlin = util.date_range(l, r, dim1, dataset._time_unit)
              else:
                  xstep = float(r - l)/dim1
                  xlin = np.linspace(l+(xstep/2.), r-(xstep/2.), dim1)
              if b == t or dim2 == 0:
                  ylin = np.full((dim2,), b, dtype=('datetime64[us]' if ydate else 'float'))
              elif ydate:
                  ylin = util.date_range(b, t, dim2, dataset._time_unit)
              else:
                  ystep = float(t - b)/dim2
                  ylin = np.linspace(b+(ystep/2.), t-(ystep/2.), dim2)
              if expanded:
                  values = np.meshgrid(ylin, xlin)[abs(dim_idx-1)]
                  return values.flatten() if flat else values.T
              else:
                  return ylin if dim_idx else xlin
          elif dataset.ndims <= dim_idx < len(dataset.dimensions()):
              # Raster arrays are stored with different orientation
              # than expanded column format, reorient before expanding
              if dataset.data.ndim > 2:
                  data = dataset.data[:, :, dim_idx-dataset.ndims]
              else:
                  data = dataset.data
              data = np.flipud(data)
              return data.T.flatten() if flat else data
          else:
              return None
docs: The set of samples available along a particular dimension.