Hi Simone, is there any possibility to apply a ColorMap to each single channel?
I have got a SID-Image with 3 bands and a big fat black edging. I want to set each´s band values 0 to 5 as transparent. Is there any possibility to style the image this way? Thank you Tobias -----Ursprüngliche Nachricht----- Von: Simone Giannecchini [mailto:simone.giannecch...@geo-solutions.it] Gesendet: Mittwoch, 14. März 2012 17:13 An: Dominik Affolter Cc: geoserver-users@lists.sourceforge.net Betreff: Re: [Geoserver-users] Rendering failed for GeoTiff layer with ColorMap styling on GS 2.1 Ciao Dominik, quick hint, although you are not showing the entire exception, I believe the style is not correct. You cannot apply the ColorMap element when having 3 bands, you need only 1. Regards, Simone Giannecchini ------------------------------------------------------- Ing. Simone Giannecchini GeoSolutions S.A.S. Founder Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584 962313 fax: +39 0584 962313 mob: +39 333 8128928 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.youtube.com/user/GeoSolutionsIT http://www.linkedin.com/in/simonegiannecchini http://twitter.com/simogeo ------------------------------------------------------- On Wed, Mar 14, 2012 at 4:12 PM, Dominik Affolter <d1affol...@netscape.net> wrote: > I have the same problem with the following configuration: > > Ubuntu 10.04.4 LTS > JVM Version 1.6.0_31 (Java HotSpot(TM) 64-Bit Server VM) Apache > Tomcat/6.0.24 Geoserver Version 2.1-SNAPSHOT > > Here is the Error Code: > > 2012-03-14 15:39:36,297 ERROR [geoserver.ows] - > org.geoserver.platform.ServiceException: Error rendering coverage on > the fast path > at > org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(Rendered > ImageMapOutputFormat.java:334) > at > org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(Rendered > ImageMapOutputFormat.java:250) > at > org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(Rendered > ImageMapOutputFormat.java:125) > at org.geoserver.wms.GetMap.run(GetMap.java:374) > at org.geoserver.wms.GetMap.run(GetMap.java:107) > at > org.geoserver.wms.DefaultWebMapService.getMap(DefaultWebMapService.jav > a:353) > at sun.reflect.GeneratedMethodAccessor247.invoke(Unknown > Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown > Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflectio > n(AopUtils.java:310) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoi > npoint(ReflectiveMethodInvocation.java:182) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(R > eflectiveMethodInvocation.java:149) > at > org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(CacheSeedingWeb > MapService.java:60) > at > org.geoserver.gwc.wms.CacheSeedingWebMapService.invoke(CacheSeedingWeb > MapService.java:34) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(R > eflectiveMethodInvocation.java:171) > at > org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService > .java:73) > at > org.geoserver.gwc.wms.CachingWebMapService.invoke(CachingWebMapService > .java:40) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(R > eflectiveMethodInvocation.java:171) > at > org.geoserver.ows.util.RequestObjectLogger.invoke(RequestObjectLogger. > java:51) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(R > eflectiveMethodInvocation.java:171) > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamic > AopProxy.java:204) > at $Proxy31.getMap(Unknown Source) > at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown > Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown > Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:630) > at > org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:234 > ) > at > org.springframework.web.servlet.mvc.AbstractController.handleRequest(A > bstractController.java:153) > at > org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.han > dle(SimpleControllerHandlerAdapter.java:48) > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(Dispatche > rServlet.java:875) > at > org.springframework.web.servlet.DispatcherServlet.doService(Dispatcher > Servlet.java:809) > at > org.springframework.web.servlet.FrameworkServlet.processRequest(Framew > orkServlet.java:571) > at > org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServle > t.java:501) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:290) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:206) > at > org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsC > leanupFilter.java:23) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:206) > at > org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDele > gatingFilter.java:74) > at > org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegating > Filter.java:45) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:206) > at > org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatc > hFilter.java:49) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:206) > at > org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetChar > acterEncodingFilter.java:109) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:206) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain. > doFilter(FilterChainProxy.java:394) > at > org.springframework.security.intercept.web.FilterSecurityInterceptor.i > nvoke(FilterSecurityInterceptor.java:109) > at > org.springframework.security.intercept.web.FilterSecurityInterceptor.d > oFilter(FilterSecurityInterceptor.java:83) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain. > doFilter(FilterChainProxy.java:406) > at > org.springframework.security.ui.ExceptionTranslationFilter.doFilterHtt > p(ExceptionTranslationFilter.java:101) > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSe > curityFilter.java:53) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain. > doFilter(FilterChainProxy.java:406) > at > org.springframework.security.providers.anonymous.AnonymousProcessingFi > lter.doFilterHttp(AnonymousProcessingFilter.java:105) > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSe > curityFilter.java:53) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain. > doFilter(FilterChainProxy.java:406) > at > org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilt > erHttp(BasicProcessingFilter.java:174) > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSe > curityFilter.java:53) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain. > doFilter(FilterChainProxy.java:406) > at > org.springframework.security.context.HttpSessionContextIntegrationFilt > er.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSe > curityFilter.java:53) > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain. > doFilter(FilterChainProxy.java:406) > at > org.springframework.security.util.FilterChainProxy.doFilter(FilterChai > nProxy.java:185) > at > org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToB > eanProxy.java:99) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:206) > at > org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:71) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:206) > at > org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.j > ava:183) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:206) > at > org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:206) > at > org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.j > ava:46) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appli > cationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFi > lterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVa > lve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextVa > lve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.ja > va:127) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.ja > va:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValv > e.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java > :298) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java: > 859) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proces > s(Http11Protocol.java:588) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489 > ) > at java.lang.Thread.run(Unknown Source) Caused by: > org.geoserver.platform.ServiceException: > java.lang.IllegalArgumentException: Band number 3 is not valid. > at > org.geoserver.wms.map.RenderedImageMapOutputFormat.directRasterRender( > RenderedImageMapOutputFormat.java:912) > at > org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(Rendered > ImageMapOutputFormat.java:332) > ... 91 more > Caused by: java.lang.IllegalArgumentException: Band number 3 is not valid. > at > org.geotools.renderer.lite.gridcoverage2d.ColorMapNode.visit(ColorMapN > ode.java:150) > at > org.geotools.renderer.lite.gridcoverage2d.RasterSymbolizerHelper.visit > (RasterSymbolizerHelper.java:178) > at > org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.prepare > FinalImage(GridCoverageRenderer.java:678) > at > org.geotools.renderer.lite.gridcoverage2d.GridCoverageRenderer.renderI > mage(GridCoverageRenderer.java:777) > at > org.geoserver.wms.map.RenderedImageMapOutputFormat.directRasterRender( > RenderedImageMapOutputFormat.java:901) > ... 92 more > > I used the following SLD Code: > > <?xml version="1.0" encoding="UTF-8"?> <StyledLayerDescriptor > xmlns="http://www.opengis.net/sld" > xmlns:ogc="http://www.opengis.net/ogc" > xmlns:xlink="http://www.w3.org/1999/xlink" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.opengis.net/sld > http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd" > version="1.0.0"> > <NamedLayer> > <Name>raster_map_landuse</Name> > <UserStyle> > <Name>raster_map_landuse</Name> > <Title>landuse</Title> > <Abstract>test</Abstract> > <FeatureTypeStyle> > <Rule> > <RasterSymbolizer> > <Geometry> > <ogc:PropertyName>geom</ogc:PropertyName> > </Geometry> > <Opacity>1.0</Opacity> > <ChannelSelection> > <RedChannel> > <SourceChannelName>1</SourceChannelName> > </RedChannel> > <GreenChannel> > <SourceChannelName>2</SourceChannelName> > </GreenChannel> > <BlueChannel> > <SourceChannelName>3</SourceChannelName> > </BlueChannel> > </ChannelSelection> > <ColorMap type="ramp" extended="false" > > <ColorMapEntry color="#FFFFFF" quantity="1" opacity="0"/> > <ColorMapEntry color="#000000" quantity="2" opacity="1"/> > <ColorMapEntry color="#FFFFFF" quantity="256" > opacity="1"/> > </ColorMap> > </RasterSymbolizer> > </Rule> > </FeatureTypeStyle> > </UserStyle> > </NamedLayer> > </StyledLayerDescriptor> > > this is the gdalinfo of the used raster-file: > > Driver: GTiff/GeoTIFF > Files: Land_use_map_Sarawak_1958_WMerc_clip6.tif > Size is 8114, 5537 > Coordinate System is: > PROJCS["unnamed", > GEOGCS["WGS 84", > DATUM["unknown", > SPHEROID["unretrievable - using > WGS84",6378137,298.257223563]], > PRIMEM["Greenwich",0], > UNIT["degree",0.0174532925199433]], > UNIT["metre",1, > AUTHORITY["EPSG","9001"]], > AUTHORITY["EPSG","3857"]] > Origin = (12193973.920287996530533,563834.560806534718722) > Pixel Size = (84.758015151284383,-84.755426053108181) > Metadata: > AREA_OR_POINT=Area > Image Structure Metadata: > INTERLEAVE=PIXEL > Corner Coordinates: > Upper Left (12193973.920, 563834.561) Lower Left (12193973.920, > 94543.767) Upper Right (12881700.455, 563834.561) Lower Right > (12881700.455, 94543.767) Center (12537837.188, 329189.164) > Band 1 Block=8114x1 Type=Byte, ColorInterp=Red Band 2 Block=8114x1 > Type=Byte, ColorInterp=Green Band 3 Block=8114x1 Type=Byte, > ColorInterp=Blue > > I get the same error when I use another Raster with the same style. > > When I use only one gray channel the colormap works fine. > > -- > View this message in context: > http://osgeo-org.1560.n6.nabble.com/Rendering-failed-for-GeoTiff-layer > -with-ColorMap-styling-on-GS-2-1-tp3791434p4578534.html > Sent from the GeoServer - User mailing list archive at Nabble.com. > > ---------------------------------------------------------------------- > -------- Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing also > focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > Geoserver-users mailing list > Geoserver-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/geoserver-users ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Geoserver-users mailing list Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Geoserver-users mailing list Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users