code: def _getSDRPairs(self, pairs, noise=None):
      
      sensations = {}
      for col in xrange(self.numColumns):
        location, featureID = pairs[col]
        location = [int(coord) for coord in location]
  
        location = self.locationEncoder.encode(
          (np.array(location, dtype="int32"), self._getRadius(location))
        )
        location = set(location.nonzero()[0])
  
        # generate empty feature if requested
        if featureID == -1:
          feature = set()
        # generate union of features if requested
        elif isinstance(featureID, tuple):
          feature = set()
          for idx in list(featureID):
            feature = feature | self.features[col][idx]
        else:
          feature = self.features[col][featureID]
  
        if noise is not None:
          location = self._addNoise(location, noise)
          feature = self._addNoise(feature, noise)
  
        sensations[col] = (location, feature)
  
      return sensations
docs: This method takes a list of (location, feature) pairs (one pair per
      cortical column), and returns a sensation dict in the correct format,
      adding noise if necessary.
  
      In each pair, the location is an actual integer location to be encoded,
      and the feature is just an index.