RasterSources and accessing WMS and WMTS

Implements RasterSource classes which can retrieve imagery from web services such as WMS and WMTS.

The matplotlib interface can make use of RasterSources via the cartopy.mpl.geoaxes.GeoAxes.add_raster() method, with additional specific methods which make use of this for WMS and WMTS (add_wms() and add_wmts()). An example of using WMTS in this way can be found at wmts example.

class cartopy.io.ogc_clients.WFSGeometrySource(service, features, getfeature_extra_kwargs=None)[source]

Web Feature Service (WFS) retrieval for Cartopy.


  • service:

    The URL of a WFS, or an instance of owslib.wfs.WebFeatureService.

  • features:

    The typename(s) of the features from the WFS that will be retrieved and made available as geometries.


  • getfeature_extra_kwargs:

    Extra keyword args to pass to the service’s getfeature call.


Return a cartopy.crs.Projection in which the WFS service can supply the requested features.

fetch_geometries(projection, extent)[source]

Return any Point, Linestring or LinearRing geometries available from the WFS that lie within the specified extent.


  • projection: cartopy.crs.Projection

    The projection in which the extent is specified and in which the geometries should be returned. Only the default (native) projection is supported.

  • extent: four element tuple

    (min_x, max_x, min_y, max_y) tuple defining the geographic extent of the geometries to obtain.

A list of Shapely geometries.
class cartopy.io.ogc_clients.WMSRasterSource(service, layers, getmap_extra_kwargs=None)[source]

A WMS imagery retriever which can be added to a map.


Requires owslib and Pillow to work.


No caching of retrieved maps is done with this WMSRasterSource.

To reduce load on the WMS server it is encouraged to tile map requests and subsequently stitch them together to recreate a single raster, thus allowing for a more aggressive caching scheme, but this WMSRasterSource does not currently implement WMS tile fetching.

Whilst not the same service, there is also a WMTSRasterSource which makes use of tiles and comes with built-in caching for fast repeated map retrievals.

: string or WebMapService instance
The WebMapService instance, or URL of a WMS service, from whence to retrieve the image.
: string or list of strings
The name(s) of layers to use from the WMS service.
: dict or None
Extra keywords to pass through to the service’s getmap method. If None, a dictionary with {'transparent': True} will be defined.
getmap_extra_kwargs = None

Extra kwargs passed through to the service’s getmap request.

layers = None

The names of the layers to fetch.

service = None

The OWSLib WebMapService instance.

class cartopy.io.ogc_clients.WMTSRasterSource(wmts, layer_name, gettile_extra_kwargs=None)[source]

A WMTS imagery retriever which can be added to a map.

Uses tile caching for fast repeated map retrievals.


Requires owslib and Pillow to work.


  • wmts - The URL of the WMTS, or an

    owslib.wmts.WebMapTileService instance.

  • layer_name - The name of the layer to use.


  • gettile_extra_kwargs
    : dict or None

    Extra keywords (e.g. time) to pass through to the service’s gettile method.

layer = None

The layer to fetch.

wmts = None

The OWSLib WebMapTileService instance.