Zeichnen und Beschriften von Breiten- und Längengraden

Die meisten Karten enthalten ein Gradnetz, ein Referenznetz aus beschrifteten Breiten- und Längengradlinien. Basemap erledigt dies mit den Instanzmethoden drawparallels() und drawmeridians(). Die Längen- und Breitengradlinien können dort beschriftet werden, wo sie die Grenze der Kartenprojektion schneiden. Es gibt einige Ausnahmen: Meridiane und Parallelen können nicht auf Karten mit proj auf ortho (orthographisch), geos (geostationär), vandg (van der Grinten) oder nsper (nahe Perspektive) gesetzt beschriftet werden, und Meridiane können nicht auf Karten mit proj auf ortho (orthographisch), geos (geostationär), vandg (van der Grinten), nsper (nahe Perspektive), moll (Mollweide), hammer (Hammer) oder sinu (sinusoidal) gesetzt beschriftet werden. Dies liegt daran, dass die Linien dort, wo sie die Grenze dieser Karten schneiden, sehr nah beieinander liegen können, sodass sie tatsächlich manuell im Inneren des Plots beschriftet werden müssen. Hier ist ein Beispiel, das zeigt, wie man Parallelen und Meridiane zeichnet und sie auf verschiedenen Seiten des Plots beschriftet.

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
# setup Lambert Conformal basemap.
m = Basemap(width=12000000,height=9000000,projection='lcc',
            resolution='c',lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.)
# draw coastlines.
m.drawcoastlines()
# draw a boundary around the map, fill the background.
# this background will end up being the ocean color, since
# the continents will be drawn on top.
m.drawmapboundary(fill_color='aqua') 
# fill continents, set lake color same as ocean color. 
m.fillcontinents(color='coral',lake_color='aqua')
# draw parallels and meridians.
# label parallels on right and top
# meridians on bottom and left
parallels = np.arange(0.,81,10.)
# labels = [left,right,top,bottom]
m.drawparallels(parallels,labels=[False,True,True,False])
meridians = np.arange(10.,351.,20.)
m.drawmeridians(meridians,labels=[True,False,False,True])
plt.show()

(Quellcode)

../_images/graticule.png