public class LeicaReader extends FormatReader
Modifier and Type | Class and Description |
---|---|
(package private) class |
LeicaReader.Detector |
Modifier and Type | Field and Description |
---|---|
private List<Integer> |
activeChannelIndices |
private static Integer |
CHANDESC |
private Color[][] |
channelColor |
private List[] |
channelNames |
private boolean[][] |
cutInPopulated |
private boolean[][] |
cutOutPopulated |
private static String |
DATE_FORMAT
Format for dates.
|
private List<LeicaReader.Detector> |
detectors |
private static Integer |
DIMDESCR |
private static com.google.common.collect.ImmutableMap<Integer,String> |
DIMENSION_NAMES |
private List[] |
emWaves |
private static Integer |
EXPERIMENT |
private double[] |
exposureTime |
private List[] |
exWaves |
private int |
fileLength
Length of each file name.
|
protected List<String>[] |
files
Array of image file names.
|
private boolean[][] |
filterRefPopulated |
private static Integer |
FILTERSET |
protected IFDList |
headerIFDs
Array of IFD-like structures containing metadata.
|
protected IFDList |
ifds |
private static Integer |
IMAGES |
private int |
lastPlane |
static String[] |
LEI_SUFFIX |
private static int |
LEICA_MAGIC_TAG
All Leica TIFFs have this tag.
|
private String |
leiFilename
Name of current LEI file
|
private static org.slf4j.Logger |
LOGGER |
private static 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 Integer |
SCANNERSET |
private static Integer |
SEQ_FILTERSET |
private static int |
SEQ_FILTERSET_END |
private static Integer |
SEQ_SCANNERSET |
private static int |
SEQ_SCANNERSET_END |
private boolean |
sequential |
private static Integer |
SEQUENTIALSET |
private static Integer |
SERIES
IFD tags.
|
private List<String> |
seriesDescriptions |
private List<String> |
seriesNames |
protected MinimalTiffReader |
tiff
Helper readers.
|
private int[] |
tileHeight |
private int[] |
tileWidth |
private static Integer |
TIMEINFO |
private 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(String id)
Returns an int indicating that we cannot, must, or might group the files
in a given dataset.
|
private String |
findLEIFile(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.
|
String[] |
getSeriesUsedFiles(boolean noPixels)
Returns an array of filenames needed to open the current series.
|
private String |
getString(boolean doubleLength) |
private String |
getString(int len) |
private String[] |
getTIFFList() |
protected void |
initFile(String id)
Initializes the given file (parsing header information, etc.).
|
boolean |
isSingleFile(String id)
Returns true if this is a single-file format.
|
boolean |
isThisType(RandomAccessInputStream stream)
Checks if the given stream is a valid stream for this file format.
|
boolean |
isThisType(String name,
boolean open)
Checks if a file matches the type of this format reader.
|
private static com.google.common.collect.ImmutableMap<Integer,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(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, 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
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 String[] LEI_SUFFIX
private static final int LEICA_MAGIC_TAG
private static final String DATE_FORMAT
private static final Integer SERIES
private static final Integer IMAGES
private static final Integer DIMDESCR
private static final Integer FILTERSET
private static final Integer TIMEINFO
private static final Integer SCANNERSET
private static final Integer EXPERIMENT
private static final Integer LUTDESC
private static final Integer CHANDESC
private static final Integer SEQUENTIALSET
private static final Integer SEQ_SCANNERSET
private static final 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<Integer,String> DIMENSION_NAMES
protected IFDList ifds
protected IFDList headerIFDs
protected MinimalTiffReader tiff
private int numSeries
private String leiFilename
private int fileLength
private boolean[] valid
private String[][] timestamps
private int lastPlane
private int nameLength
private double[][] physicalSizes
private double[] pinhole
private double[] exposureTime
private int nextDetector
private int nextChannel
private boolean sequential
private List[] channelNames
private List[] emWaves
private List[] exWaves
private boolean[][] cutInPopulated
private boolean[][] cutOutPopulated
private boolean[][] filterRefPopulated
private List<LeicaReader.Detector> detectors
private int[] tileWidth
private int[] tileHeight
private Color[][] channelColor
public boolean isSingleFile(String id) throws FormatException, IOException
IFormatReader
isSingleFile
in interface IFormatReader
isSingleFile
in class FormatReader
FormatException
IOException
public boolean isThisType(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(RandomAccessInputStream stream) throws IOException
IFormatReader
isThisType
in interface IFormatReader
isThisType
in class FormatReader
IOException
public byte[][] get8BitLookupTable() throws FormatException, 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
IOException
public short[][] get16BitLookupTable() throws FormatException, 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
IOException
public int fileGroupOption(String id) throws FormatException, IOException
IFormatReader
fileGroupOption
in interface IFormatReader
fileGroupOption
in class FormatReader
FormatException
IOException
public byte[] openBytes(int no, byte[] buf, int x, int y, int w, int h) throws FormatException, 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.IOException
- if there was a problem reading the file.IFormatReader.openBytes(int, byte[], int, int, int, int)
public String[] getSeriesUsedFiles(boolean noPixels)
IFormatReader
getSeriesUsedFiles
in interface IFormatReader
getSeriesUsedFiles
in class FormatReader
public void close(boolean fileOnly) throws IOException
IFormatReader
Closeable.close()
.close
in interface IFormatReader
close
in class FormatReader
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(String id) throws FormatException, IOException
FormatReader
initFile
in class FormatReader
FormatException
- if a parsing error occurs processing the file.IOException
- if an I/O error occurs processing the fileprivate String findLEIFile(String baseFile) throws FormatException, IOException
FormatException
IOException
private String[] getTIFFList()
private void parseFilenames(int seriesIndex) throws IOException
IOException
private void parseSeriesTag() throws IOException
IOException
private void parseImageTag(int seriesIndex) throws IOException
IOException
private void parseDimensionTag(int seriesIndex) throws FormatException, IOException
FormatException
IOException
private void parseTimeTag(int seriesIndex) throws IOException
IOException
private void parseExperimentTag() throws IOException
IOException
private void parseLUT(int seriesIndex) throws IOException
IOException
private void parseChannelTag() throws IOException
IOException
private void parseInstrumentData(MetadataStore store, int blockNum) throws FormatException, IOException
FormatException
IOException
private boolean usedFile(String s)
private String getString(int len) throws IOException
IOException
private String getString(boolean doubleLength) throws IOException
IOException
Copyright © 2016 Open Microscopy Environment