/** * Retrieves the opacity from the first RasterSymbolizer defined in a style. * * @param style the Style object * @return opacity of the raster symbolizer or NaN if unavailable. */ public static double rasterOpacity(Style style) { return rasterOpacity(rasterSymbolizer(style)); }
/** * Test that setting the raster opacity correct duplicates the raster symbolizer as a different * object and correctly sets the opacity. */ public void testSetRasterOpacity() { RasterSymbolizer rs = sb.createRasterSymbolizer(); Style s = sb.createStyle(rs); assertEquals(1.0, SLD.opacity(SLD.rasterSymbolizer(s))); SLD.setRasterOpacity(s, 0.25); assertEquals(0.25, SLD.opacity(SLD.rasterSymbolizer(s))); assertNotSame(SLD.rasterSymbolizer(s), rs); }
@Test public void testRasterBandSelectionGray() throws Exception { String yaml = "raster:\n" + " channels:\n" + " gray:\n" + " name: foo\n"; StyledLayerDescriptor sld = Ysld.parse(yaml); RasterSymbolizer r = SLD.rasterSymbolizer(SLD.defaultStyle(sld)); SelectedChannelType grayChannel = r.getChannelSelection().getGrayChannel(); assertThat(grayChannel.getChannelName().evaluate(null, String.class), equalTo("foo")); assertThat(grayChannel.getContrastEnhancement(), nullContrast()); }
@Test public void testRasterBandSelectionGrayTerse() throws Exception { String yaml = "raster:\n" + " channels:\n" + " gray: 1\n"; StyledLayerDescriptor sld = Ysld.parse(yaml); RasterSymbolizer r = SLD.rasterSymbolizer(SLD.defaultStyle(sld)); SelectedChannelType grayChannel = r.getChannelSelection().getGrayChannel(); assertThat(grayChannel.getChannelName().evaluate(null, String.class), equalTo("1")); assertThat(grayChannel.getContrastEnhancement(), nullContrast()); }
@Test public void testRasterBandSelectionGreyWithContrast() throws Exception { String yaml = "raster:\n" + " channels:\n" + " gray:\n" + " name: foo\n" + " contrast-enhancement:\n" + " mode: normalize\n" + " gamma: 1.2\n"; StyledLayerDescriptor sld = Ysld.parse(yaml); RasterSymbolizer r = SLD.rasterSymbolizer(SLD.defaultStyle(sld)); SelectedChannelType grayChannel = r.getChannelSelection().getGrayChannel(); assertThat(grayChannel.getChannelName().evaluate(null, String.class), equalTo("foo")); assertThat(grayChannel.getContrastEnhancement().getGammaValue(), literal(equalTo("1.2"))); assertThat( grayChannel.getContrastEnhancement().getMethod(), equalTo(ContrastMethod.NORMALIZE)); }
/** * Retrieves the opacity from the first RasterSymbolizer defined * in a style. * * @param style the Style object * * @return opacity of the raster symbolizer or NaN if unavailable. */ public static double rasterOpacity(Style style) { return rasterOpacity(rasterSymbolizer(style)); }
public static double rasterOpacity(Style style) { return rasterOpacity(rasterSymbolizer(style)); }
@Test public void testRasterBandSelectionRGBTerse() throws Exception { String yaml = "raster:\n" + " channels:\n" + " red: 1\n" + " green: 2\n" + " blue: 3\n"; StyledLayerDescriptor sld = Ysld.parse(yaml); RasterSymbolizer r = SLD.rasterSymbolizer(SLD.defaultStyle(sld)); SelectedChannelType[] rgbChannels = r.getChannelSelection().getRGBChannels(); assertThat(rgbChannels[0].getChannelName().evaluate(null, String.class), equalTo("1")); assertThat(rgbChannels[2].getContrastEnhancement(), nullContrast()); assertThat(rgbChannels[1].getChannelName().evaluate(null, String.class), equalTo("2")); assertThat(rgbChannels[2].getContrastEnhancement(), nullContrast()); assertThat(rgbChannels[2].getChannelName().evaluate(null, String.class), equalTo("3")); assertThat(rgbChannels[2].getContrastEnhancement(), nullContrast()); }
/** * Test to ensure that updating the channels duplicates the raster sybmolizer with the new rgb * channels */ public void testSetRasterRGBChannels() { RasterSymbolizer rs = sb.createRasterSymbolizer(); Style s = sb.createStyle(rs); SelectedChannelType red = sf.createSelectedChannelType("red", sf.createContrastEnhancement(ff.literal(0.2))); SelectedChannelType green = sf.createSelectedChannelType( "green", sf.createContrastEnhancement(ff.literal(0.4))); SelectedChannelType blue = sf.createSelectedChannelType("blue", sf.createContrastEnhancement(ff.literal(0.7))); SLD.setChannelSelection(s, new SelectedChannelType[] {red, green, blue}, null); assertNull(SLD.rasterSymbolizer(s).getChannelSelection().getGrayChannel()); assertNotNull(SLD.rasterSymbolizer(s).getChannelSelection().getRGBChannels()); SelectedChannelType[] selectedChannels = SLD.rasterSymbolizer(s).getChannelSelection().getRGBChannels(); assertEquals("red", selectedChannels[0].getChannelName().evaluate(null, String.class)); assertEquals("green", selectedChannels[1].getChannelName().evaluate(null, String.class)); assertEquals("blue", selectedChannels[2].getChannelName().evaluate(null, String.class)); assertNotSame(SLD.rasterSymbolizer(s), rs); } }
@Test public void testRasterBandSelectionRGB() throws Exception { String yaml = "raster:\n" + " channels:\n" + " red:\n" + " name: foo\n" + " green:\n" + " name: bar\n" + " contrast-enhancement:\n" + " mode: normalize\n" + " blue:\n" + " name: baz\n"; StyledLayerDescriptor sld = Ysld.parse(yaml); RasterSymbolizer r = SLD.rasterSymbolizer(SLD.defaultStyle(sld)); SelectedChannelType[] rgbChannels = r.getChannelSelection().getRGBChannels(); assertThat(rgbChannels[0].getChannelName().evaluate(null, String.class), equalTo("foo")); assertThat(rgbChannels[1].getChannelName().evaluate(null, String.class), equalTo("bar")); assertThat(rgbChannels[2].getChannelName().evaluate(null, String.class), equalTo("baz")); assertThat(rgbChannels[0].getContrastEnhancement(), nullContrast()); assertThat(rgbChannels[1].getContrastEnhancement().getGammaValue(), nilExpression()); assertThat( rgbChannels[1].getContrastEnhancement().getMethod(), equalTo(ContrastMethod.NORMALIZE)); assertThat(rgbChannels[2].getContrastEnhancement(), nullContrast()); }
@Test public void testRasterWithTwoColorGradient() throws Exception { // <UserStyle> // <Title>SLD Cook Book: Two color gradient</Title> // <FeatureTypeStyle> // <Rule> // <RasterSymbolizer> // <ColorMap> // <ColorMapEntry color="#008000" quantity="70" /> // <ColorMapEntry color="#663333" quantity="256" /> // </ColorMap> // </RasterSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("raster", "two-color-gradient.sld"); RasterSymbolizer raster = SLD.rasterSymbolizer(style); ColorMapEntry e = raster.getColorMap().getColorMapEntry(0); assertEquals("#008000", Filters.asString(e.getColor())); assertEquals(70, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(1); assertEquals("#663333", Filters.asString(e.getColor())); assertEquals(256, Filters.asInt(e.getQuantity())); }
@Test public void testRasterWithDiscreteColors() throws Exception { // <UserStyle> // <Title>SLD Cook Book: Discrete colors</Title> // <FeatureTypeStyle> // <Rule> // <RasterSymbolizer> // <ColorMap type="intervals"> // <ColorMapEntry color="#008000" quantity="150" /> // <ColorMapEntry color="#663333" quantity="256" /> // </ColorMap> // </RasterSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("raster", "discrete-colors.sld"); RasterSymbolizer raster = SLD.rasterSymbolizer(style); ColorMapEntry e = raster.getColorMap().getColorMapEntry(0); assertEquals("#008000", Filters.asString(e.getColor())); assertEquals(150, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(1); assertEquals("#663333", Filters.asString(e.getColor())); assertEquals(256, Filters.asInt(e.getQuantity())); }
@Test public void testRasterWithAlphaChannel() throws Exception { // <UserStyle> // <Title>SLD Cook Book: Alpha channel</Title> // <FeatureTypeStyle> // <Rule> // <RasterSymbolizer> // <ColorMap> // <ColorMapEntry color="#008000" quantity="70" /> // <ColorMapEntry color="#008000" quantity="256" opacity="0"/> // </ColorMap> // </RasterSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("raster", "alpha-channel.sld"); RasterSymbolizer raster = SLD.rasterSymbolizer(style); ColorMapEntry e = raster.getColorMap().getColorMapEntry(0); assertEquals("#008000", Filters.asString(e.getColor())); assertEquals(70, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(1); assertEquals("#008000", Filters.asString(e.getColor())); assertEquals(256, Filters.asInt(e.getQuantity())); assertEquals(0, Filters.asInt(e.getOpacity())); }
@Test public void testRasterWithTransparentGradient() throws Exception { // <UserStyle> // <Title>SLD Cook Book: Transparent gradient</Title> // <FeatureTypeStyle> // <Rule> // <RasterSymbolizer> // <Opacity>0.3</Opacity> // <ColorMap> // <ColorMapEntry color="#008000" quantity="70" /> // <ColorMapEntry color="#663333" quantity="256" /> // </ColorMap> // </RasterSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("raster", "transparent-gradient.sld"); RasterSymbolizer raster = SLD.rasterSymbolizer(style); assertEquals(0.3, Filters.asDouble(raster.getOpacity()), 0.1); ColorMapEntry e = raster.getColorMap().getColorMapEntry(0); assertEquals("#008000", Filters.asString(e.getColor())); assertEquals(70, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(1); assertEquals("#663333", Filters.asString(e.getColor())); assertEquals(256, Filters.asInt(e.getQuantity())); }
RasterSymbolizer raster = SLD.rasterSymbolizer(style);
@Test public void testRasterWithThreeColorGradient() throws Exception { // <UserStyle> // <Title>SLD Cook Book: Three color gradient</Title> // <FeatureTypeStyle> // <Rule> // <RasterSymbolizer> // <ColorMap> // <ColorMapEntry color="#0000FF" quantity="150" /> // <ColorMapEntry color="#FFFF00" quantity="200" /> // <ColorMapEntry color="#FF0000" quantity="250" /> // </ColorMap> // </RasterSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("raster", "three-color-gradient.sld"); RasterSymbolizer raster = SLD.rasterSymbolizer(style); ColorMapEntry e = raster.getColorMap().getColorMapEntry(0); assertEquals("#0000FF", Filters.asString(e.getColor())); assertEquals(150, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(1); assertEquals("#FFFF00", Filters.asString(e.getColor())); assertEquals(200, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(2); assertEquals("#FF0000", Filters.asString(e.getColor())); assertEquals(250, Filters.asInt(e.getQuantity())); }
RasterSymbolizer raster = SLD.rasterSymbolizer(style);