code: def _get_satpos_from_platform_name(cth_dataset):
      """Get satellite position if no orbital parameters in metadata.
  
      Some cloud top height datasets lack orbital parameter information in
      metadata.  Here, orbital parameters are calculated based on the platform
      name and start time, via Two Line Element (TLE) information.
  
      Needs pyorbital, skyfield, and astropy to be installed.
      """
      from pyorbital.orbital import tlefile
      from skyfield.api import EarthSatellite, load
      from skyfield.toposlib import wgs84
  
      name = cth_dataset.attrs["platform_name"]
      tle = tlefile.read(name)
      es = EarthSatellite(tle.line1, tle.line2, name)
      ts = load.timescale()
      gc = es.at(
          ts.from_datetime(
              cth_dataset.attrs["start_time"].replace(
                  tzinfo=datetime.timezone.utc
              )
          )
      )
      (lat, lon) = wgs84.latlon_of(gc)
      height = wgs84.height_of(gc).to("km")
      return (lon.degrees, lat.degrees, height.value)
  
imports: from __future__ import annotations
  import contextlib
  import datetime
  import logging
  import os
  import pathlib
  import warnings
  from contextlib import contextmanager
  from copy import deepcopy
  from typing import Literal, Mapping, Optional
  from urllib.parse import urlparse
  import dask.utils
  import numpy
  import xarray
  import yaml
  from yaml import BaseLoader, UnsafeLoader
  from satpy._compat import DTypeLike
label_desc: Use image node_id 22 for calling a global function with example usage: _get_satpos_from_platform_name(cth_dataset) and returns: lon,  lat,  height