code: def intersect_with_earth(view_vector, sat_pos, ellipsoid):
      """Intersect instrument viewing vector with the earth's surface.
  
      Reference: Appendix E, section 2.11 in the GMS user guide.
  
      Args:
          view_vector (Vector3D): Instrument viewing vector in earth-fixed
              coordinates.
          sat_pos (Vector3D): Satellite position in earth-fixed coordinates.
          ellipsoid (EarthEllipsoid): Earth ellipsoid.
  
      Returns:
          Intersection (Vector3D) with the earth's surface.
      """
      distance = _get_distance_to_intersection(
          view_vector, sat_pos, ellipsoid
      )
      return Vector3D(
          sat_pos.x + distance * view_vector.x,
          sat_pos.y + distance * view_vector.y,
          sat_pos.z + distance * view_vector.z,
      )
  
imports: from collections import namedtuple
  import dask.array
  import numba
  import numpy
  from satpy.utils import get_legacy_chunk_size
label_desc: Use image node_id 23 for calling a global function with example usage: intersect_with_earth(view_vector, sat_pos, ellipsoid) and returns: Vector3D