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 <mailto:jfarj...@jfarjona.com>> wrote:
Hello:
I am trying to display GeoTiff files obtained from the
Sentinel-Hub WMS
service (https://apps.sentinel-hub.com
<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
<http://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
<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
<mailto:GeoTools-GT2-Users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
<https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users>