code: def get_dataset(self, key, info):
          
  
          if self.channel not in key.name:
              return
  
          logger.debug('Reading %s.', key.name)
          if key.calibration == 'brightness_temperature':
              variable = self.nc['{}_BT_{}{}'.format(self.channel, self.stripe, self.view)]
          else:
              variable = self.nc['{}_radiance_{}{}'.format(self.channel, self.stripe, self.view)]
  
          radiances = variable
          units = variable.attrs['units']
  
          if key.calibration == 'reflectance':
              # TODO take into account sun-earth distance
              solar_flux = self.cal[re.sub('_[^_]*$', '', key.name) + '_solar_irradiances']
              d_index = self.indices['detector_{}{}'.format(self.stripe, self.view)]
              idx = 0 if self.view == 'n' else 1   # 0: Nadir view, 1: oblique (check).
  
              radiances.data = da.map_blocks(
                  self._cal_rad, radiances.data, d_index.data, solar_flux=solar_flux[:, idx].values)
  
              radiances *= np.pi * 100
              units = '%'
  
          info.update(radiances.attrs)
          info.update(key.to_dict())
          info.update(dict(units=units,
                           platform_name=self.platform_name,
                           sensor=self.sensor,
                           view=self.view))
  
          radiances.attrs = info
          return radiances
docs: Load a dataset.