À propos

Ce projet est réalisé dans le cadre du cours Python pour la data-science de l’ENSAE par Etienne Kubiak et Brice Gay.

Il rassemble des notebooks et scripts destinés à illustrer des étapes courantes d’analyse de données : ingestion, nettoyage, exploration, visualisation et exemples de modélisation.

Les analyses sont à but pédagogique et exploratoire. Aucune garantie de correction ou d’exhaustivité n’est fournie.

Annexe : compression des pages HTML

Certaines visualisations HTML générées par leaflet sont très lourde. Afin de ne pas ralentir le site final, seul un rendu PNG statique est affiché et l’utilisateur peut cliquer dessus pour accéder à la version dynamique.

Le rendu est effectué à l’aide de la bibliothèque playwright par le code suivant :

Code
figure_list = ["idfm1", "idfm2", "dvf1", "dvf2", "dvf3", "main1", "ml1", "ml2", "ml3", "ml4", "niveau_vie"]

# on utilise playwright pour générer une capture d'écran
from playwright.async_api import async_playwright
from pathlib import Path

!playwright install chromium
# !playwright install-deps chromium

for fig in figure_list:
    html = Path(f"assets/maps/{fig}.html")
    png = Path(f"assets/maps/{fig}.png")

    
    async def screenshot_map():
        async with async_playwright() as p:
            browser = await p.chromium.launch()
            page = await browser.new_page(
                viewport={"width": 1200, "height": 800}
            )
            await page.goto(html.resolve().as_uri())
            await page.wait_for_timeout(3000)  # wait for tiles
            await page.screenshot(path=png)
            await browser.close()

    await screenshot_map()