увеличение масштаба карты приводит к ухудшению качества изображения при использовании imageOverlay folium с python - PullRequest
0 голосов
/ 27 мая 2020
import folium
import matplotlib.pyplot as plt
import numpy as np
import mplleaflet
url = 'https://server.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer/tile/{z}/{y}/{x}'

m = folium.Map(location=(38, -94), zoom_start=4, tiles=None)
folium.TileLayer(url, attr='Tiles © Esri — Copyright: ©2012 DeLorme', name='DeLorme').add_to(m)


def add_gif(my_map, name, gif_file, bounds):
    feature_group = folium.FeatureGroup(name=name)
    image_overlay = folium.raster_layers.ImageOverlay(gif_file, bounds=bounds, opacity=0.6)
    feature_group.add_child(image_overlay)

    feature_group.add_to(m)

add_gif(m, 'Low Atmosphere Wind', 'low_atmo.gif', [[23, -127], [50, -63]])
# add_gif(m, 'High Atmosphere Wind', 'high_atmo.gif', [[23, -127], [50, -63]])
# add_gif(m, 'Surface Rain', 'rain.gif', [[18, -129], [50, -63]])
# add_gif(m, 'Temperature (2m)', 'temp.gif', [[23, -129], [53, -62]])
folium.LayerControl().add_to(m)


m.save('map_complete2.html')

Это выглядит так: я вставляю gif в карту Main page

Однако, когда я увеличиваю карту, стрелка будет искажена. Могу ли я сохранить форму стрелки при увеличении? Я создаю gif на основе нескольких png. Bad image quality

Если я просто помещу на карту одно изображение вместо gif, оно отобразится нормально. enter image description here

Что я пытаюсь: я пытаюсь улучшить квалификацию gif с помощью другого метода, такого как imagemagick, и использую следующий код

    gif_name = name+".gif"
    frames = []
    filename = 'noaa_images/%s/*.png'  % name
    imgs =  glob.glob(filename) # Get all the pngs 
    for i in imgs:
        new_frame = Image.open(i)
        frames.append(new_frame)
    # Save into a GIF file that loops forever
    frames[0].save(gif_name, format='GIF',transparency=0,
                append_images=frames[1:],
                save_all=True,
                duration=400, loop=0)

Затем я решаю однако реализовать на карте videoLayer, что вызовет другую проблему. Пока я смотрю на inte rnet, не так много людей задают вопросы о videoLayer в folium. Возможно, это не обычный способ реализации этой функции. Спасибо за любую помощь !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...