code: def getUncertainty(self, result=None):
          
          uncertainty = self.getField('Uncertainty').get(self)
          if result is None and (self.isAboveUpperDetectionLimit() or
                                 self.isBelowLowerDetectionLimit()):
              return None
  
          if uncertainty and self.getAllowManualUncertainty() is True:
              try:
                  uncertainty = float(uncertainty)
                  return uncertainty
              except (TypeError, ValueError):
                  # if uncertainty is not a number, return default value
                  pass
          return self.getDefaultUncertainty(result)
docs: Returns the uncertainty for this analysis and result.
          Returns the value from Schema's Uncertainty field if the Service has
          the option 'Allow manual uncertainty'. Otherwise, do a callback to
          getDefaultUncertainty(). Returns None if no result specified and the
          current result for this analysis is below or above detections limits.