python numpy matplotlib gis coordinate-systems

subplot python



Matplotlib imshow offset para coincidir con el eje? (1)

Debe usar el argumento de palabra clave de extent para mostrar.

Como un ejemplo rápido:

import numpy as np import matplotlib.pyplot as plt # Random points between 50000 and 51000 x, y = 1000 * np.random.random((2, 10)) + 50000 # A 10x10 "image"... image = np.arange(100).reshape((10,10)) # In a lot of cases, image data will be "flipped" vertically, so you may need # use the `origin` kwarg, as well (or just swap the ymin and ymax ordering). plt.imshow(image, extent=[x.min(), x.max(), y.min(), y.max()]) plt.plot(x, y, ''ro'') plt.show()

Estoy trazando un conjunto de coordenadas UTM usando matplotlib.pyplot.scatter. También tengo una foto aérea de fondo que sé que coincide exactamente con la extensión de la figura. Cuando trazo mis datos y configuro el eje, puedo mostrar el scatter correctamente. Si trazo la foto de aire usando imshow, usa el número de píxel como la ubicación del eje. Necesito cambiar la imagen (matriz numpy) a la posición correcta de UTM. ¿Algunas ideas? Soy bastante nuevo en matplotlib y numpy.

Por ejemplo: sé que la esquina superior izquierda de la imagen (coordenada imshow: 0,0) tiene la coordenada UTM (269658.4, 538318.2). ¿Cómo le digo imshow lo mismo?

También debería decir que investigué Basemap pero aún no parece ser totalmente compatible con UTM. Mi área de estudio es muy pequeña.