Introduction
Dans ce laboratoire, vous allez apprendre à utiliser la bibliothèque Matplotlib de Python pour interpoler des données d'un maillage triangulaire vers un maillage quadrangulaire. Nous commencerons par créer une triangulation puis interpoler les données en utilisant des méthodes linéaires et cubiques. Enfin, nous tracerons les résultats.
Conseils sur la VM
Une fois le démarrage de la VM terminé, cliquez sur le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.
Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session et nous réglerons rapidement le problème pour vous.
Créer une triangulation
La première étape consiste à créer une triangulation à l'aide des données x, y et triangles données. Nous tracerons ensuite la triangulation.
## Créer une triangulation.
x = np.asarray([0, 1, 2, 3, 0.5, 1.5, 2.5, 1, 2, 1.5])
y = np.asarray([0, 0, 0, 0, 1.0, 1.0, 1.0, 2, 2, 3.0])
triangles = [[0, 1, 4], [1, 2, 5], [2, 3, 6], [1, 5, 4], [2, 6, 5], [4, 5, 7],
[5, 6, 8], [5, 8, 7], [7, 8, 9]]
triang = mtri.Triangulation(x, y, triangles)
## Tracer la triangulation.
plt.triplot(triang, 'ko-')
plt.title('Triangular grid')
plt.show()
Interpoler des données en utilisant la méthode linéaire
La deuxième étape consiste à interpoler les données en utilisant la méthode linéaire. Nous allons créer un maillage quadrangulaire régulièrement espacé puis utiliser la méthode LinearTriInterpolator pour interpoler les données. Enfin, nous tracerons les données interpolées.
## Interpoler vers un maillage quadrangulaire régulièrement espacé.
z = np.cos(1.5 * x) * np.cos(1.5 * y)
xi, yi = np.meshgrid(np.linspace(0, 3, 20), np.linspace(0, 3, 20))
## Interpoler en utilisant la méthode linéaire.
interp_lin = mtri.LinearTriInterpolator(triang, z)
zi_lin = interp_lin(xi, yi)
## Tracer les données interpolées.
plt.contourf(xi, yi, zi_lin)
plt.plot(xi, yi, 'k-', lw=0.5, alpha=0.5)
plt.plot(xi.T, yi.T, 'k-', lw=0.5, alpha=0.5)
plt.title("Linear interpolation")
plt.show()
Interpoler des données en utilisant la méthode cubique
La troisième étape consiste à interpoler les données en utilisant la méthode cubique. Nous allons utiliser la méthode CubicTriInterpolator avec le paramètre kind défini sur 'geom' ou'min_E'. Enfin, nous tracerons les données interpolées.
## Interpoler en utilisant la méthode cubique avec kind=geom.
interp_cubic_geom = mtri.CubicTriInterpolator(triang, z, kind='geom')
zi_cubic_geom = interp_cubic_geom(xi, yi)
## Tracer les données interpolées.
plt.contourf(xi, yi, zi_cubic_geom)
plt.plot(xi, yi, 'k-', lw=0.5, alpha=0.5)
plt.plot(xi.T, yi.T, 'k-', lw=0.5, alpha=0.5)
plt.title("Cubic interpolation, kind='geom'")
plt.show()
## Interpoler en utilisant la méthode cubique avec kind=min_E.
interp_cubic_min_E = mtri.CubicTriInterpolator(triang, z, kind='min_E')
zi_cubic_min_E = interp_cubic_min_E(xi, yi)
## Tracer les données interpolées.
plt.contourf(xi, yi, zi_cubic_min_E)
plt.plot(xi, yi, 'k-', lw=0.5, alpha=0.5)
plt.plot(xi.T, yi.T, 'k-', lw=0.5, alpha=0.5)
plt.title("Cubic interpolation, kind='min_E'")
plt.show()
Sommaire
Dans ce laboratoire, nous avons appris à utiliser la bibliothèque Matplotlib de Python pour interpoler des données d'un maillage triangulaire vers un maillage quadrangulaire. Nous avons commencé par créer une triangulation puis interpolé les données en utilisant des méthodes linéaires et cubiques. Enfin, nous avons tracé les résultats.