All Implemented Interfaces:
Serializable, Emptiable, Lenient­Comparable, Identified­Object, Band, Range­Dimension

public class DefaultBand extends DefaultSampleDimension implements 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
See Also:
  • Constructor Details

    • DefaultBand

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

      public DefaultBand(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(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 Default­Band, then it is returned unchanged.
      • Otherwise a new Default­Band 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

      Returns the shortest wavelength that the sensor is capable of collecting within a designated band. The units of measurement is given by get­Bound­Units().
      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:
      new­Value - the new shortest wavelength, or null.
      Throws:
      Illegal­Argument­Exception - if the given value is negative.
      Since:
      0.5
    • getBoundMax

      Returns the longest wavelength that the sensor is capable of collecting within a designated band. The units of measurement is given by get­Units().
      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:
      new­Value - the new longest wavelength, or null.
      Throws:
      Illegal­Argument­Exception - if the given value is negative.
      Since:
      0.5
    • getBoundUnits

      @UML(identifier="boundUnits", obligation=OPTIONAL, specification=ISO_19115) public Unit<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(Unit<Length> newValue)
      Sets a new units in which sensor wavelengths are expressed.
      Parameters:
      new­Value - the new unit.
      Since:
      0.5
    • getBandBoundaryDefinition

      public BandDefinition getBandBoundaryDefinition()
      Returns the designation of criterion for defining maximum and minimum wavelengths for a spectral band.
      Specified by:
      get­Band­Boundary­Definition in interface Band
      Returns:
      criterion for defining maximum and minimum wavelengths, or null.
    • setBandBoundaryDefinition

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

      public Unit<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 bound­Units. The restriction for units of length in this units property may be relaxed in GeoAPI 4.0.
      Specified by:
      get­Units in interface Band
      Overrides:
      get­Units in class Default­Sample­Dimension
      Returns:
      The units of data.
    • setUnits

      public void setUnits(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 Class­Cast­Exception is thrown. This is because the value returned by get­Units() was restricted by ISO 19115:2003 to units of length. However this restriction may be relaxed in GeoAPI 4.0.
      Overrides:
      set­Units in class Default­Sample­Dimension
      Parameters:
      new­Value - 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 get­Bound­Units().
      Specified by:
      get­Peak­Response in interface 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:
      new­Value - the new peak response, or null.
      Throws:
      Illegal­Argument­Exception - 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:
      get­Tone­Gradation in interface 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:
      new­Value - 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:
      get­Nominal­Spatial­Resolution in interface Band
      Overrides:
      get­Nominal­Spatial­Resolution in class Default­Sample­Dimension
      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:
      set­Nominal­Spatial­Resolution in class Default­Sample­Dimension
      Parameters:
      new­Value - the new nominal spatial resolution.
    • getTransferFunctionType

      public TransferFunctionType getTransferFunctionType()
      Returns type of transfer function to be used when scaling a physical value for a given element.
      Specified by:
      get­Transfer­Function­Type in interface Band
      Overrides:
      get­Transfer­Function­Type in class Default­Sample­Dimension
      Returns:
      type of transfer function, or null.
    • setTransferFunctionType

      public void setTransferFunctionType(TransferFunctionType newValue)
      Sets the type of transfer function to be used when scaling a physical value for a given element.
      Overrides:
      set­Transfer­Function­Type in class Default­Sample­Dimension
      Parameters:
      new­Value - the new transfer function value.
    • getTransmittedPolarization

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

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

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

      public void setDetectedPolarization(PolarizationOrientation newValue)
      Sets the polarization of the radiation detected.
      Upcoming API change
      This method may be renamed set­Detected­Polarization and its argument type replaced by Polarisation­Orientation ("z" letter replaced by "s" letter) in GeoAPI 4.0 for compliance with ISO 19115-2:2019.
      Parameters:
      new­Value - the new detected polarization.