private void fillExposureTime(MetadataStore store) { if (exposureTime == null) return; int oldSeries = getSeries(); for (int s=0; s<getSeriesCount(); s++) { setSeries(s); for (int i=0; i<getImageCount(); i++) { store.setPlaneExposureTime(exposureTime, s, i); } } setSeries(oldSeries); }
/** * Read byte-encoded metadata from the given plane. * @see FakeReader#readSpecialPixels(byte[], int, boolean, int, boolean) */ public static int[] readSpecialPixels( byte[] plane, int pixelType, boolean little) { return readSpecialPixels(plane, pixelType, little, 1, false); }
@Override public boolean isThisType(String name, boolean open) { if (checkSuffix(name, "fake.ini")) { return true; } fakeSeries.clear(); if (name.endsWith(".fake") && listFakeSeries(name).size() > 0) { return true; } return super.isThisType(name, open); }
@Override protected void initFile(String id) throws FormatException, IOException { if (!checkSuffix(id, "fake")) { if (checkSuffix(id, "fake.ini")) { id = id.substring(0, id.lastIndexOf(".")); name = name.substring(0, name.lastIndexOf(".")); for (String f : list) { if (checkSuffix(f, "fake") && f.startsWith(name)) { id = new Location(dir, f).getAbsolutePath(); break; findLogFiles(); if (root != null) { root = root.getParentFile(); if (isSPWStructure(root.getAbsolutePath())) { tokens = extractTokensFromFakeSeries(root.getAbsolutePath()); if (location.isDirectory() && isSPWStructure(location.getAbsolutePath())) { tokens = extractTokensFromFakeSeries(location.getAbsolutePath()); } else if (tokens == null) { String noExt = path.substring(0, path.lastIndexOf(".")); if (table != null) { for (Map.Entry<String, String> entry : table.entrySet()) { addGlobalMeta(entry.getKey(), entry.getValue()); else if (key.equals("polylines")) polylines = intValue; else if (key.equals("rectangles")) rectangles = intValue;
@Test public void testDefaultValues() throws Exception { reader.setId("default.fake"); m = service.asRetrieve(reader.getMetadataStore()); assertTrue(service.validateOMEXML(service.getOMEXML(m))); assertEquals(reader.getSizeX(), FakeReader.DEFAULT_SIZE_X); assertEquals(reader.getSizeY(), FakeReader.DEFAULT_SIZE_Y); assertEquals(reader.getSizeZ(), FakeReader.DEFAULT_SIZE_Z); assertEquals(reader.getSizeC(), FakeReader.DEFAULT_SIZE_C); assertEquals(reader.getSizeT(), FakeReader.DEFAULT_SIZE_T); assertEquals(reader.getPixelType(), FakeReader.DEFAULT_PIXEL_TYPE); assertEquals(reader.getRGBChannelCount(), FakeReader.DEFAULT_RGB_CHANNEL_COUNT); assertEquals(reader.getDimensionOrder(), FakeReader.DEFAULT_DIMENSION_ORDER); assertEquals(m.getImageAcquisitionDate(0), null); assertEquals(m.getPixelsPhysicalSizeX(0), null); assertEquals(m.getPixelsPhysicalSizeY(0), null); assertEquals(m.getPixelsPhysicalSizeZ(0), null); assertEquals(m.getROICount(), 0); assertEquals(m.getExperimentCount(), 0); }
final int s = getSeries(); final int pixelType = getPixelType(); final int bpp = FormatTools.getBytesPerPixel(pixelType); final boolean signed = FormatTools.isSigned(pixelType); final boolean floating = FormatTools.isFloatingPoint(pixelType); final int rgb = getRGBChannelCount(); final boolean indexed = isIndexed(); final boolean little = isLittleEndian(); final boolean interleaved = isInterleaved(); final int[] zct = getZCTCoords(no); final int zIndex = zct[0], cIndex = zct[1], tIndex = zct[2]; ac = cIndex;
@Test public void testSpecialPixelsInterleaved() throws Exception { int nSeries = 2; int rgb = 3; int sizeC = 3; int effSizeC = sizeC / rgb; int sizeZ = 4; int sizeT = 5; reader.setId(String.format( "foo&series=%s&sizeZ=%s&sizeC=%s&sizeT=%s&rgb=%d&interleaved=true.fake", nSeries, sizeZ, sizeC, sizeT, rgb)); reader.setSeries(1); int no = effSizeC * sizeZ * sizeT - 1; byte[] plane = reader.openBytes(no); int[] exp = new int[] {1, no, sizeZ - 1, effSizeC - 1, sizeT - 1}; assertEquals(FakeReader.readSpecialPixels( plane, FormatTools.UINT8, true, rgb, true), exp); }
@Test public void testTwoWells() throws Exception { Location twoWells = new FakeImage( mkSubd(wd, "2W.fake") ).generateScreen(1, 1, 1, 2, 1); assertFalse(reader.isSingleFile(twoWells.getAbsolutePath())); assertTrue(reader.isThisType(twoWells.getAbsolutePath())); reader.setId(twoWells.getAbsolutePath()); assertEquals(reader.getOmeXmlMetadata().getWellCount(0), 2); assertEquals(reader.getUsedFiles().length, 2); assertEquals(reader.getSeriesUsedFiles(false).length, 2); assertEquals(reader.getSeriesUsedFiles(true).length, 0); }
@Test public void testPyramidDefaultScale() throws Exception { reader.setId("test&sizeX=10000&sizeY=10000&resolutions=4.fake"); assertEquals(reader.getSeriesCount(), 1); assertEquals(reader.getResolutionCount(), 4); for (int i=1; i<reader.getResolutionCount(); i++) { int x = reader.getSizeX(); int y = reader.getSizeY(); reader.setResolution(i); assertEquals(x / 2, reader.getSizeX()); assertEquals(y / 2, reader.getSizeY()); } }
int s = getSeries(); setSeries(newSeries); for (int i=0; i<getImageCount(); i++) { String exposureTime = table.get("ExposureTime_" + i); String exposureTimeUnit = table.get("ExposureTimeUnit_" + i); Length x = parsePosition("X", s, i, table); if (x != null) { store.setPlanePositionX(x, newSeries, i); Length y = parsePosition("Y", s, i, table); if (y != null) { store.setPlanePositionY(y, newSeries, i); Length z = parsePosition("Z", s, i, table); if (z != null) { store.setPlanePositionZ(z, newSeries, i); setSeries(s);
@Test public void testTwoPlates() throws Exception { Location twoPlates = new FakeImage( mkSubd(wd, "2P.fake") ).generateScreen(2, 2, 2, 2, 4); reader.setId(twoPlates.getAbsolutePath()); OMEXMLMetadata metadata = reader.getOmeXmlMetadata(); int i = reader.getImageCount(); while (i >= 0) { assertEquals(metadata.getChannelCount(i--), reader.getSizeC()); } }
@Test public void testPyramidNoResolutions() throws Exception { reader.setId("test&sizeX=10000&sizeY=10000&resolutions=1.fake"); assertEquals(reader.getSeriesCount(), 1); assertEquals(reader.getResolutionCount(), 1); }
private int populateSPW(MetadataStore store, int screens, int plates, int rows, int cols, int fields, int acqs, boolean withMicrobeam) { final XMLMockObjects xml = new XMLMockObjects(); OME ome = null; if (screens==0) { ome = xml.createPopulatedPlate(plates, rows, cols, fields, acqs, withMicrobeam); } else { ome = xml.createPopulatedScreen(screens, plates, rows, cols, fields, acqs, withMicrobeam); } if (withMicrobeam) roiCount = roiCount + plates;; getOmeXmlMetadata().setRoot(new OMEXMLMetadataRoot(ome)); // copy populated SPW metadata into destination MetadataStore getOmeXmlService().convertMetadata(omeXmlMetadata, store); domains = new String[] {FormatTools.HCS_DOMAIN}; return ome.sizeOfImageList(); }
@BeforeMethod public void setUp() throws Exception { wd = Files.createTempDirectory(this.getClass().getName()); reader = new FakeReader(); ServiceFactory sf = new ServiceFactory(); service = sf.getInstance(OMEXMLService.class); reader.setMetadataStore(service.createOMEXMLMetadata()); reader.setFlattenedResolutions(false); }
@Test public void testTwoFields() throws Exception { Location twoFields = new FakeImage( mkSubd(wd, "2F.fake") ).generateScreen(1, 1, 1, 1, 2); reader.setId(twoFields.getAbsolutePath()); assertEquals(reader.getSeriesCount(), 2); }
private void fillPhysicalSizes(MetadataStore store) { if (physicalSizeX == null && physicalSizeY == null && physicalSizeZ == null) return; for (int s=0; s<getSeriesCount(); s++) { store.setPixelsPhysicalSizeX(physicalSizeX, s); store.setPixelsPhysicalSizeY(physicalSizeY, s); store.setPixelsPhysicalSizeZ(physicalSizeZ, s); } }
@BeforeMethod public void setUp() throws Exception { idDir = createTempDir(); File tempFile = new File(idDir, TEST_FILE); tempFile.createNewFile(); id = tempFile.getAbsolutePath(); reader = new FakeReader(); // No setId ! }
@Override protected void initFile(String id) throws FormatException, IOException { if (!checkSuffix(id, "fake")) { if (checkSuffix(id, "fake.ini")) { id = id.substring(0, id.lastIndexOf(".")); name = name.substring(0, name.lastIndexOf(".")); for (String f : list) { if (checkSuffix(f, "fake") && f.startsWith(name)) { id = new Location(dir, f).getAbsolutePath(); break; findLogFiles(); if (root != null) { root = root.getParentFile(); if (isSPWStructure(root.getAbsolutePath())) { tokens = extractTokensFromFakeSeries(root.getAbsolutePath()); if (location.isDirectory() && isSPWStructure(location.getAbsolutePath())) { tokens = extractTokensFromFakeSeries(location.getAbsolutePath()); } else if (tokens == null) { String noExt = path.substring(0, path.lastIndexOf(".")); if (table != null) { for (Map.Entry<String, String> entry : table.entrySet()) { addGlobalMeta(entry.getKey(), entry.getValue()); else if (key.equals("polylines")) polylines = intValue; else if (key.equals("rectangles")) rectangles = intValue;
final int s = getSeries(); final int pixelType = getPixelType(); final int bpp = FormatTools.getBytesPerPixel(pixelType); final boolean signed = FormatTools.isSigned(pixelType); final boolean floating = FormatTools.isFloatingPoint(pixelType); final int rgb = getRGBChannelCount(); final boolean indexed = isIndexed(); final boolean little = isLittleEndian(); final boolean interleaved = isInterleaved(); final int[] zct = getZCTCoords(no); final int zIndex = zct[0], cIndex = zct[1], tIndex = zct[2]; ac = cIndex;
@Test public void testSpecialPixelsIndexed() throws Exception { int nSeries = 2; int sizeC = 3; int sizeZ = 4; int sizeT = 5; reader.setId(String.format( "foo&series=%s&sizeZ=%s&sizeC=%s&sizeT=%s&indexed=true.fake", nSeries, sizeZ, sizeC, sizeT)); reader.setSeries(1); int no = sizeC * sizeZ * sizeT - 1; byte[] plane = reader.openBytes(no); int[] exp = new int[] {1, no, sizeZ - 1, sizeC - 1, sizeT - 1}; int[] indices = FakeReader.readSpecialPixels(plane); assertEquals(indices.length, exp.length); int[] specialPixels = new int[indices.length]; byte[][] lut = reader.get8BitLookupTable(); for (int i = 0; i < indices.length; i++) { specialPixels[i] = lut[0][(int)indices[i]]; } assertEquals(specialPixels, exp); }