Nice walkthrough! However, I'm surprised they're using basemap for this. Basemap is still maintained, but it's more or less been superseded by Cartopy. (Also, Cartopy should support the Winkle Tripel projection, as Proj4 supports it.)
Edit: Scratch the Winkel Tripel projection support. Proj4 doesn't define an inverse method for that projection (it's non-trivial), so it can't be used correctly by cartopy.
I've been working in this area and I do generally prefer Cartopy over Basemap. Our team recently made this switch. Cartopy is more Pythonic and has a better software design. It has nice abstraction for dealing with and using different map projections. It also handles seam issues well (I cannot recall if this is a problem in Basemap or not). All that said, Basemap has features that are lacking in Cartopy (e.g., can you label lat/lon lines on non-XY projections in Cartopy? The last time I looked, this was not possible.) Also I agree that Cartopy documentation is somewhat lacking in some areas. But going forward I would probably choose Cartopy, notwithstanding Jeff's great work over the years.
I'd love to switch to Cartopy, but its documentation isn't comprehensive or well-presented. I check back every six months or so, and then forget about it again.
Kartograph is quite nice. I need to play around with it more.
However, it's aimed at a very different audience (web-based interactive rendering of vector graphics, as opposed to desktop-based interactive rendering of scientific data). For example, as far as I know (I could be very wrong about this), there's no way to display image/raster data in kartograph.
That having been said, kartograph is a very slick library, and its built-in clustering methods for point data are particularly nice.
The lib uses openstreetmaps as background, can display scatters, heatmaps, shapefiles, calculate and display voronoi tesselation, and does a ton of other things.
Edit: Scratch the Winkel Tripel projection support. Proj4 doesn't define an inverse method for that projection (it's non-trivial), so it can't be used correctly by cartopy.