docs: def correct_dims(self, var, dims={}, remove=True):
          """Expands the dimensions to match the dims in the variable
  
          Parameters
          ----------
          var: xarray.Variable
              The variable to get the data for
          dims: dict
              a mapping from dimension to the slices
          remove: bool
              If True, dimensions in `dims` that are not in the dimensions of
              `var` are removed"""
          method_mapping = {'x': self.get_xname,
                            'z': self.get_zname, 't': self.get_tname}
          dims = dict(dims)
          if self.is_unstructured(var):  # we assume a one-dimensional grid
              method_mapping['y'] = self.get_xname
          else:
              method_mapping['y'] = self.get_yname
          for key in six.iterkeys(dims.copy()):
              if key in method_mapping and key not in var.dims:
                  dim_name = method_mapping[key](var, self.ds.coords)
                  if dim_name in dims:
                      dims.pop(key)
                  else:
                      new_name = method_mapping[key](var)
                      if new_name is not None:
                          dims[new_name] = dims.pop(key)
          # now remove the unnecessary dimensions
          if remove:
              for key in set(dims).difference(var.dims):
                  dims.pop(key)
                  self.logger.debug(
                      "Could not find a dimensions matching %s in variable %s!",
                      key, var)
          return dims