satpy icon indicating copy to clipboard operation
satpy copied to clipboard

Error reading F1 band from SLSTR_L1B

Open AndreaBrg opened this issue 2 months ago • 8 comments

When attempting to load SLSTR Level-1B data (S3A_SL_1_RBT product) using the slstr_l1b reader, Satpy fails with a KeyError indicating that the F1 dataset could not be loaded.

This is what I'm doing:

scn = Scene(filenames=find_files_and_readers(
    base_dir="..."
))
scn.available_dataset_ids()

[DataID(name='F1', wavelength=WavelengthRange(min=3.55, central=3.74, max=3.93, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='F1', wavelength=WavelengthRange(min=3.55, central=3.74, max=3.93, unit='µm'), resolution=1000, calibration=<2>, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='F2', wavelength=WavelengthRange(min=10.4, central=10.85, max=11.3, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='F2', wavelength=WavelengthRange(min=10.4, central=10.85, max=11.3, unit='µm'), resolution=1000, calibration=<2>, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='S1', wavelength=WavelengthRange(min=0.545, central=0.555, max=0.565, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S1', wavelength=WavelengthRange(min=0.545, central=0.555, max=0.565, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S1', wavelength=WavelengthRange(min=0.545, central=0.555, max=0.565, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S1', wavelength=WavelengthRange(min=0.545, central=0.555, max=0.565, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S1', wavelength=WavelengthRange(min=0.545, central=0.555, max=0.565, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S1', wavelength=WavelengthRange(min=0.545, central=0.555, max=0.565, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S1', wavelength=WavelengthRange(min=0.545, central=0.555, max=0.565, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S1', wavelength=WavelengthRange(min=0.545, central=0.555, max=0.565, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S2', wavelength=WavelengthRange(min=0.649, central=0.659, max=0.669, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S2', wavelength=WavelengthRange(min=0.649, central=0.659, max=0.669, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S2', wavelength=WavelengthRange(min=0.649, central=0.659, max=0.669, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S2', wavelength=WavelengthRange(min=0.649, central=0.659, max=0.669, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S2', wavelength=WavelengthRange(min=0.649, central=0.659, max=0.669, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S2', wavelength=WavelengthRange(min=0.649, central=0.659, max=0.669, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S2', wavelength=WavelengthRange(min=0.649, central=0.659, max=0.669, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S2', wavelength=WavelengthRange(min=0.649, central=0.659, max=0.669, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S3', wavelength=WavelengthRange(min=0.855, central=0.865, max=0.875, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S3', wavelength=WavelengthRange(min=0.855, central=0.865, max=0.875, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S3', wavelength=WavelengthRange(min=0.855, central=0.865, max=0.875, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S3', wavelength=WavelengthRange(min=0.855, central=0.865, max=0.875, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S3', wavelength=WavelengthRange(min=0.855, central=0.865, max=0.875, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S3', wavelength=WavelengthRange(min=0.855, central=0.865, max=0.875, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S3', wavelength=WavelengthRange(min=0.855, central=0.865, max=0.875, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S3', wavelength=WavelengthRange(min=0.855, central=0.865, max=0.875, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S4', wavelength=WavelengthRange(min=1.3675, central=1.375, max=1.36825, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S4', wavelength=WavelengthRange(min=1.3675, central=1.375, max=1.36825, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S4', wavelength=WavelengthRange(min=1.3675, central=1.375, max=1.36825, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S4', wavelength=WavelengthRange(min=1.3675, central=1.375, max=1.36825, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S4', wavelength=WavelengthRange(min=1.3675, central=1.375, max=1.36825, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S4', wavelength=WavelengthRange(min=1.3675, central=1.375, max=1.36825, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S4', wavelength=WavelengthRange(min=1.3675, central=1.375, max=1.36825, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S4', wavelength=WavelengthRange(min=1.3675, central=1.375, max=1.36825, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S5', wavelength=WavelengthRange(min=1.58, central=1.61, max=1.64, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S5', wavelength=WavelengthRange(min=1.58, central=1.61, max=1.64, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S5', wavelength=WavelengthRange(min=1.58, central=1.61, max=1.64, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S5', wavelength=WavelengthRange(min=1.58, central=1.61, max=1.64, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S5', wavelength=WavelengthRange(min=1.58, central=1.61, max=1.64, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S5', wavelength=WavelengthRange(min=1.58, central=1.61, max=1.64, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S5', wavelength=WavelengthRange(min=1.58, central=1.61, max=1.64, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S5', wavelength=WavelengthRange(min=1.58, central=1.61, max=1.64, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S6', wavelength=WavelengthRange(min=2.225, central=2.25, max=2.275, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S6', wavelength=WavelengthRange(min=2.225, central=2.25, max=2.275, unit='µm'), resolution=500, calibration=<1>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S6', wavelength=WavelengthRange(min=2.225, central=2.25, max=2.275, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S6', wavelength=WavelengthRange(min=2.225, central=2.25, max=2.275, unit='µm'), resolution=500, calibration=<1>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S6', wavelength=WavelengthRange(min=2.225, central=2.25, max=2.275, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='S6', wavelength=WavelengthRange(min=2.225, central=2.25, max=2.275, unit='µm'), resolution=500, calibration=<3>, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='S6', wavelength=WavelengthRange(min=2.225, central=2.25, max=2.275, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='S6', wavelength=WavelengthRange(min=2.225, central=2.25, max=2.275, unit='µm'), resolution=500, calibration=<3>, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='S7', wavelength=WavelengthRange(min=3.55, central=3.74, max=3.93, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='S7', wavelength=WavelengthRange(min=3.55, central=3.74, max=3.93, unit='µm'), resolution=1000, calibration=<2>, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='S8', wavelength=WavelengthRange(min=10.4, central=10.85, max=11.3, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='S8', wavelength=WavelengthRange(min=10.4, central=10.85, max=11.3, unit='µm'), resolution=1000, calibration=<2>, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='S9', wavelength=WavelengthRange(min=11.57, central=12.0225, max=12.475, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='S9', wavelength=WavelengthRange(min=11.57, central=12.0225, max=12.475, unit='µm'), resolution=1000, calibration=<2>, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='bayes', resolution=500, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='bayes', resolution=500, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='bayes', resolution=500, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='bayes', resolution=500, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='bayes', resolution=500, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='bayes', resolution=500, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='bayes', resolution=500, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='bayes', resolution=500, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='bayes', resolution=1000, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='bayes', resolution=1000, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='bayes', resolution=1000, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='bayes', resolution=1000, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='bayes', resolution=1000, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='bayes', resolution=1000, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='bayes', resolution=1000, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='bayes', resolution=1000, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='cloud', resolution=500, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='cloud', resolution=500, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='cloud', resolution=500, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='cloud', resolution=500, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='cloud', resolution=500, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='cloud', resolution=500, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='cloud', resolution=500, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='cloud', resolution=500, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='cloud', resolution=1000, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='cloud', resolution=1000, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='cloud', resolution=1000, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='cloud', resolution=1000, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='cloud', resolution=1000, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='cloud', resolution=1000, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='cloud', resolution=1000, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='cloud', resolution=1000, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='confidence', resolution=500, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='confidence', resolution=500, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='confidence', resolution=500, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='confidence', resolution=500, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='confidence', resolution=500, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='confidence', resolution=500, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='confidence', resolution=500, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='confidence', resolution=500, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='confidence', resolution=1000, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='confidence', resolution=1000, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='confidence', resolution=1000, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='confidence', resolution=1000, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='confidence', resolution=1000, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='confidence', resolution=1000, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='confidence', resolution=1000, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='confidence', resolution=1000, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='elevation', resolution=500, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='elevation', resolution=500, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='elevation', resolution=500, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='elevation', resolution=500, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='elevation', resolution=500, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='elevation', resolution=500, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='elevation', resolution=500, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='elevation', resolution=500, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='elevation', resolution=1000, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='elevation', resolution=1000, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='elevation', resolution=1000, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='elevation', resolution=1000, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='elevation', resolution=1000, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='elevation', resolution=1000, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='elevation', resolution=1000, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='elevation', resolution=1000, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='latitude', resolution=500, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='latitude', resolution=500, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='latitude', resolution=500, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='latitude', resolution=500, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='latitude', resolution=500, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='latitude', resolution=500, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='latitude', resolution=500, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='latitude', resolution=500, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='latitude', resolution=1000, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='latitude', resolution=1000, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='latitude', resolution=1000, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='latitude', resolution=1000, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='latitude', resolution=1000, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='latitude', resolution=1000, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='latitude', resolution=1000, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='latitude', resolution=1000, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='longitude', resolution=500, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='longitude', resolution=500, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='longitude', resolution=500, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='longitude', resolution=500, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='longitude', resolution=500, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='longitude', resolution=500, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='longitude', resolution=500, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='longitude', resolution=500, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='longitude', resolution=1000, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='longitude', resolution=1000, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='longitude', resolution=1000, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='longitude', resolution=1000, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='longitude', resolution=1000, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='longitude', resolution=1000, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='longitude', resolution=1000, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='longitude', resolution=1000, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='pointing', resolution=500, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='pointing', resolution=500, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='pointing', resolution=500, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='pointing', resolution=500, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='pointing', resolution=500, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='pointing', resolution=500, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='pointing', resolution=500, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='pointing', resolution=500, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='pointing', resolution=1000, view=<1>, stripe=<1>, modifiers=()),
 DataID(name='pointing', resolution=1000, view=<1>, stripe=<2>, modifiers=()),
 DataID(name='pointing', resolution=1000, view=<1>, stripe=<3>, modifiers=()),
 DataID(name='pointing', resolution=1000, view=<1>, stripe=<4>, modifiers=()),
 DataID(name='pointing', resolution=1000, view=<2>, stripe=<1>, modifiers=()),
 DataID(name='pointing', resolution=1000, view=<2>, stripe=<2>, modifiers=()),
 DataID(name='pointing', resolution=1000, view=<2>, stripe=<3>, modifiers=()),
 DataID(name='pointing', resolution=1000, view=<2>, stripe=<4>, modifiers=()),
 DataID(name='satellite_azimuth_angle', resolution=500, view=<1>, modifiers=()),
 DataID(name='satellite_azimuth_angle', resolution=500, view=<2>, modifiers=()),
 DataID(name='satellite_azimuth_angle', resolution=1000, view=<1>, modifiers=()),
 DataID(name='satellite_azimuth_angle', resolution=1000, view=<2>, modifiers=()),
 DataID(name='satellite_zenith_angle', resolution=500, view=<1>, modifiers=()),
 DataID(name='satellite_zenith_angle', resolution=500, view=<2>, modifiers=()),
 DataID(name='satellite_zenith_angle', resolution=1000, view=<1>, modifiers=()),
 DataID(name='satellite_zenith_angle', resolution=1000, view=<2>, modifiers=()),
 DataID(name='solar_azimuth_angle', resolution=500, view=<1>, modifiers=()),
 DataID(name='solar_azimuth_angle', resolution=500, view=<2>, modifiers=()),
 DataID(name='solar_azimuth_angle', resolution=1000, view=<1>, modifiers=()),
 DataID(name='solar_azimuth_angle', resolution=1000, view=<2>, modifiers=()),
 DataID(name='solar_zenith_angle', resolution=500, view=<1>, modifiers=()),
 DataID(name='solar_zenith_angle', resolution=500, view=<2>, modifiers=()),
 DataID(name='solar_zenith_angle', resolution=1000, view=<1>, modifiers=()),
 DataID(name='solar_zenith_angle', resolution=1000, view=<2>, modifiers=())]
scn.load(["F1"])

[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading longitude.
[ERROR: 2025-10-06 11:25:37 : satpy.readers.core.yaml_reader] Could not load dataset 'DataID(name='longitude', resolution=1000, view=<1>, stripe=<4>, modifiers=())': "Could not load DataID(name='longitude', resolution=1000, view=<1>, stripe=<4>, modifiers=()) from any provided files"
Traceback (most recent call last):
  File "/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/.venv/lib/python3.12/site-packages/satpy/readers/core/yaml_reader.py", line 838, in _load_dataset_with_area
    ds = self._load_dataset_data(file_handlers, dsid, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/.venv/lib/python3.12/site-packages/satpy/readers/core/yaml_reader.py", line 738, in _load_dataset_data
    proj = self._load_dataset(dsid, ds_info, file_handlers, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/.venv/lib/python3.12/site-packages/satpy/readers/core/yaml_reader.py", line 723, in _load_dataset
    raise KeyError(
KeyError: "Could not load DataID(name='longitude', resolution=1000, view=<1>, stripe=<4>, modifiers=()) from any provided files"
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-06 11:25:37 : satpy.readers.slstr_l1b] Reading latitude.
[ERROR: 2025-10-06 11:25:37 : satpy.readers.core.yaml_reader] Could not load dataset 'DataID(name='latitude', resolution=1000, view=<1>, stripe=<4>, modifiers=())': "Could not load DataID(name='latitude', resolution=1000, view=<1>, stripe=<4>, modifiers=()) from any provided files"
Traceback (most recent call last):
  File "/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/.venv/lib/python3.12/site-packages/satpy/readers/core/yaml_reader.py", line 838, in _load_dataset_with_area
    ds = self._load_dataset_data(file_handlers, dsid, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/.venv/lib/python3.12/site-packages/satpy/readers/core/yaml_reader.py", line 738, in _load_dataset_data
    proj = self._load_dataset(dsid, ds_info, file_handlers, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/.venv/lib/python3.12/site-packages/satpy/readers/core/yaml_reader.py", line 723, in _load_dataset
    raise KeyError(
KeyError: "Could not load DataID(name='latitude', resolution=1000, view=<1>, stripe=<4>, modifiers=()) from any provided files"
[ERROR: 2025-10-06 11:25:37 : satpy.readers.core.yaml_reader] Could not load dataset 'DataID(name='F1', wavelength=WavelengthRange(min=3.55, central=3.74, max=3.93, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<4>, modifiers=())': "Could not load DataID(name='F1', wavelength=WavelengthRange(min=3.55, central=3.74, max=3.93, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<4>, modifiers=()) from any provided files"
Traceback (most recent call last):
  File "/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/.venv/lib/python3.12/site-packages/satpy/readers/core/yaml_reader.py", line 838, in _load_dataset_with_area
    ds = self._load_dataset_data(file_handlers, dsid, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/.venv/lib/python3.12/site-packages/satpy/readers/core/yaml_reader.py", line 738, in _load_dataset_data
    proj = self._load_dataset(dsid, ds_info, file_handlers, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/.venv/lib/python3.12/site-packages/satpy/readers/core/yaml_reader.py", line 723, in _load_dataset
    raise KeyError(
KeyError: "Could not load DataID(name='F1', wavelength=WavelengthRange(min=3.55, central=3.74, max=3.93, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<4>, modifiers=()) from any provided files"
[WARNING: 2025-10-06 11:25:37 : satpy.scene] The following datasets were not created and may require resampling to be generated: DataID(name='F1', wavelength=WavelengthRange(min=3.55, central=3.74, max=3.93, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<4>, modifiers=())

Any idea on what I'm doing wrong? Thanks

AndreaBrg avatar Oct 06 '25 09:10 AndreaBrg

Thanks for reporting this! It looks like channel F1 is stripe "f", so I’m wondering if the navigation info for it is available. Could you paste the list of files that you provided to satpy so we can check if the file is there?

mraspaud avatar Oct 06 '25 11:10 mraspaud

Hi. Do the other channels work OK? I just tried loading this data and it is successful for me. If it's just F1 that's causing you problems then I think @mraspaud's suggestion of a missing file is the most likely. If other channels also fail then maybe it's a wider issue with your installation.

simonrp84 avatar Oct 07 '25 07:10 simonrp84

@simonrp84 I also tried F2 with the following logs

[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.core.yaml_reader] No coordinates found for DataID(name='longitude', resolution=1000, view=<1>, stripe=<3>, modifiers=())
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.core.yaml_reader] No coordinates found for DataID(name='latitude', resolution=1000, view=<1>, stripe=<3>, modifiers=())
[DEBUG: 2025-10-07 10:44:41 : satpy.readers.slstr_l1b] Reading F2.
/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/.venv/lib/python3.12/site-packages/satpy/readers/core/yaml_reader.py:714: UserWarning: Warning: No radiance adjustment supplied for channel F2_nadir
  projectable = fh.get_dataset(dsid, ds_info)

And Sx channels, e.g., S4 with the following

[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading longitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.core.yaml_reader] No coordinates found for DataID(name='longitude', resolution=500, view=<1>, stripe=<1>, modifiers=())
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading latitude.
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.core.yaml_reader] No coordinates found for DataID(name='latitude', resolution=500, view=<1>, stripe=<1>, modifiers=())
[DEBUG: 2025-10-07 10:45:30 : satpy.readers.slstr_l1b] Reading S4.

@mraspaud The item I downloaded from CDSE is S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3, you can find it here .

As per the files found by the function:

{'slstr_l1b': ['/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S4_radiance_co.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S2_radiance_ao.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S6_radiance_co.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S4_radiance_bo.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S3_radiance_an.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S6_radiance_cn.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S5_radiance_bo.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S5_radiance_an.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S6_radiance_an.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S6_radiance_ao.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S5_radiance_cn.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S4_radiance_ao.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S1_radiance_ao.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S5_radiance_co.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S4_radiance_cn.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S6_radiance_bo.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S1_radiance_an.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S4_radiance_an.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S3_radiance_ao.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S6_radiance_bn.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S5_radiance_ao.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S5_radiance_bn.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S2_radiance_an.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S4_radiance_bn.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S7_BT_in.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S8_BT_in.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/F2_BT_io.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/F2_BT_in.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S9_BT_io.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/F1_BT_in.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S8_BT_io.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/F1_BT_io.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S7_BT_io.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/S9_BT_in.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/geometry_to.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/geometry_tn.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/geodetic_bo.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/geodetic_tx.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/geodetic_cn.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/geodetic_io.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/geodetic_in.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/geodetic_bn.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/geodetic_co.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/geodetic_an.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/geodetic_ao.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/flags_in.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/flags_io.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/flags_ao.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/flags_co.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/flags_an.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/flags_cn.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/flags_bn.nc',
  '/nfs/home/bragagnolo/UNICORN/unicorn-hotspots/data/s3_test/S3A_SL_1_RBT____20160808T112355_20160808T112655_20181002T035951_0179_007_194______LR1_R_NT_003.SEN3/flags_bo.nc']}

AndreaBrg avatar Oct 07 '25 08:10 AndreaBrg

Thanks for providing the file. I can confirm the same issue when I open this file.

It's quite an old file so I suspect something has changed in the data format or files, let me investigate with my colleagues and get back to you. In the meantime, perhaps you can try downloading the same file from the EUMETSAT data store?

They have some reprocessed versions of the old data (BC004 reprocessed I think) that may avoid this issue.

simonrp84 avatar Oct 07 '25 10:10 simonrp84

After investigation we have found that the F-grid required by satpy for reading the fire data is not present in the old processing baseline that you downloaded. Hopefully this will be resolved in a future reprocessing campaign but for now the standard TIR grid should be used when reading processing baselines 001, 002, and 003: See this product notice for more info.

As you can see above, I created a pull request (#3254) that fixes this problem. If possible, I'd appreciate if you could test this and let me know if it resolves your problem.

simonrp84 avatar Oct 07 '25 14:10 simonrp84

@simonrp84 Thank you so much for your effort and explanation!

I'll test your PR ASAP and let you know.

AndreaBrg avatar Oct 07 '25 14:10 AndreaBrg

Hi! Sorry for bringing back this old discussion, but I think our current problem is related. While this change allows for pre-2020 SLSTR to be parsed without issue, it made new ones incompatible. This is what I tried:

  1. Downloaded the following SEN3 "granules" that were on the transition period (13/01/2020):
S3A_SL_1_RBT____20200113T115704_20200113T120004_20200114T165636_0179_053_351_3240_LN2_O_NT_003.SEN3
S3B_SL_1_RBT____20200113T115631_20200113T115931_20200114T161354_0179_034_208_5580_LN2_O_NT_003.SEN3
S3B_SL_1_RBT____20200113T115631_20200113T115931_20200812T083817_0180_034_208_5580_LR1_R_NT_004.SEN3

O_NT_003 and R_NT_004 (correct me if I'm wrong) are respectively the operational NRT at revision 3, and its reprocessed version at revision 4. From Jan 15 onwards it looks to me that CDSE only provides O_NT_004, as expected.

  1. Tried reading revision 3 files with the current reader config (i.e., using stripe: [i, f], all good: F1 was loaded correctly using the io/in files.

  2. Tried reading revision 4 files with the same reader config, and it resulted in the following exception:

Could not load dataset 'DataID(name='F1', wavelength=WavelengthRange(min=3.55, central=3.74, max=3.93, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<3>, modifiers=())': 
"Could not load DataID(name='F1', wavelength=WavelengthRange(min=3.55, central=3.74, max=3.93, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<3>, modifiers=()) from any 
provided files"
  1. Tried editing the reader config manually, inserting stripe: f and it works like a charm. Same code that breaks before prints:
F1_nadir
  projectable = fh.get_dataset(dsid, ds_info)
{DataID(name='F1', wavelength=WavelengthRange(min=3.55, central=3.74, max=3.93, unit='µm'), resolution=1000, calibration=<2>, view=<1>, stripe=<4>, modifiers=()): <xarray.DataArray 'F1_BT_fn' 
(y: 1200, x: 1500)> Size: 14MB
dask.array<open_dataset-F1_BT_fn, shape=(1200, 1500), dtype=float64, chunksize=(1200, 1500), chunktype=numpy.ndarray>
Coordinates:
    crs      object 8B +proj=longlat +ellps=WGS84 +type=crs
Dimensions without coordinates: y, x
Attributes: (12/20)
    name:                 F1
    sensor:               slstr
    wavelength:           3.74 µm (3.55-3.93 µm)
    resolution:           1000
    view:                 nadir
    stripe:               f
    ...                   ...
    start_time:           2022-01-13 11:57:26.072749
    end_time:             2022-01-13 12:00:25.766681
    reader:               slstr_l1b
    area:                 Shape: (1200, 1500)\nLons: <xarray.DataArray 'longi...
    _satpy_id:            DataID(name='F1', wavelength=WavelengthRange(min=3....
    ancillary_variables:  []}

This is true also for current operational granules at revision 4, the F1 band breaks if stripe i is not present. TLDR: I believe that the attempt to support legacy versions broke revision 004. It would be great to have the possibility to make both i and f optional, with the only condition that at least one of them must be present. I'd be happy to try a PR but I'm not sure where to include this.

In the meantime, I think we can easily override the reader to support this peculiar case. Thanks!

edornd avatar Nov 17 '25 12:11 edornd

I can confirm this is an issue, yes. Am not sure what is happening as my initial attempts to debug it have failed...will see what we can do for a solution!

simonrp84 avatar Nov 17 '25 14:11 simonrp84