public class ZeissLSMReader extends FormatReader
Modifier and Type | Class and Description |
---|---|
(package private) class |
ZeissLSMReader.BeamSplitter |
(package private) class |
ZeissLSMReader.DataChannel |
(package private) class |
ZeissLSMReader.DetectionChannel |
(package private) class |
ZeissLSMReader.IlluminationChannel |
(package private) class |
ZeissLSMReader.Laser |
(package private) class |
ZeissLSMReader.Marker |
(package private) class |
ZeissLSMReader.Recording |
(package private) class |
ZeissLSMReader.SubBlock |
(package private) class |
ZeissLSMReader.Timer |
(package private) class |
ZeissLSMReader.Track |
Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.Integer,java.lang.String> |
acquiredDate |
private static int |
ANGLE |
private static int |
BEAM_SPLITTER_FILTER |
private static int |
BEAM_SPLITTER_FILTER_SET |
private static int |
BEZIER_WITH_ARROW |
private java.lang.String |
binning |
private static int |
CHANNEL_ACQUIRE |
private static int |
CHANNEL_AMPLIFIER_GAIN |
private static int |
CHANNEL_DETECTOR_GAIN |
private static int |
CHANNEL_FILTER |
private static int |
CHANNEL_FILTER_SET |
private static int |
CHANNEL_NAME |
private static int |
CHANNEL_PINHOLE_DIAMETER |
private ome.xml.model.primitives.Color[] |
channelColor |
private java.lang.String[][] |
channelNames |
private static int |
CIRCLE |
private static int |
CIRCLE_3POINT |
private static int |
CLOSED_ARROW |
private static int |
CLOSED_BEZIER |
private static int |
CLOSED_POLYLINE |
private static int |
DATA_CHANNEL_ACQUIRE |
private static int |
DATA_CHANNEL_NAME |
private int |
dimensionM |
private int |
dimensionP |
private static int |
ELLIPSE |
private java.util.List<IFDList> |
ifdsList |
private static int |
ILLUM_CHANNEL_ACQUIRE |
private static int |
ILLUM_CHANNEL_ATTENUATION |
private static int |
ILLUM_CHANNEL_NAME |
private static int |
ILLUM_CHANNEL_WAVELENGTH |
private int |
illuminations |
private java.util.List<java.lang.String> |
imageNames |
private boolean |
isSIM |
private static int |
LASER_ACQUIRE |
private static int |
LASER_NAME |
private static int |
LASER_POWER |
private static int |
LINE |
private java.lang.String[] |
lsmFilenames |
private byte[][][] |
lut |
static java.lang.String[] |
MDB_SUFFIX |
private static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> |
METADATA_KEYS |
private int |
nextDetectChannel |
private int |
nextDetector |
private int |
nextDichroic |
private int |
nextDichroicChannel |
private int |
nextFilter |
private int |
nextIllumChannel |
private int |
nextLaser |
private static int |
OPEN_ARROW |
private static int |
OPEN_BEZIER |
private static int |
OPEN_POLYLINE |
private double |
originX |
private double |
originY |
private double |
originZ |
private static int |
PALETTE |
private int |
phases |
private double |
pixelSizeX |
private double |
pixelSizeY |
private double |
pixelSizeZ |
private static int |
POLYLINE_ARROW |
private byte[] |
prevBuf |
private int |
prevChannel |
private int |
prevPlane |
private loci.common.Region |
prevRegion |
private static int |
RECORDING_CAMERA_BINNING |
private static int |
RECORDING_DESCRIPTION |
private static int |
RECORDING_NAME
Data types.
|
private static int |
RECORDING_OBJECTIVE |
private static int |
RECORDING_SAMPLE_0TIME |
private static int |
RECORDING_ZOOM |
private static int |
RECTANGLE |
private int |
rotations |
private static int |
SCALE_BAR |
private java.util.Map<java.lang.String,java.lang.Integer> |
seriesCounts |
private boolean |
splitPlanes |
private static int |
START_TIME |
private static int |
SUBBLOCK_BEAM_SPLITTER |
private static int |
SUBBLOCK_DATA_CHANNEL |
private static int |
SUBBLOCK_DETECTION_CHANNEL |
private static int |
SUBBLOCK_END |
private static int |
SUBBLOCK_ILLUMINATION_CHANNEL |
private static int |
SUBBLOCK_LASER |
private static int |
SUBBLOCK_MARKER |
private static int |
SUBBLOCK_RECORDING
Subblock types.
|
private static int |
SUBBLOCK_TIMER |
private static int |
SUBBLOCK_TRACK |
private static int |
TEXT
Drawing element types.
|
private TiffParser |
tiffParser |
private java.util.List<java.lang.Double> |
timestamps |
private int |
totalROIs |
private static int |
TRACK_ACQUIRE |
private static int |
TRACK_TIME_BETWEEN_STACKS |
private static int |
TYPE_ASCII |
private static int |
TYPE_BOOLEAN |
private static int |
TYPE_DATE |
private static int |
TYPE_LONG |
private static int |
TYPE_RATIONAL |
private static int |
TYPE_SUBBLOCK
Data types.
|
private java.lang.String |
userName |
private java.util.List<java.lang.Double> |
xCoordinates |
private java.util.List<java.lang.Double> |
yCoordinates |
private java.util.List<java.lang.Double> |
zCoordinates |
private static int |
ZEISS_ID
Tag identifying a Zeiss LSM file.
|
private double |
zoom |
core, coreIndex, datasetDescription, domains, filterMetadata, flattenedResolutions, group, hasCompanionFiles, in, indexedAsRGB, metadata, metadataStore, normalizeData, resolution, saveOriginalMetadata, series, suffixNecessary, suffixSufficient, THUMBNAIL_DIMENSION
COMPRESSION_SUFFIXES, currentId, format, LOGGER, metadataOptions, suffixes
CAN_GROUP, CANNOT_GROUP, MUST_GROUP
Constructor and Description |
---|
ZeissLSMReader()
Constructs a new Zeiss LSM reader.
|
Modifier and Type | Method and Description |
---|---|
void |
close(boolean fileOnly)
Closes the currently open file.
|
private static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> |
createKeys() |
int |
fileGroupOption(java.lang.String id)
Returns an indication of whether the files in a multi-file dataset can
be handled individually.
|
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.
|
private loci.common.RandomAccessInputStream |
getCZTag(IFD ifd) |
private int |
getEffectiveSeries(int currentSeries) |
private int |
getExtraSeries(java.lang.String file) |
private java.lang.String |
getLSMFileFromSeries(int currentSeries) |
private java.lang.String |
getMDBFile(java.lang.String id) |
int |
getOptimalTileHeight()
Returns the optimal sub-image height for use with openBytes.
|
int |
getOptimalWidth() |
private int |
getPosition(int currentSeries) |
java.lang.String[] |
getSeriesUsedFiles(boolean noPixels)
Returns an array of filenames needed to open the current series.
|
protected void |
initFile(java.lang.String id)
Initializes the given file (parsing header information, etc.).
|
protected void |
initMetadata(int series) |
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.
|
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 |
parseApplicationTags() |
private java.lang.String[] |
parseMDB(java.lang.String mdbFile)
Parse a .mdb file and return a list of referenced .lsm files.
|
protected void |
parseOverlays(int series,
long data,
java.lang.String suffix,
MetadataStore store)
Parses overlay-related fields.
|
protected void |
populateMetadataStore(ZeissLSMReader.SubBlock block,
MetadataStore store,
int series) |
private java.lang.Integer |
readEntry() |
private java.lang.Object |
readValue() |
void |
setCoreIndex(int coreIndex)
Set the current resolution/series (ignores subresolutions).
|
void |
setSeries(int series)
Activates the specified series.
|
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, getFillRule, getFilterType, getFontFamily, getFontStyle, getGlobalMeta, getGlobalMetadata, getIlluminationType, getImageCount, getImmersion, getIndex, getIndex, getLaserMedium, getLaserType, getMarker, getMedium, getMetadataStore, getMetadataStoreRoot, getMetadataValue, getMicrobeamManipulationType, getMicroscopeType, getModuloC, getModuloT, getModuloZ, getNamingConvention, getOptimalTileWidth, 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, isThisType, isThumbnailSeries, isUsedFile, makeFilterMetadata, openBytes, openBytes, openBytes, openPlane, openThumbBytes, readPlane, readPlane, reopenFile, seriesToCoreIndex, setFlattenedResolutions, setGroupFiles, setId, setMetadataFiltered, setMetadataStore, setNormalized, setOriginalMetadataPopulated, setResolution, 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
public static final java.lang.String[] MDB_SUFFIX
private static final int ZEISS_ID
private static final int TYPE_SUBBLOCK
private static final int TYPE_ASCII
private static final int TYPE_LONG
private static final int TYPE_RATIONAL
private static final int TYPE_DATE
private static final int TYPE_BOOLEAN
private static final int SUBBLOCK_RECORDING
private static final int SUBBLOCK_LASER
private static final int SUBBLOCK_TRACK
private static final int SUBBLOCK_DETECTION_CHANNEL
private static final int SUBBLOCK_ILLUMINATION_CHANNEL
private static final int SUBBLOCK_BEAM_SPLITTER
private static final int SUBBLOCK_DATA_CHANNEL
private static final int SUBBLOCK_TIMER
private static final int SUBBLOCK_MARKER
private static final int SUBBLOCK_END
private static final int RECORDING_NAME
private static final int RECORDING_DESCRIPTION
private static final int RECORDING_OBJECTIVE
private static final int RECORDING_ZOOM
private static final int RECORDING_SAMPLE_0TIME
private static final int RECORDING_CAMERA_BINNING
private static final int TRACK_ACQUIRE
private static final int TRACK_TIME_BETWEEN_STACKS
private static final int LASER_NAME
private static final int LASER_ACQUIRE
private static final int LASER_POWER
private static final int CHANNEL_DETECTOR_GAIN
private static final int CHANNEL_PINHOLE_DIAMETER
private static final int CHANNEL_AMPLIFIER_GAIN
private static final int CHANNEL_FILTER_SET
private static final int CHANNEL_FILTER
private static final int CHANNEL_ACQUIRE
private static final int CHANNEL_NAME
private static final int ILLUM_CHANNEL_NAME
private static final int ILLUM_CHANNEL_ATTENUATION
private static final int ILLUM_CHANNEL_WAVELENGTH
private static final int ILLUM_CHANNEL_ACQUIRE
private static final int START_TIME
private static final int DATA_CHANNEL_NAME
private static final int DATA_CHANNEL_ACQUIRE
private static final int BEAM_SPLITTER_FILTER
private static final int BEAM_SPLITTER_FILTER_SET
private static final int TEXT
private static final int LINE
private static final int SCALE_BAR
private static final int OPEN_ARROW
private static final int CLOSED_ARROW
private static final int RECTANGLE
private static final int ELLIPSE
private static final int CLOSED_POLYLINE
private static final int OPEN_POLYLINE
private static final int CLOSED_BEZIER
private static final int OPEN_BEZIER
private static final int CIRCLE
private static final int PALETTE
private static final int POLYLINE_ARROW
private static final int BEZIER_WITH_ARROW
private static final int ANGLE
private static final int CIRCLE_3POINT
private static final com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> METADATA_KEYS
private double pixelSizeX
private double pixelSizeY
private double pixelSizeZ
private byte[][][] lut
private java.util.List<java.lang.Double> timestamps
private java.lang.String[] lsmFilenames
private java.util.List<IFDList> ifdsList
private transient TiffParser tiffParser
private int nextLaser
private int nextDetector
private int nextFilter
private int nextDichroicChannel
private int nextDichroic
private int nextIllumChannel
private int nextDetectChannel
private boolean splitPlanes
private double zoom
private java.util.List<java.lang.String> imageNames
private java.lang.String binning
private java.util.List<java.lang.Double> xCoordinates
private java.util.List<java.lang.Double> yCoordinates
private java.util.List<java.lang.Double> zCoordinates
private int dimensionM
private int dimensionP
private int rotations
private int phases
private int illuminations
private java.util.Map<java.lang.String,java.lang.Integer> seriesCounts
private java.lang.String userName
private java.lang.String[][] channelNames
private double originX
private double originY
private double originZ
private int totalROIs
private int prevPlane
private int prevChannel
private byte[] prevBuf
private loci.common.Region prevRegion
private java.util.Map<java.lang.Integer,java.lang.String> acquiredDate
private ome.xml.model.primitives.Color[] channelColor
private transient boolean isSIM
public int getOptimalWidth()
public int getOptimalTileHeight()
IFormatReader
getOptimalTileHeight
in interface IFormatReader
getOptimalTileHeight
in class FormatReader
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 void close(boolean fileOnly) throws java.io.IOException
IFormatReader
Closeable.close()
.close
in interface IFormatReader
close
in class FormatReader
java.io.IOException
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 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 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 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 void setCoreIndex(int coreIndex)
IFormatReader
setCoreIndex
in interface IFormatReader
setCoreIndex
in class FormatReader
public void setSeries(int series)
IFormatReader
setSeries
in interface IFormatReader
setSeries
in class FormatReader
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 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-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)
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 getMDBFile(java.lang.String id) throws FormatException, java.io.IOException
FormatException
java.io.IOException
private int getEffectiveSeries(int currentSeries)
private java.lang.String getLSMFileFromSeries(int currentSeries)
private int getExtraSeries(java.lang.String file) throws FormatException, java.io.IOException
FormatException
java.io.IOException
private int getPosition(int currentSeries)
private loci.common.RandomAccessInputStream getCZTag(IFD ifd) throws FormatException, java.io.IOException
FormatException
java.io.IOException
protected void initMetadata(int series) throws FormatException, java.io.IOException
FormatException
java.io.IOException
protected void populateMetadataStore(ZeissLSMReader.SubBlock block, MetadataStore store, int series) throws FormatException
FormatException
protected void parseOverlays(int series, long data, java.lang.String suffix, MetadataStore store) throws java.io.IOException
java.io.IOException
private java.lang.String[] parseMDB(java.lang.String mdbFile) throws FormatException, java.io.IOException
FormatException
java.io.IOException
private static com.google.common.collect.ImmutableMap<java.lang.Integer,java.lang.String> createKeys()
private java.lang.Integer readEntry() throws java.io.IOException
java.io.IOException
private java.lang.Object readValue() throws java.io.IOException
java.io.IOException
private void parseApplicationTags() throws java.io.IOException
java.io.IOException
Copyright © 2020 Open Microscopy Environment