3 votes

Difficulté à reprojeter une image avec Cartopy

Je rencontre un problème de reprojection d'une image avec Cartopy.

J'ai le code suivant (modifié à partir d'un exemple trouvé ici) :

import os
import matplotlib.pyplot as plt

from cartopy import config
import cartopy.crs as ccrs
import cartopy.feature as cfeature

fig = plt.figure(figsize=(8, 10))

img_extent = (-120.67660000000001, -106.32104523100001, 13.2301484511245, 30.766899999999502)
img = plt.imread('/tmp/Miriam.A2012270.2050.2km.jpg')

ax = plt.axes(projection=ccrs.PlateCarree())
plt.title('Ouragan Miriam du satellite Aqua/MODIS\n'
          '2012 09/26/2012 20:50 UTC')

ax.set_extent([-125, -105, 10, 35], ccrs.Geodetic())

ax.imshow(img, origin='upper', extent=img_extent, transform=ccrs.PlateCarree())
ax.coastlines(resolution='50m', color='black', linewidth=1)
ax.gridlines()

plt.show()

qui génère l'image suivante PlateCarree

Cependant, lorsque j'essaie de choisir une projection différente, disons Lambert Conformal, en remplaçant

ax = plt.axes(projection=ccrs.PlateCarree())

par

ax = plt.axes(projection=ccrs.LambertConformal())

J'obtiens l'image suivante :

LambertConformal

Comme vous pouvez le voir, cette image a des problèmes. Que fais-je mal ? Est-il possible d'afficher cette image dans une projection différente ?

10voto

ajdawson Points 1456

Pour référence future, ce problème était dû à un bug dans cartopy qui a maintenant été corrigé sur la branche principale. La correction sera incluse dans la version 0.10.0. La sortie du script de Julien exécuté avec le code corrigé est affichée ci-dessous :

entrer la description de l'image ici

1voto

pelson Points 5011

C'est définitivement un bug, donc je vous encourage à ouvrir un problème sur github (https://github.com/SciTools/cartopy/issues/new).

Je pensais initialement que cela pourrait être lié à la projection LambertConformal, mais le même problème se produit avec d'autres projections aussi (comme Robinson), ce qui me laisse penser qu'il y a un problème avec la définition des limites de l'image.

Malheureusement, je n'ai pas de solution de contournement pour le moment.

En espérant que cela vous aide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X