Class DefaultSampleDimension

All Implemented Interfaces:
Serializable, Emptiable, LenientComparable, IdentifiedObject, org.opengis.metadata.content.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 SampleDimension interface.

Terminology

Data values should be physical values expressed in the unit of measurement given by getUnits(). 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 XML instead.
Since:
0.5
Version:
1.3
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serial number for inter-operability with different versions.
      See Also:
    • numberOfValues

      private Integer numberOfValues
      Number of values used in a thematic classification resource. This value should be expressed in the unit of measurement given by units.
    • minValue

      private Double minValue
      Minimum value of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given by units.
    • maxValue

      private Double maxValue
      Maximum value of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given by units.
    • meanValue

      private Double meanValue
      Mean value of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given by units.
    • standardDeviation

      private Double standardDeviation
      Standard deviation of data values in each dimension included in the resource. This value should be expressed in the unit of measurement given by units.
    • units

      private javax.measure.Unit<?> units
      Units of data in each dimension included in the resource.
    • scaleFactor

      private Double scaleFactor
      Scale factor which has been applied to the cell value.
    • offset

      private Double offset
      Physical value corresponding to a cell value of zero.
    • transferFunctionType

      private org.opengis.metadata.content.TransferFunctionType transferFunctionType
      Type of transfer function to be used when scaling a physical value for a given element.
    • bitsPerValue

      private Integer bitsPerValue
      Maximum number of significant bits in the uncompressed representation for the value in each band of each pixel.
    • rangeElementDescriptions

      private Collection<org.opengis.metadata.content.RangeElementDescription> rangeElementDescriptions
      Provides the description and values of the specific range elements of a sample dimension.
    • nominalSpatialResolution

      private Double nominalSpatialResolution
      Smallest distance between which separate points can be distinguished, as specified in instrument design.
    • otherPropertyType

      private org.opengis.util.RecordType otherPropertyType
      Type of other attribute description.
    • otherProperty

      private org.opengis.util.Record otherProperty
      Instance of other/attributeType that defines attributes not explicitly included in CoverageContentType.
  • Constructor Details

    • DefaultSampleDimension

      public DefaultSampleDimension()
      Constructs an initially empty sample dimension.
    • DefaultSampleDimension

      public DefaultSampleDimension(DefaultSampleDimension object)
      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, or null if none.
    • DefaultSampleDimension

      DefaultSampleDimension(org.opengis.metadata.content.Band object)
      Bridge constructor for DefaultBand(Band).
  • Method Details

    • init

      private void init(DefaultSampleDimension object)
      Initializes this sample dimension to the values of the given object.
    • 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 null if none.
    • setNumberOfValues

      public void setNumberOfValues(Integer newValue)
      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 by getUnits().
      Returns:
      minimum value of data values in each dimension included in the resource, or null if unspecified.
    • setMinValue

      public void setMinValue(Double newValue)
      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 by getUnits().
      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 by getUnits().
      Returns:
      maximum value of data values in each dimension included in the resource, or null if unspecified.
    • setMaxValue

      public void setMaxValue(Double newValue)
      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 by getUnits().
      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 by getUnits().
      Returns:
      the mean value of data values in each dimension included in the resource, or null if none.
    • setMeanValue

      public void setMeanValue(Double newValue)
      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 by getUnits().
      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 by getUnits().
      Returns:
      standard deviation of data values in each dimension included in the resource, or null if none.
    • setStandardDeviation

      public void setStandardDeviation(Double newValue)
      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 by getUnits().
      Parameters:
      newValue - the new standard deviation of data values in each dimension included in the resource.
    • getUnits

      @UML(identifier="units", obligation=CONDITIONAL, specification=ISO_19115) public javax.measure.Unit<?> getUnits()
      Returns the units of data in the dimension.
      Returns:
      the units of data in the dimension, or null if unspecified.
    • setUnits

      public void setUnits(javax.measure.Unit<?> newValue)
      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 null if none.
    • setScaleFactor

      public void setScaleFactor(Double newValue)
      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

      @UML(identifier="offset", obligation=OPTIONAL, specification=ISO_19115) public Double getOffset()
      Returns the physical value corresponding to a cell value of zero.
      Returns:
      the physical value corresponding to a cell value of zero, or null if none.
    • setOffset

      public void setOffset(Double newValue)
      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

      public org.opengis.metadata.content.TransferFunctionType 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 this SampleDimension is actually a Band.
      Returns:
      type of transfer function, or null.
    • setTransferFunctionType

      public void setTransferFunctionType(org.opengis.metadata.content.TransferFunctionType newValue)
      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 null if none.
    • setBitsPerValue

      public void setBitsPerValue(Integer newValue)
      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

      public Collection<org.opengis.metadata.content.RangeElementDescription> 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

      public void setRangeElementDescriptions(Collection<? extends org.opengis.metadata.content.RangeElementDescription> newValues)
      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

      @ValueRange(minimum=0.0, isMinIncluded=false) public Double 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 this SampleDimension is actually a Band.
      Returns:
      smallest distance between which separate points can be distinguished, or null.
    • setNominalSpatialResolution

      public void setNominalSpatialResolution(Double newValue)
      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 org.opengis.util.RecordType getOtherPropertyType()
      Returns type of other attribute description.
      Returns:
      type of other attribute description, or null if none.
    • setOtherPropertyType

      public void setOtherPropertyType(org.opengis.util.RecordType newValue)
      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 org.opengis.util.Record getOtherProperty()
      Returns instance of other/attributeType that defines attributes not explicitly included in CoverageContentType, or null if none.
      Returns:
      instance of other/attributeType that defines attributes, or null if none.
    • setOtherProperty

      public void setOtherProperty(org.opengis.util.Record newValue)
      Sets a new instance of other/attributeType that defines attributes not explicitly included in CoverageContentType.
      Parameters:
      newValue - the new instance of other/attributeType.