class_docstr: VIRR Level 1b reader.
class_docstr_tok: ["VIRR","Level","1b","reader","."]
docstr: Create DataArray from file content for `dataset_id`.
docstr_tok: ["Create","DataArray","from","file","content","for","`","dataset_id","`","."]
code: def get_dataset(self, dataset_id, ds_info):
      """Create DataArray from file content for `dataset_id`."""
      file_key = self.geolocation_prefix + ds_info.get(
          "file_key", dataset_id["name"]
      )
      if self.platform_id == "FY3B":
          file_key = file_key.replace("Data/", "")
      data = self[file_key]
      band_index = ds_info.get("band_index")
      valid_range = data.attrs.pop("valid_range", None)
      if isinstance(valid_range, np.ndarray):
          valid_range = valid_range.tolist()
      if band_index is not None:
          data = data[band_index]
          if valid_range:
              data = data.where(
                  (data >= valid_range[0]) & (data <= valid_range[1])
              )
          if "Emissive" in file_key:
              self._calibrate_emissive(data, band_index)
          elif "RefSB" in file_key:
              data = self._calibrate_reflective(data, band_index)
      else:
          slope = self._correct_slope(self[file_key + "/attr/Slope"])
          intercept = self[file_key + "/attr/Intercept"]
  
          if valid_range:
              data = data.where(
                  (data >= valid_range[0]) & (data <= valid_range[1])
              )
          data = data * slope + intercept
      new_dims = {old: new for old, new in zip(data.dims, ("y", "x"))}
      data = data.rename(new_dims)
      # use lowercase sensor name to be consistent with the rest of satpy
      data.attrs.update(
          {
              "platform_name": self["/attr/Satellite Name"],
              "sensor": self[
                  "/attr/Sensor Identification Code"
              ].lower(),
          }
      )
      data.attrs.update(ds_info)
      units = self.get(file_key + "/attr/units")
      if units is not None and str(units).lower() != "none":
          data.attrs.update(
              {"units": self.get(file_key + "/attr/units")}
          )
      elif data.attrs.get("calibration") == "reflectance":
          data.attrs.update({"units": "%"})
      else:
          data.attrs.update({"units": "1"})
      return data
  
file_path: satpy/satpy/readers/virr_l1b.py
imports: import logging
  from datetime import datetime
  import dask.array
  import numpy
  from pyspectral.blackbody import blackbody_wn_rad2temp
  from satpy.readers.hdf5_utils import HDF5FileHandler
label_desc: Use image node_id 2 for calling the VIRR_L1B obj's underlying member method code with example usage: obj.get_dataset(dataset_id, ds_info) and returns: data