graph LR
GeoAxes_Map_Renderer["GeoAxes Map Renderer"]
CRS["CRS"]
FeatureArtist["FeatureArtist"]
Gridliner["Gridliner"]
Image_Tiles_IO["Image Tiles IO"]
OGC_Clients_IO["OGC Clients IO"]
Image_Transform["Image Transform"]
Matplotlib_Imshow["Matplotlib Imshow"]
GeoAxes_Map_Renderer -- "orchestrates" --> FeatureArtist
GeoAxes_Map_Renderer -- "manages" --> Gridliner
GeoAxes_Map_Renderer -- "uses" --> CRS
GeoAxes_Map_Renderer -- "acquires data from" --> Image_Tiles_IO
GeoAxes_Map_Renderer -- "fetches data from" --> OGC_Clients_IO
GeoAxes_Map_Renderer -- "sends data to" --> Image_Transform
Image_Transform -- "returns processed data to" --> GeoAxes_Map_Renderer
GeoAxes_Map_Renderer -- "calls" --> Matplotlib_Imshow
CRS -- "provides projection services to" --> GeoAxes_Map_Renderer
Image_Tiles_IO -- "provides raster data to" --> GeoAxes_Map_Renderer
OGC_Clients_IO -- "provides raster data to" --> GeoAxes_Map_Renderer
The cartopy.mpl.geoaxes subsystem, centered around the GeoAxes class, extends Matplotlib's Axes to provide geospatial plotting capabilities. GeoAxes acts as the primary orchestrator, leveraging cartopy.crs.Projection for coordinate system management and transformations. It interacts with cartopy.mpl.feature_artist.FeatureArtist to render vector data and cartopy.mpl.gridliner.Gridliner for drawing map grids. For raster data, GeoAxes utilizes cartopy.io.img_tiles.GoogleTiles and cartopy.io.ogc_clients.WMTSRasterSource (and WMSRasterSource) to acquire image tiles from various sources. Before display, raster data may undergo transformations via cartopy.img_transform.warp_array. Finally, GeoAxes relies on the core matplotlib.axes.Axes.imshow method for the actual rendering of image data onto the plot. This architecture ensures a clear separation of concerns, with specialized components handling projections, feature rendering, gridlines, data acquisition, and image processing, all coordinated by the central GeoAxes component.
The central component orchestrating the rendering of all geospatial data and map elements onto a Matplotlib Axes object. It extends Matplotlib's capabilities to handle geographical coordinates and projections, managing the display of features, gridlines, and various data overlays. It acts as the primary interface for users to create and manipulate geographical plots.
Related Classes/Methods:
Manages map projections and performs coordinate transformations, ensuring geospatial data is correctly positioned and displayed according to the chosen projection.
Related Classes/Methods:
Responsible for rendering geographical features by converting geometries into Matplotlib paths, enabling the visualization of vector data like coastlines, borders, or custom shapes.
Related Classes/Methods:
Draws latitude and longitude gridlines and their labels on the map, providing geographical context and reference points for the displayed data.
Related Classes/Methods:
Component for acquiring raster data for background imagery or overlays from image tile services (e.g., OpenStreetMap, Stamen).
Related Classes/Methods:
Component for acquiring raster data from OGC (Open Geospatial Consortium) clients, such as WMS (Web Map Service) or WMTS (Web Map Tile Service).
Related Classes/Methods:
Performs transformations (e.g., regridding, reprojection) of raster data before display, ensuring compatibility with the map's projection and desired resolution.
Related Classes/Methods:
The underlying Matplotlib function utilized for the actual display of image data (raster arrays) onto the Axes object.
Related Classes/Methods: