Méthodologie

Comment ça marche

Pas de devinette, pas de météo générique. On calcule exactement où sera le soleil à chaque terrasse, à chaque heure, pour chaque saison.

312 000bâtiments modélisés
4 300+terrasses confirmées
192créneaux / terrasse
2villes actives

La promesse

Trouver une terrasse au soleil ne devrait pas relever du hasard. Terrasse au Soleil calcule, pour chaque établissement, la position exacte du soleil à chaque créneau de 30 minutes — en tenant compte des bâtiments environnants qui projettent des ombres réelles.

Le résultat : un statut fiable par créneau horaire, par saison, pour chaque terrasse de Paris et Lyon. Et dès que vous ouvrez l'app, la météo du moment est intégrée pour savoir si la sortie en vaut vraiment la peine.

Les données sources

📍

OpenStreetMap — terrasses

Position géographique de chaque lieu (lat/lng) et tagoutdoor_seating=yes confirmant la présence d'une terrasse. Base communautaire mise à jour en continu.

🏙️

IGN + OSM — bâtiments

Géométrie (emprise au sol) et hauteur des bâtiments environnants. Les données IGN (BD TOPO) complètent OSM pour les hauteurs manquantes. 312 000 bâtiments analysés sur Paris et Lyon.

🌤️

Open-Meteo — météo temps réel

API météo gratuite, sans clé, interrogée toutes les 30 minutes. Fournit la couverture nuageuse, les précipitations et le code météo global pour chaque ville.

Le calcul soleil

Pour chaque terrasse, on précalcule 192 statuts couvrant l'année entière : 4 saisons de référence × 48 créneaux de 30 min (de 00 h 00 à 23 h 30).

1
Position solaire — La bibliothèque SunCalc calcule l'azimut et l'élévation du soleil pour chaque créneau, à la latitude/longitude exacte de la terrasse.
2
Raycasting — On trace le rayon solaire depuis la terrasse dans la direction du soleil. Si un bâtiment environnant intercepte ce rayon (hauteur suffisante × distance), la terrasse est en ombre.
3
Statuts — Trois niveaux : 0 (ombre), 1 (soleil partiel — bâtiment en bordure de rayon), 2 (plein soleil — aucun obstacle).

L'ajustement météo

Le modèle solaire est précalculé et statique. La météo, elle, s'applique en temps réel par-dessus ce modèle selon des règles simples :

🌧️Pluie ou précipitations → statut forcé à 0 (ombre)
🌫️Brouillard (code météo ≥ 45) → statut forcé à 0
☁️Couverture nuageuse > 70 % → statut forcé à 0
Couverture nuageuse 30–70 % → statut plafonné à 1 (partiel)
☀️Ciel dégagé → statut du modèle maintenu

Les limites du modèle

  • Hauteurs de bâtiments parfois manquantes — quand la donnée OSM ou IGN est absente, on applique une hauteur par défaut estimée selon le type de bâtiment. Le statut peut donc être légèrement optimiste dans certains secteurs dense.
  • Végétation non modélisée — les arbres et haies qui projettent des ombres réelles ne sont pas pris en compte (OpenStreetMap ne contient pas de données de hauteur de canopée fiables à cette échelle).
  • Stores et parasols exclus — un établissement peut avoir des stores qui couvrent la terrasse par beau temps. Cette information n'est pas disponible dans OSM.
  • Modèle saisonnier, pas journalier — le calcul utilise 4 dates de référence (solstices et équinoxes), pas le jour exact. L'écart est négligeable pour la plupart des usages, mais peut atteindre quelques minutes en bordure de saison.

Les données terrasses

Les terrasses sont extraites d'OpenStreetMap via le tagoutdoor_seating=yes. Un score de confiance est calculé pour chaque lieu, basé sur la complétude des données OSM (présence d'adresse, horaires, type d'établissement…) et sur une validation croisée avec d'autres sources.

~16 770lieux analysés à Paris et Lyon
~4 300terrasses confirmées (score élevé)
mensuellefréquence de mise à jour des données

Contribuer

OpenStreetMap est une base communautaire : si une terrasse manque ou si les données d'un lieu sont incorrectes, vous pouvez les corriger directement sur openstreetmap.org. Les mises à jour sont intégrées lors de la prochaine synchronisation mensuelle.

Vous pouvez également signaler une erreur directement depuis la fiche d'un lieu — un bouton dédié est disponible sur chaque page établissement.