code: def get_column(self, field, components=None, computed_type='for_observations'):
          
          def get_field(c, field, computed_type):
  
              if c not in self._dict.keys() and self._parent_envelope_of[c] in self._dict.keys():
                  mesh = self._dict[self._parent_envelope_of[c]]
                  return mesh.get_column_flat(field, components, computed_type)
  
              mesh = self._dict[c]
              if isinstance(mesh, Meshes):
                  # then do this recursively for all components in the Meshes object
                  # but don't allow nesting in the dictionary, instead combine
                  # all subcomponents into one entry with the current component
                  return mesh.get_column_flat(field, mesh._components, computed_type)
  
              f = mesh[field]
              if isinstance(f, ComputedColumn):
                  col = getattr(f, computed_type)
              else:
                  col =  f
  
              return col
  
          if components:
              if isinstance(components, str):
                  components = [components]
          else:
              components = self.keys()
  
          return {c: get_field(c, field, computed_type) for c in components}
docs: TODO: add documentation
  
          return a dictionary for a single column, with component as keys and the
          column array as values
  
          :parameter str field: name of the mesh columnname
          :parameter components: