Class DefaultBand

  • 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:
    Serialized Form

    Defined in the sis-metadata module

    • Constructor Detail

      • 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, since 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:
        cast­Or­Copy(Band)
    • Method Detail

      • 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, since 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.
      • 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
      • 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
      • 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.
      • 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.
      • 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.