2 Different Errors From Attempting to Open L2 netCDFs in SeaDAS
Posted: Sat Sep 28, 2024 6:05 am America/New_York
I have mostly not had issues with opening l2 netCDF files in the SeaDAS GUI, but 2 files in particular have both thrown errors when I try to load them.
The files are Landsat 8 and 9 L2 netcdf files generated from L1 ESPA downloaded data.
I error I get in the first file is:
java.util.zip.ZipException: unknown compression method
at java.base/java.util.zip.InflaterInputStream.read(Unknown Source)
at java.base/java.io.FilterInputStream.read(Unknown Source)
at ucar.nc2.util.IO.copyB(IO.java:194)
at ucar.nc2.iosp.hdf5.H5tiledLayoutBB$DataChunk.inflate(H5tiledLayoutBB.java:255)
at ucar.nc2.iosp.hdf5.H5tiledLayoutBB$DataChunk.getByteBuffer(H5tiledLayoutBB.java:216)
at ucar.nc2.iosp.LayoutBBTiled.hasNext(LayoutBBTiled.java:101)
Caused: java.lang.IllegalStateException
at ucar.nc2.iosp.LayoutBBTiled.hasNext(LayoutBBTiled.java:104)
at ucar.nc2.iosp.hdf5.H5tiledLayoutBB.hasNext(H5tiledLayoutBB.java:124)
at ucar.nc2.iosp.IospHelper.readData(IospHelper.java:332)
at ucar.nc2.iosp.IospHelper.readDataFill(IospHelper.java:274)
at ucar.nc2.iosp.hdf5.H5iosp.readData(H5iosp.java:150)
at ucar.nc2.iosp.hdf5.H5iosp.readData(H5iosp.java:123)
at ucar.nc2.NetcdfFile.readData(NetcdfFile.java:2110)
at ucar.nc2.Variable.reallyRead(Variable.java:761)
at ucar.nc2.Variable._read(Variable.java:731)
at ucar.nc2.Variable._read(Variable.java:773)
at ucar.nc2.Variable.read(Variable.java:597)
at gov.nasa.gsfc.seadas.dataio.SeadasFileReader.invalidateLines(SeadasFileReader.java:2147)
at gov.nasa.gsfc.seadas.dataio.L2FileReader.createProduct(L2FileReader.java:97)
at gov.nasa.gsfc.seadas.dataio.SeadasProductReader.readProductNodesImpl(SeadasProductReader.java:205)
at org.esa.snap.core.dataio.AbstractProductReader.readProductNodes(AbstractProductReader.java:175)
at org.esa.snap.core.dataio.ProductIO.readProduct(ProductIO.java:181)
at org.esa.snap.rcp.actions.file.ReadProductOperation.run(ReadProductOperation.java:61)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)
The error I get for the second file is:
java.lang.IllegalArgumentException: numElems is less than one
at org.esa.snap.core.datamodel.ProductData.createInstance(ProductData.java:228)
at org.esa.snap.core.datamodel.DataNode.createCompatibleProductData(DataNode.java:320)
at org.esa.snap.core.datamodel.RasterDataNode.createCompatibleRasterData(RasterDataNode.java:1687)
at org.esa.snap.core.datamodel.Band.readRasterDataFully(Band.java:424)
at org.esa.snap.core.datamodel.AbstractBand.loadRasterData(AbstractBand.java:751)
at org.esa.snap.core.datamodel.RasterDataNode.loadRasterData(RasterDataNode.java:956)
at org.esa.snap.core.dataio.geocoding.GeoCodingFactory.getGeoRaster(GeoCodingFactory.java:163)
at org.esa.snap.core.dataio.geocoding.GeoCodingFactory.createPixelGeoCoding(GeoCodingFactory.java:49)
at gov.nasa.gsfc.seadas.dataio.L2FileReader.addPixelGeocoding(L2FileReader.java:364)
at gov.nasa.gsfc.seadas.dataio.L2FileReader.addGeocoding(L2FileReader.java:207)
at gov.nasa.gsfc.seadas.dataio.L2FileReader.createProduct(L2FileReader.java:160)
at gov.nasa.gsfc.seadas.dataio.SeadasProductReader.readProductNodesImpl(SeadasProductReader.java:205)
at org.esa.snap.core.dataio.AbstractProductReader.readProductNodes(AbstractProductReader.java:175)
at org.esa.snap.core.dataio.ProductIO.readProduct(ProductIO.java:181)
at org.esa.snap.rcp.actions.file.ReadProductOperation.run(ReadProductOperation.java:61)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)
I am currently using a python script with the netCDF4 and subprocess libraries to run the l2gen command, and I am wondering if the reason these errors are getting thrown is due to some issue with SeaDAS, the input file, or my script.
Note that I am currently running SeaDAS through its application on a MacBook Pro 14.
The files are Landsat 8 and 9 L2 netcdf files generated from L1 ESPA downloaded data.
I error I get in the first file is:
java.util.zip.ZipException: unknown compression method
at java.base/java.util.zip.InflaterInputStream.read(Unknown Source)
at java.base/java.io.FilterInputStream.read(Unknown Source)
at ucar.nc2.util.IO.copyB(IO.java:194)
at ucar.nc2.iosp.hdf5.H5tiledLayoutBB$DataChunk.inflate(H5tiledLayoutBB.java:255)
at ucar.nc2.iosp.hdf5.H5tiledLayoutBB$DataChunk.getByteBuffer(H5tiledLayoutBB.java:216)
at ucar.nc2.iosp.LayoutBBTiled.hasNext(LayoutBBTiled.java:101)
Caused: java.lang.IllegalStateException
at ucar.nc2.iosp.LayoutBBTiled.hasNext(LayoutBBTiled.java:104)
at ucar.nc2.iosp.hdf5.H5tiledLayoutBB.hasNext(H5tiledLayoutBB.java:124)
at ucar.nc2.iosp.IospHelper.readData(IospHelper.java:332)
at ucar.nc2.iosp.IospHelper.readDataFill(IospHelper.java:274)
at ucar.nc2.iosp.hdf5.H5iosp.readData(H5iosp.java:150)
at ucar.nc2.iosp.hdf5.H5iosp.readData(H5iosp.java:123)
at ucar.nc2.NetcdfFile.readData(NetcdfFile.java:2110)
at ucar.nc2.Variable.reallyRead(Variable.java:761)
at ucar.nc2.Variable._read(Variable.java:731)
at ucar.nc2.Variable._read(Variable.java:773)
at ucar.nc2.Variable.read(Variable.java:597)
at gov.nasa.gsfc.seadas.dataio.SeadasFileReader.invalidateLines(SeadasFileReader.java:2147)
at gov.nasa.gsfc.seadas.dataio.L2FileReader.createProduct(L2FileReader.java:97)
at gov.nasa.gsfc.seadas.dataio.SeadasProductReader.readProductNodesImpl(SeadasProductReader.java:205)
at org.esa.snap.core.dataio.AbstractProductReader.readProductNodes(AbstractProductReader.java:175)
at org.esa.snap.core.dataio.ProductIO.readProduct(ProductIO.java:181)
at org.esa.snap.rcp.actions.file.ReadProductOperation.run(ReadProductOperation.java:61)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)
The error I get for the second file is:
java.lang.IllegalArgumentException: numElems is less than one
at org.esa.snap.core.datamodel.ProductData.createInstance(ProductData.java:228)
at org.esa.snap.core.datamodel.DataNode.createCompatibleProductData(DataNode.java:320)
at org.esa.snap.core.datamodel.RasterDataNode.createCompatibleRasterData(RasterDataNode.java:1687)
at org.esa.snap.core.datamodel.Band.readRasterDataFully(Band.java:424)
at org.esa.snap.core.datamodel.AbstractBand.loadRasterData(AbstractBand.java:751)
at org.esa.snap.core.datamodel.RasterDataNode.loadRasterData(RasterDataNode.java:956)
at org.esa.snap.core.dataio.geocoding.GeoCodingFactory.getGeoRaster(GeoCodingFactory.java:163)
at org.esa.snap.core.dataio.geocoding.GeoCodingFactory.createPixelGeoCoding(GeoCodingFactory.java:49)
at gov.nasa.gsfc.seadas.dataio.L2FileReader.addPixelGeocoding(L2FileReader.java:364)
at gov.nasa.gsfc.seadas.dataio.L2FileReader.addGeocoding(L2FileReader.java:207)
at gov.nasa.gsfc.seadas.dataio.L2FileReader.createProduct(L2FileReader.java:160)
at gov.nasa.gsfc.seadas.dataio.SeadasProductReader.readProductNodesImpl(SeadasProductReader.java:205)
at org.esa.snap.core.dataio.AbstractProductReader.readProductNodes(AbstractProductReader.java:175)
at org.esa.snap.core.dataio.ProductIO.readProduct(ProductIO.java:181)
at org.esa.snap.rcp.actions.file.ReadProductOperation.run(ReadProductOperation.java:61)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)
I am currently using a python script with the netCDF4 and subprocess libraries to run the l2gen command, and I am wondering if the reason these errors are getting thrown is due to some issue with SeaDAS, the input file, or my script.
Note that I am currently running SeaDAS through its application on a MacBook Pro 14.