code: def get_parallax_corrected_lonlats(
      sat_lon, sat_lat, sat_alt, lon, lat, height
  ):
      """Calculate parallax corrected lon/lats.
  
      Satellite geolocation generally assumes an unobstructed view of a smooth
      Earth surface.  In reality, this view may be obstructed by clouds or
      mountains.
  
      If the view of a pixel at location (lat, lon) is blocked by a cloud
      at height h, this function calculates the (lat, lon) coordinates
      of the cloud above/in front of the invisible surface.
  
      For scenes that are only partly cloudy, the user might set the cloud top
      height for clear-sky pixels to NaN.  This function will return a corrected
      lat/lon as NaN as well.  The user can use the original lat/lon for those
      pixels or use the higher level :class:`ParallaxCorrection` class.
  
      This function assumes a spherical Earth.
  
      .. note::
  
          Be careful with units!  This code expects ``sat_alt`` and
          ``height`` to be in meter above the Earth's surface.  You may
          have to convert your input correspondingly.  Cloud Top Height
          is usually reported in meters above the Earth's surface, rarely
          in km.  Satellite altitude may be reported in either m or km, but
          orbital parameters are usually in relation to the Earth's centre.
          The Earth radius from pyresample is reported in km.
  
      Args:
          sat_lon (number): Satellite longitude in geodetic coordinates [degrees]
          sat_lat (number): Satellite latitude in geodetic coordinates [degrees]
          sat_alt (number): Satellite altitude above the Earth surface [m]
          lon (array or number): Longitudes of pixel or pixels to be corrected,
              in geodetic coordinates [degrees]
          lat (array or number): Latitudes of pixel/pixels to be corrected, in
              geodetic coordinates [degrees]
          height (array or number): Heights of pixels on which the correction
              will be based.  Typically this is the cloud top height. [m]
  
      Returns:
          tuple[float, float]: Corrected geolocation
              Corrected geolocation ``(lon, lat)`` in geodetic coordinates for
              the pixel(s) to be corrected. [degrees]
      """
      elevation = _get_satellite_elevation(
          sat_lon, sat_lat, sat_alt, lon, lat
      )
      parallax_distance = _calculate_slant_cloud_distance(
          height, elevation
      )
      shifted_xyz = _get_parallax_shift_xyz(
          sat_lon, sat_lat, sat_alt, lon, lat, parallax_distance
      )
  
      return xyz2lonlat(
          shifted_xyz[..., 0], shifted_xyz[..., 1], shifted_xyz[..., 2]
      )
  
imports: import datetime
  import inspect
  import logging
  import warnings
  import dask.array
  import numpy
  import xarray
  from pyorbital.orbital import A
  from pyorbital.orbital import get_observer_look
  from pyproj import Geod
  from pyresample.bucket import BucketResampler
  from pyresample.geometry import SwathDefinition
  from satpy.modifiers import ModifierBase
  from satpy.resample import resample_dataset
  from satpy.utils import get_satpos, lonlat2xyz, xyz2lonlat
label_desc: Use image node_id 1 for calling a global function with example usage: get_parallax_corrected_lonlats(sat_lon, sat_lat, sat_alt, lon, lat, height) and returns: xyz2lonlat