'Checks if the uncertainties are compatible for propagation.
Checks if the other uncertainty is `NDUncertainty`-like and if so
verify that the uncertainty_type is equal. If the latter is not the
case try returning ``self.__class__(other_uncert)``.
Parameters
other_uncert : `NDUncertainty` subclass
The other uncertainty.
Returns
other_uncert : `NDUncertainty` subclass
but converted to a compatible `NDUncertainty` subclass if
possible and necessary.
Raises
IncompatibleUncertaintiesException:
If the other uncertainty cannot be converted to a compatible
`NDUncertainty` subclass.'

def _convert_uncertainty(self, other_uncert):

    if isinstance(other_uncert, NDUncertainty):
        if (self.uncertainty_type == other_uncert.uncertainty_type):
            return other_uncert
        else:
            return self.__class__(other_uncert)
    else:
        raise IncompatibleUncertaintiesException
