code: def populate_observable(self, time, kind, dataset, **kwargs):
          
  
          if kind in ['mesh', 'orb']:
              return
  
          if time==self.time and dataset in self.populated_at_time and 'pblum' not in kind:
              # then we've already computed the needed columns
  
              # TODO: handle the case of intensities already computed by
              # /different/ dataset (ie RVs computed first and filling intensities
              # and then lc requesting intensities with SAME passband/atm)
              return
  
          new_mesh_cols = getattr(self, '_populate_{}'.format(kind.lower()))(dataset, **kwargs)
  
          for key, col in new_mesh_cols.items():
  
              self.mesh.update_columns_dict({'{}:{}'.format(key, dataset): col})
  
          self.populated_at_time.append(dataset)
docs: TODO: add documentation