Dear Developers
EUMETCast sends us SNPP, NOAA-20 and NOAA-21 VIIRS data (M-bands and some DNB-bands).
I cannot read DNB-files from good old SNPP anymore and neither from more recent NOAA-21.
There is no problem reading DNB-files from NOAA-20. I use satpy 0.57.0 under GNU/Linux.
I boiled down my lengthy satpy script to a few lines DNBtest.py to demonstrate the problem:
from satpy import Scene
SNPP = ['./SVDNBC_npp_d20250622_t0100084_e0101326_b70734_c20250622010534000682_eum_ops.h5']
NOAA20 = ['./SVDNBC_j01_d20250622_t0121283_e0122528_b39338_c20250622012757000085_eum_ops.h5']
NOAA21 = ['./SVDNBC_j02_d20250622_t0214053_e0215300_b13547_c20250622022032000449_eum_ops.h5']
scn = Scene(filenames = NOAA21, reader = 'viirs_compact')
(pytroll) eumetcast@kallisto:~/DNBTEST$ python DNBtest.py
Traceback (most recent call last):
File "/home/eumetcast/DNBTEST/DNBtest.py", line 5, in <module>
scn = Scene(filenames = NOAA21, reader = 'viirs_compact')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/eumetcast/miniconda3/envs/pytroll/lib/python3.11/site-packages/satpy/scene.py", line 155, in __init__
self._readers = self._create_reader_instances(filenames=filenames,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/eumetcast/miniconda3/envs/pytroll/lib/python3.11/site-packages/satpy/scene.py", line 176, in _create_reader_instances
return load_readers(filenames=filenames,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/eumetcast/miniconda3/envs/pytroll/lib/python3.11/site-packages/satpy/readers/core/loading.py", line 65, in load_readers
reader_instance.create_storage_items(
File "/home/eumetcast/miniconda3/envs/pytroll/lib/python3.11/site-packages/satpy/readers/core/yaml_reader.py", line 618, in create_storage_items
return self.create_filehandlers(files, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/eumetcast/miniconda3/envs/pytroll/lib/python3.11/site-packages/satpy/readers/core/yaml_reader.py", line 630, in create_filehandlers
filehandlers = self._new_filehandlers_for_filetype(filetype_info,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/eumetcast/miniconda3/envs/pytroll/lib/python3.11/site-packages/satpy/readers/core/yaml_reader.py", line 613, in _new_filehandlers_for_filetype
return list(filtered_iter)
^^^^^^^^^^^^^^^^^^^
File "/home/eumetcast/miniconda3/envs/pytroll/lib/python3.11/site-packages/satpy/readers/core/yaml_reader.py", line 595, in filter_fh_by_metadata
for filehandler in filehandlers:
File "/home/eumetcast/miniconda3/envs/pytroll/lib/python3.11/site-packages/satpy/readers/core/yaml_reader.py", line 591, in _new_filehandler_instances
yield filetype_cls(filename, filename_info, filetype_info, *req_fh, **fh_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/eumetcast/miniconda3/envs/pytroll/lib/python3.11/site-packages/satpy/readers/viirs_compact.py", line 127, in __init__
self.c_align = da.from_array(self.geography["AlignmentCoefficient"],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/eumetcast/miniconda3/envs/pytroll/lib/python3.11/site-packages/dask/array/core.py", line 3488, in from_array
chunks = normalize_chunks(
^^^^^^^^^^^^^^^^^
File "/home/eumetcast/miniconda3/envs/pytroll/lib/python3.11/site-packages/dask/array/core.py", line 3130, in normalize_chunks
raise ValueError(
ValueError: Chunks do not add up to shape. Got chunks=((2, 28, 2, 3, 2, 3, 3, 3, 5, 4, 5, 4, 4, 4, 4, 4, 3, 5, 3, 4, 3, 23, 23, 3, 4, 3, 5, 3, 4, 4, 4, 4, 4, 5, 4, 5, 3, 3, 3, 2, 3, 2, 46),), shape=(516,)
(pytroll) eumetcast@kallisto:~/DNBTEST$
As described on the MSG-1 list only NOAA20 works fine while SNPP and NOAA21 always fail as above.
If necessary I can provide those files but didn't do it so far because of their rather big sizes.
3997318 Jun 23 18:57 SVDNBC_j01_d20250622_t0121283_e0122528_b39338_c20250622012757000085_eum_ops.h5
4224003 Jun 23 18:57 SVDNBC_j02_d20250622_t0214053_e0215300_b13547_c20250622022032000449_eum_ops.h5
4321006 Jun 23 18:57 SVDNBC_npp_d20250622_t0100084_e0101326_b70734_c20250622010534000682_eum_ops.h5
Cheers,
Ernst