Sentinel-2 Resample and Subset - Not performing subset

Hi,

I have 264 S2 images of a lake and I want to resample them to 20m resolution and then subset to the ROI. The process has been working well over the past day and I have processed around 194 images, however, I am now receiving a message saying “info: org.hsqldb.persist.logger: database closed” after the resampling process is complete and no subset is being carried out.

I am running the code in R using the gpt, when I try to subset the resampled images using the desktop app it works. I will include a screenshot of the console and the message, any help would be appreciated.

An example of one of the images which is being resampled is: L1C_T30VVH_A026089_20220305T112111, however, the database closed message comes up directly after this process and the subset is not performed.

I guess you are getting this error for products after 25th of January 2022, right?
That the date where the new baseline has been implemented (Open Access Hub News (copernicus.eu)).

When I try to process the product (S2A_MSIL1C_20220305T102921_N0400_R108_T33VVH_20220305T105042.SAFE), I get the following error:

org.esa.snap.core.gpf.OperatorException: dataType out of range!
        at org.esa.snap.core.gpf.graph.GraphProcessor$GPFImagingListener.errorOccurred(GraphProcessor.java:389)
        at com.sun.media.jai.util.SunTileScheduler.sendExceptionToListener(Unknown Source)
        at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)
        at javax.media.jai.OpImage.getTile(Unknown Source)
        at com.sun.media.jai.opimage.TranslateIntOpImage.getTile(Unknown Source)
        at javax.media.jai.PlanarImage.getData(Unknown Source)
        at javax.media.jai.PlanarImage.getExtendedData(Unknown Source)
        at com.sun.media.jai.opimage.MosaicOpImage.computeTile(Unknown Source)
        at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)
        at javax.media.jai.OpImage.getTile(Unknown Source)
        at javax.media.jai.PlanarImage.getData(Unknown Source)
        at javax.media.jai.PlanarImage.getExtendedData(Unknown Source)
        at javax.media.jai.ScaleOpImage.computeTile(Unknown Source)
        at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)
        at javax.media.jai.OpImage.getTile(Unknown Source)
        at com.sun.media.jai.opimage.CropOpImage.getTile(Unknown Source)
        at javax.media.jai.PlanarImage.cobbleByte(Unknown Source)
        at javax.media.jai.PlanarImage.getData(Unknown Source)
        at javax.media.jai.RenderedOp.getData(Unknown Source)
        at com.bc.ceres.glevel.MultiLevelImage.getData(MultiLevelImage.java:64)
        at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:449)
        at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:435)
        at org.esa.snap.core.gpf.internal.OperatorImage.computeRect(OperatorImage.java:75)
        at javax.media.jai.SourcelessOpImage.computeTile(Unknown Source)
        at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)
        at javax.media.jai.OpImage.getTile(Unknown Source)
        at com.sun.media.jai.util.RequestJob.compute(Unknown Source)
        at com.sun.media.jai.util.WorkerThread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: dataType out of range!
        at it.geosolutions.imageio.plugins.tiff.TIFFTag.getSizeOfType(TIFFTag.java:326)
        at it.geosolutions.imageioimpl.plugins.tiff.TIFFIFD.initialize(TIFFIFD.java:285)
        at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageMetadata.initializeFromStream(TIFFImageMetadata.java:148)
        at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader.readMetadata(TIFFImageReader.java:911)
        at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader.seekToImage(TIFFImageReader.java:864)
        at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader.seekToImage(TIFFImageReader.java:822)
        at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader.getWidth(TIFFImageReader.java:1080)
        at org.esa.snap.jp2.reader.internal.JP2TileOpImage$ImageReader.getImageWidth(JP2TileOpImage.java:306)
        at org.esa.snap.jp2.reader.internal.JP2TileOpImage.computeRectIndirect(JP2TileOpImage.java:148)
        at org.esa.snap.jp2.reader.internal.JP2TileOpImage.computeRect(JP2TileOpImage.java:113)
        at javax.media.jai.SourcelessOpImage.computeTile(Unknown Source)
        ... 26 more

Error: dataType out of range!

This has been discussed before.

For processing I’ve used this graph:
S2_Resample_Subset.xml (1.4 KB)

Please note, I’ve skipped the subsetting in the attached graph.
When using the subset step with a small area the process works, when using almost the whole image it does not work anymore and I get the same error as above.
The error indicates some issue with reading of the data.
And it is already in the bug data base: [SIITBX-484] GPT Resampling Error “dataType out of range” with S2 data since PB400 - JIRA (atlassian.net)

When doing the resampling in SNAP Desktop I see a different error. But this also points to the reading of the data.

java.io.EOFException
	at javax.imageio.stream.ImageInputStreamImpl.readShort(ImageInputStreamImpl.java:229)
	at javax.imageio.stream.ImageInputStreamImpl.readUnsignedShort(ImageInputStreamImpl.java:242)
	at it.geosolutions.imageioimpl.plugins.tiff.TIFFIFD.initialize(TIFFIFD.java:241)
	at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageMetadata.initializeFromStream(TIFFImageMetadata.java:148)
	at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader.readMetadata(TIFFImageReader.java:911)
Caused: javax.imageio.IIOException: I/O error reading image metadata!
	at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader.readMetadata(TIFFImageReader.java:917)
	at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader.seekToImage(TIFFImageReader.java:864)
	at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader.seekToImage(TIFFImageReader.java:822)
	at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReader.getWidth(TIFFImageReader.java:1080)
	at org.esa.snap.jp2.reader.internal.JP2TileOpImage$ImageReader.getImageWidth(JP2TileOpImage.java:306)
	at org.esa.snap.jp2.reader.internal.JP2TileOpImage.computeRectIndirect(JP2TileOpImage.java:148)
	at org.esa.snap.jp2.reader.internal.JP2TileOpImage.computeRect(JP2TileOpImage.java:113)
Caused: java.lang.IllegalStateException: Failed to read the data for level 0 and rectangle java.awt.Rectangle[x=0,y=0,width=38,height=256].
	at org.esa.snap.jp2.reader.internal.JP2TileOpImage.computeRect(JP2TileOpImage.java:115)
	at javax.media.jai.SourcelessOpImage.computeTile(Unknown Source)
Caused: org.esa.snap.core.gpf.OperatorException: Failed to read the data for level 0 and rectangle java.awt.Rectangle[x=0,y=0,width=38,height=256].
	at org.esa.snap.core.gpf.internal.OperatorExecutor$GPFImagingListener.errorOccurred(OperatorExecutor.java:387)
	at com.sun.media.jai.util.SunTileScheduler.sendExceptionToListener(Unknown Source)
	at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)
	at javax.media.jai.OpImage.getTile(Unknown Source)
	at com.sun.media.jai.opimage.TranslateIntOpImage.getTile(Unknown Source)
	at javax.media.jai.PlanarImage.getData(Unknown Source)
	at javax.media.jai.PlanarImage.getExtendedData(Unknown Source)
	at com.sun.media.jai.opimage.MosaicOpImage.computeTile(Unknown Source)
	at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)
	at javax.media.jai.OpImage.getTile(Unknown Source)
	at javax.media.jai.PlanarImage.getData(Unknown Source)
	at javax.media.jai.PlanarImage.getExtendedData(Unknown Source)
	at javax.media.jai.ScaleOpImage.computeTile(Unknown Source)
	at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)
	at javax.media.jai.OpImage.getTile(Unknown Source)
	at com.sun.media.jai.opimage.CropOpImage.getTile(Unknown Source)
	at javax.media.jai.PlanarImage.cobbleByte(Unknown Source)
	at javax.media.jai.PlanarImage.getData(Unknown Source)
	at javax.media.jai.RenderedOp.getData(Unknown Source)
	at com.bc.ceres.glevel.MultiLevelImage.getData(MultiLevelImage.java:64)
	at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:449)
	at org.esa.snap.core.gpf.internal.OperatorContext.getSourceTile(OperatorContext.java:435)
	at org.esa.snap.core.gpf.internal.OperatorImage.computeRect(OperatorImage.java:75)
	at javax.media.jai.SourcelessOpImage.computeTile(Unknown Source)
	at com.sun.media.jai.util.SunTileScheduler.scheduleTile(Unknown Source)
	at javax.media.jai.OpImage.getTile(Unknown Source)
	at com.sun.media.jai.util.RequestJob.compute(Unknown Source)
[catch] at com.sun.media.jai.util.WorkerThread.run(Unknown Source).

If you are doing you processing in two steps (resampling, subsetting) maybe you can circumvent the error by doing both at once by using a graph.

@FlorianD Maybe you can have closer look at this issue?