Class DefaultSampleDimension
Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
DefaultRangeDimension
DefaultSampleDimension
- All Implemented Interfaces:
Serializable, Emptiable, LenientComparable, IdentifiedObject, RangeDimension
- Direct Known Subclasses:
DefaultBand
@UML(identifier="MD_SampleDimension",
specification=ISO_19115)
public class DefaultSampleDimension
extends DefaultRangeDimension
The characteristic of each dimension (layer) included in the resource.
The following property is conditional (i.e. mandatory under some circumstances)
in a well-formed metadata according ISO 19115:
MD_SampleDimension
└─units……………………… Units of data in each dimension included in the resource.Note on International Standard versions
This class is derived from a new type defined in the ISO 19115 international standard published in 2014, while GeoAPI 3.0 is based on the version published in 2003. Consequently this implementation class does not yet implement a GeoAPI interface, but is expected to do so after the next GeoAPI releases. When the interface will become available, all references to this implementation class in Apache SIS will be replaced be references to the
This class is derived from a new type defined in the ISO 19115 international standard published in 2014, while GeoAPI 3.0 is based on the version published in 2003. Consequently this implementation class does not yet implement a GeoAPI interface, but is expected to do so after the next GeoAPI releases. When the interface will become available, all references to this implementation class in Apache SIS will be replaced be references to the
SampleDimension interface.
Terminology
Data values should be physical values expressed in the unit of measurement given bygetUnits(). Cell values are values stored in the device,
before conversion to data values by application of scale
factor and offset.
Limitations
- Instances of this class are not synchronized for multi-threading. Synchronization, if needed, is caller's responsibility.
- Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
Serialization support is appropriate for short term storage or RMI between applications running the
same version of Apache SIS. For long term storage, use
XMLinstead.
- Since:
- 0.5
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class ModifiableMetadata
ModifiableMetadata.StateModifier and TypeClassDescriptionstatic enumWhether the metadata is still editable or has been made final. -
Field Summary
Fields inherited from class ISOMetadata
identifiersModifier and TypeFieldDescriptionprotected Collection<Identifier> All identifiers associated with this metadata, ornullif none. -
Constructor Summary
ConstructorsConstructorDescriptionConstructs an initially empty sample dimension.Constructs a new instance initialized with the values from the specified metadata object. -
Method Summary
Modifier and TypeMethodDescriptionReturns the maximum number of significant bits in the uncompressed representation for the value in each band of each pixel.Returns the maximum value of data values in each dimension included in the resource.Returns the mean value of data values in each dimension included in the resource.Returns the minimum value of data values in each dimension included in the resource.Returns the smallest distance between which separate points can be distinguished, as specified in instrument design.Returns the number of values used in a thematic classification resource.Returns the physical value corresponding to a cell value of zero.Returns instance of other/attributeType that defines attributes not explicitly included inCoverageContentType, ornullif none.Returns type of other attribute description.Provides the description and values of the specific range elements of a sample dimension.Returns the scale factor which has been applied to the cell value.Returns the standard deviation of data values in each dimension included in the resource.Returns type of transfer function to be used when scaling a physical value for a given element.Unit<?> Returns the units of data in the dimension.voidsetBitsPerValue(Integer newValue) Sets the maximum number of significant bits in the uncompressed representation for the value in each band of each pixel.voidsetMaxValue(Double newValue) Sets the maximum value of data values in each dimension included in the resource.voidsetMeanValue(Double newValue) Sets the mean value of data values in each dimension included in the resource.voidsetMinValue(Double newValue) Sets the minimum value of data values in each dimension included in the resource.voidsetNominalSpatialResolution(Double newValue) Sets the smallest distance between which separate points can be distinguished, as specified in instrument design.voidsetNumberOfValues(Integer newValue) Sets the number of values used in a thematic classification resource.voidsetOffset(Double newValue) Sets the physical value corresponding to a cell value of zero.voidsetOtherProperty(Record newValue) Sets a new instance of other/attributeType that defines attributes not explicitly included inCoverageContentType.voidsetOtherPropertyType(RecordType newValue) Sets a new type of other attribute description.voidsetRangeElementDescriptions(Collection<? extends RangeElementDescription> newValues) Sets the description and values of the specific range elements of a sample dimension.voidsetScaleFactor(Double newValue) Sets the scale factor which has been applied to the cell value.voidsetStandardDeviation(Double newValue) Sets the standard deviation of data values in each dimension included in the resource.voidsetTransferFunctionType(TransferFunctionType newValue) Sets the type of transfer function to be used when scaling a physical value for a given element.voidSets the units of data in the dimension.Methods inherited from class DefaultRangeDimension
castOrCopy, getDescription, getDescriptor, getNames, getSequenceIdentifier, setDescription, setDescriptor, setNames, setSequenceIdentifierModifier and TypeMethodDescriptionstatic DefaultRangeDimensioncastOrCopy(RangeDimension object) Returns a SIS metadata implementation with the values of the given arbitrary implementation.Returns the description of the attribute.Deprecated.Returns the identifiers for each attribute included in the resource.Returns a unique name or number that identifies attributes included in the coverage.voidsetDescription(InternationalString newValue) Sets the description of the attribute.voidsetDescriptor(InternationalString newValue) Deprecated.As of ISO 19115:2014, renamedDefaultRangeDimension.setDescription(InternationalString).voidsetNames(Collection<? extends Identifier> newValues) Sets the identifiers for each attribute included in the resource.voidsetSequenceIdentifier(MemberName newValue) Sets the name or number that uniquely identifies instances of bands of wavelengths on which a sensor operates.Methods inherited from class ISOMetadata
getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifierModifier and TypeMethodDescriptionprotected IdentifierReturns the first identifier which is presumed to be defined by ISO 19115 conceptual model.A map view of the identifiers collection as (authority, code) entries.Returns all identifiers associated with this object (from conceptual model and from XML document).Returns the metadata standard implemented by subclasses, which is ISO 19115.protected voidsetIdentifier(Identifier newValue) Sets the identifier for metadata objects that are expected to contain at most one ISO 19115 identifier.Methods inherited from class ModifiableMetadata
checkWritePermission, copyCollection, copyList, copyMap, copySet, deepCopy, merge, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, writeCollection, writeList, writeMap, writeSetModifier and TypeMethodDescriptionprotected voidcheckWritePermission(Object current) Checks if changes in the metadata are allowed.protected static <E> Collection<E> copyCollection(Collection<? extends E> source, Class<E> elementType) Creates a list or set with the content of thesourcecollection, or returnsnullif the source isnullor empty.protected static <E> List<E> copyList(Collection<? extends E> source, Class<E> elementType) Creates a list with the content of thesourcecollection, or returnsnullif the source isnullor empty.protected static <K,V> Map <K, V> Creates a map with the content of thesourcemap, or returnsnullif the source isnullor empty.protected static <E> Set<E> copySet(Collection<? extends E> source, Class<E> elementType) Creates a set with the content of thesourcecollection, or returnsnullif the source isnullor empty.deepCopy(ModifiableMetadata.State target) Copies (if necessary) this metadata and all its children.voidMerges the data from the given source into this metadata.protected final <E> Collection<E> nonNullCollection(Collection<E> current, Class<E> elementType) Returns the specified collection, or a new one ifcurrentis null.protected final <E> List<E> nonNullList(List<E> current, Class<E> elementType) Returns the specified list, or a new one ifcurrentis null.protected final <K,V> Map <K, V> nonNullMap(Map<K, V> current, Class<K> keyType) Returns the specified map, or a new one ifcurrentis null.protected final <E> Set<E> nonNullSet(Set<E> current, Class<E> elementType) Returns the specified set, or a new one ifcurrentis null.protected static <E> Collection<E> Creates a singleton list or set containing only the given value, if non-null.state()Tells whether this instance of metadata is editable.protected final <E> Collection<E> writeCollection(Collection<? extends E> source, Collection<E> target, Class<E> elementType) Writes the content of thesourcecollection into thetargetlist or set, creating it if needed.protected final <E> List<E> writeList(Collection<? extends E> source, List<E> target, Class<E> elementType) Writes the content of thesourcecollection into thetargetlist, creating it if needed.protected final <K,V> Map <K, V> Writes the content of thesourcemap into thetargetmap, creating it if needed.protected final <E> Set<E> writeSet(Collection<? extends E> source, Set<E> target, Class<E> elementType) Writes the content of thesourcecollection into thetargetset, creating it if needed.Methods inherited from class AbstractMetadata
asMap, asTreeTable, clone, equals, equals, getInterface, getStandardType, hashCode, isEmpty, nilReasons, prune, toStringModifier and TypeMethodDescriptionasMap()Returns a view of the property values in aMap.Returns the property types and values as a tree table.protected AbstractMetadataclone()Returns a shallow clone of this metadata.final booleanPerforms a strict comparison of this metadata with the given object.booleanequals(Object object, ComparisonMode mode) Compares this metadata with the specified object for equality.final Class<?> Deprecated, for removal: This API element is subject to removal in a future version.RenamedAbstractMetadata.getStandardType()for integration withLenientComparable.Returns the metadata interface implemented by this class.intComputes a hash code value for this metadata using Java reflection.booleanisEmpty()Returns a view of the reasons why some properties are missing.voidprune()Removes all references to empty properties.Returns a string representation of this metadata.
-
Constructor Details
-
DefaultSampleDimension
public DefaultSampleDimension()Constructs an initially empty sample dimension. -
DefaultSampleDimension
Constructs a new instance initialized with the values from the specified metadata object. This is a shallow copy constructor, because the other metadata contained in the given object are not recursively copied.Note on properties validation
This constructor does not verify the property values of the given metadata (e.g. whether it contains unexpected negative values). This is because invalid metadata exist in practice, and verifying their validity in this copy constructor is often too late. Note that this is not the only hole, as invalid metadata instances can also be obtained by unmarshalling an invalid XML document.- Parameters:
object- the metadata to copy values from, ornullif none.
-
-
Method Details
-
getNumberOfValues
@ValueRange(minimum=0.0) @UML(identifier="numberOfValues", obligation=OPTIONAL, specification=ISO_19115) public Integer getNumberOfValues()Returns the number of values used in a thematic classification resource.- Returns:
- the number of values used in a thematic classification resource, or
nullif none.
-
setNumberOfValues
Sets the number of values used in a thematic classification resource.- Parameters:
newValue- the new number of values used in a thematic classification resource.- Throws:
IllegalArgumentException- if the given value is negative.
-
getMinValue
@UML(identifier="minValue", obligation=OPTIONAL, specification=ISO_19115) public Double getMinValue()Returns the minimum value of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given bygetUnits().- Returns:
- minimum value of data values in each dimension included in the resource, or
nullif unspecified.
-
setMinValue
Sets the minimum value of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given bygetUnits().- Parameters:
newValue- the new new minimum value.
-
getMaxValue
@UML(identifier="maxValue", obligation=OPTIONAL, specification=ISO_19115) public Double getMaxValue()Returns the maximum value of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given bygetUnits().- Returns:
- maximum value of data values in each dimension included in the resource, or
nullif unspecified.
-
setMaxValue
Sets the maximum value of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given bygetUnits().- Parameters:
newValue- the new new maximum value.
-
getMeanValue
@UML(identifier="meanValue", obligation=OPTIONAL, specification=ISO_19115) public Double getMeanValue()Returns the mean value of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given bygetUnits().- Returns:
- the mean value of data values in each dimension included in the resource, or
nullif none.
-
setMeanValue
Sets the mean value of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given bygetUnits().- Parameters:
newValue- the new mean value of data values in each dimension included in the resource.
-
getStandardDeviation
@UML(identifier="standardDeviation", obligation=OPTIONAL, specification=ISO_19115) public Double getStandardDeviation()Returns the standard deviation of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given bygetUnits().- Returns:
- standard deviation of data values in each dimension included in the resource, or
nullif none.
-
setStandardDeviation
Sets the standard deviation of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given bygetUnits().- Parameters:
newValue- the new standard deviation of data values in each dimension included in the resource.
-
getUnits
Returns the units of data in the dimension.- Returns:
- the units of data in the dimension, or
nullif unspecified.
-
setUnits
Sets the units of data in the dimension.- Parameters:
newValue- the new units of data in the dimension.
-
getScaleFactor
@UML(identifier="scaleFactor", obligation=OPTIONAL, specification=ISO_19115) public Double getScaleFactor()Returns the scale factor which has been applied to the cell value.- Returns:
- scale factor which has been applied to the cell value, or
nullif none.
-
setScaleFactor
Sets the scale factor which has been applied to the cell value.- Parameters:
newValue- the new scale factor which has been applied to the cell value.
-
getOffset
Returns the physical value corresponding to a cell value of zero.- Returns:
- the physical value corresponding to a cell value of zero, or
nullif none.
-
setOffset
Sets the physical value corresponding to a cell value of zero.- Parameters:
newValue- the new physical value corresponding to a cell value of zero.
-
getTransferFunctionType
Returns type of transfer function to be used when scaling a physical value for a given element.Note on XML marshalling
ISO 19115-2 defines this property in a subtype for historical reasons. Apache SIS moves this property up in the hierarchy since this property can apply to any sample dimension, not only the measurements in the electromagnetic spectrum. However, this property will not appear in XML documents unless thisSampleDimensionis actually aBand.- Returns:
- type of transfer function, or
null.
-
setTransferFunctionType
Sets the type of transfer function to be used when scaling a physical value for a given element.- Parameters:
newValue- the new transfer function value.
-
getBitsPerValue
@ValueRange(minimum=1.0) @UML(identifier="bitsPerValue", obligation=OPTIONAL, specification=ISO_19115) public Integer getBitsPerValue()Returns the maximum number of significant bits in the uncompressed representation for the value in each band of each pixel.- Returns:
- maximum number of significant bits in the uncompressed representation
for the value in each band of each pixel, or
nullif none.
-
setBitsPerValue
Sets the maximum number of significant bits in the uncompressed representation for the value in each band of each pixel.- Parameters:
newValue- the new maximum number of significant bits.- Throws:
IllegalArgumentException- if the given value is zero or negative.
-
getRangeElementDescriptions
Provides the description and values of the specific range elements of a sample dimension. Example: missing data.- Returns:
- description and values of the specific range elements.
- Since:
- 1.3
-
setRangeElementDescriptions
Sets the description and values of the specific range elements of a sample dimension.- Parameters:
newValues- the new range element description.- Since:
- 1.3
-
getNominalSpatialResolution
Returns the smallest distance between which separate points can be distinguished, as specified in instrument design.Note on XML marshalling
ISO 19115-2 defines this property in a subtype for historical reasons. Apache SIS moves this property up in the hierarchy since this property can apply to any sample dimension, not only the measurements in the electromagnetic spectrum. However, this property will not appear in XML documents unless thisSampleDimensionis actually aBand.- Returns:
- smallest distance between which separate points can be distinguished, or
null.
-
setNominalSpatialResolution
Sets the smallest distance between which separate points can be distinguished, as specified in instrument design.- Parameters:
newValue- the new nominal spatial resolution.- Throws:
IllegalArgumentException- if the given value is negative.
-
getOtherPropertyType
@UML(identifier="otherPropertyType", obligation=OPTIONAL, specification=ISO_19115) public RecordType getOtherPropertyType()Returns type of other attribute description.- Returns:
- type of other attribute description, or
nullif none.
-
setOtherPropertyType
Sets a new type of other attribute description.- Parameters:
newValue- the new type of other attribute description.
-
getOtherProperty
@UML(identifier="otherProperty", obligation=OPTIONAL, specification=ISO_19115) public Record getOtherProperty()Returns instance of other/attributeType that defines attributes not explicitly included inCoverageContentType, ornullif none.- Returns:
- instance of other/attributeType that defines attributes, or
nullif none.
-
setOtherProperty
Sets a new instance of other/attributeType that defines attributes not explicitly included inCoverageContentType.- Parameters:
newValue- the new instance of other/attributeType.
-
DefaultRangeDimension.getDescription().