'Calculate the resulting data
Parameters
operation : callable
see `NDArithmeticMixin._arithmetic` parameter description.
operand : `NDData`-like instance
The second operand wrapped in an instance of the same class as
self.
kwds :
Additional parameters.
Returns
result_data : `~numpy.ndarray` or `~astropy.units.Quantity`
If both operands had no unit the resulting data is a simple numpy
array, but if any of the operands had a unit the return is a
Quantity.'

def _arithmetic_data(self, operation, operand, **kwds):

    if ((self.unit is None) and (operand.unit is None)):
        result = operation(self.data, operand.data)
    elif (self.unit is None):
        result = operation((self.data * dimensionless_unscaled), (operand.data * operand.unit))
    elif (operand.unit is None):
        result = operation((self.data * self.unit), (operand.data * dimensionless_unscaled))
    else:
        result = operation((self.data * self.unit), (operand.data * operand.unit))
    return result
