Обновите плитку/изображение на основе экстента с помощью Cartopy и Matplotlib FuncAnimation.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обновите плитку/изображение на основе экстента с помощью Cartopy и Matplotlib FuncAnimation.

Сообщение Anonymous »

Я хочу создать анимацию траектории с помощью Cartopy и FuncAnimation. У меня есть траектория, хранящаяся в GeoDataFrame со столбцами широты, долготы и даты и времени, которые я хочу визуализировать.
Траектория движется по земному шару, но я хочу увеличить масштаб и, следовательно, прицелиться. чтобы базовая карта обновлялась в зависимости от экстента. Я хочу использовать спутниковые снимки в качестве базовой карты и использую GoogleTiles из cartopy.io.img_tiles.
Однако изображение загружается только в начальном экстенте и не обновляется в дальнейшем. новые кадры. То же самое происходит при использовании «stock_img()». Интересно, что такие функции, как береговые линии и границы, загружаются. Чтобы визуализировать мою проблему, просмотрите прикрепленные изображения.
Изображение
Изображение
Моя функция:

Код: Выделить всё

# Function to animate with moving basemaps
def plot_animation_moving(gdf, zoom_level = 8, extent_margin = 4, tail_length = 50, frames_between_points = 10, interval=100):

tiler = GoogleTiles(style="satellite")
mercator = tiler.crs

# Set up the figure and axis
fig, ax = plt.subplots(figsize=(12, 12), subplot_kw={'projection': mercator})

# Initial extent
initial_extent = [gdf.iloc[0]['lon']-extent_margin, gdf.iloc[0]['lon']+extent_margin, gdf.iloc[0]['lat']-extent_margin, gdf.iloc[0]['lat']+extent_margin]
ax.set_extent(initial_extent)

# Add background and features
ax.add_image(tiler, zoom_level)
# ax.stock_img()
ax.add_feature(cfeature.BORDERS, linestyle=':')
ax.coastlines(resolution='10m')
ax.add_feature(cfeature.LAND)
ax.add_feature(cfeature.OCEAN)
ax.add_feature(cfeature.LAKES, alpha=0.5)
ax.add_feature(cfeature.RIVERS)

# Loop through each pair of points and create points in between
lats_list = []
lons_list = []
dates_list = []
for i in range(len(gdf)):

# create lat, lon and date sequences
...
lats_list.append(lats)
lons_list.append(lons)
dates_list.append(dates)

# Concatenate points
lats = np.concatenate(lats_list)
lons = np.concatenate(lons_list)
dates = np.concatenate(dates_list)

# Create a point with tail object on the Basemap
point, = ...
tail, = ...
date_text = ...

# Update the point position
def update(frame):

# Update point, tail and date
point.set_data([lons[frame]], [lats[frame]])
current_date = pd.to_datetime(dates[frame])
date_text.set_text(f'{current_date.strftime("%Y-%m-%d %H:00")}')

# Update the map extent to follow the line
ax.set_extent([lons[frame] - extent_margin, lons[frame] + extent_margin, lats[frame] - extent_margin, lats[frame] + extent_margin])

return point, tail, date_text

# Create the animation
ani = FuncAnimation(fig, update, frames=tqdm.tqdm(range(len(lats)), file=sys.stdout), blit=False, interval=interval),
ax.add_image(tiler, zoom_level) # --> doesn't help

ani.save("example.mp4")
В функции обновления я попытался снова добавить изображение, используя ax.add_image(tiler, Zoom_level), но, похоже, это не помогло.< /p>
Поэтому у меня вопрос: как мне правильно обновить изображение базовой карты, чтобы оно загружалось, когда точка перемещается по земному шару?
>

Подробнее здесь: https://stackoverflow.com/questions/788 ... canimation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка контура за пределами экстента с помощью картопии Ортографический
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Matplotlib FuncAnimation в окне tkinter
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • MatPlotLib FuncAnimation: есть ли способ показать GIF-файл во время его сохранения?
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Matplotlib Funcanimation Blitting for 3D Contourf?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Matplotlib FuncAnimation для 3D-контура?
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»