Class DefaultBand

All Implemented Interfaces:
Serializable, Emptiable, LenientComparable, IdentifiedObject, org.opengis.metadata.content.Band, org.opengis.metadata.content.RangeDimension
Direct Known Subclasses:
MI_Band

public class DefaultBand extends DefaultSampleDimension implements org.opengis.metadata.content.Band
Range of wavelengths in the electromagnetic spectrum. The following property is conditional (i.e. mandatory under some circumstances) in a well-formed metadata according ISO 19115:
MD_Band   └─units…… Units of data in each dimension included in the resource.

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.3
Version:
1.0
See Also:
  • Field Details

    • serialVersionUID

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

      private Double boundMin
      Shortest wavelength that the sensor is capable of collecting within a designated band.
    • boundMax

      private Double boundMax
      Longest wavelength that the sensor is capable of collecting within a designated band.
    • boundUnits

      private javax.measure.Unit<javax.measure.quantity.Length> boundUnits
      Units in which sensor wavelengths are expressed.
    • bandBoundaryDefinition

      private org.opengis.metadata.content.BandDefinition bandBoundaryDefinition
      Designation of criterion for defining maximum and minimum wavelengths for a spectral band.
    • peakResponse

      private Double peakResponse
      Wavelength at which the response is the highest.
    • toneGradation

      private Integer toneGradation
      Number of discrete numerical values in the grid data.
    • transmittedPolarization

      private org.opengis.metadata.content.PolarizationOrientation transmittedPolarization
      Polarization of the radiation transmitted.
    • detectedPolarization

      private org.opengis.metadata.content.PolarizationOrientation detectedPolarization
      Polarization of the radiation detected.
  • Constructor Details

    • DefaultBand

      public DefaultBand()
      Constructs an initially empty band.
    • DefaultBand

      public DefaultBand(org.opengis.metadata.content.Band 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.
      See Also:
  • Method Details

    • castOrCopy

      public static DefaultBand castOrCopy(org.opengis.metadata.content.Band object)
      Returns a SIS metadata implementation with the values of the given arbitrary implementation. This method performs the first applicable action in the following choices:
      • If the given object is null, then this method returns null.
      • Otherwise if the given object is already an instance of DefaultBand, then it is returned unchanged.
      • Otherwise a new DefaultBand instance is created using the copy constructor and returned. Note that this is a shallow copy operation, because the other metadata contained in the given object are not recursively copied.
      Parameters:
      object - the object to get as a SIS implementation, or null if none.
      Returns:
      a SIS implementation containing the values of the given object (may be the given object itself), or null if the argument was null.
    • getBoundMin

      @ValueRange(minimum=0.0) @UML(identifier="boundMin", obligation=OPTIONAL, specification=ISO_19115) public Double getBoundMin()
      Returns the shortest wavelength that the sensor is capable of collecting within a designated band. The units of measurement is given by getBoundUnits().
      Returns:
      Shortest wavelength that the sensor is capable of collecting within a designated band, or null if unspecified.
      Since:
      0.5
    • setBoundMin

      public void setBoundMin(Double newValue)
      Sets the shortest wavelength that the sensor is capable of collecting within a designated band.
      Parameters:
      newValue - the new shortest wavelength, or null.
      Throws:
      IllegalArgumentException - if the given value is negative.
      Since:
      0.5
    • getBoundMax

      @ValueRange(minimum=0.0) @UML(identifier="boundMax", obligation=OPTIONAL, specification=ISO_19115) public Double getBoundMax()
      Returns the longest wavelength that the sensor is capable of collecting within a designated band. The units of measurement is given by getUnits().
      Returns:
      longest wavelength that the sensor is capable of collecting within a designated band, or null if unspecified.
      Since:
      0.5
    • setBoundMax

      public void setBoundMax(Double newValue)
      Sets the longest wavelength that the sensor is capable of collecting within a designated band.
      Parameters:
      newValue - the new longest wavelength, or null.
      Throws:
      IllegalArgumentException - if the given value is negative.
      Since:
      0.5
    • getBoundUnits

      @UML(identifier="boundUnits", obligation=OPTIONAL, specification=ISO_19115) public javax.measure.Unit<javax.measure.quantity.Length> getBoundUnits()
      Returns units in which sensor wavelengths are expressed.
      Returns:
      units in which sensor wavelengths are expressed.
      Since:
      0.5
      See Also:
    • setBoundUnits

      public void setBoundUnits(javax.measure.Unit<javax.measure.quantity.Length> newValue)
      Sets a new units in which sensor wavelengths are expressed.
      Parameters:
      newValue - the new unit.
      Since:
      0.5
    • getBandBoundaryDefinition

      public org.opengis.metadata.content.BandDefinition getBandBoundaryDefinition()
      Returns the designation of criterion for defining maximum and minimum wavelengths for a spectral band.
      Specified by:
      getBandBoundaryDefinition in interface org.opengis.metadata.content.Band
      Returns:
      criterion for defining maximum and minimum wavelengths, or null.
    • setBandBoundaryDefinition

      public void setBandBoundaryDefinition(org.opengis.metadata.content.BandDefinition newValue)
      Sets designation of criterion for defining maximum and minimum wavelengths for a spectral band.
      Parameters:
      newValue - the new band definition.
    • getUnits

      public javax.measure.Unit<javax.measure.quantity.Length> getUnits()
      Returns the units of data as a unit of length.
      Upcoming API change — generalization
      As of ISO 19115:2014, the units of wavelength is rather boundUnits. The restriction for units of length in this units property may be relaxed in GeoAPI 4.0.
      Specified by:
      getUnits in interface org.opengis.metadata.content.Band
      Overrides:
      getUnits in class DefaultSampleDimension
      Returns:
      The units of data.
    • setUnits

      public void setUnits(javax.measure.Unit<?> newValue)
      Sets the units of data as a unit of length.
      Upcoming precondition change — relaxation
      The current implementation requires the unit to be an instance of Unit<Length>, otherwise a ClassCastException is thrown. This is because the value returned by getUnits() was restricted by ISO 19115:2003 to units of length. However this restriction may be relaxed in GeoAPI 4.0.
      Overrides:
      setUnits in class DefaultSampleDimension
      Parameters:
      newValue - The new units of data as an instance of Unit<Length>.
    • getPeakResponse

      @ValueRange(minimum=0.0) public Double getPeakResponse()
      Returns the wavelength at which the response is the highest. The units of measurement is given by getBoundUnits().
      Specified by:
      getPeakResponse in interface org.opengis.metadata.content.Band
      Returns:
      wavelength at which the response is the highest, or null if unspecified.
    • setPeakResponse

      public void setPeakResponse(Double newValue)
      Sets the wavelength at which the response is the highest.
      Parameters:
      newValue - the new peak response, or null.
      Throws:
      IllegalArgumentException - if the given value is negative.
    • getToneGradation

      @ValueRange(minimum=0.0) public Integer getToneGradation()
      Returns the number of discrete numerical values in the grid data.
      Specified by:
      getToneGradation in interface org.opengis.metadata.content.Band
      Returns:
      number of discrete numerical values in the grid data, or null if none.
    • setToneGradation

      public void setToneGradation(Integer newValue)
      Sets the number of discrete numerical values in the grid data.
      Parameters:
      newValue - the new tone gradation.
    • 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.
      Specified by:
      getNominalSpatialResolution in interface org.opengis.metadata.content.Band
      Overrides:
      getNominalSpatialResolution in class DefaultSampleDimension
      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.
      Overrides:
      setNominalSpatialResolution in class DefaultSampleDimension
      Parameters:
      newValue - the new nominal spatial resolution.
    • 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.
      Specified by:
      getTransferFunctionType in interface org.opengis.metadata.content.Band
      Overrides:
      getTransferFunctionType in class DefaultSampleDimension
      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.
      Overrides:
      setTransferFunctionType in class DefaultSampleDimension
      Parameters:
      newValue - the new transfer function value.
    • getTransmittedPolarization

      public org.opengis.metadata.content.PolarizationOrientation getTransmittedPolarization()
      Returns the polarization of the radiation transmitted.
      Upcoming API change
      This method may be renamed getTransmittedPolarization and its return type replaced by PolarisationOrientation ("z" letter replaced by "s" letter) in GeoAPI 4.0 for compliance with ISO 19115-2:2019.
      Specified by:
      getTransmittedPolarization in interface org.opengis.metadata.content.Band
      Returns:
      polarization of the radiation transmitted, or null.
    • setTransmittedPolarization

      public void setTransmittedPolarization(org.opengis.metadata.content.PolarizationOrientation newValue)
      Sets the polarization of the radiation transmitted.
      Upcoming API change
      This method may be renamed setTransmittedPolarization and its argument type replaced by PolarisationOrientation ("z" letter replaced by "s" letter) in GeoAPI 4.0 for compliance with ISO 19115-2:2019.
      Parameters:
      newValue - the new transmitted polarization.
    • getDetectedPolarization

      public org.opengis.metadata.content.PolarizationOrientation getDetectedPolarization()
      Returns polarization of the radiation detected.
      Upcoming API change
      This method may be renamed getDetectedPolarization and its return type replaced by PolarisationOrientation ("z" letter replaced by "s" letter) in GeoAPI 4.0 for compliance with ISO 19115-2:2019.
      Specified by:
      getDetectedPolarization in interface org.opengis.metadata.content.Band
      Returns:
      polarization of the radiation detected, or null.
    • setDetectedPolarization

      public void setDetectedPolarization(org.opengis.metadata.content.PolarizationOrientation newValue)
      Sets the polarization of the radiation detected.
      Upcoming API change
      This method may be renamed setDetectedPolarization and its argument type replaced by PolarisationOrientation ("z" letter replaced by "s" letter) in GeoAPI 4.0 for compliance with ISO 19115-2:2019.
      Parameters:
      newValue - the new detected polarization.