class_docstr: NWCSAF PPS&MSG NetCDF reader.
docstr: Fix units in Earth shape, satellite altitude and 'units' attribute.
docstr_tok: ["Fix","units","in","Earth","shape",",","satellite","altitude","and","'units","'","attribute","."]
code: def _ensure_crs_extents_in_meters(crs, area_extent):
      """Fix units in Earth shape, satellite altitude and 'units' attribute."""
      import warnings
  
      if "kilo" in crs.axis_info[0].unit_name:
          with warnings.catch_warnings():
              # The proj dict route is the only feasible way to modify the area, suppress the warning it causes
              warnings.filterwarnings(
                  "ignore",
                  category=UserWarning,
                  message="You will likely lose important projection information",
              )
              proj_dict = crs.to_dict()
          proj_dict["units"] = "m"
          if "a" in proj_dict:
              proj_dict["a"] *= 1000.0
          if "b" in proj_dict:
              proj_dict["b"] *= 1000.0
          if "R" in proj_dict:
              proj_dict["R"] *= 1000.0
          proj_dict["h"] *= 1000.0
          area_extent = tuple([val * 1000.0 for val in area_extent])
          crs = CRS.from_dict(proj_dict)
      return crs, area_extent
  
imports: import functools
  import logging
  import os
  from contextlib import suppress
  from datetime import datetime
  import dask.array
  import numpy
  import xarray
  from pyproj import CRS
  from pyresample.geometry import AreaDefinition
  from satpy.readers.file_handlers import BaseFileHandler
  from satpy.readers.utils import unzip_file
  from satpy.utils import get_chunk_size_limit
label_desc: Use image node_id 15 for calling the NcNWCSAF obj's underlying member method code with example usage: obj._ensure_crs_extents_in_meters(crs, area_extent) and returns: crs,  area_extent