code: def vesta_image():
      """
      Return an image of Vesta's topography.
  
      Image credit: NASA/JPL-Caltech/UCLA/MPS/DLR/IDA/PSI
  
      Returns
      -------
      img : numpy array
          The pixels of the image in a numpy array.
      img_proj : cartopy CRS
          The rectangular coordinate system of the image.
      img_extent : tuple of floats
          The extent of the image ``(x0, y0, x1, y1)`` referenced in
          the ``img_proj`` coordinate system.
  
      """
      url = "https://photojournal.jpl.nasa.gov/jpeg/PIA17037.jpg"
      img_handle = BytesIO(urlopen(url).read())
      raw_image = Image.open(img_handle)
      # The image is extremely high-resolution, which takes a long time to
      # plot. Sub-sampling reduces the time taken to plot while not
      # significantly altering the integrity of the result.
      smaller_image = raw_image.resize(
          [raw_image.size[0] // 10, raw_image.size[1] // 10]
      )
      img = np.asarray(smaller_image)
      # We define the semimajor and semiminor axes, but must also tell the
      # globe not to use the WGS84 ellipse, which is its default behaviour.
      img_globe = ccrs.Globe(
          semimajor_axis=285000.0, semiminor_axis=229000.0, ellipse=None
      )
      img_proj = ccrs.PlateCarree(globe=img_globe)
      img_extent = (-180, 180, -90, 90)
      return img, img_globe, img_proj, img_extent
  
file_path: cartopy/examples/miscellanea/eccentric_ellipse.py
imports: from io import BytesIO
  from urllib.request import urlopen
  import matplotlib.pyplot
  import numpy
  from PIL import Image
  import cartopy.crs
label_desc: Use image node_id 1 for calling a global function with example usage: vesta_image() and returns: img,  img_globe,  img_proj,  img_extent