Class FromImageMetadata

Object
org.anchoranalysis.bean.AnchorBean<FeatureSource<T,​S,​U>>
org.anchoranalysis.plugin.image.task.bean.feature.source.FeatureSource<T,​org.anchoranalysis.feature.bean.list.FeatureList<S>,​S>
org.anchoranalysis.plugin.image.task.bean.feature.source.SingleRowPerInput<org.anchoranalysis.image.io.stack.input.ImageMetadataInput,​org.anchoranalysis.image.feature.input.FeatureInputImageMetadata>
org.anchoranalysis.plugin.image.task.bean.feature.source.FromImageMetadata

public class FromImageMetadata
extends SingleRowPerInput<org.anchoranalysis.image.io.stack.input.ImageMetadataInput,​org.anchoranalysis.image.feature.input.FeatureInputImageMetadata>
Calculates features from the metadata from single image.

The image voxels should not be loaded in memory, to keep this as computationally efficient as possible.

Each image's metadata produces a single row of features.

The columns produced are:

  1. an image identifier
  2. file extension (or empty if none exists) according to the procedure in ExtensionUtilities.extractExtension(String).
  3. file creation date
  4. file modification date
  5. the results of each feature.

All dates are expressed in the current time-zone.

  • Constructor Summary

    Constructors 
    Constructor Description
    FromImageMetadata()
    Creates a new FromImageMetadata instance.
  • Method Summary

    Modifier and Type Method Description
    protected Optional<String[]> additionalLabelsFor​(org.anchoranalysis.image.io.stack.input.ImageMetadataInput input)
    Additional labels for an input to include (after the identifier, and before any group labels).
    protected ResultsVectorWithThumbnail calculateResultsForInput​(org.anchoranalysis.image.io.stack.input.ImageMetadataInput input, FeatureCalculationContext<org.anchoranalysis.feature.bean.list.FeatureList<org.anchoranalysis.image.feature.input.FeatureInputImageMetadata>> context)
    Calculates feature-results for a particular input.
    boolean includeGroupInExperiment​(boolean groupGeneratorDefined)
    Determines if group columns should be added to the CSV exports and other group exports may occur in sub-directories.
    org.anchoranalysis.experiment.task.InputTypesExpected inputTypesExpected()
    Specifies the highest class(es) that will function as a valid input.

    Methods inherited from class org.anchoranalysis.plugin.image.task.bean.feature.source.SingleRowPerInput

    calculateAndOutput, createExporter, headers

    Methods inherited from class org.anchoranalysis.bean.AnchorBean

    checkMisconfigured, describeBean, describeChildren, duplicateBean, fields, findFieldsOfClass, getBeanName, getLocalPath, localise, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

  • Method Details

    • includeGroupInExperiment

      public boolean includeGroupInExperiment​(boolean groupGeneratorDefined)
      Description copied from class: FeatureSource
      Determines if group columns should be added to the CSV exports and other group exports may occur in sub-directories.
      Specified by:
      includeGroupInExperiment in class FeatureSource<org.anchoranalysis.image.io.stack.input.ImageMetadataInput,​org.anchoranalysis.feature.bean.list.FeatureList<org.anchoranalysis.image.feature.input.FeatureInputImageMetadata>,​org.anchoranalysis.image.feature.input.FeatureInputImageMetadata>
      Parameters:
      groupGeneratorDefined - has a group-generator been defined for this experiment?
      Returns:
      true if a group-generator has been defined, false otherwise
    • inputTypesExpected

      public org.anchoranalysis.experiment.task.InputTypesExpected inputTypesExpected()
      Description copied from class: FeatureSource
      Specifies the highest class(es) that will function as a valid input.

      This is usually the class of T (or sometimes the absolute base class InputFromManager)

      Specified by:
      inputTypesExpected in class FeatureSource<org.anchoranalysis.image.io.stack.input.ImageMetadataInput,​org.anchoranalysis.feature.bean.list.FeatureList<org.anchoranalysis.image.feature.input.FeatureInputImageMetadata>,​org.anchoranalysis.image.feature.input.FeatureInputImageMetadata>
      Returns:
      an InputTypesExpected object specifying the expected input types
    • additionalLabelsFor

      protected Optional<String[]> additionalLabelsFor​(org.anchoranalysis.image.io.stack.input.ImageMetadataInput input) throws org.anchoranalysis.core.exception.OperationFailedException
      Description copied from class: SingleRowPerInput
      Additional labels for an input to include (after the identifier, and before any group labels).

      These should always correspond (when appended to the identifier) exactly to the nonGroupHeaders.

      Specified by:
      additionalLabelsFor in class SingleRowPerInput<org.anchoranalysis.image.io.stack.input.ImageMetadataInput,​org.anchoranalysis.image.feature.input.FeatureInputImageMetadata>
      Parameters:
      input - the input.
      Returns:
      any additional labels for the input.
      Throws:
      org.anchoranalysis.core.exception.OperationFailedException - if the operation fails
    • calculateResultsForInput

      protected ResultsVectorWithThumbnail calculateResultsForInput​(org.anchoranalysis.image.io.stack.input.ImageMetadataInput input, FeatureCalculationContext<org.anchoranalysis.feature.bean.list.FeatureList<org.anchoranalysis.image.feature.input.FeatureInputImageMetadata>> context) throws org.anchoranalysis.feature.calculate.NamedFeatureCalculateException
      Description copied from class: SingleRowPerInput
      Calculates feature-results for a particular input.
      Specified by:
      calculateResultsForInput in class SingleRowPerInput<org.anchoranalysis.image.io.stack.input.ImageMetadataInput,​org.anchoranalysis.image.feature.input.FeatureInputImageMetadata>
      Parameters:
      input - the input.
      context - context for calculating features.
      Returns:
      the results, with optionally associated thumbnail.
      Throws:
      org.anchoranalysis.feature.calculate.NamedFeatureCalculateException - if any feature cannot calculate.