It looks like gdalinfo is also indicating there is a problem:

Warning 1: TIFFReadDirectory:Sum of Photometric type-related color
channels and ExtraSamples doesn't match SamplesPerPixel. Defining
non-color channels as ExtraSamples.


You could try processing the file with gdal2gdal address issue.

You also indicated the image worked with uDig, do you know what version?
uDig uses geotools so you may be able to try your sample code with an older
version of the library.
--
Jody Garnett


On Tue, 7 Sept 2021 at 21:11, Juan Felipe Arjona <jfarj...@jfarjona.com>
wrote:

> Hello:
>
>
> I am trying to display GeoTiff files obtained from the Sentinel-Hub WMS
> service (https://apps.sentinel-hub.com) using Geotools.  The service
> responds with GeoTIFF files, that I can easily open with QGIS 3.20, but
> Geotools (25.2) complains with:
>
>
> org.geotools.data.DataSourceException: bandOffsets.length is wrong!
>      at
> org.geotools.gce.geotiff.GeoTiffReader.<init>(GeoTiffReader.java:279)
> ~[gt-geotiff-25.2.jar:na]
>      at
> org.geotools.gce.geotiff.GeoTiffFormat.getReader(GeoTiffFormat.java:331)
> ~[gt-geotiff-25.2.jar:na]
>      at
> org.geotools.gce.geotiff.GeoTiffFormat.getReader(GeoTiffFormat.java:77)
> ~[gt-geotiff-25.2.jar:na]
>      ...
> Caused by: org.geotools.data.DataSourceException: bandOffsets.length is
> wrong!
>      at
> org.geotools.gce.geotiff.GeoTiffReader.getHRInfo(GeoTiffReader.java:539)
> ~[gt-geotiff-25.2.jar:na]
>      at
> org.geotools.gce.geotiff.GeoTiffReader.<init>(GeoTiffReader.java:265)
> ~[gt-geotiff-25.2.jar:na]
>      ... 20 common frames omitted
> Caused by: java.lang.IllegalArgumentException: bandOffsets.length is wrong!
>      at
> java.desktop/javax.imageio.ImageTypeSpecifier$Interleaved.<init>(ImageTypeSpecifier.java:286)
>
> ~[na:na]
>      at
> java.desktop/javax.imageio.ImageTypeSpecifier.createInterleaved(ImageTypeSpecifier.java:399)
>
> ~[na:na]
>      at
> it.geosolutions.imageio.plugins.tiff.TIFFDecompressor.getRawImageTypeSpecifier(TIFFDecompressor.java:1027)
>
> ~[imageio-ext-tiff-1.3.9.jar:na]
>      at
> it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader.getImageTypes(TIFFImageReader.java:1359)
>
> ~[imageio-ext-tiff-1.3.9.jar:na]
>      at
> org.geotools.coverage.grid.io.AbstractGridCoverage2DReader.setLayout(AbstractGridCoverage2DReader.java:1164)
>
> ~[gt-coverage-25.2.jar:na]
>      at
> org.geotools.gce.geotiff.GeoTiffReader.getHRInfo(GeoTiffReader.java:373)
> ~[gt-geotiff-25.2.jar:na]
>      ... 21 common frames omitted
>
>
> Gdal says about the file:
>
> gdalinfo img-pierrenet-2b9.tif
> Warning 1: img-pierrenet-2b9.tif: TIFFReadDirectory:Sum of Photometric
> type-related color channels and ExtraSamples doesn't match
> SamplesPerPixel. Defining non-color channels as ExtraSamples.
> Driver: GTiff/GeoTIFF
> Files: img-pierrenet-2b9.tif
> Size is 199, 200
> Coordinate System is:
> GEOGCRS["WGS 84",
>      DATUM["World Geodetic System 1984",
>          ELLIPSOID["WGS 84",6378137,298.257223563,
>              LENGTHUNIT["metre",1]]],
>      PRIMEM["Greenwich",0,
>          ANGLEUNIT["degree",0.0174532925199433]],
>      CS[ellipsoidal,2],
>          AXIS["geodetic latitude (Lat)",north,
>              ORDER[1],
>              ANGLEUNIT["degree",0.0174532925199433]],
>          AXIS["geodetic longitude (Lon)",east,
>              ORDER[2],
>              ANGLEUNIT["degree",0.0174532925199433]],
>      ID["EPSG",4326]]
> Data axis to CRS axis mapping: 2,1
> Origin = (31.163993000000001,51.090416070349242)
> Pixel Size = (0.000143449691988,-0.000089870351746)
> Metadata:
>    AREA_OR_POINT=Area
>    TIFFTAG_RESOLUTIONUNIT=1 (unitless)
>    TIFFTAG_XRESOLUTION=1
>    TIFFTAG_YRESOLUTION=1
> Image Structure Metadata:
>    COMPRESSION=DEFLATE
>    INTERLEAVE=PIXEL
> Warning 1: TIFFReadDirectory:Sum of Photometric type-related color
> channels and ExtraSamples doesn't match SamplesPerPixel. Defining
> non-color channels as ExtraSamples.
> Corner Coordinates:
> Upper Left  (  31.1639930,  51.0904161) ( 31d 9'50.37"E, 51d 5'25.50"N)
> Lower Left  (  31.1639930,  51.0724420) ( 31d 9'50.37"E, 51d 4'20.79"N)
> Upper Right (  31.1925395,  51.0904161) ( 31d11'33.14"E, 51d 5'25.50"N)
> Lower Right (  31.1925395,  51.0724420) ( 31d11'33.14"E, 51d 4'20.79"N)
> Center      (  31.1782662,  51.0814290) ( 31d10'41.76"E, 51d 4'53.14"N)
> Band 1 Block=199x10 Type=Byte, ColorInterp=Gray
> Band 2 Block=199x10 Type=Byte, ColorInterp=Undefined
> Band 3 Block=199x10 Type=Byte, ColorInterp=Undefined
> Band 4 Block=199x10 Type=Byte, ColorInterp=Undefined
>
>
> The file can be found at:
> https://www.dropbox.com/s/xgro5jw35uw59i4/img-pierrenet-2b9.tif?dl=0
>
>
> My code (mostly a copy/paste from ImageLab.java):
>
> ...
>
>   Path img = Path.of("img-pierrenet-2b9.tif");
>
>   AbstractGridFormat format = GridFormatFinder.findFormat(img.toFile());
>
>   Hints hints = new Hints();
>   if (format instanceof GeoTiffFormat) {
>       hints = new Hints(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER,
> Boolean.TRUE);
>   }
>   reader = format.getReader(img.toFile(), hints);  // Exception is
> thrown here
>   Style rgbStyle = createRGBStyle();
>   mapContent.setTitle("Satellite Images");
>   Layer layer = new GridReaderLayer(reader, rgbStyle);
>   mapContent.addLayer(layer);
>   mapPane.repaint();
>
> ...
>
>
> Is there a way to get around this problem  ?
>
>
> Thanks in advance,
>
>
> Juan
>
>
>
>
>
>
>
>
> _______________________________________________
> 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