Comment généreriez-vous des ombres de construction à partir d'empreintes de construction?
J'ai des valeurs d'attribut pour les hauteurs des bâtiments.
J'aimerais donc de préférence que les tailles des ombres varient en fonction de cela.
La meilleure suggestion que j'ai trouvée en utilisant ArcGIS est les ombres portées : http://blogs.esri.com/Support/blogs/mappingcenter/archive/2008/10/21/3d-effect-for-a-building-footprints.aspx
arcgis-desktop
arcmap
polygon-creation
shadow
EightyTwenty
la source
la source
Réponses:
Une méthode rapide et sale consiste à dessiner les ombres des toits du bâtiment uniquement, à les rendre en gris foncé (de préférence semi-transparent s'il y a des couches de sol sous-jacentes) et à dessiner les polygones du bâtiment par-dessus. Les ombres du toit sont obtenues en traduisant les polygones du bâtiment par les distances déterminées par les hauteurs du bâtiment dans la direction établie par l'azimut et l'altitude de la source lumineuse (considérée comme infiniment éloignée). (Une formule pour le montant de la traduction apparaît ci-dessous.)
Cela a tendance à fonctionner correctement, sauf pour les basses altitudes ou les grands bâtiments (tels que les gratte-ciel): voyez comment les ombres des bâtiments isolés les plus hauts du côté droit sont séparées des bâtiments eux-mêmes.
Pour connecter correctement les ombres aux bâtiments, vous devez inclure les ombres des murs du bâtiment . Ce n'est pas difficile à faire. L'ombre du mur s'étendant entre un point situé en P et un autre point situé en Q sera le quadrilatère délimité par {P, Q, Q ', P'} où Q 'est l'ombre de Q et P' est l'ombre de P. Un bâtiment polygonal sera une collection de polygones connectés représentés par des séquences fermées de points (P (1), P (2), ..., P (n)). Pour chacun de ces polygones, formez l'union des ombres des bords (P (1), P (2)), (P (2), P (3)), ..., (P (n), P ( 1)). C'est simple à faire au moyen d'une boucle sur les bords.
Pour une lumière selon un azimut de un degré (est du nord) et une altitude de s degrés ( à partir de l'horizon), l'ombre d'un point P de coordonnées projetées (x, y) et de hauteur h (toutes exprimées dans les mêmes unités , comme les mètres) est situé à P '= (x - h sin (a) / tan (s), y - h cos (a) / tan (s)). Il suffit de calculer sin (a) / tan (s) et cos (a) / tan (s) une fois pour toute la couche, et pour chaque polygone, il suffit de multiplier ces facteurs par la hauteur une fois pour obtenir les décalages pour chaque ombre ponctuelle dans le polygone. (La véritable charge de travail informatique est supportée par le SIG, pas par votre code, car il forme les unions de tous ces quadrilatères.)
Voici un exemple de l'effet. (L'azimut et l'altitude ont légèrement changé par rapport à la première figure, mais les polygones et les hauteurs des bâtiments - qui varient - sont les mêmes qu'avant.)
appendice
En réponse à une demande, voici le code utilisé pour créer le deuxième exemple. Bien que presque personne n'utilise plus ce langage (Avenue), il pourrait bien servir de pseudocode pour créer une solution dans votre SIG préféré. (Contrairement à la plupart des pseudocodes, cependant, il a été testé en le faisant fonctionner. :-) C'est si simple qu'aucune explication ne devrait être nécessaire; sachez simplement que l'indexation commence par 0 et non par 1 et que les anneaux de polygones sont explicitement fermés (le dernier point de la liste coïncide avec le premier point).
la source
Je ne pense pas que ce dont vous parlez (cherchez) va être une capacité dans arcmap (version?)
Voir cette question pour probablement la limitation que vous ne voulez pas.
En utilisant l' extension 3D Analyst et l' arcscene, vous pouvez ajouter de la lumière mais il y a encore quelques limitations.
Il y a un certain mouvement esri sur la question avec cityengine .
Faites défiler jusqu'à la section de précision de l'ombre.
J'ai déjà été associé à lightscape (qui a été retiré et je suis sûr qu'il vit à l'intérieur de 3dsmax).
Maintenant, le chemin serait probablement à travers la gamme de produits de visualisation d'ingénierie ...
3ds Max
la source
L'extension 3D Analyst dispose de certains outils ( Skyline et Skyline Barrier ) pour produire des silhouettes et des volumes d'ombre, mais c'est dans le contexte d'être projeté contre un plan vertical comme dans un skyline, donc je ne sais pas comment ni s'il pourrait être facilement adapté dans ce cas (projetant contre un plan horizontal, le sol).
la source