Exemples de comment tracer une heatmap pour les régions polaires avec cartopy, matplotlib et python:
Tracer une heatmap au-dessus de l'Antarctique en utilisant cartopy (exemple 1)
import cartopy.feature
import matplotlib.path as mpath
fig = plt.figure(figsize=[10, 5])
ax1 = plt.subplot(1, 2, 1, projection=ccrs.SouthPolarStereo())
# Limit the map to -60 degrees latitude and below.
ax1.set_extent([-180, 180, -90, -60], ccrs.PlateCarree())
ax1.add_feature(cartopy.feature.LAND)
ax1.add_feature(cartopy.feature.OCEAN)
ax1.gridlines()
theta = np.linspace(0, 2*np.pi, 100)
center, radius = [0.5, 0.5], 0.5
verts = np.vstack([np.sin(theta), np.cos(theta)]).T
circle = mpath.Path(verts * radius + center)
ax1.set_boundary(circle, transform=ax1.transAxes)
plt.savefig("cartopy_antarctica_01.png", bbox_inches='tight', dpi=200)
plt.show()
from cartopy import config
from matplotlib.pyplot import figure
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import numpy as np
data = np.loadtxt('modis_myd06_cpop_2d_hist_1b1_grid.txt')
fig = plt.figure(num=None, figsize=(8, 6), dpi=80, edgecolor='k')
ax = plt.axes(projection=ccrs.SouthPolarStereo())
ax.set_extent([-180, 180, -90, -45], ccrs.PlateCarree())
theta = np.linspace(0, 2*np.pi, 200)
center, radius = [0.5, 0.5], 0.5
verts = np.vstack([np.sin(theta), np.cos(theta)]).T
circle = mpath.Path(verts * radius + center)
ax.set_boundary(circle, transform=ax.transAxes)
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_antarctica_03.png", bbox_inches='tight', dpi=200)
plt.show()
Tracer une heatmap au-dessus de l'Antarctique en utilisant cartopy (exemple 2)
import cartopy.feature
import matplotlib.path as mpath
fig = plt.figure(figsize=[10, 5])
ax1 = plt.subplot(1, 2, 1, projection=ccrs.SouthPolarStereo())
ax1.set_extent([-180, 180, -90, -60], ccrs.PlateCarree())
ax1.add_feature(cartopy.feature.LAND)
ax1.add_feature(cartopy.feature.OCEAN)
ax1.gridlines()
plt.savefig("cartopy_antarctica_02.png", bbox_inches='tight', dpi=200)
plt.show()
from cartopy import config
from matplotlib.pyplot import figure
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import numpy as np
data = np.loadtxt('modis_myd06_cpop_2d_hist_1b1_grid.txt')
fig = plt.figure(num=None, figsize=(8, 6), dpi=80, edgecolor='k')
ax = plt.axes(projection=ccrs.SouthPolarStereo())
ax.set_extent([-180, 180, -90, -60], 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_antarctica_04.png", bbox_inches='tight', dpi=200)
Références
Liens | Site |
---|---|
cartopy | scitools.org.uk |
always_circular_stereo example | scitools.org.uk |
More advanced mapping with cartopy and matplotlib | scitools.org.uk |