public class LeicaReader extends FormatReader
Modifier and Type | Class and Description |
---|---|
(package private) class |
LeicaReader.Detector |
Modifier and Type | Field and Description |
---|---|
private java.util.List<java.lang.Integer> |
activeChannelIndices |
private static java.lang.Integer |
CHANDESC |
private ome.xml.model.primitives.Color[][] |
channelColor |
private java.util.List[] |
channelNames |
private boolean[][] |
cutInPopulated |
private boolean[][] |
cutOutPopulated |
private static java.lang.String |
DATE_FORMAT
Format for dates.
|
private java.util.List<LeicaReader.Detector> |
detectors |
private static java.lang.Integer |
DIMDESCR |
private static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> |
DIMENSION_NAMES |
private java.util.List[] |
emWaves |
private static java.lang.Integer |
EXPERIMENT |
private double[] |
exposureTime |
private java.util.List[] |
exWaves |
private int |
fileLength
Length of each file name.
|
protected java.util.List<java.lang.String>[] |
files
Array of image file names.
|
private boolean[][] |
filterRefPopulated |
private static java.lang.Integer |
FILTERSET |
protected IFDList |
headerIFDs
Array of IFD-like structures containing metadata.
|
protected IFDList |
ifds |
private static java.lang.Integer |
IMAGES |
private int |
lastPlane |
static java.lang.String[] |
LEI_SUFFIX |
private static int |
LEICA_MAGIC_TAG
All Leica TIFFs have this tag.
|
private java.lang.String |
leiFilename
Name of current LEI file
|
private static org.slf4j.Logger |
LOGGER |
private static java.lang.Integer |
LUTDESC |
private int |
nameLength |
private int |
nextChannel |
private int |
nextDetector |
private int |
numSeries
Number of series in the file.
|
private double[][] |
physicalSizes |
private double[] |
pinhole |
private static java.lang.Integer |
SCANNERSET |
private static java.lang.Integer |
SEQ_FILTERSET |
private static int |
SEQ_FILTERSET_END |
private static java.lang.Integer |
SEQ_SCANNERSET |
private static int |
SEQ_SCANNERSET_END |
private boolean |
sequential |
private static java.lang.Integer |
SEQUENTIALSET |
private static java.lang.Integer |
SERIES
IFD tags.
|
private java.util.List<java.lang.String> |
seriesDescriptions |
private java.util.List<java.lang.String> |
seriesNames |
protected MinimalTiffReader |
tiff
Helper readers.
|
private int[] |
tileHeight |
private int[] |
tileWidth |
private static java.lang.Integer |
TIMEINFO |
private java.lang.String[][] |
timestamps |
private boolean[] |
valid |
core, coreIndex, datasetDescription, domains, filterMetadata, flattenedResolutions, group, hasCompanionFiles, in, indexedAsRGB, metadata, metadataStore, normalizeData, resolution, saveOriginalMetadata, series, suffixNecessary, suffixSufficient, THUMBNAIL_DIMENSION
COMPRESSION_SUFFIXES, currentId, format, metadataOptions, suffixes
CAN_GROUP, CANNOT_GROUP, MUST_GROUP
Constructor and Description |
---|
LeicaReader()
Constructs a new Leica reader.
|
Modifier and Type | Method and Description |
---|---|
void |
close(boolean fileOnly)
Closes the currently open file.
|
int |
fileGroupOption(java.lang.String id)
Returns an indication of whether the files in a multi-file dataset can
be handled individually.
|
private java.lang.String |
findLEIFile(java.lang.String baseFile)
Find the .lei file that belongs to the same dataset as the given file.
|
short[][] |
get16BitLookupTable()
Gets the 16-bit color lookup table associated with
the most recently opened image.
|
byte[][] |
get8BitLookupTable()
Gets the 8-bit color lookup table associated with
the most recently opened image.
|
int |
getOptimalTileHeight()
Returns the optimal sub-image height for use with openBytes.
|
int |
getOptimalTileWidth()
Returns the optimal sub-image width for use with openBytes.
|
java.lang.String[] |
getSeriesUsedFiles(boolean noPixels)
Returns an array of filenames needed to open the current series.
|
private java.lang.String |
getString(boolean doubleLength) |
private java.lang.String |
getString(int len) |
private java.lang.String[] |
getTIFFList() |
protected void |
initFile(java.lang.String id)
Initializes the given file (parsing header information, etc.).
|
boolean |
isSingleFile(java.lang.String id)
Returns true if the named file is expected to be the only
file in the dataset.
|
boolean |
isThisType(loci.common.RandomAccessInputStream stream)
Checks if the given stream is a valid stream for this file format.
|
boolean |
isThisType(java.lang.String name,
boolean open)
Checks if a file matches the type of this format reader.
|
private static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> |
makeDimensionTable() |
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 void |
parseChannelTag() |
private void |
parseDimensionTag(int seriesIndex) |
private void |
parseExperimentTag() |
private void |
parseFilenames(int seriesIndex) |
private void |
parseImageTag(int seriesIndex) |
private void |
parseInstrumentData(MetadataStore store,
int blockNum) |
private void |
parseLUT(int seriesIndex) |
private void |
parseSeriesTag() |
private void |
parseTimeTag(int seriesIndex) |
private boolean |
usedFile(java.lang.String s) |
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, getBinning, getBitsPerPixel, getCompression, getContrastMethod, getCoreIndex, getCoreMetadataList, getCorrection, getCurrentCore, getCurrentFile, getDatasetStructureDescription, getDetectorType, getDimensionOrder, getDimensionOrder, getDomains, getEffectiveSizeC, getExperimentType, getFilamentType, 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, getUnderlyingReaders, getUsedFiles, getUsedFiles, getZCTCoords, getZCTModuloCoords, hasCompanionFiles, hasFlattenedResolutions, isFalseColor, isGroupFiles, isIndexed, isInterleaved, isInterleaved, isLittleEndian, isMetadataComplete, isMetadataFiltered, isNormalized, isOrderCertain, isOriginalMetadataPopulated, isRGB, isThisType, isThisType, isThumbnailSeries, isUsedFile, makeFilterMetadata, openBytes, openBytes, openBytes, openPlane, openThumbBytes, readPlane, readPlane, reopenFile, seriesToCoreIndex, setCoreIndex, setFlattenedResolutions, setGroupFiles, setId, setMetadataFiltered, setMetadataStore, setNormalized, setOriginalMetadataPopulated, setResolution, setSeries, updateMetadataLists
checkSuffix, checkSuffix, getFormat, getMetadataOptions, getNativeDataType, getSuffixes, getSupportedMetadataLevels, setMetadataOptions
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getFormat, getNativeDataType, getSuffixes
getMetadataOptions, getSupportedMetadataLevels, setMetadataOptions
private static final org.slf4j.Logger LOGGER
public static final java.lang.String[] LEI_SUFFIX
private static final int LEICA_MAGIC_TAG
private static final java.lang.String DATE_FORMAT
private static final java.lang.Integer SERIES
private static final java.lang.Integer IMAGES
private static final java.lang.Integer DIMDESCR
private static final java.lang.Integer FILTERSET
private static final java.lang.Integer TIMEINFO
private static final java.lang.Integer SCANNERSET
private static final java.lang.Integer EXPERIMENT
private static final java.lang.Integer LUTDESC
private static final java.lang.Integer CHANDESC
private static final java.lang.Integer SEQUENTIALSET
private static final java.lang.Integer SEQ_SCANNERSET
private static final java.lang.Integer SEQ_FILTERSET
private static final int SEQ_SCANNERSET_END
private static final int SEQ_FILTERSET_END
private static final com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> DIMENSION_NAMES
protected IFDList ifds
protected IFDList headerIFDs
protected MinimalTiffReader tiff
protected java.util.List<java.lang.String>[] files
private int numSeries
private java.lang.String leiFilename
private int fileLength
private boolean[] valid
private java.lang.String[][] timestamps
private java.util.List<java.lang.String> seriesNames
private java.util.List<java.lang.String> seriesDescriptions
private int lastPlane
private int nameLength
private double[][] physicalSizes
private double[] pinhole
private double[] exposureTime
private int nextDetector
private int nextChannel
private java.util.List<java.lang.Integer> activeChannelIndices
private boolean sequential
private java.util.List[] channelNames
private java.util.List[] emWaves
private java.util.List[] exWaves
private boolean[][] cutInPopulated
private boolean[][] cutOutPopulated
private boolean[][] filterRefPopulated
private java.util.List<LeicaReader.Detector> detectors
private int[] tileWidth
private int[] tileHeight
private ome.xml.model.primitives.Color[][] channelColor
public boolean isSingleFile(java.lang.String id) throws FormatException, java.io.IOException
IFormatReader
isSingleFile
in interface IFormatReader
isSingleFile
in class FormatReader
FormatException
java.io.IOException
public boolean isThisType(java.lang.String name, boolean open)
FormatReader
FormatReader.isThisType(RandomAccessInputStream)
.isThisType
in interface IFormatReader
isThisType
in class FormatReader
open
- If true, and the file extension is insufficient to determine
the file type, the (existing) file is opened for further analysis.public boolean isThisType(loci.common.RandomAccessInputStream stream) throws java.io.IOException
IFormatReader
isThisType
in interface IFormatReader
isThisType
in class FormatReader
stream
- A RandomAccessInputStream representing the file to check.
The first byte in the stream is assumed to be the first byte
in the file.java.io.IOException
public byte[][] get8BitLookupTable() throws FormatException, java.io.IOException
IFormatReader
IFormatReader.isIndexed()
returns
false, then this may return null. Also, if IFormatReader.getPixelType()
returns
anything other than FormatTools.INT8
or FormatTools.UINT8
,
this method will return null.get8BitLookupTable
in interface IFormatReader
get8BitLookupTable
in class FormatReader
FormatException
java.io.IOException
public short[][] get16BitLookupTable() throws FormatException, java.io.IOException
IFormatReader
IFormatReader.isIndexed()
returns
false, then this may return null. Also, if IFormatReader.getPixelType()
returns
anything other than FormatTools.INT16
or FormatTools.UINT16
, this method will return null.get16BitLookupTable
in interface IFormatReader
get16BitLookupTable
in class FormatReader
FormatException
java.io.IOException
public int fileGroupOption(java.lang.String id) throws FormatException, java.io.IOException
IFormatReader
fileGroupOption
in interface IFormatReader
fileGroupOption
in class FormatReader
id
- a file in the multi-file datasetFormatTools.MUST_GROUP
indicates that the
files cannot be handled separately; the reader will always detect and
read all files in the dataset. FormatTools.CAN_GROUP
indicates
that the files may be handled separately, but file grouping must then
be disabled via IFormatReader.setGroupFiles(boolean)
.
FormatTools.CANNOT_GROUP
indicates that the files must be handled
separately; the reader will not attempt to read all files in the dataset
(this is rare).FormatException
java.io.IOException
FormatTools.MUST_GROUP
,
FormatTools.CAN_GROUP
,
FormatTools.CANNOT_GROUP
public byte[] openBytes(int no, byte[] buf, int x, int y, int w, int h) throws FormatException, java.io.IOException
IFormatReader
openBytes
in interface IFormatReader
openBytes
in class FormatReader
no
- the image index within the file.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-imagebuf
for convenience.FormatException
- if there was a problem parsing the metadata of the
file.java.io.IOException
- if there was a problem reading the file.IFormatReader.openBytes(int, byte[], int, int, int, int)
public java.lang.String[] getSeriesUsedFiles(boolean noPixels)
IFormatReader
IFormatHandler.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.getSeriesUsedFiles
in interface IFormatReader
getSeriesUsedFiles
in class FormatReader
public void close(boolean fileOnly) throws java.io.IOException
IFormatReader
Closeable.close()
.close
in interface IFormatReader
close
in class FormatReader
java.io.IOException
public int getOptimalTileWidth()
IFormatReader
getOptimalTileWidth
in interface IFormatReader
getOptimalTileWidth
in class FormatReader
public int getOptimalTileHeight()
IFormatReader
getOptimalTileHeight
in interface IFormatReader
getOptimalTileHeight
in class FormatReader
protected void initFile(java.lang.String id) throws FormatException, java.io.IOException
FormatReader
initFile
in class FormatReader
FormatException
- if a parsing error occurs processing the file.java.io.IOException
- if an I/O error occurs processing the fileprivate java.lang.String findLEIFile(java.lang.String baseFile) throws FormatException, java.io.IOException
FormatException
java.io.IOException
private java.lang.String[] getTIFFList()
private void parseFilenames(int seriesIndex) throws java.io.IOException
java.io.IOException
private void parseSeriesTag() throws java.io.IOException
java.io.IOException
private void parseImageTag(int seriesIndex) throws java.io.IOException
java.io.IOException
private void parseDimensionTag(int seriesIndex) throws FormatException, java.io.IOException
FormatException
java.io.IOException
private void parseTimeTag(int seriesIndex) throws java.io.IOException
java.io.IOException
private void parseExperimentTag() throws java.io.IOException
java.io.IOException
private void parseLUT(int seriesIndex) throws java.io.IOException
java.io.IOException
private void parseChannelTag() throws java.io.IOException
java.io.IOException
private void parseInstrumentData(MetadataStore store, int blockNum) throws FormatException, java.io.IOException
FormatException
java.io.IOException
private boolean usedFile(java.lang.String s)
private java.lang.String getString(int len) throws java.io.IOException
java.io.IOException
private java.lang.String getString(boolean doubleLength) throws java.io.IOException
java.io.IOException
private static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> makeDimensionTable()
Copyright © 2020 Open Microscopy Environment