code: def todoppler(self, rf, v0, rfq):
          
          if is_measure(rfq) and rfq['type'] == 'frequency':
              rfq = dq.quantity(rfq['m0'])
          elif isinstance(rfq, str):
              rfq = dq.quantity(rfq)
          if is_measure(v0):
              if v0['type'] == 'radialvelocity':
                  return self.todop(v0, dq.quantity(1., 'Hz'))
              elif v0['type'] == 'frequency' and dq.is_quantity(rfq) \
                      and rfq.conforms(dq.quantity('Hz')):
                  return self.todop(v0, rfq)
              else:
                  raise TypeError('Illegal Doppler or rest frequency specified')
          else:
              raise TypeError('Illegal Frequency specified')
docs: Convert a radialvelocity measure or a frequency measure to a
          doppler measure. In the case of a frequency, a rest frequency has
          to be specified. The type of doppler wanted (e.g. *RADIO*) has to be
          specified.
  
          :param rf: doppler reference code (see :meth:`doppler`)
          :param v0: a radialvelocity or frequency measure
          :param rfq: frequency measure or quantity
  
          Example::
  
              f = dm.frequency('lsrk','1410MHz')     # specify a frequency
              dm.todoppler('radio', f, dm.constants('HI')) # give doppler, using HI rest