class_docstr: Reader for the OSISAF SST GHRSST format.
class_docstr_tok: ["Reader","for","the","OSISAF","SST","GHRSST","format","."]
code: def _scale_and_mask_data(self, out, var_path):
      valid_min = self[var_path + "/attr/valid_min"]
      valid_max = self[var_path + "/attr/valid_max"]
      try:
          scale_factor = self[var_path + "/attr/scale_factor"]
          scale_offset = self[var_path + "/attr/add_offset"]
      except KeyError:
          scale_factor = scale_offset = None
      if valid_min is not None and valid_max is not None:
          out.mask[:] |= (out.data < valid_min) | (out.data > valid_max)
      factors = (scale_factor, scale_offset)
      if factors[0] != 1 or factors[1] != 0:
          out.data[:] *= factors[0]
          out.data[:] += factors[1]
  
file_path: satpy/satpy/readers/ghrsst_l3c_sst.py
imports: import logging
  from datetime import datetime
  import numpy
  from satpy.dataset import Dataset
  from satpy.readers.netcdf_utils import NetCDF4FileHandler
label_desc: Use image node_id 4 for calling the GHRSST_OSISAFL2 obj's underlying member method code with example usage: obj._scale_and_mask_data(out, var_path) without return types