Package loci.formats.in
Class OIRReader
java.lang.Object
loci.formats.FormatHandler
loci.formats.FormatReader
loci.formats.in.OIRReader
- All Implemented Interfaces:
Closeable,AutoCloseable,ICompressedTileReader,IFormatHandler,IFormatReader,IMetadataConfigurable,IPyramidHandler
OIRReader is the file format reader for Olympus .oir files.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) classprivate static classThis is a class that wraps three numbers c,z,t and an object can be used as a key in a hashmap.(package private) class(package private) class(package private) class(package private) class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ome.xml.model.primitives.Timestampprivate Stringprivate intprivate static final intprivate ArrayList<OIRReader.Channel> private final Map<OIRReader.CZTKey, OIRReader.PixelBlock[]> private intprivate ArrayList<OIRReader.Detector> private static final Stringprivate ArrayList<OIRReader.Laser> private intprivate intprivate intprivate ArrayList<OIRReader.Objective> private intprivate ome.units.quantity.Lengthprivate ome.units.quantity.Lengthprivate ome.units.quantity.Lengthprivate HashMap<String, OIRReader.PixelBlock> private Doubleprivate Doubleprivate Doubleprivate DoubleFields inherited from class loci.formats.FormatReader
core, coreIndex, datasetDescription, domains, fillColor, filterMetadata, flattenedResolutions, group, hasCompanionFiles, in, indexedAsRGB, metadata, metadataStore, normalizeData, resolution, saveOriginalMetadata, series, suffixNecessary, suffixSufficient, THUMBNAIL_DIMENSIONFields inherited from class loci.formats.FormatHandler
COMPRESSION_SUFFIXES, currentId, format, LOGGER, metadataOptions, suffixesFields inherited from interface loci.formats.IFormatReader
CAN_GROUP, CANNOT_GROUP, MUST_GROUP -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose(boolean fileOnly) Closes the currently open file.private voidcopyPixelBlock(OIRReader.PixelBlock block, byte[] buf, int offsetBuf, int offsetBlock, int nBytesPerLinesBuf, int nBytesPerLineBlock, int nLines) intReturns an indication of whether the files in a multi-file dataset can be handled individually.private voidfindNextXMLBlock(loci.common.RandomAccessInputStream s) short[][]Gets the 16-bit color lookup table associated with the most recently opened image.byte[][]Gets the 8-bit color lookup table associated with the most recently opened image.private intprivate intprivate ElementgetFirstChild(Element root, String tag) private intintReturns the optimal sub-image height for use with openBytes.intReturns the optimal sub-image width for use with openBytes.String[]getSeriesUsedFiles(boolean noPixels) Returns an array of filenames needed to open the current series.private intprivate intprotected voidInitializes the given file (parsing header information, etc.).private voidinsertChannel(int index, OIRReader.Channel c) Insert the given Channel into the list of channels, at the given index.private booleanisCurrentFile(String file) booleanisSingleFile(String id) Returns true if the named file is expected to be the only file in the dataset.booleanisThisType(loci.common.RandomAccessInputStream stream) Checks if the given stream is a valid stream for this file format.byte[]openBytes(int no, byte[] buf, int x, int y, int w, int h) Obtains a sub-image of the specified image plane into a pre-allocated byte array.private voidprivate voidparseChannel(Element channel, boolean appendChannels) private voidparseFrameProperties(Element root) private voidparseImageProperties(Element root) private voidprivate voidparseOriginalMetadata(Node root) private voidprivate voidreadPixelsFile(String file, loci.common.RandomAccessInputStream s) private voidreadXMLBlock(String file, loci.common.RandomAccessInputStream s) private booleanskipPixelBlock(String currentFile, loci.common.RandomAccessInputStream s, boolean store) Methods inherited from class loci.formats.FormatReader
addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMeta, addGlobalMetaList, addMeta, addMetaList, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMeta, addSeriesMetaList, close, coreIndexToSeries, flattenHashtables, getAcquisitionMode, getAdvancedSeriesUsedFiles, getAdvancedUsedFiles, getArcType, getAvailableOptions, getBinning, getBitsPerPixel, getCompression, getContrastMethod, getCoreIndex, getCoreMetadataList, getCorrection, getCurrentCore, getCurrentFile, getDatasetStructureDescription, getDetectorType, getDimensionOrder, getDimensionOrder, getDomains, getEffectiveSizeC, getExperimentType, getFilamentType, getFillColor, getFillRule, getFilterType, getFontFamily, getFontStyle, getGlobalMeta, getGlobalMetadata, getIlluminationType, getImageCount, getImmersion, getIndex, getIndex, getLaserMedium, getLaserType, getMarker, getMedium, getMetadataStore, getMetadataStoreRoot, getMetadataValue, getMicrobeamManipulationType, getMicroscopeType, getModuloC, getModuloT, getModuloZ, getNamingConvention, getPixelType, getPixelType, getPossibleDomains, getPulse, getRequiredDirectories, getResolution, getResolutionCount, getRGBChannelCount, getRotationTransform, getSeries, getSeriesCount, getSeriesMeta, getSeriesMetadata, getSeriesMetadataValue, getSeriesUsedFiles, getSizeC, getSizeT, getSizeX, getSizeY, getSizeZ, getThumbSizeX, getThumbSizeY, getTileColumns, getTileRows, getUnderlyingReaders, getUsedFiles, getUsedFiles, getZCTCoords, getZCTModuloCoords, hasCompanionFiles, hasFlattenedResolutions, isFalseColor, isGroupFiles, isIndexed, isInterleaved, isInterleaved, isLittleEndian, isMetadataComplete, isMetadataFiltered, isNormalized, isOrderCertain, isOriginalMetadataPopulated, isRGB, isThisType, isThisType, isThisType, isThumbnailSeries, isUsedFile, makeFilterMetadata, openBytes, openBytes, openBytes, openPlane, openThumbBytes, readPlane, readPlane, readPlane, reopenFile, seriesToCoreIndex, setCoreIndex, setFillColor, setFlattenedResolutions, setGroupFiles, setId, setMetadataFiltered, setMetadataStore, setNormalized, setOriginalMetadataPopulated, setResolution, setSeries, updateMetadataListsMethods inherited from class loci.formats.FormatHandler
checkSuffix, checkSuffix, getFormat, getMetadataOptions, getNativeDataType, getSuffixes, getSupportedMetadataLevels, setMetadataOptionsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface loci.formats.ICompressedTileReader
getTileCodec, getTileCodecOptions, openCompressedBytes, openCompressedBytesMethods inherited from interface loci.formats.IFormatHandler
getFormat, getNativeDataType, getSuffixesMethods inherited from interface loci.formats.IMetadataConfigurable
getMetadataOptions, getSupportedMetadataLevels, setMetadataOptions
-
Field Details
-
IDENTIFIER
- See Also:
-
BUFFER_SIZE
private static final int BUFFER_SIZE- See Also:
-
pixelBlocks
-
channels
-
lasers
-
detectors
-
objectives
-
physicalSizeX
private ome.units.quantity.Length physicalSizeX -
physicalSizeY
private ome.units.quantity.Length physicalSizeY -
physicalSizeZ
private ome.units.quantity.Length physicalSizeZ -
acquisitionDate
private ome.xml.model.primitives.Timestamp acquisitionDate -
defaultXMLSkip
private int defaultXMLSkip -
blocksPerPlane
private int blocksPerPlane -
cztToPixelBlocks
-
baseName
-
lastChannel
private int lastChannel -
optimalTileHeight
private int optimalTileHeight -
minZ
private int minZ -
minT
private int minT -
zStart
-
zStep
-
tStart
-
tStep
-
timestampAdjustments
-
-
Constructor Details
-
OIRReader
public OIRReader()Constructs a new OIR reader.
-
-
Method Details
-
fileGroupOption
Description copied from interface:IFormatReaderReturns an indication of whether the files in a multi-file dataset can be handled individually. This method is only useful for formats and datasets which contain multiple files.- Specified by:
fileGroupOptionin interfaceIFormatReader- Overrides:
fileGroupOptionin classFormatReader- Parameters:
id- a file in the multi-file dataset- Returns:
- an int indicating that we cannot, must, or might group the files.
A return value of
FormatTools.MUST_GROUPindicates that the files cannot be handled separately; the reader will always detect and read all files in the dataset.FormatTools.CAN_GROUPindicates that the files may be handled separately, but file grouping must then be disabled viaIFormatReader.setGroupFiles(boolean).FormatTools.CANNOT_GROUPindicates that the files must be handled separately; the reader will not attempt to read all files in the dataset (this is rare). - Throws:
FormatExceptionIOException- See Also:
-
isSingleFile
Description copied from interface:IFormatReaderReturns true if the named file is expected to be the only file in the dataset. For single-file formats, always returns true.- Specified by:
isSingleFilein interfaceIFormatReader- Overrides:
isSingleFilein classFormatReader- Throws:
FormatExceptionIOException
-
getSeriesUsedFiles
Description copied from interface:IFormatReaderReturns an array of filenames needed to open the current series. If the 'noPixels' flag is set, then only files that do not contain pixel data will be returned. The first element in the array is expected to be the path passed toIFormatHandler.setId(String), if appropriate based upon 'noPixels'. The remaining elements are expected to be in a consistent order; if a directory listing is necessary to build the list then it should be sorted first.- Specified by:
getSeriesUsedFilesin interfaceIFormatReader- Overrides:
getSeriesUsedFilesin classFormatReader
-
isThisType
Description copied from interface:IFormatReaderChecks if the given stream is a valid stream for this file format. The number of bytes read is format-dependent.- Specified by:
isThisTypein interfaceIFormatReader- Overrides:
isThisTypein classFormatReader- Parameters:
stream- A RandomAccessInputStream representing the file to check. The first byte in the stream is assumed to be the first byte in the file.- Returns:
- true if the file represented by the stream can be read by this reader; false otherwise.
- Throws:
IOException
-
get8BitLookupTable
Description copied from interface:IFormatReaderGets the 8-bit color lookup table associated with the most recently opened image. If no image planes have been opened, or ifIFormatReader.isIndexed()returns false, then this may return null. Also, ifIFormatReader.getPixelType()returns anything other thanFormatTools.INT8orFormatTools.UINT8, this method will return null.- Specified by:
get8BitLookupTablein interfaceIFormatReader- Overrides:
get8BitLookupTablein classFormatReader- Throws:
FormatExceptionIOException
-
get16BitLookupTable
Description copied from interface:IFormatReaderGets the 16-bit color lookup table associated with the most recently opened image. If no image planes have been opened, or ifIFormatReader.isIndexed()returns false, then this may return null. Also, ifIFormatReader.getPixelType()returns anything other thanFormatTools.INT16orFormatTools.UINT16, this method will return null.- Specified by:
get16BitLookupTablein interfaceIFormatReader- Overrides:
get16BitLookupTablein classFormatReader- Throws:
FormatExceptionIOException
-
getOptimalTileHeight
public int getOptimalTileHeight()Description copied from interface:IFormatReaderReturns the optimal sub-image height for use with openBytes.- Specified by:
getOptimalTileHeightin interfaceIFormatReader- Overrides:
getOptimalTileHeightin classFormatReader
-
getOptimalTileWidth
public int getOptimalTileWidth()Description copied from interface:IFormatReaderReturns the optimal sub-image width for use with openBytes.- Specified by:
getOptimalTileWidthin interfaceIFormatReader- Overrides:
getOptimalTileWidthin classFormatReader
-
openBytes
public byte[] openBytes(int no, byte[] buf, int x, int y, int w, int h) throws FormatException, IOException Description copied from interface:IFormatReaderObtains a sub-image of the specified image plane into a pre-allocated byte array.- Specified by:
openBytesin interfaceIFormatReader- Specified by:
openBytesin classFormatReader- Parameters:
no- the plane index within the current series.buf- a pre-allocated buffer.x- X coordinate of the upper-left corner of the sub-imagey- Y coordinate of the upper-left corner of the sub-imagew- width of the sub-imageh- height of the sub-image- Returns:
- the pre-allocated buffer
buffor convenience. - Throws:
FormatException- if there was a problem parsing the metadata of the file.IOException- if there was a problem reading the file.- See Also:
-
close
Description copied from interface:IFormatReaderCloses the currently open file. If the flag is set, this is all that happens; if unset, it is equivalent to callingCloseable.close().- Specified by:
closein interfaceIFormatReader- Overrides:
closein classFormatReader- Throws:
IOException
-
initFile
Description copied from class:FormatReaderInitializes the given file (parsing header information, etc.). Most subclasses should override this method to perform initialization operations such as parsing metadata.- Overrides:
initFilein classFormatReader- Throws:
FormatException- if a parsing error occurs processing the file.IOException- if an I/O error occurs processing the file
-
readPixelsFile
private void readPixelsFile(String file, loci.common.RandomAccessInputStream s) throws FormatException, IOException - Throws:
FormatExceptionIOException
-
findNextXMLBlock
- Throws:
IOException
-
readXMLBlock
private void readXMLBlock(String file, loci.common.RandomAccessInputStream s) throws FormatException, IOException - Throws:
FormatExceptionIOException
-
parseXML
private void parseXML(loci.common.RandomAccessInputStream s, String xml, long startFilePointer) throws FormatException, IOException - Throws:
FormatExceptionIOException
-
parseLUT
- Throws:
FormatException
-
parseFrameProperties
- Throws:
FormatException
-
parseImageProperties
- Throws:
FormatException
-
insertChannel
Insert the given Channel into the list of channels, at the given index. If the index is greater than the current list length, then the list will be expanded accordingly. -
parseChannel
-
parseAxis
-
parseOriginalMetadata
-
getFirstChild
-
skipPixelBlock
private boolean skipPixelBlock(String currentFile, loci.common.RandomAccessInputStream s, boolean store) throws IOException - Throws:
IOException
-
copyPixelBlock
private void copyPixelBlock(OIRReader.PixelBlock block, byte[] buf, int offsetBuf, int offsetBlock, int nBytesPerLinesBuf, int nBytesPerLineBlock, int nLines) throws IOException - Throws:
IOException
-
getZ
-
getT
-
getC
-
getBlock
-
getL
-
isCurrentFile
-