class_docstr: File reader for individual ABI L1B NetCDF4 files.
code: def _adjust_attrs(self, data, key):
      data.attrs.update(
          {"platform_name": self.platform_name, "sensor": self.sensor}
      )
      # Add orbital parameters
      projection = self.nc["goes_imager_projection"]
      data.attrs["orbital_parameters"] = {
          "projection_longitude": float(
              projection.attrs["longitude_of_projection_origin"]
          ),
          "projection_latitude": float(
              projection.attrs["latitude_of_projection_origin"]
          ),
          "projection_altitude": float(
              projection.attrs["perspective_point_height"]
          ),
          "satellite_nominal_latitude": float(
              self["nominal_satellite_subpoint_lat"]
          ),
          "satellite_nominal_longitude": float(
              self["nominal_satellite_subpoint_lon"]
          ),
          "satellite_nominal_altitude": float(
              self["nominal_satellite_height"]
          )
          * 1000.0,
          "yaw_flip": bool(self["yaw_flip_flag"]),
      }
      data.attrs.update(key.to_dict())
      # remove attributes that could be confusing later
      # if calibration type is raw counts, we leave them in
      if key["calibration"] != "counts":
          data.attrs.pop("_FillValue", None)
          data.attrs.pop("scale_factor", None)
          data.attrs.pop("add_offset", None)
      data.attrs.pop("_Unsigned", None)
      data.attrs.pop(
          "ancillary_variables", None
      )  # Can't currently load DQF
      # although we could compute these, we'd have to update in calibration
      data.attrs.pop("valid_range", None)
      # add in information from the filename that may be useful to the user
      for attr in (
          "observation_type",
          "scene_abbr",
          "scan_mode",
          "platform_shortname",
          "suffix",
      ):
          if attr in self.filename_info:
              data.attrs[attr] = self.filename_info[attr]
      # copy global attributes to metadata
      for attr in (
          "scene_id",
          "orbital_slot",
          "instrument_ID",
          "production_site",
          "timeline_ID",
      ):
          data.attrs[attr] = self.nc.attrs.get(attr)
      # only include these if they are present
      for attr in ("fusion_args",):
          if attr in self.nc.attrs:
              data.attrs[attr] = self.nc.attrs[attr]
  
file_path: satpy/satpy/readers/abi_l1b.py
imports: import logging
  import numpy
  import satpy
  from satpy.readers.abi_base import NC_ABI_BASE
label_desc: Use image node_id 3 for calling the NC_ABI_L1B obj's underlying member method code with example usage: obj._adjust_attrs(data, key) without return types