J'essaie de tracer une carte raster en utilisant Pyhton. L'image n'est pas enregistrée, bien qu'elle apparaisse. De plus, les pixels n'apparaissent pas à l'endroit exact. Je reçois l'image comme indiqué ci-dessous (ce qui est faux, cependant, l'étiquetage lat-lon est correct.)
Vous trouverez ci-dessous l'orientation correcte, que j'ai exportée depuis ArcGIS.
Il y a une erreur en plaçant le pixel au bon endroit, mais je ne l'obtiens pas. Comment le corriger?
Voici mon script.
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from osgeo import gdal
from numpy import linspace
from numpy import meshgrid
import numpy as
#################################################################################
ds = gdal.Open('Path\\To\\Raster.tif')
data = ds.ReadAsArray()
gt = ds.GetGeoTransform()
proj = ds.GetProjection()
#################################################################################
xres = gt[1]
yres = gt[5]
xmin = gt[0] + xres * 0.5
xmax = gt[0] + (xres * ds.RasterXSize) - xres * 0.5
ymin = gt[3] + (yres * ds.RasterYSize) + yres * 0.5
ymax = gt[3] - yres * 0.5
x_center=(xmin+xmax)/2
y_center=(ymin+ymax)/2
#################################################################################
fig = plt.figure(figsize=(18, 10))
ax = fig.add_subplot(111, axisbg='w', frame_on=True)
m = Basemap(llcrnrlon=xmin,llcrnrlat=ymin,urcrnrlon=xmax,urcrnrlat=ymax,
projection='tmerc', lat_0 = y_center, lon_0 = x_center)
parallels = np.arange(15.,30.,0.25)
m.drawparallels(parallels,labels=[1,0,0,0],fontsize=12, linewidth=0.4)
meridians = np.arange(70.,90.,0.25)
m.drawmeridians(meridians,labels=[0,0,0,1],fontsize=12, linewidth=0.4)
x = linspace(0, m.urcrnrx, data.shape[1])
y = linspace(0, m.urcrnry, data.shape[0])
xx, yy = meshgrid(x, y)
m.pcolormesh(xx, yy, data, cmap=plt.cm.jet)
plt.show()
plt.savefig('Path\\To\\Save_Image.png', bbox_inches='tight', pad_inches=.2, dpi=600)
pcolormesh
avec imshow
elle dit NameError: nom « imshow » est pas défini Comment utiliser `imshow ici? @countryman
imshow
au lieu depcolormesh
? Il prend un coin différent comme origine de l'image par défaut.