Aller au contenu
jCode

Projet clientEnseignement supérieur2025 · 2026

Étape d'habillage de Khartis : une carte finalisée de la population mondiale en 2023, des cercles proportionnels en cinq classes du pêche au violet, avec son titre, sa légende et ses sources
Population mondiale, 2023

Projet clientEnseignement supérieur2025 · 2026

Khartis : l'outil de cartographie thématique de Sciences Po

L'Atelier de cartographie de Sciences Po a conçu une refonte complète de Khartis, son outil pour chercheurs et journalistes, et je l'ai développée. Des données allant jusqu'à des millions de lignes deviennent des cartes prêtes à imprimer, dans le navigateur, même hors ligne, sans qu'aucun serveur ne les reçoive.

Client
Sciences Po
Rôle
Développeur full-stack senior, responsable de tout le développement
Durée
18 mois, de mai 2025 à octobre 2026 (une mission, trois projets)
Cadre
Freelance, via RECSI Group, à distance
001
Le contexte

La version 3 de l'outil de l'Atelier

Depuis 2016, l'Atelier de cartographie propose Khartis aux chercheurs et aux journalistes qui veulent réaliser des cartes thématiques sans être cartographes. La version 3 est l'un des trois projets de ma mission pour Sciences Po, mené avec l'équipe de l'Atelier.

002
Ce qui la rend nouvelle

Un outil de cartographie complet qui fonctionne entièrement dans le navigateur

La conception de l'Atelier place chaque étape de la fabrication d'une carte sur la machine de l'utilisateur, de l'import et de l'analyse jusqu'à la projection et au rendu. Mon travail a été de la faire fonctionner dans une page web, avec de gros jeux de données.

  1. Des données analysées là où elles sont ouvertes

    DuckDB, compilé en WebAssembly, s'exécute dans un Web Worker avec ses extensions spatiale et Parquet. Chaque étape se fait dans le navigateur, et aucun serveur ne reçoit les données de l'utilisateur.

    • DuckDB-WASM dans un Web Worker
    • CSV, GeoJSON, Shapefile, GeoParquet
    • Aucune donnée envoyée à un serveur
  2. Un flux binaire de la requête jusqu'au GPU

    Les résultats des requêtes circulent en colonnes Apache Arrow et GeoArrow jusqu'à Deck.gl, qui les dessine en WebGL2. Les projections d3 donnent des cartes prêtes à imprimer, un mode MapLibre gère les tuiles et le globe, et les fonds de carte viennent d'un catalogue GeoParquet versionné.

    • Apache Arrow · GeoArrow
    • Deck.gl en WebGL2
    • MapLibre GL
    • Projections nationales
  3. La vision cartographique de l'Atelier, mise en œuvre

    L'Atelier a conçu l'outil et sa sémiologie, Antoine Rio son interface, et Thomas Ansart les bibliothèques open source de l'Atelier qui le sous-tendent, comme les suggestions de projection et les palettes. J'ai implémenté chaque type de carte et chaque discrétisation, des seuils naturels aux moyennes emboîtées.

    • Conception : Atelier de cartographie
    • Interface : Antoine Rio
    • Bibliothèques open source : Thomas Ansart
    • Développement : Jean-Baptiste Thery
  4. Installable, hors ligne et open source

    Khartis s'installe en application web progressive et fonctionne hors ligne une fois ses fonds de carte chargés. Les projets s'enregistrent dans le navigateur et s'exportent en SVG, en JPG jusqu'en 4K ou en GeoPackage. L'application, en français et en anglais, est open source sous licence MIT.

    • PWA, fonctionne hors ligne
    • Export SVG et JPG 4K
    • Licence MIT
    • Français et anglais
003
La démarche

Comment j'ai travaillé sur Khartis

Le besoin et mon rôle
L'Atelier a fourni la conception, le cahier des charges, la sémiologie et les algorithmes cartographiques. J'ai pris en charge le développement, traitement des données compris.
Contraintes
Des jeux de données jusqu'à des millions de lignes, traités sans serveur, dans une application qui fonctionne hors ligne.
Décisions techniques
J'ai implémenté l'architecture de l'Atelier : DuckDB-WASM et Apache Arrow pour les données, Deck.gl et MapLibre pour les cartes WebGL, dans une PWA SvelteKit et Svelte 5 sur les composants Carbon.
Vérifications et mises en production
J'ai mis en place des tests automatisés, une documentation et une chaîne CI/CD avec GitHub Actions.
004
Livrables

Ce que j'ai livré sur Khartis

  1. Traitement des données dans le navigateurJusqu'à des millions de lignes analysées sur la machine de l'utilisateur avec DuckDB-WASM
  2. Rendu des cartes en WebGLDes cartes thématiques dessinées avec Deck.gl et MapLibre, selon les algorithmes cartographiques de l'Atelier
  3. Application hors ligneUne application web progressive qui continue de fonctionner sans connexion
  4. Architecture et livraisonSvelteKit, Svelte 5 et TypeScript, avec tests, documentation et déploiement en CI/CD
005
Technologies et captures

Les technologies utilisées sur Khartis

Étape de visualisation de Khartis : la carte de la population mondiale à côté du panneau de réglages, couleur en classes, discrétisation K-means et palette du pêche au violet
Classes et palette
Suggestions de projection de Khartis : des projections rectangulaire, arrondie et discontinue du monde, en vignettes à côté de la carte
Suggestions de projection
Population mondiale en cercles proportionnels sur un globe en projection orthographique centré sur l'Asie, avec la légende
Projection orthographique
Étape d'habillage de Khartis : carte choroplèthe de la population de 20 pays européens en 2023, avec les régions Eurostat, des encarts pour les régions ultramarines, un titre et une légende
Europe, carte choroplèthe
007
Contact

Parlons de votre projet.

Présentez ce que vous souhaitez créer ou améliorer, votre budget et l'échéance envisagée.

  • 100 % à distance
  • Français ou anglais
  • France · Royaume-Uni · États-Unis