class_docstr: Base class for reading JPSS VIIRS & ATMS SDR HDF5 Files.
code: def _get_scans_per_granule(self, dataset_group):
      number_of_granules_path = "Data_Products/{dataset_group}/{dataset_group}_Aggr/attr/AggregateNumberGranules"
      nb_granules_path = number_of_granules_path.format(
          dataset_group=DATASET_KEYS[dataset_group]
      )
      scans = []
      for granule in range(self[nb_granules_path]):
          scans_path = "Data_Products/{dataset_group}/{dataset_group}_Gran_{granule}/attr/N_Number_Of_Scans"
          scans_path = scans_path.format(
              dataset_group=DATASET_KEYS[dataset_group], granule=granule
          )
          scans.append(self[scans_path])
      return scans
  
imports: import logging
  from datetime import datetime, timedelta
  import dask.array
  import numpy
  import xarray
  from satpy.readers.hdf5_utils import HDF5FileHandler
label_desc: Use image node_id 24 for calling the JPSS_SDR_FileHandler obj's underlying member method code with example usage: obj._get_scans_per_granule(dataset_group) and returns: scans