У меня есть изображение в python. Это карта Калифорнии, и мне нужно поместить некоторую точку на эту карту.
Координаты каждой точки получены из CSV. Но значение каждой координаты в широте / долготе. Итак, мне нужно преобразовать его в размер моей фотографии.
Итак, вот описание моей ситуации:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
# dpi for the saved figure: https://stackoverflow.com/a/34769840/3129414
dpi = 120
img = mpimg.imread("california_map_blank.png")
height, width, bands = img.shape
# Update figure size based on image size
figsize = width / float(dpi), height / float(dpi)
# Create a figure of the right size with one axes that takes up the full figure
figure = plt.figure(figsize=figsize)
axes = figure.add_axes([0, 0, 1, 1])
# Draw the image
axes.imshow(img, interpolation='nearest')
Вот результат:
![enter image description here](https://i.stack.imgur.com/6RANA.png)
Сначала мне нужно изменить ось Y. Мне нужно инвертировать его так, чтобы 0 начиналось снизу. Затем мне нужно изменить значение оси, [31,42] для оси Y и [-123, -114] для оси X. Потому что точка, которую я хочу разместить на этой карте, находится в этом диапазоне. Один пример координаты: 41.76440000093729, -124.1998
.
Теперь вот мой вопрос. Можно ли этого добиться? Как?
PS: я использую python 3.6, и я уже знаю, как разместить точку на изображении. Мне не нужно сохранять только что показанное изображение.
PPS: Моя конечная цель - преобразовать данные широты и долготы в координаты на изображении, поэтому, если вы знаете какой-либо другой способ сделать это (в Python конечно), пожалуйста, скажите мне.
РЕДАКТИРОВАТЬ: Если я применяю это: axes.set_xlim(-124.5,-114)
это даст мне это:
![enter image description here](https://i.stack.imgur.com/LK3EO.png)
Я хочу иметь ось с этим диапазоном, но со всем изображением.
На самом деле, в конце я не буду отображать ось, я просто поставлю карту с точками, но мне нужно разместить указать точку на карте, поэтому я думаю, что мне нужно go на этом шаге.
EDIT2: я пробовал это: axes.imshow(img[::-1], origin='lower', interpolation='nearest')
отлично работает, чтобы повернуть ось, но когда я рисую точку python нарисовать ее там же когда я ось была нормальная.