Nous avons généralement des données concernant l'emplacement du sol , nous devons donc les utiliser. Le sol détermine une figure solide en 3D. Vous projetez cette figure radialement sur la sphère unitaire centrée sur le spectateur: cela cartographie le sol sur une région de la sphère. Calculez l'aire de la région restante : c'est l'angle solide sous-tendu par le ciel (en stéradians ). Divisez-le par la surface totale de la sphère (égale à 4 pi) et multipliez par 100 pour obtenir le pourcentage du ciel.
Si vous préférez une explication plus vivante, placez le spectateur au centre d'une petite bulle sphérique et demandez-lui de peindre sur le ciel. Divisez la quantité de peinture qu'elle utilise par la quantité nécessaire pour peindre la bulle entière et multipliez par 100.
En réalité, il y a des détails techniques pas si simples.
La projection sur la sphère est assez simple lorsque le sol est donné comme un réseau triangulé (un TIN), car il suffit d'écrire du code pour projeter un triangle sur une sphère. Lorsque le sol est donné sous la forme d'un modèle d'élévation quadrillé (DEM), vous pouvez concevoir chaque cellule de la grille comme un quadrilatère 3D. Vous pouvez diviser cela en deux triangles le long d'une diagonale et mapper chaque triangle sur la sphère. Dans les deux cas, vous vous retrouvez avec une collection de triangles projetés sur la sphère. En projetant la sphère sur une carte (par exemple, avec une projection stéréographique), l'agrégation de ces triangles dans une région polygonale peut être réduite à un problème standard de géométrie de calcul plane (en utilisant une méthode de balayage plan, par exemple). Le reste est facile (pour un SIG).
Cette image montre une petite ville de gratte-ciel simulés dans une projection gnomonique centrée sur un spectateur du centre-ville regardant droit vers le haut. Le SIG peut «fusionner» (former l'union de) les polygones représentant les côtés et les toits de ces bâtiments, puis calculer la superficie de l'espace (blanc) restant. Une projection gnomonique a été choisie car les lignes architecturales droites sont rendues sous forme de segments de ligne plutôt que de courbes.
Un SIG peut être mis en service pour effectuer ce calcul lorsque vous n'avez qu'un terrain et des bâtiments. Les bâtiments sont très probablement disponibles sous forme de collections de rectangles. Un sommet d'un rectangle a des coordonnées euclidiennes (x, y, z) par rapport à une visionneuse. Convertissez-les en coordonnées sphériques: la latitude et la longitude. Créez un polygone pour le rectangle converti. Effectuez cette opération pour tous les rectangles pour toutes les parties de tous les bâtiments, ce qui donne une "couche d'entités surfaciques". Ensuite, dans le SIG, (1) calculer l'union théorique des caractéristiques, (2) calculer la surface résultante, (3) la soustraire de la moitié de la surface de la terre (l'autre moitié est pour le sol), et (4) diviser par toute la surface de la terre (multiplier par 100 pour obtenir un pourcentage). L'effort de calcul est proportionnel à N * log (N) où N est le nombre de sommets. La précision dépend de la façon dont le SIG représente les rectangles (vous devrez peut-être diviser les côtés du rectangle en séquences de sommets plus rapprochés). En fonction de vos exigences de précision, vous pouvez envisager des approches basées sur Monte-Carlo (par exemple, le lancer de rayons préconisé dans une autre réponse) une fois que vous avez plus de plusieurs centaines de milliers de sommets - c'est-à-dire, une fois que le spectateur est complètement entouré par (et peut voir des parties de) des dizaines de milliers de bâtiments :-).