Class RGBImageProfile

java.lang.Object
org.esa.snap.core.datamodel.RGBImageProfile
All Implemented Interfaces:
ConfigurableExtension

public class RGBImageProfile extends Object implements ConfigurableExtension
A profile used for the creation of RGB images. The profile comprises the band arithmetic expressions for the computation of red, green, blue and alpha (optional) channels of the resulting image.
  • Field Details

    • RED_BAND_NAME

      public static final String RED_BAND_NAME
      The default name for the band providing input for the red image channel.
      See Also:
    • GREEN_BAND_NAME

      public static final String GREEN_BAND_NAME
      The default name for the band providing input for the green image channel.
      See Also:
    • BLUE_BAND_NAME

      public static final String BLUE_BAND_NAME
      The default name for the band providing input for the blue image channel.
      See Also:
    • ALPHA_BAND_NAME

      public static final String ALPHA_BAND_NAME
      The default name for the band providing input for the alpha image channel.
      See Also:
    • RGB_BAND_NAMES

      public static final String[] RGB_BAND_NAMES
      An array of 3 strings containing the names for the default red, green and blue bands.
    • RGBA_BAND_NAMES

      public static final String[] RGBA_BAND_NAMES
      An array of 4 strings containing the names for the default red, green, blue and alpha bands.
    • FILENAME_EXTENSION

      public static final String FILENAME_EXTENSION
      See Also:
    • PROPERTY_KEY_NAME

      public static final String PROPERTY_KEY_NAME
      See Also:
    • PROPERTY_KEY_RED

      public static final String PROPERTY_KEY_RED
      See Also:
    • PROPERTY_KEY_GREEN

      public static final String PROPERTY_KEY_GREEN
      See Also:
    • PROPERTY_KEY_BLUE

      public static final String PROPERTY_KEY_BLUE
      See Also:
    • PROPERTY_KEY_ALPHA

      public static final String PROPERTY_KEY_ALPHA
      See Also:
    • PROPERTY_KEY_INTERNAL

      public static final String PROPERTY_KEY_INTERNAL
      See Also:
    • PROPERTY_KEY_PREFIX_RGB_PROFILE

      public static final String PROPERTY_KEY_PREFIX_RGB_PROFILE
      Preferences key for RGB profile entries
      See Also:
  • Constructor Details

    • RGBImageProfile

      public RGBImageProfile(String name, String[] rgbaExpressions)
    • RGBImageProfile

      public RGBImageProfile(String name, String[] rgbaExpressions, String[] pattern)
    • RGBImageProfile

      public RGBImageProfile(String name, String[] rgbaExpressions, String[] pattern, Range[] valueRanges)
      Creates a new RGB profile. In the pattern you can simply use '*' for a sequence of characters or use '?' for a single character. For Example: new String[]{ "MER_*_2*", "MER_*_2*", ""}
      Parameters:
      name - The name of the profile
      rgbaExpressions - the expressions for the RGBA channels. Only RGB expressions are mandatory, the one for the alpha channel can be missing
      pattern - Pattern to check if this profile can be applied to a certain product. Three patterns need to be provided. 1. Will be matched against the product type 2. Will be matched against the product name 3. Will be matched against the description of the product
  • Method Details

    • getName

      public String getName()
    • setName

      public void setName(String name)
    • getRgbChannelDef

      public RGBChannelDef getRgbChannelDef()
    • isInternal

      public boolean isInternal()
    • setInternal

      public void setInternal(boolean internal)
    • equalExpressions

      public boolean equalExpressions(RGBImageProfile profile)
    • equalExpressions

      @Deprecated public boolean equalExpressions(String[] rgbaExpressions)
      Deprecated.
      This API function exposes internal structure. please use equalExpressions(RGBImageProfile profile)
    • isValid

      public boolean isValid()
      Tests if one of the R,G,B expressions are non-empty strings.
      Returns:
      true, if so
    • getRgbExpressions

      public String[] getRgbExpressions()
    • setRgbExpressions

      public void setRgbExpressions(String[] rgbExpressions)
    • getRgbaExpressions

      public String[] getRgbaExpressions()
    • setRgbaExpressions

      public void setRgbaExpressions(String[] rgbaExpressions)
    • getRedExpression

      public String getRedExpression()
    • setRedExpression

      public void setRedExpression(String expression)
    • getGreenExpression

      public String getGreenExpression()
    • setGreenExpression

      public void setGreenExpression(String expression)
    • getBlueExpression

      public String getBlueExpression()
    • setBlueExpression

      public void setBlueExpression(String expression)
    • getAlphaExpression

      public String getAlphaExpression()
    • setAlphaExpression

      public void setAlphaExpression(String expression)
    • hasAlpha

      public boolean hasAlpha()
    • getPattern

      public String[] getPattern()
    • setPattern

      public void setPattern(String[] pattern)
    • isApplicableTo

      public boolean isApplicableTo(Product product)
      Tests whether this profile is applicable to the given product. With other words, the method tests if an RGB image can be created from the given product.
      Parameters:
      product - the product
      Returns:
      true, if so
    • getCurrentProfile

      public static RGBImageProfile getCurrentProfile(Product product)
    • loadProfile

      public static RGBImageProfile loadProfile(File file) throws IOException
      Loads a profile from the given file using the Java properties file format
      Parameters:
      file - the file
      Returns:
      the profile, never null
      Throws:
      IOException - if an I/O error occurs
      See Also:
    • loadProfile

      public static RGBImageProfile loadProfile(URL url) throws IOException
      Loads a profile from the given url using the Java properties file format
      Parameters:
      url - the url
      Returns:
      the profile, never null
      Throws:
      IOException - if an I/O error occurs
      See Also:
    • store

      public void store(File file) throws IOException
      Stores this profile in the given file using the Java properties file format
      Parameters:
      file - the file
      Throws:
      IOException - if an I/O error occurs
      See Also:
    • getProperties

      public void getProperties(Properties properties)
      Sets profile properties and accordingly sets them in the given property map.
      Parameters:
      properties - the property map which receives the properties of this profiles
    • setProperties

      public void setProperties(Properties properties)
      Sets profile properties from the given property map.
      Parameters:
      properties - the property map which provides the properties for this profiles
    • storeRgbaExpressions

      public static void storeRgbaExpressions(Product product, String[] rgbaExpressions)
    • storeRgbaExpressions

      public static void storeRgbaExpressions(Product product, String[] rgbaExpressions, String[] bandNames)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • configure

      @Deprecated public void configure(ConfigurationElement config) throws CoreException
      Deprecated.
      Not in use anymore. Was used in BEAM. Might be removed in the future. Deprecated since SNAP 9.
      Description copied from interface: ConfigurableExtension
      Configures this extension with the supplied configuration data.
      Specified by:
      configure in interface ConfigurableExtension
      Parameters:
      config - The configuration data.
      Throws:
      CoreException - if an error occurred during configuration.
    • setRedMinMax

      public void setRedMinMax(Range range)
    • getRedMinMax

      public Range getRedMinMax()
    • setGreenMinMax

      public void setGreenMinMax(Range range)
    • getGreenMinMax

      public Range getGreenMinMax()
    • setBlueMinMax

      public void setBlueMinMax(Range range)
    • getBlueMinMax

      public Range getBlueMinMax()