Calcul d’ombrage avec QGIS retourne la valeur NaN : calculateur et diagnostic expert
Utilisez ce calculateur pour estimer la longueur d’ombre théorique, mesurer le risque de NaN dans un workflow QGIS et identifier rapidement les causes classiques : angle solaire invalide, hauteur nulle, raster avec NoData, résolution DEM trop grossière ou paramètres incohérents.
Résultats
Entrez vos paramètres puis cliquez sur Calculer pour obtenir la longueur d’ombre estimée, un score de risque NaN et une interprétation opérationnelle pour QGIS.
Pourquoi le calcul d’ombrage avec QGIS retourne la valeur NaN
Lorsque vous exécutez un calcul d’ombrage dans QGIS et que le résultat retourné est NaN, cela signifie en pratique que le moteur de calcul n’a pas pu produire une valeur numérique valide pour un ou plusieurs pixels, champs ou étapes intermédiaires. NaN signifie Not a Number. Dans un flux géospatial, cela apparaît souvent après une division impossible, une tangente mal évaluée, une donnée manquante, une conversion de type mal gérée, un angle solaire incohérent ou un raster contenant des cellules non définies. Le problème n’est donc pas seulement mathématique : il est aussi cartographique, topologique et parfois lié à la qualité du modèle numérique de terrain.
Dans le contexte de l’ombrage sous QGIS, les cas les plus fréquents sont simples à reconnaître. Un angle d’élévation solaire proche de 0 degré peut provoquer des longueurs d’ombre gigantesques et des calculs instables. Une hauteur d’objet vide ou égale à 0 peut rendre le résultat non pertinent. Un raster DEM ou DSM partiellement vide peut injecter des pixels NoData dans toute la chaîne analytique. Une reprojection mal appliquée peut introduire des unités incohérentes, par exemple des hauteurs en mètres et des distances calculées en degrés géographiques. Enfin, un outil ou un plugin peut retourner NaN si l’expression du calculateur raster contient une opération du type division par 0, racine carrée d’une valeur négative ou trigonométrie sur un paramètre absent.
Comprendre le calcul de base de l’ombre
Le calcul théorique d’une ombre simple se résume souvent à la relation suivante : longueur d’ombre = hauteur / tan(angle d’élévation solaire). Cette formule est robuste, mais uniquement si l’angle est strictement supérieur à 0 degré et strictement inférieur à 90 degrés. En dessous, la tangente tend vers 0 et la longueur explose. À 90 degrés, l’ombre devient presque nulle. Dans la vraie vie, QGIS ne travaille pas seulement avec cette formule. Il peut intégrer :
- la pente locale du terrain,
- la résolution du DEM ou du DSM,
- l’orientation du soleil,
- les pixels NoData,
- la qualité des contours de bâtiments ou d’obstacles,
- les limites d’emprise de la tuile raster analysée.
Plus votre modèle de surface est détaillé, plus le calcul d’ombre est réaliste. À l’inverse, un modèle grossier peut lisser des ruptures de pente et produire des ombres simplifiées, voire des erreurs lorsque des objets fins comme des murs, cheminées ou arbres ne sont pas correctement représentés.
Les causes les plus fréquentes de NaN dans QGIS
- Pixels NoData dans le raster source : si le calculateur raster croise un NoData, il peut propager cette absence d’information jusqu’au résultat final.
- Angle solaire invalide : une élévation de 0, une valeur négative ou supérieure à 90 degrés doit être corrigée.
- Unités incohérentes : calcul en coordonnées géographiques alors que la formule attend des mètres.
- Expression erronée : dans le calculateur raster, une parenthèse manquante ou une division par une valeur nulle crée immédiatement du NaN.
- Reprojection à la volée mal interprétée : l’affichage semble correct, mais les traitements utilisent des rasters dans des systèmes différents.
- Raster d’entrée hors emprise : la zone calculée sort de la surface couverte et le résultat revient vide ou indéfini.
- Type de champ non numérique : si une hauteur est stockée comme texte dans une couche vectorielle, le calcul d’ombrage échoue.
- Résolution trop grossière : certains objets disparaissent du modèle et le calcul devient instable ou sans signification physique.
Procédure de diagnostic pas à pas
Voici une méthode opérationnelle utilisée par de nombreux analystes SIG lorsqu’un calcul d’ombrage retourne NaN :
- Ouvrir les propriétés du raster et vérifier la présence de NoData.
- Confirmer que le projet et les couches sont dans un système projeté métrique adapté, comme UTM ou un Lambert approprié.
- Contrôler la résolution du raster et s’assurer qu’elle correspond à l’échelle du phénomène étudié.
- Vérifier les attributs de hauteur : pas de champ vide, pas de chaîne de caractères, pas de valeur négative absurde.
- Tester la formule sur un seul objet simple afin d’isoler l’erreur.
- Exécuter un calcul intermédiaire, par exemple uniquement la tangente de l’angle, avant de lancer tout le modèle.
- Créer une couche de masque pour supprimer ou interpoler les zones NoData.
- Relancer l’analyse sur une emprise réduite pour déterminer si le NaN est localisé ou global.
Tableau comparatif des résolutions raster courantes pour l’analyse d’ombrage
Les jeux de données altimétriques officiels ne se valent pas pour le calcul d’ombre. Le tableau suivant rassemble des résolutions réelles couramment utilisées dans les projets géospatiaux.
| Jeu de données / standard | Résolution typique | Usage recommandé | Impact probable sur l’ombrage |
|---|---|---|---|
| USGS 3DEP lidar haute résolution | 1 m | Bâtiments, micro-relief, étude urbaine fine | Très bon niveau de détail, faible risque de lisser les obstacles |
| USGS 3DEP 1/9 arc-second | Environ 3 m | Analyse locale à moyenne échelle | Bon compromis, peut manquer les petits objets verticaux |
| USGS 1/3 arc-second | Environ 10 m | Relief général, bassins, versants | Ombres simplifiées, bâtiments mal représentés |
| SRTM global | 30 m | Études régionales et macroscopiques | Insuffisant pour un ombrage urbain précis |
| Copernicus DEM | 30 m ou 90 m selon produit | Analyse continentale ou nationale | Très utile pour le relief large, trop grossier pour les masques fins |
Dans un quartier dense, passer d’un DEM de 30 m à un DSM lidar de 1 m change radicalement la qualité du calcul. À 30 m, un immeuble étroit peut être fondu dans la topographie. À 1 m, ses arêtes deviennent exploitables et les masques d’ombre sont bien plus proches de la réalité.
Comment interpréter les statistiques de NoData
Le pourcentage de NoData est l’un des meilleurs prédicteurs d’un retour NaN. Si la part de pixels manquants est marginale, l’outil peut encore fournir un résultat utilisable après interpolation ou masquage. Si cette part est forte, l’ombrage calculé n’est plus seulement incomplet : il peut devenir mathématiquement non exploitable. Voici une grille pratique :
| Part de NoData | Niveau de risque | Effet habituel dans QGIS | Action recommandée |
|---|---|---|---|
| 0 % à 1 % | Faible | Impact limité si les zones vides sont hors emprise utile | Contrôle visuel et test rapide |
| 1 % à 5 % | Modéré | Petites zones de rupture ou trous localisés | Remplissage ciblé ou masque analytique |
| 5 % à 15 % | Élevé | Propagation fréquente de cellules non calculées | Interpolation, mosaïque ou nouvelle source raster |
| Plus de 15 % | Très élevé | Résultats NaN, ombres incomplètes, sorties peu fiables | Remplacer la donnée source avant de poursuivre |
Erreurs de projection et confusion entre degrés et mètres
Une erreur extrêmement fréquente survient lorsque l’utilisateur lance son calcul dans une couche en latitude/longitude. Visuellement, tout semble aligné parce que QGIS reprojette à la volée. Pourtant, de nombreux algorithmes attendent des distances en mètres. Si vous injectez une hauteur de bâtiment en mètres dans une chaîne de traitement qui mesure la taille des pixels en degrés, vous introduisez une incohérence fondamentale. Cela ne provoque pas toujours un NaN immédiat, mais c’est une source majeure de résultats absurdes.
Pour éviter cela, travaillez de préférence dans une projection métrique locale adaptée à votre zone d’étude. Pour l’Europe et la France, un Lambert ou une UTM appropriée est souvent préférable au WGS84 géographique pour les mesures de distance ou d’ombre.
Bonnes pratiques pour éviter NaN dans les projets d’ombrage
- Utiliser un DSM ou un DEM cohérent avec l’échelle du projet.
- Nettoyer les NoData avant de lancer une chaîne lourde de traitement.
- Valider les hauteurs d’objets avec des règles de domaine simples.
- Tester les formules du calculateur raster étape par étape.
- Limiter l’emprise de traitement pour les premiers essais.
- Documenter l’heure, la date et l’origine des angles solaires.
- Comparer le résultat avec une ombre théorique simple sur un bâtiment test.
- Exporter un raster intermédiaire pour vérifier à quel stade le NaN apparaît.
Sources fiables pour valider vos données et paramètres
Si vous cherchez des références solides pour la qualité du relief, la géométrie solaire et les pratiques de calcul, consultez des sources institutionnelles. Voici trois liens d’autorité particulièrement utiles :
- USGS 3D Elevation Program (3DEP) pour comprendre les produits altimétriques et leurs résolutions officielles.
- NOAA Solar Calculator pour vérifier les angles solaires selon date, heure et localisation.
- Penn State GIS course resources pour les fondamentaux SIG, raster et géotraitement.
Exemple concret de correction
Imaginons un bâtiment de 12 m, une élévation solaire de 35 degrés et un DSM de 1 m. La longueur d’ombre théorique vaut environ 17,1 m. Si votre QGIS retourne NaN, alors que le calcul manuel donne une valeur nette, le souci ne se situe probablement pas dans la géométrie solaire de base. Il faut alors suspecter le raster, la présence de NoData, la projection ou l’expression du modèle. En revanche, si l’élévation solaire saisie est 0 degré ou si la hauteur est vide, le NaN a une origine mathématique immédiate.
Comment utiliser le calculateur ci-dessus
Le calculateur de cette page a été conçu comme un outil de pré-diagnostic. Il ne remplace pas tous les algorithmes de QGIS, mais il vous aide à répondre à trois questions très utiles :
- La géométrie d’ombre théorique est-elle cohérente ?
- Mes paramètres d’entrée créent-ils un risque important de NaN ?
- Le problème semble-t-il venir plutôt de la qualité raster, de l’angle solaire ou des unités ?
En pratique, si le score de risque est élevé alors que la longueur d’ombre semble plausible, la priorité doit aller au contrôle du DEM, des NoData et de la projection. Si, à l’inverse, le score est faible mais le résultat QGIS reste NaN, il faut examiner les expressions, les plugins, les champs d’attributs et les étapes de conversion.
Conclusion experte
Quand un calcul d’ombrage avec QGIS retourne NaN, la bonne démarche consiste à traiter le problème comme un diagnostic de qualité de chaîne analytique, et non comme un simple bug isolé. Dans la majorité des cas, la cause est trouvée parmi les NoData, les unités, l’angle solaire, la projection ou une formule raster incomplète. Un contrôle méthodique des entrées, combiné à un calcul théorique de vérification, permet de résoudre rapidement l’erreur et d’améliorer la robustesse globale du projet.