Hi Daniele, Thank you very much for your response! Will do that then. Best regards, Tom
El vie., 16 ago. 2019 a las 5:01, Daniele Romagnoli (< [email protected]>) escribió: > Dear Tomas, > note that these are 4 Float32 bands. > When you open it on QGIS, it automatically applies some contrast-stretch > and band selection, making them looks-like an RGB dataset. > On GeoServer, you can use the 3 bands channelselection+contrastEnhancement > SLD you have applied. > I think there is some issue when applying the bandSelect (as reported on > your logs) to go from 4 bands to 3 bands in order to write it as JPEG > (which only supports 1 or 3 bands). > Could you please check if there is already a JIRA on GeoServer reporting > the same issue and, if not, create a bug-report with sample data and SLD to > replicate the problem? > > Best Regards, > Daniele > > On Wed, Aug 14, 2019 at 10:51 PM Tomas Link <[email protected]> > wrote: > >> Hi all. >> >> I have a raster >> <https://drive.google.com/file/d/1Pnr6EzXxIs5kl_b6mt5NHovYiufjG3Bx/view?usp=sharing> >> that contains 4 bands: 2th, 3th, 4th, and 8th bands from sentinel 2A >> dataset. >> These are BLUE, GREEN, RED, NIR, respectively. When I upload this raster >> to GeoServer, Layer Preview (WMS) section gives me a blank image. I tried >> many things for days and read all the information I could find but i'm >> really stuck. I'm hoping you can help me with this problem. I will describe >> here all the things I've been trying. >> >> I'm using GeoServer 2.15.1 in Ubungu 18.04.1 LTS. >> >> This is the complete gdalinfo for the raster: >> >> Driver: GTiff/GeoTIFF >> Files: test.tiff >> Size is 1999, 1579 >> Coordinate System is: >> PROJCS["WGS 84 / UTM zone 19S", >> GEOGCS["WGS 84", >> DATUM["WGS_1984", >> SPHEROID["WGS 84",6378137,298.257223563, >> AUTHORITY["EPSG","7030"]], >> AUTHORITY["EPSG","6326"]], >> PRIMEM["Greenwich",0, >> AUTHORITY["EPSG","8901"]], >> UNIT["degree",0.0174532925199433, >> AUTHORITY["EPSG","9122"]], >> AUTHORITY["EPSG","4326"]], >> PROJECTION["Transverse_Mercator"], >> PARAMETER["latitude_of_origin",0], >> PARAMETER["central_meridian",-69], >> PARAMETER["scale_factor",0.9996], >> PARAMETER["false_easting",500000], >> PARAMETER["false_northing",10000000], >> UNIT["metre",1, >> AUTHORITY["EPSG","9001"]], >> AXIS["Easting",EAST], >> AXIS["Northing",NORTH], >> AUTHORITY["EPSG","32719"]] >> Origin = (560050.000000000000000,5700040.000000000000000) >> Pixel Size = (10.000000000000000,-10.000000000000000) >> Metadata: >> AREA_OR_POINT=Area >> Image Structure Metadata: >> INTERLEAVE=PIXEL >> Corner Coordinates: >> Upper Left ( 560050.000, 5700040.000) ( 68d18'28.85"W, 38d50'47.07"S) >> Lower Left ( 560050.000, 5684250.000) ( 68d18'23.87"W, 38d59'19.28"S) >> Upper Right ( 580040.000, 5700040.000) ( 68d 4'39.66"W, 38d50'41.34"S) >> Lower Right ( 580040.000, 5684250.000) ( 68d 4'33.02"W, 38d59'13.52"S) >> Center ( 570045.000, 5692145.000) ( 68d11'31.34"W, 38d55' 0.51"S) >> *Band 1 Block=1999x1 Type=Float32, ColorInterp=Gray* >> *Band 2 Block=1999x1 Type=Float32, ColorInterp=Undefined* >> *Band 3 Block=1999x1 Type=Float32, ColorInterp=Undefined* >> *Band 4 Block=1999x1 Type=Float32, ColorInterp=Undefined* >> >> *1)* Opened the same raster in QGIS, the raster renders RGB bands just >> fine (well, just with RED-BLUE inverted...) >> *2) *Downloaded the raster uploaded in GeoServer via QGIS. I noted that >> the downloaded file from geoserver now has these band specifications in >> gdalinfo: >> >> *Band 1 Block=512x512 Type=Float32, ColorInterp=Red* >> *Band 2 Block=512x512 Type=Float32, ColorInterp=Green* >> *Band 3 Block=512x512 Type=Float32, ColorInterp=Blue* >> *Band 4 Block=512x512 Type=Float32, ColorInterp=Alpha* >> >> So, by default GeoServer seems to be interpreting the bands color in that >> way. >> If I open this raster in QGIS, I see a blank image. I discovered that the >> reason for this is that QGIS assigns the ALPHA channel as a transparency >> band. Selecting None in transparency band, QGIS renders again just fine. >> At this point I started to think that is a problem related to the alpha >> band, or with any raster with more than 3 bands. >> >> *3)* I removed the 4th band from the raster, and uploaded to GeoServer. >> Now the image is all black, but adding a proper SLD style with contrast >> enhancement (generated from QGIS) GeoServer render the raster just fine. >> This is the SLD: >> >> <?xml version="1.0" encoding="UTF-8"?> >> <StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:ogc=" >> http://www.opengis.net/ogc" version="1.0.0" xmlns:gml=" >> http://www.opengis.net/gml" xmlns:sld="http://www.opengis.net/sld"> >> <UserLayer> >> <sld:LayerFeatureConstraints> >> <sld:FeatureTypeConstraint/> >> </sld:LayerFeatureConstraints> >> <sld:UserStyle> >> <sld:Name>testrgb</sld:Name> >> <sld:FeatureTypeStyle> >> <sld:Rule> >> <sld:RasterSymbolizer> >> <sld:ChannelSelection> >> <sld:RedChannel> >> <sld:SourceChannelName>3</sld:SourceChannelName> >> <sld:ContrastEnhancement> >> <sld:Normalize> >> <sld:VendorOption >> name="algorithm">StretchToMinimumMaximum</sld:VendorOption> >> <sld:VendorOption >> name="minValue">0.0506552</sld:VendorOption> >> <sld:VendorOption >> name="maxValue">0.25763</sld:VendorOption> >> </sld:Normalize> >> </sld:ContrastEnhancement> >> </sld:RedChannel> >> <sld:GreenChannel> >> <sld:SourceChannelName>2</sld:SourceChannelName> >> <sld:ContrastEnhancement> >> <sld:Normalize> >> <sld:VendorOption >> name="algorithm">StretchToMinimumMaximum</sld:VendorOption> >> <sld:VendorOption >> name="minValue">0.07764</sld:VendorOption> >> <sld:VendorOption >> name="maxValue">0.209892</sld:VendorOption> >> </sld:Normalize> >> </sld:ContrastEnhancement> >> </sld:GreenChannel> >> <sld:BlueChannel> >> <sld:SourceChannelName>1</sld:SourceChannelName> >> <sld:ContrastEnhancement> >> <sld:Normalize> >> <sld:VendorOption >> name="algorithm">StretchToMinimumMaximum</sld:VendorOption> >> <sld:VendorOption >> name="minValue">0.0916334</sld:VendorOption> >> <sld:VendorOption >> name="maxValue">0.20144</sld:VendorOption> >> </sld:Normalize> >> </sld:ContrastEnhancement> >> </sld:BlueChannel> >> </sld:ChannelSelection> >> </sld:RasterSymbolizer> >> </sld:Rule> >> </sld:FeatureTypeStyle> >> </sld:UserStyle> >> </UserLayer> >> </StyledLayerDescriptor> >> >> *4)* I applied the same SLD style to the raster with 4 bands, and got >> this following NullPointerException: >> >> java.lang.NullPointerException >> at >> it.geosolutions.jaiext.bandselect.BandSelectOpImage.computeTile(BandSelectOpImage.java:142) >> at >> it.geosolutions.jaiext.bandselect.BandSelectOpImage.getTile(BandSelectOpImage.java:156) >> at javax.media.jai.RenderedOp.getTile(RenderedOp.java:2257) >> at >> com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeOnThread(JPEGImageWriter.java:401) >> at >> com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:363) >> at org.geotools.image.ImageWorker.writeJPEG(ImageWorker.java:4002) >> at >> org.geoserver.wms.map.JPEGMapResponse.formatImageOutputStream(JPEGMapResponse.java:69) >> at >> org.geoserver.wms.map.RenderedImageMapResponse.write(RenderedImageMapResponse.java:112) >> at org.geoserver.ows.Dispatcher.response(Dispatcher.java:1029) >> at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:268) >> at >> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) >> at >> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52) >> at >> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038) >> at >> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) >> at >> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998) >> at >> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:890) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) >> at >> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) >> at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655) >> at >> org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:26) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) >> at >> org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:69) >> at >> org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:73) >> at >> org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:66) >> at >> org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:41) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) >> at >> org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:37) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) >> at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70) >> at >> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) >> at >> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) >> at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70) >> at >> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) >> at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) >> at >> org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:51) >> at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70) >> at >> org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158) >> at >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) >> at >> org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:81) >> at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:70) >> at >> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) >> at >> org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:74) >> at >> org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) >> at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) >> at >> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) >> at >> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) >> at >> org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:142) >> at >> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) >> at >> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) >> at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:90) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) >> at >> org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:79) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) >> at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:42) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) >> at >> org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:46) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) >> at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) >> at >> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) >> at >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634) >> at >> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) >> at >> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) >> at >> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) >> at >> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) >> at >> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) >> at >> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) >> at >> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) >> at >> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) >> at >> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220) >> at >> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) >> at >> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) >> at org.eclipse.jetty.server.Server.handle(Server.java:503) >> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) >> at >> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) >> at >> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) >> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) >> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) >> at >> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) >> at >> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) >> at >> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) >> at >> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) >> at >> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) >> at >> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) >> at >> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) >> at java.lang.Thread.run(Thread.java:748) >> >> I couldn't figure out if this exception has anything to do with the 4th >> band. >> >> 5) If I change *StretchToMinimumMaximum to **ClipToMinimumMaximum,* the >> nullpointerexception goes away, but now I see a blank image again. >> >> 6) Applying the following SLD style (also generated in QGIS) that renders >> only the first band as greyscale works: >> >> <?xml version="1.0" encoding="UTF-8"?> >> <StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:gml=" >> http://www.opengis.net/gml" xmlns:sld="http://www.opengis.net/sld" >> version="1.0.0" xmlns:ogc="http://www.opengis.net/ogc"> >> <UserLayer> >> <sld:LayerFeatureConstraints> >> <sld:FeatureTypeConstraint/> >> </sld:LayerFeatureConstraints> >> <sld:UserStyle> >> <sld:Name>test</sld:Name> >> <sld:FeatureTypeStyle> >> <sld:Rule> >> <sld:RasterSymbolizer> >> <sld:ChannelSelection> >> <sld:GrayChannel> >> <sld:SourceChannelName>1</sld:SourceChannelName> >> <sld:ContrastEnhancement> >> <sld:Normalize> >> <sld:VendorOption >> name="algorithm">ClipToMinimumMaximum</sld:VendorOption> >> <sld:VendorOption >> name="minValue">0.0803</sld:VendorOption> >> <sld:VendorOption >> name="maxValue">0.193875</sld:VendorOption> >> </sld:Normalize> >> </sld:ContrastEnhancement> >> </sld:GrayChannel> >> </sld:ChannelSelection> >> <sld:ColorMap> >> <sld:ColorMapEntry opacity="0" color="#000000" >> quantity="0.0869045"/> >> <sld:ColorMapEntry color="#000000" quantity="0.0869045"/> >> <sld:ColorMapEntry color="#ffffff" quantity="0.193875"/> >> <sld:ColorMapEntry opacity="0" color="#ffffff" >> quantity="0.193875"/> >> </sld:ColorMap> >> </sld:RasterSymbolizer> >> </sld:Rule> >> </sld:FeatureTypeStyle> >> </sld:UserStyle> >> </UserLayer> >> </StyledLayerDescriptor> >> >> >> The only thing that makes sense to me is that GeoServer is interpreting >> the 4th band as a transparency band (like QGIS). But I really don't know if >> this is the case or if can be disabled. >> Thanks in advance. >> >> Tomás >> >> >> >> >> >> >> -- >> >> >> Tomás Juan Link >> >> Software Developer >> >> +54 (11) 4342-2976/84 >> >> www.spacesur.com >> >> _______________________________________________ >> Geoserver-users mailing list >> >> Please make sure you read the following two resources before posting to >> this list: >> - Earning your support instead of buying it, but Ian Turton: >> http://www.ianturton.com/talks/foss4g.html#/ >> - The GeoServer user list posting guidelines: >> http://geoserver.org/comm/userlist-guidelines.html >> >> If you want to request a feature or an improvement, also see this: >> https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer >> >> >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/geoserver-users >> > > > -- > Regards, > Daniele Romagnoli > == > GeoServer Professional Services from the experts! Visit > http://goo.gl/it488V for more information. > == > > Ing. Daniele Romagnoli > Senior Software Engineer > > GeoSolutions S.A.S. > Via di Montramito 3/A > 55054 Massarosa (LU) > Italy > phone: +39 0584 962313 > fax: +39 0584 1660272 > > http://www.geo-solutions.it > http://twitter.com/geosolutions_it > > ------------------------------------------------------- > > Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE > 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si > precisa che ogni circostanza inerente alla presente email (il suo > contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è > riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il > messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra > operazione è illecita. Le sarei comunque grato se potesse darmene notizia. > > This email is intended only for the person or entity to which it is > addressed and may contain information that is privileged, confidential or > otherwise protected from disclosure. We remind that - as provided by > European Regulation 2016/679 “GDPR” - copying, dissemination or use of this > e-mail or the information herein by anyone other than the intended > recipient is prohibited. If you have received this email by mistake, please > notify us immediately by telephone or e-mail. > -- Tomás Juan Link Software Developer +54 (11) 4342-2976/84 www.spacesur.com
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
