Cartopy is a Python package designed for geospatial data processing in order to produce maps and other geospatial data analyses.

Cartopy makes use of the powerful PROJ, NumPy and Shapely libraries and includes a programmatic interface built on top of Matplotlib for the creation of publication quality maps.

Key features of cartopy are its object oriented projection definitions, and its ability to transform points, lines, vectors, polygons and images between those projections.

You will find cartopy especially useful for large area / small scale data, where Cartesian assumptions of spherical data traditionally break down. If you’ve ever experienced a singularity at the pole or a cut-off at the dateline, it is likely you will appreciate cartopy’s unique features!


The v0.20 release uses pyproj for transformations, which could be slower in some situations. If you need to increase the speed of plots and don’t need to worry about thread safety in your application, you can set the environment variable PYPROJ_GLOBAL_CONTEXT=ON to make the projection calculations faster.

Getting involved#

Cartopy was originally developed at the UK Met Office to allow scientists to visualise their data on maps quickly, easily and most importantly, accurately. Cartopy has been made freely available under the terms of the BSD 3-Clause License. It is suitable to be used in a variety of scientific fields and has an active development community.

There are many ways to get involved in the development of cartopy: