Exemples de comment tracer une heatmap (depuis des données sur une grille régulière) sur une carte globale avec cartopy en python :
Obtenir des données sur une grille régulière
Commençons par obtenir quelques données :
import numpy as np
data = np.loadtxt('https://raw.githubusercontent.com/benjamin-hg-marchant/teaching/main/datasets/modis_myd06_cpop_2d_hist_1b1_grid.txt')
Notez que
data.shape
donne
(360, 180)
ici la longitude [-180,180] sont sur le premier axe (axe =0) et la latitude [-90 : 90] sur le deuxième axe (axe =1) :
Tracer une carte simple avec cartopy
from cartopy import config
from matplotlib.pyplot import figure
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
fig = plt.figure(num=None, figsize=(8, 6), dpi=80, edgecolor='k')
ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines()
plt.title("Plot a global map with cartopy in python", fontsize=12)
plt.savefig("cartopy_heatmap_01.png", bbox_inches='tight', dpi=200)
Tracer une heatmap avec cartopy
from cartopy import config
from matplotlib.pyplot import figure
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
fig = plt.figure(num=None, figsize=(8, 6), dpi=80, edgecolor='k')
ax = plt.axes(projection=ccrs.PlateCarree())
ax.imshow(data.T, origin='lower', extent=[-180,180,-90,90], transform=ccrs.PlateCarree(),cmap='jet',vmin=0, vmax=1.0)
ax.coastlines()
plt.title("Plot a heatmap with cartopy in python", fontsize=12)
plt.savefig("cartopy_heatmap_02.png", bbox_inches='tight', dpi=200)
Références
- Using cartopy with matplotlib
- More advanced mapping with cartopy and matplotlib
- Installation
- Download data from Natural Earth and OpenStreetMap for Cartopy
- Natural Earth S3 Links
- Download data from Natural Earth and OpenStreetMap for Cartopy
- Understanding the transform and projection keywords
- Visualizing Satellite Data Using Matplotlib and Cartopy
- Coordinate reference systems in Cartopy