code: def geodesic(crs, start, end, steps):
      r
      import cartopy.crs as ccrs
      from pyproj import Geod
  
      # Geod.npts only gives points *in between* the start and end, and we want to include
      # the endpoints.
      g = Geod(crs.proj4_init)
      geodesic = np.concatenate([
          np.array(start[::-1])[None],
          np.array(g.npts(start[1], start[0], end[1], end[0], steps - 2)),
          np.array(end[::-1])[None]
      ]).transpose()
      points = crs.transform_points(ccrs.Geodetic(), *geodesic)[:, :2]
  
      return points
docs: r"""Construct a geodesic path between two points.
  
      This function acts as a wrapper for the geodesic construction available in `pyproj`.
  
      Parameters
      ----------
      crs: `cartopy.crs`
          Cartopy Coordinate Reference System to use for the output
      start: (2, ) array_like
          A latitude-longitude pair designating the start point of the geodesic (units are
          degrees north and degrees east).
      end: (2, ) array_like
          A latitude-longitude pair designating the end point of the geodesic (units are degrees
          north and degrees east).
      steps: int, optional
          The number of points along the geodesic between the start and the end point
          (including the end points).
  
      Returns
      -------
      `numpy.ndarray`
          The list of x, y points in the given CRS of length `steps` along the geodesic.
  
      See Also
      --------
      cross_section