Ciao Jon,
this error happens sometimes in eclispe when you mess up the jai
installation  and the geotools jai registration file get loaded
multiple times.
Can you give me a bit of more information on what you are doing do
that I can help out (also with the geotiff thing :-)).

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 Fri, Jun 26, 2009 at 12:06 PM, Jon Britton<jbrit...@glam.ac.uk> wrote:
>
> Hi,
>
> I was trying this:
>
> reader = new GeoTiffReader(this.getInputStream());
> GridCoverage2D image = (GridCoverage2D)reader.read(null);
>
> However, I get a number of exceptions:
>
> Error while parsing JAI registry file
> "/D:/geotools/2.5.x/modules/library/coverage/target/classes/META-INF/registryFile.jai"
> :
> Error in registry file at line number #31
> A descriptor is already registered against the name "org.geotools.Combine"
> under registry mode "rendered"
> Error in registry file at line number #32
> A descriptor is already registered against the name
> "org.geotools.Hysteresis" under registry mode "rendered"
> Error in registry file at line number #33
> A descriptor is already registered against the name
> "org.geotools.NodataFilter" under registry mode "rendered"
> Error: One factory fails for the operation "ImageRead"
> Occurs in: javax.media.jai.ThreadSafeOperationRegistry
> java.lang.reflect.InvocationTargetException
>        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:585)
>        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.getWidth(RenderedOp.java:2179)
>        at org.geotools.gce.geotiff.GeoTiffReader.read(GeoTiffReader.java:461)
>        at
> org.geotools.data.wcs.response.GetCoverageResponse.getCoverage(GetCoverageResponse.java:46)
>        at uk.ac.glam.jbritton.test.WCSTest.main(WCSTest.java:90)
> Caused by: java.lang.RuntimeException: javax.imageio.IIOException: I/O error
> reading image metadata!
>        at
> com.sun.media.jai.imageioimpl.ImageReadCRIF.create(ImageReadCRIF.java:317)
>        ... 14 more
> Caused by: javax.imageio.IIOException: I/O error reading image metadata!
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.readMetadata(TIFFImageReader.java:340)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.seekToImage(TIFFImageReader.java:310)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.getImageTypes(TIFFImageReader.java:741)
>        at javax.imageio.ImageReader.getRawImageType(ImageReader.java:665)
>        at
> com.sun.media.jai.imageioimpl.ImageReadOpImage.layoutHelper(ImageReadOpImage.java:228)
>        at
> com.sun.media.jai.imageioimpl.ImageReadOpImage.<init>(ImageReadOpImage.java:473)
>        at
> com.sun.media.jai.imageioimpl.ImageReadCRIF.create(ImageReadCRIF.java:309)
>        ... 14 more
> Caused by: java.io.EOFException
>        at
> javax.imageio.stream.ImageInputStreamImpl.readShort(ImageInputStreamImpl.java:211)
>        at
> javax.imageio.stream.ImageInputStreamImpl.readUnsignedShort(ImageInputStreamImpl.java:222)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFIFD.initialize(TIFFIFD.java:194)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageMetadata.initializeFromStream(TIFFImageMetadata.java:110)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.readMetadata(TIFFImageReader.java:336)
>        ... 20 more
> Exception in thread "main" javax.media.jai.util.ImagingException: All
> factories fail for the operation "ImageRead"
>        at
> javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1687)
>        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.getWidth(RenderedOp.java:2179)
>        at org.geotools.gce.geotiff.GeoTiffReader.read(GeoTiffReader.java:461)
>        at
> org.geotools.data.wcs.response.GetCoverageResponse.getCoverage(GetCoverageResponse.java:46)
>        at uk.ac.glam.jbritton.test.WCSTest.main(WCSTest.java:90)
> Caused by: java.lang.reflect.InvocationTargetException
>        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:585)
>        at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122)
>        at
> javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674)
>        ... 8 more
> Caused by: java.lang.RuntimeException: javax.imageio.IIOException: I/O error
> reading image metadata!
>        at
> com.sun.media.jai.imageioimpl.ImageReadCRIF.create(ImageReadCRIF.java:317)
>        ... 14 more
> Caused by: javax.imageio.IIOException: I/O error reading image metadata!
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.readMetadata(TIFFImageReader.java:340)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.seekToImage(TIFFImageReader.java:310)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.getImageTypes(TIFFImageReader.java:741)
>        at javax.imageio.ImageReader.getRawImageType(ImageReader.java:665)
>        at
> com.sun.media.jai.imageioimpl.ImageReadOpImage.layoutHelper(ImageReadOpImage.java:228)
>        at
> com.sun.media.jai.imageioimpl.ImageReadOpImage.<init>(ImageReadOpImage.java:473)
>        at
> com.sun.media.jai.imageioimpl.ImageReadCRIF.create(ImageReadCRIF.java:309)
>        ... 14 more
> Caused by: java.io.EOFException
>        at
> javax.imageio.stream.ImageInputStreamImpl.readShort(ImageInputStreamImpl.java:211)
>        at
> javax.imageio.stream.ImageInputStreamImpl.readUnsignedShort(ImageInputStreamImpl.java:222)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFIFD.initialize(TIFFIFD.java:194)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageMetadata.initializeFromStream(TIFFImageMetadata.java:110)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.readMetadata(TIFFImageReader.java:336)
>        ... 20 more
> Caused by:
> java.lang.reflect.InvocationTargetException
>        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:585)
>        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.getWidth(RenderedOp.java:2179)
>        at org.geotools.gce.geotiff.GeoTiffReader.read(GeoTiffReader.java:461)
>        at
> org.geotools.data.wcs.response.GetCoverageResponse.getCoverage(GetCoverageResponse.java:46)
>        at uk.ac.glam.jbritton.test.WCSTest.main(WCSTest.java:90)
> Caused by: java.lang.RuntimeException: javax.imageio.IIOException: I/O error
> reading image metadata!
>        at
> com.sun.media.jai.imageioimpl.ImageReadCRIF.create(ImageReadCRIF.java:317)
>        ... 14 more
> Caused by: javax.imageio.IIOException: I/O error reading image metadata!
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.readMetadata(TIFFImageReader.java:340)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.seekToImage(TIFFImageReader.java:310)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.getImageTypes(TIFFImageReader.java:741)
>        at javax.imageio.ImageReader.getRawImageType(ImageReader.java:665)
>        at
> com.sun.media.jai.imageioimpl.ImageReadOpImage.layoutHelper(ImageReadOpImage.java:228)
>        at
> com.sun.media.jai.imageioimpl.ImageReadOpImage.<init>(ImageReadOpImage.java:473)
>        at
> com.sun.media.jai.imageioimpl.ImageReadCRIF.create(ImageReadCRIF.java:309)
>        ... 14 more
> Caused by: java.io.EOFException
>        at
> javax.imageio.stream.ImageInputStreamImpl.readShort(ImageInputStreamImpl.java:211)
>        at
> javax.imageio.stream.ImageInputStreamImpl.readUnsignedShort(ImageInputStreamImpl.java:222)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFIFD.initialize(TIFFIFD.java:194)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageMetadata.initializeFromStream(TIFFImageMetadata.java:110)
>        at
> com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.readMetadata(TIFFImageReader.java:336)
>        ... 20 more
>
>
>
> Gabriel Roldan wrote:
>>
>> By looking at the code it seems you can just do:
>> InputStream in = ...
>> GeotiffReader reader = new GeotiffReader(in);
>> RenderedImage image =
>> ((GridCoverage2D)reader.read(null)).view(ViewType.GEOPHYSICS);
>>
>> cheers,
>> Gabriel
>>
>>> Hi,
>>>
>>> I've got a working(ish) WCS client, now I'm wondering if it's possible to
>>> load a GridCoverage2D directly from the InputStream I get as a response
>>> to a
>>> GetCoverage request?  Just GeoTIFF would do fine for now, but I can only
>>> find how to load one from a file, not directly from an InputStream.
>>>
>>> Thanks,
>>>
>>> Jon
>>
>>
>> --
>> Gabriel Roldan
>> OpenGeo - http://opengeo.org
>> Expert service straight from the developers.
>>
>> ------------------------------------------------------------------------------
>> Crystal Reports - New Free Runtime and 30 Day Trial
>> Check out the new simplified licensing option that enables unlimited
>> royalty-free distribution of the report engine for externally facing
>> server and web deployment.
>> http://p.sf.net/sfu/businessobjects
>> _______________________________________________
>> Geotools-gt2-users mailing list
>> Geotools-gt2-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>>
>>
>
> --
> View this message in context: 
> http://n2.nabble.com/Reading-a-GeoTiff-from-an-InputStream--tp3093431p3160693.html
> Sent from the geotools-gt2-users mailing list archive at Nabble.com.
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Geotools-gt2-users mailing list
> Geotools-gt2-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>

------------------------------------------------------------------------------
_______________________________________________
Geotools-gt2-users mailing list
Geotools-gt2-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to