class_docstr: VIIRS L1B File Reader.
class_docstr_tok: ["VIIRS","L1B","File","Reader","."]
docstr: Get metadata.
docstr_tok: ["Get","metadata","."]
code: def get_metadata(self, dataset_id, ds_info):
      """Get metadata."""
      var_path = self._dataset_name_to_var_path(
          dataset_id["name"], ds_info
      )
      shape = self.get_shape(dataset_id, ds_info)
      file_units = self._get_dataset_file_units(
          dataset_id, ds_info, var_path
      )
  
      # Get extra metadata
      if self._is_scan_based_array(shape):
          rows_per_scan = int(
              shape[0] / self["/dimension/number_of_scans"]
          )
          ds_info.setdefault("rows_per_scan", rows_per_scan)
  
      i = getattr(self[var_path], "attrs", {})
      i.update(ds_info)
      i.update(dataset_id.to_dict())
      i.update(
          {
              "shape": shape,
              "units": ds_info.get("units", file_units),
              "file_units": file_units,
              "platform_name": self.platform_name,
              "sensor": self.sensor_name,
              "start_orbit": self.start_orbit_number,
              "end_orbit": self.end_orbit_number,
          }
      )
      i.update(dataset_id.to_dict())
      return i
  
imports: import logging
  from datetime import datetime
  import numpy
  from satpy.readers.netcdf_utils import NetCDF4FileHandler
label_desc: Use image node_id 12 for calling the VIIRSL1BFileHandler obj's underlying member method code with example usage: obj.get_metadata(dataset_id, ds_info) and returns: i