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 :-).
Voici une réponse qui vient du monde de l'infographie plutôt que du SIG - par conséquent, c'est une description d'un algorithme plutôt que des instructions pour quel (s) outil (s) utiliser.
Définition: un rayon est une origine + une direction; c'est la ligne qui commence à l'origine et continue à l'infini dans cette direction.
Vous avez besoin des ingrédients de base suivants:
Possibilité de tester pour voir si un rayon donné touche le sol.
Possibilité de tester pour voir si un rayon donné frappe un bâtiment.
Toutes vos données (les bâtiments, les informations qui représentent le sol) dans un espace de coordonnées cartésiennes 3D.
Les formules exactes à mettre en œuvre pour les tests de rayons dépendent de la façon dont vous représentez «le sol» (une sphère parfaite? Un terrain?) Et «un bâtiment» (un rectangle extrudé? Un modèle 3D complet?). Pour une géométrie simple, ils sont faciles à trouver et à mettre en œuvre. (par exemple, recherchez "intersection de rayons").
Dans tous les cas, à partir de là, la réponse quant au% de visibilité du ciel à partir d'un point est triviale: lancez beaucoup de rayons avec des directions aléatoires à partir de votre point de requête. La proportion de ciel visible depuis votre point de test est égale au nombre de rayons qui n'ont pas touché un bâtiment ou le sol.
La réponse n'est pas exacte, mais vous pouvez la calculer au niveau de précision souhaité en ajoutant simplement plus de rayons.
Comme décrit ci-dessus, ce n'est pas nécessairement très rapide; mais il existe un grand nombre d'optimisations bien documentées que vous pouvez appliquer.
(Je m'attends à ce que, pour calculer la visibilité du ciel à travers un certain nombre de points et le même ensemble de données sur les bâtiments, cette approche fasse sauter les approches basées sur la reprojection hors de l'eau après l'ajout d'un indice spatial simple.)
la source
Le facteur de vision du ciel (SVF) est défini par la partie du ciel visible (Ω) au-dessus d'un certain point d'observation, vue à partir d'une représentation bidimensionnelle (voir figure a). L'algorithme calcule l'angle d'élévation verticale de l'horizon γi dans n directions (huit sont présentées ici) au rayon spécifié R (b).
Le facteur de vue du ciel a été proposé pour surmonter les inconvénients des techniques de visualisation existantes, par exemple les problèmes d'éclairage directionnel dans l'ombrage analytique des collines.
La mesure la plus pratique pour exprimer la partie du ciel visible est l'angle solide Ω. Il s'agit d'une mesure de la taille d'un objet qui apparaît à un observateur. L'angle solide d'un objet est proportionnel à la zone A de la projection de l'objet sur la sphère d'unité centrée au point d'observation.
La SVF se situe entre 0 et 1. Des valeurs proches de 1 signifient que presque tout l'hémisphère est visible, ce qui est le cas dans les entités exposées (plans et pics), tandis que des valeurs proches de 0 sont présentes dans les puits profonds et les parties inférieures des vallées profondes de où presque aucun ciel n'est visible. SVF est une grandeur physique (si nous ne manipulons pas les données d'élévation par exagération verticale).
Comme l'a souligné @mic_cord, un article a été publié sur la visualisation des données avec SVF dans Remote Sens. 2011, 3 (2), 398-415; doi: 10,3390 / rs3020398.
Un outil gratuit pour calculer SVF (et plus) est disponible sur http://iaps.zrc-sazu.si/en/rvt#v
la source
Ecotect (désormais un outil AutoDesk ) vous permet de le faire. Plus généralement, cela est fréquemment examiné dans le domaine de l'éclairage naturel et un outil de ce domaine pourrait être plus facile à utiliser que le SIG. (Bien que j'aie entendu parler d'un plugin SIG qui puisse faire cela et calculer l'exposition solaire, mais je n'ai jamais réussi à le trouver).
la source
Dans GRASS GIS version 7 (en fait pas stable), il y a la commande r.skyview (basée sur la commande r.horizon , également disponible dans GRASS stable v.6).
Il lit une image raster représentant un modèle de terrain, avec une valeur de pixel correspondant aux hauteurs des caractéristiques du terrain (par exemple, les hauteurs des bâtiments) et calcule, pour chaque pixel, le "facteur de vision du ciel".
Vous devez d'abord convertir vos données (format inconnu) en un jeu de données raster.
Voir:
http://grass.osgeo.org/grass70/manuals/addons/r.skyview.html
http://www.mdpi.com/2072-4292/3/2/398
la source