@Test public void testColourMapEmpty() throws Exception { String yaml = "raster: \n" + " color-map:\n" + " type: values\n" + " entries:\n" + " - " + tuple("#ff0000", "1.0", "0", "start") + "\n" + " - " + tuple("#00ff00", "", "500", "middle") + "\n" + " - " + tuple("#0000ff", null, "1000", "end") + "\n" + ""; StyledLayerDescriptor sld = Ysld.parse(yaml); FeatureTypeStyle fs = SLD.defaultStyle(sld).featureTypeStyles().get(0); RasterSymbolizer symb = (RasterSymbolizer) fs.rules().get(0).symbolizers().get(0); // need to use the geotools.styling interface as it provides the accessors for the entries. ColorMap map = (ColorMap) symb.getColorMap(); // System.out.println(map.getColorMapEntry(0).getColor().evaluate(null)); Color colour1 = (Color) map.getColorMapEntry(0).getColor().evaluate(null); Color colour2 = (Color) map.getColorMapEntry(1).getColor().evaluate(null); Color colour3 = (Color) map.getColorMapEntry(2).getColor().evaluate(null); assertThat(colour1, is(Color.RED)); assertThat(colour2, is(Color.GREEN)); assertThat(colour3, is(Color.BLUE)); }
@Test public void testColourMap() throws Exception { String yaml = "raster: \n" + " color-map:\n" + " type: values\n" + " entries:\n" + " - " + tuple("#ff0000", "1.0", "0", "start") + "\n" + " - " + tuple("#00ff00", "1.0", "500", "middle") + "\n" + " - " + tuple("#0000ff", "1.0", "1000", "end") + "\n" + ""; StyledLayerDescriptor sld = Ysld.parse(yaml); FeatureTypeStyle fs = SLD.defaultStyle(sld).featureTypeStyles().get(0); RasterSymbolizer symb = (RasterSymbolizer) fs.rules().get(0).symbolizers().get(0); // need to use the geotools.styling interface as it provides the accessors for the entries. ColorMap map = (ColorMap) symb.getColorMap(); Color colour1 = (Color) map.getColorMapEntry(0).getColor().evaluate(null); Color colour2 = (Color) map.getColorMapEntry(1).getColor().evaluate(null); Color colour3 = (Color) map.getColorMapEntry(2).getColor().evaluate(null); assertThat(colour1, is(Color.RED)); assertThat(colour2, is(Color.GREEN)); assertThat(colour3, is(Color.BLUE)); }
@Test public void testColourMapExpression() throws Exception { String yaml = "raster: \n" + " color-map:\n" + " type: values\n" + " entries:\n" + " - " + tuple("#ff0000", "1.0", "0", "start") + "\n" + " - " + tuple("#00ff00", "1.0", "500", "middle") + "\n" + " - " + tuple("#0000ff", "'${pow(0.75, 1.2)}'", "1000", "end") + "\n" + // Expression containing comma needs to be quoted ""; StyledLayerDescriptor sld = Ysld.parse(yaml); FeatureTypeStyle fs = SLD.defaultStyle(sld).featureTypeStyles().get(0); RasterSymbolizer symb = (RasterSymbolizer) fs.rules().get(0).symbolizers().get(0); // need to use the geotools.styling interface as it provides the accessors for the entries. ColorMap map = (ColorMap) symb.getColorMap(); assertThat( map.getColorMapEntry(2).getOpacity(), function("pow", literal(0.75), literal(1.2))); }
@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 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 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())); }
ColorMapEntry e = raster.getColorMap().getColorMapEntry(0); assertEquals("#000000", Filters.asString(e.getColor())); assertEquals(95, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(1); assertEquals("#0000FF", Filters.asString(e.getColor())); assertEquals(110, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(2); assertEquals("#00FF00", Filters.asString(e.getColor())); assertEquals(135, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(3); assertEquals("#FF0000", Filters.asString(e.getColor())); assertEquals(160, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(4); assertEquals("#FF00FF", Filters.asString(e.getColor())); assertEquals(185, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(5); assertEquals("#FFFF00", Filters.asString(e.getColor())); assertEquals(210, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(6); assertEquals("#00FFFF", Filters.asString(e.getColor())); assertEquals(235, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(7);
@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())); }
@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())); }
assertEquals(ContrastMethod.NORMALIZE, contrast.getMethod()); 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()));
labels, quantities, realColorRamp.toArray(new Color[1]), colorMapType); FilterFactory2 filterFactory = CommonFactoryFinder.getFilterFactory2(null); resampledColorMap.getColorMapEntry(0).setOpacity(filterFactory.literal(0)); } else { return defaultStyle.getStyle();