code: def get_dataset(self, key, info):
          
          if self._polarization != key.polarization:
              return
  
          logger.debug('Reading %s.', key.name)
  
          if key.name in ['longitude', 'latitude']:
              logger.debug('Constructing coordinate arrays.')
  
              if self.lons is None or self.lats is None:
                  self.lons, self.lats, self.alts = self.get_lonlatalts()
  
              if key.name == 'latitude':
                  data = self.lats
              else:
                  data = self.lons
              data.attrs.update(info)
  
          else:
              calibration = key.calibration or 'gamma'
              if calibration == 'sigma_nought':
                  calibration = 'sigmaNought'
              elif calibration == 'beta_nought':
                  calibration = 'betaNought'
  
              data = self.read_band()
              # chunks = data.chunks  # This seems to be slower for some reason
              chunks = CHUNK_SIZE
              logger.debug('Reading noise data.')
              noise = self.noise.get_noise_correction(data.shape, chunks=chunks).fillna(0)
  
              logger.debug('Reading calibration data.')
  
              cal = self.calibration.get_calibration(calibration, data.shape, chunks=chunks)
              cal_constant = self.calibration.get_calibration_constant()
  
              logger.debug('Calibrating.')
              data = data.where(data > 0)
              data = data.astype(np.float64)
              dn = data * data
              data = ((dn - noise).clip(min=0) + cal_constant)
  
              data = (np.sqrt(data) / cal).clip(min=0)
              data.attrs.update(info)
  
              del noise, cal
  
              data.attrs['units'] = calibration
  
          return data
docs: Load a dataset.