Dear Simone,
I will try to provide a case for JIRA, somewhere around Monday, no time 
to do it before.
In the mean time - it is quite urgent for me to find a solution to pass 
the GridCoverrage2D around - could you please elaborate how you would 
serialize the coverage and consequently apply the styling? I only 
applied the styling (I have no need for it), because I was getting the 
error resulting from the lack of color model, or rather the inabiity to 
serialize it.

The approach mentioned by Christian and later Martin:
new SerializableRenderedImage(outcov.getRenderedImage())
 does seem to only serialize the rendered image. How would one serialize 
the GridCoverage directly? When I tried it, I got the errors resulting 
from the color model, as noted earlier.
Is there any way to serialize a GeoTiff - that would be a suitable 
alternative.
HOw are these things done in a WMS/WCS request - there must be some 
serialization happening, and it would probably provide a suitable 
alternative for me.
Thanks for any help,
Martin


Simone Giannecchini wrote:
> Martin,
> you should serialize the coverage prior to the raster symbolizer in
> case you want to retain the original information of the data.
>
> Anyway, if you can provide an isolated test case for this
> serialization problem along with test data and create a jira for it
> that would be great, since it sounds like an improvement is needed
> inside the color map node of the raster symbolizer.
>
> Ciao,
> 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 Thu, Apr 23, 2009 at 5:42 PM, Martin Tomko <[email protected]> wrote:
>   
>> Hi Martin,
>> that is exactly what I was trying to do before:
>> I get the following error:
>> Exception in thread "main" java.lang.RuntimeException:
>> org.geotools.renderer.lite.gridcoverage2d.LinearColorMapNon-serializable
>> parameter in this operation`s ParameterBlock.
>>    at
>> javax.media.jai.OperationNodeSupport.writeObject(OperationNodeSupport.java:746)
>>    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
>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>>    at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>>    at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>>    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>    at
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
>>    at
>> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
>>    at javax.media.jai.RenderedOp.writeObject(RenderedOp.java:3004)
>>    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
>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>>    at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>>    at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>>    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>>    at java.util.Hashtable.writeObject(Hashtable.java:824)
>>    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
>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>>    at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>>    at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>>    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>>    at
>> javax.media.jai.PropertySourceImpl.writeMap(PropertySourceImpl.java:347)
>>    at
>> javax.media.jai.PropertySourceImpl.writeObject(PropertySourceImpl.java:361)
>>    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
>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>>    at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>>    at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>>    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>>    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>>    at
>> ch.uzh.geo.tomko.viewshedservice.ViewshedService.toBytesGC(ViewshedService.java:519)
>>
>> It seems to work if I extract the renderedimage:
>> new SerializableRenderedImage(covoverage.getRenderedImage())
>>
>> But then, I am afraid, I am losing the coverage2D capabilities.
>> I am using the 2.5-snapshot. Seems like the serialization does nto work,
>> or my rendering is incorrect? (.LinearColorMapNon-serializable parameter
>> seems to imply that..)
>> I have a simple thing like this:
>> <FeatureTypeStyle>
>>         <FeatureTypeName>Feature</FeatureTypeName>
>>   <Rule>
>>    <RasterSymbolizer>
>>     <ColorMap type="ramp" extended="true">
>>      <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"/>
>>     </ColorMap>
>>        <Opacity>1.0</Opacity>
>>             <ChannelSelection>
>>              <GrayChannel>
>>               <SourceChannelName>1</SourceChannelName>
>>              </GrayChannel>
>>     </ChannelSelection>
>>    </RasterSymbolizer>
>>
>> thanks
>> Martin
>>
>> Martin Desruisseaux wrote:
>>     
>>> Martin Tomko a écrit :
>>>
>>>       
>>>> Now, I noticed that this approach is *similar*to some test cases in
>>>> http://svn.geotools.org/trunk/modules/library/coverage/src/test/java/org/geotools/coverage/grid/GridCoverageTestBase.java
>>>>
>>>> but in these test cases it does not seem to be necessary to create
>>>> the new SerializableRenderedImage. Can anyone please comment on this?
>>>>         
>>> This test case is serializing GridCoverage2D, not RenderedImage. Like
>>> mentioned in my previous email, GridCoverage2D is already made
>>> serializable using the technic mentioned by Christian.
>>>
>>>
>>>       
>>>> What I need is the output of a Coverage (or Geotiff, anything that
>>>> will be contained aas one object and will contain georeferencing
>>>> information - at least the ReferencedEnvelope).
>>>> I need to pass the coverage to a remote service that will decode it.
>>>> The coverage has a ReferencedEnvelope, and that is what I need to be
>>>> passed with the raw data.
>>>> I have control over the decoding of the byte[] to an extent, so I can
>>>> have  a less standard way of decoding it.
>>>>         
>>> If you have a GridCoverage2D instance, you can do:
>>>
>>> // Writting
>>> ByteArrayOutputStream buffer = new ByteArrayOutputStream();
>>> ObjectOutputStream out = new ObjectOutputStream(buffer);
>>> out.writeObject(theCoverage);
>>> out.close();
>>> byte[] asArray = buffer.getArray();
>>>
>>>
>>> // Reading
>>> ObjectInputStream in = new ObjectInputStream(new
>>> ByteArrayInputStream(asArray));
>>> GridCoverage2D theCoverage = (GridCoverage2D) in.readObject();
>>> in.close();
>>>
>>>     Martin
>>>
>>>
>>>       
>> --
>> 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
>>
>>
>> ------------------------------------------------------------------------------
>> Stay on top of everything new and different, both inside and
>> around Java (TM) technology - register by April 22, and save
>> $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
>> 300 plus technical and hands-on sessions. Register today.
>> Use priority code J9JMT32. http://p.sf.net/sfu/p
>> _______________________________________________
>> 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


------------------------------------------------------------------------------
Crystal Reports &#45; New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty&#45;free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to