Package loci.formats.in
Class SDTReader
java.lang.Object
loci.formats.FormatHandler
loci.formats.FormatReader
loci.formats.in.SDTReader
- All Implemented Interfaces:
Closeable,AutoCloseable,ICompressedTileReader,IFormatHandler,IFormatReader,IMetadataConfigurable,IPyramidHandler
SDTReader is the file format reader for
Becker & Hickl SPC-Image SDT files.
- Author:
- Curtis Rueden ctrueden at wisc.edu Please Note: This format holds FLIM data arranged so that each decay is stored contiguously. Therefore, as in other FLIM format readers e.g. SDTReader.java, on the first call to openBytes the whole data cube (x, y, t) (NB actually t, not real-time T) is loaded from the file and buffered. On further calls to openBytes the appropriate 2D (x, y) plane (timebin) is returned from this buffer. This is in the interest of significantly improved performance when all the planes are requested one after another. There will be a performance cost if a single plane is requested but this is highly unlikely for FLIM data. In order to limit the size of the buffer, beyond a certain size threshold only a subset of planes (a Block) are retained in the buffer.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intNo of timeBins pre-loaded as a blockprotected intNumber of spectral channels.protected intBlock of time bins currently stored for faster loading.protected byte[]protected SDTInfoObject containing SDT header information.protected booleanWhether to combine lifetime bins into single intensity image planes.protected booleanWhether to pre-load all lifetime bins for faster loading.protected intprotected intprotected intNumber of time bins in lifetime histogram.Fields 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.intGets the number of spectral channels.getInfo()Gets object containing SDT header information.intGets the number of bins in the lifetime histogram.protected voidInitializes the given file (parsing header information, etc.).booleanGets whether the reader is combining each lifetime histogram into a summed intensity image plane.booleanisInterleaved(int subC) Gets whether or not the given sub-channel is interleaved.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 voidreadPixels(byte[] rowBuf, loci.common.RandomAccessInputStream in, ZipInputStream codec, long skip) voidsetIntensity(boolean intensity) Toggles whether the reader should return intensity data only (the sum of each lifetime histogram).voidsetPreLoad(boolean preLoad) Toggles whether the reader should pre-load data for increased performance.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, fileGroupOption, flattenHashtables, get16BitLookupTable, get8BitLookupTable, 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, getOptimalTileHeight, getOptimalTileWidth, getPixelType, getPixelType, getPossibleDomains, getPulse, getRequiredDirectories, getResolution, getResolutionCount, getRGBChannelCount, getRotationTransform, getSeries, getSeriesCount, getSeriesMeta, getSeriesMetadata, getSeriesMetadataValue, getSeriesUsedFiles, getSeriesUsedFiles, getSizeC, getSizeT, getSizeX, getSizeY, getSizeZ, getThumbSizeX, getThumbSizeY, getTileColumns, getTileRows, getUnderlyingReaders, getUsedFiles, getUsedFiles, getZCTCoords, getZCTModuloCoords, hasCompanionFiles, hasFlattenedResolutions, isFalseColor, isGroupFiles, isIndexed, isInterleaved, isLittleEndian, isMetadataComplete, isMetadataFiltered, isNormalized, isOrderCertain, isOriginalMetadataPopulated, isRGB, isSingleFile, isThisType, 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
-
info
Object containing SDT header information. -
timeBins
protected int timeBinsNumber of time bins in lifetime histogram. -
channels
protected int channelsNumber of spectral channels. -
intensity
protected boolean intensityWhether to combine lifetime bins into single intensity image planes. -
preLoad
protected boolean preLoadWhether to pre-load all lifetime bins for faster loading. -
storedChannel
protected int storedChannel -
storedSeries
protected int storedSeries -
dataStore
protected byte[] dataStore -
currentBlock
protected int currentBlockBlock of time bins currently stored for faster loading. -
blockLength
protected int blockLengthNo of timeBins pre-loaded as a block
-
-
Constructor Details
-
SDTReader
public SDTReader()Constructs a new SDT reader.
-
-
Method Details
-
setIntensity
public void setIntensity(boolean intensity) Toggles whether the reader should return intensity data only (the sum of each lifetime histogram). -
setPreLoad
public void setPreLoad(boolean preLoad) Toggles whether the reader should pre-load data for increased performance. -
isIntensity
public boolean isIntensity()Gets whether the reader is combining each lifetime histogram into a summed intensity image plane. -
getTimeBinCount
public int getTimeBinCount()Gets the number of bins in the lifetime histogram. -
getChannelCount
public int getChannelCount()Gets the number of spectral channels. -
getInfo
Gets object containing SDT header information. -
isInterleaved
public boolean isInterleaved(int subC) Description copied from interface:IFormatReaderGets whether or not the given sub-channel is interleaved. This method exists because some data with multiple rasterized sub-dimensions within C have one sub-dimension interleaved, and the other not—e.g.,SDTReaderhandles spectral-lifetime data with interleaved lifetime bins and non-interleaved spectral channels.- Specified by:
isInterleavedin interfaceIFormatReader- Overrides:
isInterleavedin 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
-
readPixels
private void readPixels(byte[] rowBuf, loci.common.RandomAccessInputStream in, ZipInputStream codec, long skip) throws IOException - Throws:
IOException
-