
Since we’re working with vector data here, we’ll be using ax.add_geometries.

Each of the “adder” functions begins with add_. Cartopy contains several helper functions for plotting different kinds of data, and they all are attributes of the GeoAxes object. Here the steps are varied depending on what kind of data is being plotted. This special set of axes is projection-aware, and is responsible for the necessary transformation of data from source projection to the specified axes projection.

What’s happening here, really? When you add the projection keyword argument to the generic plt.axes function, you’re instructing matplotlib (via cartopy) to, instead of creating a regular AxesSubplot object to plot data on, create a GeoAxesSubplot object. Ax = plt.axes(projection = ccrs.LambertConformal()))
