def importMosaicTiles(self): source_session = self.getSourceSession() print "Importing mosaic tiles...." sinedon.setConfig('leginondata', db=self.source_dbname) q = leginondata.MosaicTileData(session=source_session) results = self.research(q) self.publish(results)
def processImageData(self, imagedata): ''' different from ClickTargetFinder because findTargets is not per image, instead we have submitTargets. Each new image becomes a tile in a mosaic. ''' self.logger.info('Processing inbound image data') ### create a new imagelist if not already done targets = imagedata['target']['list'] if not targets: self.logger.info('No targets to process') return imagelist = self.getMosaicImageList(targets) self.logger.debug('creating MosaicTileData for image %d' % (imagedata.dbid, )) tiledata = leginondata.MosaicTileData(image=imagedata, list=imagelist, session=self.session) self.logger.debug('publishing MosaicTileData') self.publish(tiledata, database=True) self.setMosaicNameFromImageList(imagelist) self.logger.debug('published MosaicTileData') self.addTile(imagedata) if self.settings['create on tile change'] == 'all': self.logger.debug('create all') self.createMosaicImage() self.logger.debug('done create all') self.logger.debug('Image data processed')
def queryAtlases(self): querydata = leginondata.MosaicTileData(session=self.session) tiledatalist = self.research(datainstance=querydata) imagedatarefs = {} for tiledata in tiledatalist: imagedataref = tiledata.special_getitem('image', dereference=False) if tiledata['list'].dbid in imagedatarefs: imagedatarefs[tiledata['list'].dbid].append(imagedataref) else: imagedatarefs[tiledata['list'].dbid] = [imagedataref] return imagedatarefs
def researchMosaicTileData(self): tilequery = leginondata.MosaicTileData( session=self.session, list=leginondata.ImageListData()) mosaictiles = self.research(datainstance=tilequery) mosaiclists = ordereddict.OrderedDict() for tile in mosaictiles: list = tile['list'] label = '(no label)' if list['targets'] is not None: if list['targets']['label']: label = list['targets']['label'] key = '%s: %s' % (list.dbid, label) if key not in mosaiclists: mosaiclists[key] = [] mosaiclists[key].append(tile) self.mosaicselectionmapping = mosaiclists return mosaiclists