def _processSubStack(dsr): """Helper to process stack in parallel""" sf = dsr[0]; pp = dsr[1]; sub = dsr[2]; verbose = dsr[3]; timer = Timer(); pw = ProcessWriter(sub["stackId"]); if verbose: pw.write("processing substack " + str(sub["stackId"]) + "/" + str(sub["nStacks"])); pw.write("file = " + sub["source"]); pw.write("segmentation = " + str(sf)); pw.write("ranges: x,y,z = " + str(sub["x"]) + "," + str(sub["y"]) + "," + str(sub["z"])); img = io.readData(sub["source"], x = sub["x"], y = sub["y"], z = sub["z"]); if verbose: pw.write(timer.elapsedTime(head = 'Reading data of size ' + str(img.shape))); timer.reset(); seg = sf(img, subStack = sub, out = pw, **pp); if verbose: pw.write(timer.elapsedTime(head = 'Processing substack of size ' + str(img.shape))); return seg;