code: def cf_encoder(variables, attributes):
      
      new_vars = OrderedDict((k, encode_cf_variable(v, name=k))
                             for k, v in variables.items())
      return new_vars, attributes
docs: A function which takes a dicts of variables and attributes
      and encodes them to conform to CF conventions as much
      as possible.  This includes masking, scaling, character
      array handling, and CF-time encoding.
  
      Decode a set of CF encoded variables and attributes.
  
      See Also, decode_cf_variable
  
      Parameters
      ----------
      variables : dict
          A dictionary mapping from variable name to xarray.Variable
      attributes : dict
          A dictionary mapping from attribute name to value
  
      Returns
      -------
      encoded_variables : dict
          A dictionary mapping from variable name to xarray.Variable,
      encoded_attributes : dict
          A dictionary mapping from attribute name to value
  
      See also: encode_cf_variable