public class MicromanagerReader extends FormatReader
Modifier and Type | Class and Description |
---|---|
(package private) class |
MicromanagerReader.Index |
(package private) class |
MicromanagerReader.MicromanagerHandler
SAX handler for parsing Acqusition.xml.
|
(package private) class |
MicromanagerReader.Position |
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
DATE_FORMAT |
private static int |
JSON_TAG |
private static int |
MAX_MAJOR_VERSION
Defines maximum Micro-Manager version supported.
|
private static java.lang.String |
MAX_VERSION |
private static java.lang.String |
METADATA
File containing extra metadata.
|
private static int |
MM_JSON_TAG |
private java.util.Vector<MicromanagerReader.Position> |
positions |
private boolean |
spim |
private int |
start |
private MinimalTiffReader |
tiffReader
Helper reader for TIFF files.
|
private static java.lang.String |
XML
Optional file containing additional acquisition parameters.
|
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 |
---|
MicromanagerReader()
Constructs a new Micromanager reader.
|
Modifier and Type | Method and Description |
---|---|
private void |
buildTIFFList(int posIndex) |
private void |
buildTIFFList(int posIndex,
java.lang.String baseTiff)
Populate the list of TIFF files using the given file name as a pattern.
|
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 |
getNextLine(byte[] buf) |
int |
getOptimalTileHeight()
Returns the optimal sub-image height for use with openBytes.
|
int |
getOptimalTileWidth()
Returns the optimal sub-image width for use with openBytes.
|
private java.lang.String |
getPrefixMetadataName(java.lang.String baseName) |
java.lang.String[] |
getSeriesUsedFiles(boolean noPixels)
Returns an array of filenames needed to open the current series.
|
private void |
handleKeyValue(java.lang.String key,
java.lang.String value)
Process a piece of metadata represented by a key/value pair.
|
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.
|
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 |
parseKeyAndValue(java.lang.String key,
java.lang.String value,
int digits,
int plane,
int nPlanes) |
private void |
parsePosition(int posIndex) |
private void |
parsePosition(java.lang.String jsonData,
int posIndex) |
private void |
parseXMLFile()
Parse metadata values from the Acqusition.xml file.
|
private void |
populateMetadata() |
void |
populateMetadataStore(java.lang.String[] jsonData) |
private void |
setupReader()
Initialize the TIFF reader with the first non-null file in the current 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, get16BitLookupTable, get8BitLookupTable, 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, 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
public static final java.lang.String DATE_FORMAT
private static final java.lang.String METADATA
private static final int JSON_TAG
private static final int MM_JSON_TAG
private static final int MAX_MAJOR_VERSION
private static final java.lang.String MAX_VERSION
private static final java.lang.String XML
private MinimalTiffReader tiffReader
private java.util.Vector<MicromanagerReader.Position> positions
private int start
private boolean spim
public MicromanagerReader()
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 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 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 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[] 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)
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
public 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 void populateMetadata() throws FormatException, java.io.IOException
FormatException
java.io.IOException
public void populateMetadataStore(java.lang.String[] jsonData) throws FormatException, java.io.IOException
FormatException
java.io.IOException
private void parsePosition(int posIndex) throws java.io.IOException, FormatException
java.io.IOException
FormatException
private void parseKeyAndValue(java.lang.String key, java.lang.String value, int digits, int plane, int nPlanes)
private void buildTIFFList(int posIndex) throws FormatException
FormatException
private void parsePosition(java.lang.String jsonData, int posIndex) throws java.io.IOException, FormatException
java.io.IOException
FormatException
private void buildTIFFList(int posIndex, java.lang.String baseTiff)
private void parseXMLFile() throws java.io.IOException
java.io.IOException
private void setupReader()
private java.lang.String getPrefixMetadataName(java.lang.String baseName)
private void handleKeyValue(java.lang.String key, java.lang.String value)
private java.lang.String getNextLine(byte[] buf) throws java.io.UnsupportedEncodingException
java.io.UnsupportedEncodingException
Copyright © 2020 Open Microscopy Environment