class_docstr: Generic GRIB file handler.
class_docstr_tok: ["Generic","GRIB","file","handler","."]
code: def _area_def_from_msg(self, msg):
      proj_params = msg.projparams.copy()
      proj_params = self._correct_proj_params_over_prime_meridian(
          proj_params
      )
  
      if proj_params["proj"] in ("cyl", "eqc"):
          # eqc projection that goes from 0 to 360
          proj_params, shape, extents = self._get_cyl_area_info(
              msg, proj_params
          )
      else:
          proj_params, shape, extents = self._get_area_info(
              msg, proj_params
          )
  
      return geometry.AreaDefinition(
          "on-the-fly grib area",
          "on-the-fly grib area",
          "on-the-fly grib area",
          proj_params,
          shape[1],
          shape[0],
          extents,
      )
  
imports: import logging
  from datetime import datetime
  import dask.array
  import numpy
  import pygrib
  import xarray
  from pyproj import Proj
  from pyresample import geometry
  from satpy.dataset import DataQuery
  from satpy.readers.file_handlers import BaseFileHandler
  from satpy.utils import get_legacy_chunk_size
label_desc: Use image node_id 17 for calling the GRIBFileHandler obj's underlying member method code with example usage: obj._area_def_from_msg(msg) and returns: geometry