Ciao Martin, yeah, you are correct. However, I need to know a few things (yesterday I sent you back stuff in a rush I might have given you bad code :-) ).
1> your sld 2> code snippet 3> gdalinfo of a sample geotiff Simone. ------------------------------------------------------- Ing. Simone Giannecchini GeoSolutions S.A.S. Owner - Software Engineer Via Carignoni 51 55041 Camaiore (LU) Italy phone: +39 0584983027 fax: +39 0584983027 mob: +39 333 8128928 http://www.geo-solutions.it http://simboss.blogspot.com/ http://www.linkedin.com/in/simonegiannecchini ------------------------------------------------------- On Tue, Feb 17, 2009 at 12:25 PM, Martin Tomko <[email protected]> wrote: > Hi Simone, > thanks for the exaplanation. I would still like to use the acceleration > provided through the mlib wrapper, is there a way to use it through maven? > > Regarding the colors: all the cells are displayed in shades of grey, despite > my styling that contains something like: > <ColorMapEntry color="#ffffff" quantity="-1.0" opacity="1.0"/> > <ColorMapEntry color="#000000" quantity="0.0" opacity="1.0"/> > <ColorMapEntry color="#ffff00" quantity="1.0" opacity="1.0"/> > <ColorMapEntry color="#00ff00" quantity="2.0" opacity="1.0"/> > <ColorMapEntry color="#00ffff" quantity="3.0" opacity="1.0"/> > <ColorMapEntry color="#0000ff" quantity="4.0" opacity="1.0"/> > <ColorMapEntry color="#ff00ff" quantity="5.0" opacity="1.0"/> > <ColorMapEntry color="#ff0000" quantity="6.0" opacity="1.0"/> > So, for instance, I would assume cells with a value of 6 to be rendered as > #ff0000 (red), is that right? > > Thanks > Martin > > Simone Giannecchini wrote: >> >> Ciao Martin, >> what you are seeing is just a warning, the only consequence (or at >> least the one you should care of) is that JAI will work in pure java >> mode, withou native acceleration. >> >> About the shaded gray, can you be more specific? >> >> >> Simone. >> >> >> ------------------------------------------------------- >> Ing. Simone Giannecchini >> GeoSolutions S.A.S. >> Owner - Software Engineer >> Via Carignoni 51 >> 55041 Camaiore (LU) >> Italy >> >> phone: +39 0584983027 >> fax: +39 0584983027 >> mob: +39 333 8128928 >> >> >> http://www.geo-solutions.it >> http://simboss.blogspot.com/ >> http://www.linkedin.com/in/simonegiannecchini >> >> ------------------------------------------------------- >> >> >> >> On Tue, Feb 17, 2009 at 11:46 AM, Martin Tomko <[email protected]> >> wrote: >> >>> >>> Dear Simone, >>> thank you very much for the simplified sld and the code. Indeed, there is >>> progress: the change to the last two lines : >>> >>> rsh.visit(rs); >>> ((GridCoverage2D)rsh.getOutput()).show(); >>> >>> helped. I guess this is the way it should be included in the tutorial as >>> well. However, not all is good yet - while I get the output, it is all >>> only >>> in shades of grey, and I am getting the followng error (see stack trace >>> at >>> the end of the message). My reading is that it results from the missing >>> library (I think the JAI libraries, specially mlibwrapper_jai.jar ). Now, >>> I >>> did not install the jai on my machine, as I ues maven to handle my >>> classpaths. I searched for a dependency for mlibwrapper_jai.jar without >>> success (tried: >>> <dependency> >>> <groupId>javax.media</groupId> >>> <artifactId>mlibwrapper_jai</artifactId> >>> <version>${jai.version}</version> >>> </dependency>) >>> but that throws errors. Even in mvnbrowser there is not artefact declared >>> for this class. I have found soem discussion pointing to this requirement >>> in >>> the new geotools >>> >>> (http://www.mail-archive.com/[email protected]/msg16471.html). >>> Is there a way to run this without the mlibwrapper_jai yet, or a way to >>> add this as a dependency in the maven build? As I am going to package my >>> program as a webservice, I cannot rely on external installation of jai, I >>> am >>> afraid. >>> >>> Thanks a lot for all the help. >>> >>> Martin >>> >>> >>> >>> >>> Feb 17, 2009 11:37:13 AM org.geotools.styling.SLDParser parseUserLayer >>> INFO: layer name: raster_layer >>> Error: Could not find mediaLib accelerator wrapper classes. Continuing in >>> pure Java mode. >>> Occurs in: com.sun.media.jai.mlib.MediaLibAccessor >>> java.lang.NoClassDefFoundError: com/sun/medialib/mlib/Image >>> at >>> com.sun.media.jai.mlib.MediaLibAccessor$1.run(MediaLibAccessor.java:248) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> >>> com.sun.media.jai.mlib.MediaLibAccessor.setUseMlib(MediaLibAccessor.java:245) >>> at >>> >>> com.sun.media.jai.mlib.MediaLibAccessor.useMlib(MediaLibAccessor.java:177) >>> at >>> >>> com.sun.media.jai.mlib.MediaLibAccessor.isMediaLibCompatible(MediaLibAccessor.java:357) >>> at com.sun.media.jai.mlib.MlibExtremaRIF.create(MlibExtremaRIF.java:44) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>> at >>> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>> at java.lang.reflect.Method.invoke(Method.java:597) >>> at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122) >>> at >>> >>> javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674) >>> at >>> >>> javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperationRegistry.java:473) >>> at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:332) >>> at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:819) >>> at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:867) >>> at javax.media.jai.RenderedOp.getRendering(RenderedOp.java:888) >>> at javax.media.jai.RenderedOp$1.getPropertyNames(RenderedOp.java:1791) >>> at >>> >>> javax.media.jai.PropertyEnvironment.mapDefaults(PropertyEnvironment.java:270) >>> at >>> >>> javax.media.jai.PropertyEnvironment.getPropertyNames(PropertyEnvironment.java:125) >>> at >>> >>> javax.media.jai.WritablePropertySourceImpl.addProperties(WritablePropertySourceImpl.java:298) >>> at javax.media.jai.RenderedOp.createPropertySource(RenderedOp.java:1817) >>> at javax.media.jai.RenderedOp.getProperty(RenderedOp.java:1968) >>> at >>> org.geotools.image.ImageWorker.getComputedProperty(ImageWorker.java:585) >>> at org.geotools.image.ImageWorker.getExtremas(ImageWorker.java:605) >>> at org.geotools.image.ImageWorker.rescaleToBytes(ImageWorker.java:748) >>> at >>> >>> org.geotools.renderer.lite.gridcoverage2d.RasterSymbolizerHelper.execute(RasterSymbolizerHelper.java:108) >>> at >>> >>> org.geotools.renderer.lite.gridcoverage2d.RasterSymbolizerHelper.execute(RasterSymbolizerHelper.java:48) >>> at >>> >>> org.geotools.renderer.lite.gridcoverage2d.StyleVisitorCoverageProcessingNodeAdapter$1.execute(StyleVisitorCoverageProcessingNodeAdapter.java:140) >>> at >>> >>> org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.checkExecuted(BaseCoverageProcessingNode.java:235) >>> at >>> >>> org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.getOutput(BaseCoverageProcessingNode.java:337) >>> at >>> >>> org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.getOutput(BaseCoverageProcessingNode.java:42) >>> at >>> >>> org.geotools.renderer.lite.gridcoverage2d.StyleVisitorCoverageProcessingNodeAdapter.getOutput(StyleVisitorCoverageProcessingNodeAdapter.java:180) >>> at ch.uzh.geo.tomko.GTViewshed.GTtest.main(GTtest.java:209) >>> Caused by: java.lang.ClassNotFoundException: com.sun.medialib.mlib.Image >>> at java.net.URLClassLoader$1.run(URLClassLoader.java:200) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306) >>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251) >>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) >>> ... 34 more >>> >>> >>> >>> >>> Simone Giannecchini wrote: >>> >>>> >>>> Ciao Martin, >>>> I copied and pasted (with few modifications) your stile inside the >>>> renderer tests and it worked. I am attaching it to this email. >>>> >>>> The code used is as follows: >>>> >>>> RasterSymbolizerHelper rsh = new >>>> RasterSymbolizerHelper(gc, >>>> null); >>>> final UserLayer nl = (UserLayer) sld.getStyledLayers()[0]; >>>> final Style style = nl.getUserStyles()[0]; >>>> final FeatureTypeStyle fts = >>>> style.getFeatureTypeStyles()[0]; >>>> final Rule rule = fts.getRules()[0]; >>>> RasterSymbolizer rs = (RasterSymbolizer) >>>> rule.getSymbolizers()[0]; >>>> rsh.visit(rs); >>>> ((GridCoverage2D)rsh.getOutput()).show(); >>>> >>>> What are the characteristics of your data? A gdalinfo might help. >>>> >>>> Let me know if this works. >>>> >>>> Simone. >>>> ------------------------------------------------------- >>>> Ing. Simone Giannecchini >>>> GeoSolutions S.A.S. >>>> Owner - Software Engineer >>>> Via Carignoni 51 >>>> 55041 Camaiore (LU) >>>> Italy >>>> >>>> phone: +39 0584983027 >>>> fax: +39 0584983027 >>>> mob: +39 333 8128928 >>>> >>>> >>>> http://www.geo-solutions.it >>>> http://simboss.blogspot.com/ >>>> http://www.linkedin.com/in/simonegiannecchini >>>> >>>> ------------------------------------------------------- >>>> >>>> >>>> >>>> On Mon, Feb 16, 2009 at 6:15 PM, Martin Tomko <[email protected]> >>>> wrote: >>>> >>>> >>>>> >>>>> Hi Simone, >>>>> I used the one in your example, with changed values that are to be >>>>> mapped, >>>>> as follows: >>>>> Thanks >>>>> Martin >>>>> >>>>> <?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*"> >>>>> - <#> <UserLayer> >>>>> <Name>raster_layer</Name> >>>>> - <#> <LayerFeatureConstraints> >>>>> <FeatureTypeConstraint /> >>>>> </LayerFeatureConstraints> >>>>> - <#> <UserStyle> >>>>> <Name>raster</Name> >>>>> <Title>A boring default style</Title> >>>>> <Abstract>A sample style for rasters</Abstract> >>>>> - <#> <FeatureTypeStyle> >>>>> <FeatureTypeName>Feature</FeatureTypeName> >>>>> - <#> <Rule> >>>>> - <#> <RasterSymbolizer> >>>>> - <#> <!-- >>>>> >>>>> ColorMap type="ramp" extended="true"> >>>>> <ColorMapEntry color="#000000" quantity="-1.0" opacity="1.0"/> >>>>> <ColorMapEntry color="#ff0000" quantity="0.0" opacity="1.0"/> >>>>> <ColorMapEntry color="#ffff00" quantity="1.0" opacity="1.0"/> >>>>> <ColorMapEntry color="#00ff00" quantity="2.0" opacity="1.0"/> >>>>> <ColorMapEntry color="#00ffff" quantity="3.0" opacity="1.0"/> >>>>> <ColorMapEntry color="#0000ff" quantity="4.0" opacity="1.0"/> >>>>> <ColorMapEntry color="#ff00ff" quantity="5.0" opacity="1.0"/> >>>>> <ColorMapEntry color="#ffffff" quantity="6.0" opacity="1.0"/> >>>>> </ColorMap >>>>> --> >>>>> <Opacity>1.0</Opacity> >>>>> - <#> <ChannelSelection> >>>>> - <#> <GrayChannel> >>>>> <SourceChannelName>1</SourceChannelName> >>>>> - <#> <ContrastEnhancement> >>>>> <Normalize /> >>>>> </ContrastEnhancement> >>>>> </GrayChannel> >>>>> </ChannelSelection> >>>>> - <#> <ContrastEnhancement> >>>>> <GammaValue>1</GammaValue> >>>>> </ContrastEnhancement> >>>>> </RasterSymbolizer> >>>>> </Rule> >>>>> </FeatureTypeStyle> >>>>> </UserStyle> >>>>> </UserLayer> >>>>> </StyledLayerDescriptor> >>>>> >>>>> >>>>> Simone Giannecchini wrote: >>>>> >>>>> >>>>>> >>>>>> Ciao Martin, >>>>>> please, send over the SLD file you are using. >>>>>> >>>>>> >>>>>> Simone. >>>>>> ------------------------------------------------------- >>>>>> Ing. Simone Giannecchini >>>>>> GeoSolutions S.A.S. >>>>>> Owner - Software Engineer >>>>>> Via Carignoni 51 >>>>>> 55041 Camaiore (LU) >>>>>> Italy >>>>>> >>>>>> phone: +39 0584983027 >>>>>> fax: +39 0584983027 >>>>>> mob: +39 333 8128928 >>>>>> >>>>>> >>>>>> http://www.geo-solutions.it >>>>>> http://simboss.blogspot.com/ >>>>>> http://www.linkedin.com/in/simonegiannecchini >>>>>> >>>>>> ------------------------------------------------------- >>>>>> >>>>>> >>>>>> >>>>>> On Mon, Feb 16, 2009 at 5:57 PM, Martin Tomko >>>>>> <[email protected]> >>>>>> wrote: >>>>>> >>>>>> >>>>>> >>>>>>> >>>>>>> Hi Simone, >>>>>>> I have solved the Style factory problem as follows: >>>>>>> SLDParser stylereader = new SLDParser(new StyleFactoryImpl() , >>>>>>> sldfile); >>>>>>> I have imported the UserLayer, Style and all following classess from >>>>>>> org.geotools.styling (it seems that classes with the same name are >>>>>>> also >>>>>>> in >>>>>>> org.opemgis...). The methods called are shown as deprecated (I work >>>>>>> with >>>>>>> 2.5-SNAPSHOT thorugh maven). Anyway, I tried to use them. >>>>>>> >>>>>>> I am not able to run your example because of the line: >>>>>>> rsh_SLD.visit(rs_1).show(); >>>>>>> >>>>>>> where >>>>>>> SubchainStyleVisitorCoverageProcessingAdapter rsh_SLD = new >>>>>>> RasterSymbolizerHelper(gc, null); >>>>>>> final RasterSymbolizer rs_1 = (RasterSymbolizer) >>>>>>> rule.getSymbolizers()[0]; >>>>>>> >>>>>>> where show() cannot be invoked on a type void. Any idea why this is? >>>>>>> I tried a workaround (also tried through theexecute method): >>>>>>> GridCoverage2D tmpgc = (GridCoverage2D)rsh_SLD.getOutput(); >>>>>>> tmpgc.show(); >>>>>>> >>>>>>> but I am getting the following error: >>>>>>> Feb 16, 2009 5:49:01 PM org.geotools.styling.SLDParser parseUserLayer >>>>>>> INFO: layer name: raster_layer >>>>>>> Exception in thread "main" >>>>>>> org.geotools.coverage.processing.CoverageProcessingException: >>>>>>> java.lang.NullPointerException >>>>>>> at >>>>>>> >>>>>>> >>>>>>> >>>>>>> org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.getOutput(BaseCoverageProcessingNode.java:339) >>>>>>> at >>>>>>> >>>>>>> >>>>>>> >>>>>>> org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.getOutput(BaseCoverageProcessingNode.java:42) >>>>>>> at >>>>>>> >>>>>>> >>>>>>> >>>>>>> org.geotools.renderer.lite.gridcoverage2d.StyleVisitorCoverageProcessingNodeAdapter.getOutput(StyleVisitorCoverageProcessingNodeAdapter.java:180) >>>>>>> at ch.uzh.geo.tomko.GTViewshed.GTtest.main(GTtest.java:207) >>>>>>> Caused by: java.lang.NullPointerException >>>>>>> at >>>>>>> >>>>>>> >>>>>>> >>>>>>> org.geotools.renderer.lite.gridcoverage2d.RasterSymbolizerHelper.execute(RasterSymbolizerHelper.java:69) >>>>>>> at >>>>>>> >>>>>>> >>>>>>> >>>>>>> org.geotools.renderer.lite.gridcoverage2d.RasterSymbolizerHelper.execute(RasterSymbolizerHelper.java:48) >>>>>>> at >>>>>>> >>>>>>> >>>>>>> >>>>>>> org.geotools.renderer.lite.gridcoverage2d.StyleVisitorCoverageProcessingNodeAdapter$1.execute(StyleVisitorCoverageProcessingNodeAdapter.java:140) >>>>>>> at >>>>>>> >>>>>>> >>>>>>> >>>>>>> org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.checkExecuted(BaseCoverageProcessingNode.java:235) >>>>>>> at >>>>>>> >>>>>>> >>>>>>> >>>>>>> org.geotools.renderer.lite.gridcoverage2d.BaseCoverageProcessingNode.getOutput(BaseCoverageProcessingNode.java:337) >>>>>>> ... 3 more >>>>>>> >>>>>>> Any help more than welcome, >>>>>>> Martin >>>>>>> >>>>>>> >>>>>>> Simone Giannecchini wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> Ciao Martin, >>>>>>>> a way to achieve that is by using the RasterSymbolizer (2.5.0 and >>>>>>>> successive releases). >>>>>>>> See >>>>>>>> http://docs.codehaus.org/display/GEOTOOLS/Raster+Symbolizer+support >>>>>>>> for more information. >>>>>>>> >>>>>>>> >>>>>>>> Simone. >>>>>>>> ------------------------------------------------------- >>>>>>>> Ing. Simone Giannecchini >>>>>>>> GeoSolutions S.A.S. >>>>>>>> Owner - Software Engineer >>>>>>>> Via Carignoni 51 >>>>>>>> 55041 Camaiore (LU) >>>>>>>> Italy >>>>>>>> >>>>>>>> phone: +39 0584983027 >>>>>>>> fax: +39 0584983027 >>>>>>>> mob: +39 333 8128928 >>>>>>>> >>>>>>>> >>>>>>>> http://www.geo-solutions.it >>>>>>>> http://simboss.blogspot.com/ >>>>>>>> http://www.linkedin.com/in/simonegiannecchini >>>>>>>> >>>>>>>> ------------------------------------------------------- >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Feb 16, 2009 at 3:59 PM, Martin Tomko >>>>>>>> <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> Dear all, >>>>>>>>> I am creating a gridcoverage2D (and consequently a geotiff, based >>>>>>>>> on >>>>>>>>> processing of a source geotiff DEM), and I want to quickly >>>>>>>>> visualize >>>>>>>>> the >>>>>>>>> results of the analysis. Instead of opening it in some GIS, I would >>>>>>>>> like >>>>>>>>> to assign a color model to the result.and display it through the >>>>>>>>> show() >>>>>>>>> method. I tried to change the viewtype, but it does not seem to >>>>>>>>> help. >>>>>>>>> >>>>>>>>> My GridCoverage2D is created as follows: >>>>>>>>> >>>>>>>>> WritableRaster hor = ...; >>>>>>>>> GridCoverage2D gchor = gcFactoryhor.create("hor", hor, env); >>>>>>>>> gchor.view(ViewType.GEOPHYSICS); >>>>>>>>> gchor.show(); >>>>>>>>> >>>>>>>>> and I use a GeoTiffWriter to output the geoTiff. Note that ArcMap >>>>>>>>> open >>>>>>>>> the geotiff fine (requiring classification to assign colors), as >>>>>>>>> well >>>>>>>>> as >>>>>>>>> a normal image viewer (e.g., XnView), but the result is just a >>>>>>>>> binary >>>>>>>>> nodata/anydata black and white rendering. >>>>>>>>> >>>>>>>>> I see that it is possible to assign colors in the GridCoverage2D >>>>>>>>> gchor >>>>>>>>> = >>>>>>>>> gcFactoryhor.create(...) part, but I am not sure how to map the >>>>>>>>> values >>>>>>>>> in the raster to the colors. Any hints welcome. >>>>>>>>> >>>>>>>>> Thanks >>>>>>>>> Martin >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> ------------------------------------------------------------------------------ >>>>>>>>> Open Source Business Conference (OSBC), March 24-25, 2009, San >>>>>>>>> Francisco, >>>>>>>>> CA >>>>>>>>> -OSBC tackles the biggest issue in open source: Open Sourcing the >>>>>>>>> Enterprise >>>>>>>>> -Strategies to boost innovation and cut costs with open source >>>>>>>>> participation >>>>>>>>> -Receive a $600 discount off the registration fee with the source >>>>>>>>> code: >>>>>>>>> SFAD >>>>>>>>> http://p.sf.net/sfu/XcvMzF8H >>>>>>>>> _______________________________________________ >>>>>>>>> Geotools-gt2-users mailing list >>>>>>>>> [email protected] >>>>>>>>> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>>> -- >>>>> Martin Tomko >>>>> Postdoctoral Research Assistant Geographic Information Systems >>>>> Division >>>>> Department of Geography >>>>> University of Zurich - Irchel >>>>> Winterthurerstr. 190 >>>>> CH-8057 Zurich, Switzerland >>>>> >>>>> email: [email protected] >>>>> site: http://www.geo.uzh.ch/~mtomko >>>>> mob: +41-788 629 558 >>>>> tel: +41-44-6355256 >>>>> fax: +41-44-6356848 >>>>> >>>>> >>>>> >>>>> >>> >>> >>> >> >> >> > > > ------------------------------------------------------------------------------ Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise -Strategies to boost innovation and cut costs with open source participation -Receive a $600 discount off the registration fee with the source code: SFAD http://p.sf.net/sfu/XcvMzF8H _______________________________________________ Geotools-gt2-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
