def mapDataToGrid(self, dataInfo): datalength = len(dataInfo) if datalength != self.DIMENSION: return grid_coords = list() data_coords = list() data = 0.0 grid_Width = 0.0 dim_index = 0 i = 0 while i < datalength: data = float(dataInfo[i]) data_coords.append(data) if data >= self.DIMENSION_UPPER_RANGE[i] or data < self.DIMENSION_LOWER_RANGE[i]: return grid_Width = float(self.DIMENSION_UPPER_RANGE[i] - self.DIMENSION_LOWER_RANGE[i]) / float(self.DIMENSION_PARTITION[i]) dim_index = int(math.floor((data - self.DIMENSION_LOWER_RANGE[i]) / grid_Width)) grid_coords.append(dim_index) i += 1 gridCoords = Coordinates(grid_coords) # check if the grid object is already created or not. if not gridCoords in self.gridList: g = Grid(False,0,self.time,1,ATTRIBUTE.SPARSE, self.DIMENSION, self.DIMENSION_UPPER_RANGE, self.DIMENSION_LOWER_RANGE, self.DIMENSION_PARTITION, self.TOTAL_GRIDS, self.decay_factor, self.dense_threshold, self.sparse_threshold, self.correlation_threshold) attrL = g.getAttraction(data_coords, grid_coords) g.setInitialAttraction(attrL) self.gridList[gridCoords] = g else: g = self.gridList[gridCoords] gridCoords = None g.updateGridDensity(self.time) g.updateGridAttribute() attrL = g.getAttraction(data_coords, grid_coords) g.updateGridAttraction(attrL, self.time) g.setLastTimeUpdated(self.time)