docs: def fill_from_simbad (self, ident, debug=False):
          """Fill in astrometric information using the Simbad web service.
  
          This uses the CDS Simbad web service to look up astrometric
          information for the source name *ident* and fills in attributes
          appropriately. Values from Simbad are not always reliable.
  
          Returns *self*.
  
          """
          info = get_simbad_astrometry_info (ident, debug=debug)
          posref = 'unknown'
  
          for k, v in six.iteritems (info):
              if '~' in v:
                  continue # no info
  
              if k == 'COO(d;A)':
                  self.ra = float (v) * D2R
              elif k == 'COO(d;D)':
                  self.dec = float (v) * D2R
              elif k == 'COO(E)':
                  a = v.split ()
                  self.pos_u_maj = float (a[0]) * A2R * 1e-3 # mas -> rad
                  self.pos_u_min = float (a[1]) * A2R * 1e-3
                  self.pos_u_pa = float (a[2]) * D2R
              elif k == 'COO(B)':
                  posref = v
              elif k == 'PM(A)':
                  self.promo_ra = float (v) # mas/yr
              elif k == 'PM(D)':
                  self.promo_dec = float (v) # mas/yr
              elif k == 'PM(E)':
                  a = v.split ()
                  self.promo_u_maj = float (a[0]) # mas/yr
                  self.promo_u_min = float (a[1])
                  self.promo_u_pa = float (a[2]) * D2R # rad!
              elif k == 'PLX(V)':
                  self.parallax = float (v) # mas
              elif k == 'PLX(E)':
                  self.u_parallax = float (v) # mas
              elif k == 'RV(V)':
                  self.vradial = float (v) # km/s
              elif k == 'RV(E)':
                  self.u_vradial = float (v) #km/s
  
          if self.ra is None:
              raise Exception ('no position returned by Simbad for "%s"' % ident)
          if self.u_parallax == 0:
              self.u_parallax = None
          if self.u_vradial == 0:
              self.u_vradial = None
  
          # Get the right epoch of position for 2MASS positions
  
          if posref == '2003yCat.2246....0C':
              self.pos_epoch = get_2mass_epoch (self.ra, self.dec, debug)
  
          return self