class_docstr: ACSPO L2P SST File Reader.
docstr: Load data array and metadata from file on disk.
docstr_tok: ["Load","data","array","and","metadata","from","file","on","disk","."]
code: def get_dataset(self, dataset_id, ds_info):
      """Load data array and metadata from file on disk."""
      var_path = ds_info.get(
          "file_key", "{}".format(dataset_id["name"])
      )
      metadata = self.get_metadata(dataset_id, ds_info)
      shape = metadata["shape"]
      file_shape = self[var_path + "/shape"]
      metadata["shape"] = shape
  
      valid_min = self[var_path + "/attr/valid_min"]
      valid_max = self[var_path + "/attr/valid_max"]
      # no need to check fill value since we are using valid min/max
      scale_factor = self.get(var_path + "/attr/scale_factor")
      add_offset = self.get(var_path + "/attr/add_offset")
  
      data = self[var_path]
      data = data.rename({"ni": "x", "nj": "y"})
      if isinstance(file_shape, tuple) and len(file_shape) == 3:
          # can only read 3D arrays with size 1 in the first dimension
          data = data[0]
      data = data.where((data >= valid_min) & (data <= valid_max))
      if scale_factor is not None:
          data = data * scale_factor + add_offset
  
      if ds_info.get("cloud_clear", False):
          # clear-sky if bit 15-16 are 00
          clear_sky_mask = (
              self["l2p_flags"][0] & 0b1100000000000000
          ) != 0
          clear_sky_mask = clear_sky_mask.rename({"ni": "x", "nj": "y"})
          data = data.where(~clear_sky_mask)
  
      data.attrs.update(metadata)
      # Remove these attributes since they are no longer valid and can cause invalid value filling.
      data.attrs.pop("_FillValue", None)
      data.attrs.pop("valid_max", None)
      data.attrs.pop("valid_min", None)
      return data
  
file_path: satpy/satpy/readers/acspo.py
imports: import logging
  from datetime import datetime
  import numpy
  from satpy.readers.netcdf_utils import NetCDF4FileHandler
label_desc: Use image node_id 8 for calling the ACSPOFileHandler obj's underlying member method code with example usage: obj.get_dataset(dataset_id, ds_info) and returns: data