import sys import time sys.path.append('/opt/omero/lib/python') import omero as om import omero.rtypes as omt c = om.client("localhost") try: #---Create enumeration for GAP_PACKED f = om.model.FormatI() f.setValue(omt.rstring('GAP_PACKED')) sf = c.createSession('root', 'omero') t = sf.getTypesService() t.createEnumeration(f) c.closeSession() #---Create logical channels sf = c.createSession('root', 'omero') u = sf.getUpdateService() adenine = om.model.LogicalChannelI() adenine.setName(omt.rstring('ADENINE')) adenine = u.saveAndReturnObject(adenine) adenine.unload() citosine = om.model.LogicalChannelI() citosine.setName(omt.rstring('CITOSINE')) citosine = u.saveAndReturnObject(citosine) citosine.unload() guanine = om.model.LogicalChannelI() guanine.setName(omt.rstring('GUANINE')) guanine = u.saveAndReturnObject(guanine) guanine.unload() thymine = om.model.LogicalChannelI() thymine.setName(omt.rstring('THYMINE')) thymine = u.saveAndReturnObject(thymine) thymine.unload() c.closeSession() #---Retrieve DimensionOrder, PixelsType and Format sf = c.createSession('root', 'omero') iq = sf.getQueryService() do = iq.findAll("DimensionOrder", None) xyzct = filter(lambda a: a.value.val == 'XYZCT', do)[0] print (xyzct) xyzct.unload() pt = iq.findAll("PixelsType", None) uint16 = filter(lambda a: a.value.val == 'uint16', pt)[0] print (uint16) uint16.unload() f = iq.findAll("Format", None) gap = filter(lambda a: a.value.val == 'GAP_PACKED', f)[0] print (gap) gap.unload() c.closeSession() #---Create the images for block in range(0, 500): images = [] for image in range(0, 100): i = om.model.ImageI() i.name = omt.rstring('image_%s_%s' % (block, image)) i.acquisitionDate = omt.rtime(time.time() * 1000) p = om.model.PixelsI() p.setSizeX(omt.rint(1794)) p.setSizeY(omt.rint(2048)) p.setSizeZ(omt.rint(1)) p.setSizeC(omt.rint(4)) p.setSizeT(omt.rint(52)) p.setDimensionOrder(xyzct) p.setPixelsType(uint16) p.setSha1(omt.rstring('')) of = om.model.OriginalFileI() of.setName(omt.rstring('python_test')) of.setSize(omt.rlong(0)) of.setPath(omt.rstring('hdfs://localhost:9000/foo.gap')) of.setSha1(omt.rstring('')) stat = om.model.StatsInfoI() stat.setGlobalMax(omt.rdouble(1931)) stat.setGlobalMin(omt.rdouble(107)) ch_a = om.model.ChannelI() ch_a.setStatsInfo(stat) ch_a.setLogicalChannel(adenine) ch_c = om.model.ChannelI() ch_c.setStatsInfo(stat) ch_c.setLogicalChannel(citosine) ch_g = om.model.ChannelI() ch_g.setStatsInfo(stat) ch_g.setLogicalChannel(guanine) ch_t = om.model.ChannelI() ch_t.setStatsInfo(stat) ch_t.setLogicalChannel(thymine) of.setFormat(gap) p.linkOriginalFile(of) p.addChannel(ch_a) p.addChannel(ch_g) p.addChannel(ch_c) p.addChannel(ch_t) i.addPixels(p) images.append(i) sf = c.createSession('root', 'omero') u = sf.getUpdateService() print ("Saving block %s, total images %s" % (block, len(images))) u.saveArray(images) c.closeSession() finally: c.closeSession()