public ExternalSeries(FilePattern pattern) throws FormatException, IOException { this.pattern = pattern; files = this.pattern.getFiles(); int nReaders = files.length > MAX_READERS ? 1 : files.length; readers = new DimensionSwapper[nReaders]; for (int i=0; i<readers.length; i++) { if (classList != null) { readers[i] = new DimensionSwapper(new ImageReader(classList)); } else readers[i] = new DimensionSwapper(); readers[i].setMetadataOptions(getMetadataOptions()); readers[i].setGroupFiles(false); } readers[0].setId(files[0]); ag = new AxisGuesser(this.pattern, readers[0].getDimensionOrder(), readers[0].getSizeZ(), readers[0].getSizeT(), readers[0].getSizeC(), readers[0].isOrderCertain()); blankThumbBytes = new byte[FormatTools.getPlaneSize(readers[0], readers[0].getThumbSizeX(), readers[0].getThumbSizeY())]; originalOrder = readers[0].getDimensionOrder(); imagesPerFile = readers[0].getImageCount(); }
protected void initReader(int sno, int fno) { int external = getExternalSeries(sno); DimensionSwapper r = externals[external].getReader(fno); try { if (r.getCurrentFile() == null) { r.setGroupFiles(false); } r.setId(externals[external].getFiles()[fno]); r.setCoreIndex(reader.getCoreMetadataList().size() > 1 ? sno : 0); String newOrder = ((DimensionSwapper) reader).getInputOrder(); if ((externals[external].getFiles().length > 1 || !r.isOrderCertain()) && (r.getRGBChannelCount() == 1 || newOrder.indexOf('C') == r.getDimensionOrder().indexOf('C'))) { r.swapDimensions(newOrder); } r.setOutputOrder(newOrder); } catch (FormatException e) { LOGGER.debug("", e); } catch (IOException e) { LOGGER.debug("", e); } }
public void configureReaderPostInit() { if (swapOrder != null) dimSwapper.swapDimensions(swapOrder); if (shuffleOrder != null) dimSwapper.setOutputOrder(shuffleOrder); }
protected int reorder(int no) { if (getInputOrder() == null) return no; return FormatTools.getReorderedIndex(getInputOrder(), getDimensionOrder(), getSizeZ(), getEffectiveSizeC(), getSizeT(), getImageCount(), no); }
/** * Tests the interactions of setting output and input orders. */ @Test(dataProvider="swapper") public void testInputOutputOrdering(DimensionSwapper swapper) { swapper.setOutputOrder(NEW_ORDER); swapper.swapDimensions(NEW_ORDER); // output order should be updated assertEquals(swapper.getDimensionOrder().equals(NEW_ORDER), true); // dimension sizes should be updated assertEquals(swapper.getSizeZ(), SIZE_T); assertEquals(swapper.getSizeC(), SIZE_Z); assertEquals(swapper.getSizeT(), SIZE_C); }
swap.setId(in); if (series != null) { swap.setSeries(((Integer) series.getValue()).intValue() - 1); String order = swap.getDimensionOrder(); swap.swapDimensions(order); int internalZ = includeZ.isSelected() ? swap.getSizeZ() : 1; int internalT = includeT.isSelected() ? swap.getSizeT() : 1; int internalC = includeC.isSelected() ? swap.getEffectiveSizeC() : 1; int externalZ = includeZ.isSelected() ? 1 : swap.getSizeZ(); int externalT = includeT.isSelected() ? 1 : swap.getSizeT(); int externalC = includeC.isSelected() ? 1 : swap.getEffectiveSizeC(); progress.setMaximum(2 * swap.getImageCount()); int type = swap.getPixelType(); writer.setId(out); if (force && !writer.isSupportedType(type)) { progress.setValue(2 * (plane + 1)); plane++; int ndx = swap.getIndex(zPos, cPos, tPos); if (force && !writer.isSupportedType(swap.getPixelType())) { int pixelType = 0; switch (type) {
FormatTools.assertId(getCurrentFile(), true, 2); String oldOrder = getInputOrder(); if (order.equals(oldOrder)) return; dims[oldX] = getSizeX(); dims[oldY] = getSizeY(); dims[oldZ] = getSizeZ(); dims[oldC] = getSizeC(); dims[oldT] = getSizeT(); moduli[oldZ - 2] = getModuloZ(); moduli[oldC - 2] = getModuloC(); moduli[oldT - 2] = getModuloT(); SwappableMetadata ms = (SwappableMetadata) core.get(getCoreIndex()); MetadataStore store = getMetadataStore(); MetadataTools.populatePixels(store, this);
@DataProvider(name = "swapper") public Object[][] createDimSwapper() { Location.mapId(TEST_FILE, TEST_FILE); DimensionSwapper swapper = new DimensionSwapper(); try { swapper.setId(TEST_FILE); } catch (FormatException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } swapper.setOutputOrder(OUTPUT_ORDER); return new Object[][]{{swapper}}; }
/** Converts the given reader into a DimensionSwapper, wrapping if needed. */ public static DimensionSwapper makeDimensionSwapper(IFormatReader r) { if (r instanceof DimensionSwapper) return (DimensionSwapper) r; return new DimensionSwapper(r); }
if (posZ[0] < r.getSizeZ() && posC[0] < r.getSizeC() && posT[0] < r.getSizeT()) if (r.isRGB() && (posC[0] * r.getRGBChannelCount() >= lenC[sno][0])) { posC[0] /= lenC[sno][0];
private void updateLabels(String pattern) { try { swap.setId(pattern); String z = zLabel.getText(); z = z.substring(0, z.indexOf('<')); z += "<1-" + swap.getSizeZ() + ">"; zLabel.setText(z); String t = tLabel.getText(); t = t.substring(0, t.indexOf('<')); t += "<1-" + swap.getSizeT() + ">"; tLabel.setText(t); String c = cLabel.getText(); c = c.substring(0, c.indexOf('<')); c += "<1-" + swap.getEffectiveSizeC() + ">"; cLabel.setText(c); includeZ.setEnabled(true); includeT.setEnabled(true); includeC.setEnabled(true); } catch (FormatException exc) { LOGGER.info("", exc); } catch (IOException exc) { LOGGER.info("", exc); } }
((DimensionSwapper) reader).swapDimensions(guesser.getAdjustedOrder()); ((DimensionSwapper) reader).unwrap(files[0]).getClass();
for (int i=0; i<readers.length; i++) { try { readers[i].setId(f[i]); String[] used = readers[i].getUsedFiles(); for (String file : used) { String path = new Location(file).getAbsolutePath(); files.add(path); readers[i].close();
swap.setId(pattern); if (swap.getSeriesCount() > 1 && series == null) { JLabel seriesLabel = new JLabel("Series: "); series = new JSpinner(new SpinnerNumberModel(1, 1, swap.getSeriesCount(), 1)); series.addChangeListener(this); seriesRow.add(seriesLabel); new Integer(swap.getSeriesCount())); pack(); else if (swap.getSeriesCount() == 1 && series != null) { seriesRow.remove(series); series = null;
final String stackOrder = dimSwapper.getDimensionOrder(); final int zSize = imp.getNSlices(); final int cSize = imp.getNChannels();
/** * Tests the results of setting the output order. */ @Test(dataProvider="swapper") public void testOutputOrdering(DimensionSwapper swapper) { // set output order swapper.setOutputOrder(NEW_ORDER); // output order should be updated assertEquals(swapper.getDimensionOrder().equals(NEW_ORDER), true); // dimension sizes should be unchanged assertEquals(swapper.getSizeZ(), SIZE_Z); assertEquals(swapper.getSizeC(), SIZE_C); assertEquals(swapper.getSizeT(), SIZE_T); }
swap.setId(in); if (series != null) { swap.setSeries(((Integer) series.getValue()).intValue() - 1); String order = swap.getDimensionOrder(); swap.swapDimensions(order); int internalZ = includeZ.isSelected() ? swap.getSizeZ() : 1; int internalT = includeT.isSelected() ? swap.getSizeT() : 1; int internalC = includeC.isSelected() ? swap.getEffectiveSizeC() : 1; int externalZ = includeZ.isSelected() ? 1 : swap.getSizeZ(); int externalT = includeT.isSelected() ? 1 : swap.getSizeT(); int externalC = includeC.isSelected() ? 1 : swap.getEffectiveSizeC(); progress.setMaximum(2 * swap.getImageCount()); int type = swap.getPixelType(); writer.setId(out); if (force && !writer.isSupportedType(type)) { progress.setValue(2 * (plane + 1)); plane++; int ndx = swap.getIndex(zPos, cPos, tPos); if (force && !writer.isSupportedType(swap.getPixelType())) { int pixelType = 0; switch (type) {
FormatTools.assertId(getCurrentFile(), true, 2); String oldOrder = getInputOrder(); if (order.equals(oldOrder)) return; dims[oldX] = getSizeX(); dims[oldY] = getSizeY(); dims[oldZ] = getSizeZ(); dims[oldC] = getSizeC(); dims[oldT] = getSizeT(); moduli[oldZ - 2] = getModuloZ(); moduli[oldC - 2] = getModuloC(); moduli[oldT - 2] = getModuloT(); SwappableMetadata ms = (SwappableMetadata) core.get(getCoreIndex()); MetadataStore store = getMetadataStore(); MetadataTools.populatePixels(store, this);
protected int reorder(int no) { if (getInputOrder() == null) return no; return FormatTools.getReorderedIndex(getInputOrder(), getDimensionOrder(), getSizeZ(), getEffectiveSizeC(), getSizeT(), getImageCount(), no); }
/** Performed following ImportStep.DIM_ORDER notification. */ private void initializeDimOrder() { final int seriesCount = getSeriesCount(); final String stackOrder = getStackOrder(); for (int s=0; s<seriesCount; s++) { reader.setSeries(s); // set input order String dimOrder = options.getInputOrder(s); if (dimOrder != null) dimensionSwapper.swapDimensions(dimOrder); // set output order getDimensionSwapper().setOutputOrder(stackOrder); try { DimensionOrder order = DimensionOrder.fromString(stackOrder); getOMEMetadata().setPixelsDimensionOrder(order, s); } catch (EnumerationException e) { } } }