Il s'agit de la commande r.viewshedgrass qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
r.vue - Calcule le champ de vision d'un point sur une carte raster d'altitude.
Format par défaut : NULL (invisible), angle vertical par rapport au point de vue (visible).
MOTS-CLÉS
raster, champ de vision, ligne de mire
SYNOPSIS
r.vue
r.vue --Aidez-moi
r.vue [-crbe] contribution=prénom sortie=prénom les coordonnées=Nord-est
[observer_élévation=Plus-value] [élévation_cible=Plus-value] [distance_max=Plus-value]
[coeff_réfraction=flotter] [Mémoire=Plus-value] [annuaire=un magnifique] [--écraser] [--vous aider]
[--verbeux] [--calme] [--ui]
Drapeaux:
-c
Considérez la courbure de la terre (ellipsoïde actuel)
-r
Considérez l'effet de la réfraction atmosphérique
-b
Le format de sortie est invisible = 0, visible = 1
-e
Le format de sortie est invisible = NULL, sinon elev actuel - viewpoint_elev
--écraser
Autoriser les fichiers de sortie à écraser les fichiers existants
--Aidez-moi
Imprimer le récapitulatif d'utilisation
--verbeux
Sortie du module verbeux
--silencieux
Sortie module silencieuse
--interface utilisateur
Forcer le lancement de la boîte de dialogue GUI
Paramètres:
contribution=prénom [obligatoire]
Nom de la carte raster d'altitude en entrée
sortie=prénom [obligatoire]
Nom de la carte raster en sortie
les coordonnées=Nord-est [obligatoire]
Coordonnées de la position de visualisation
observer_élévation=Plus-value
Affichage de l'altitude au-dessus du sol
Valeur par défaut: 1.75
élévation_cible=Plus-value
Décalage pour l'élévation de la cible au-dessus du sol
Valeur par défaut: 0.0
distance_max=Plus-value
Rayon de visibilité maximal. Par défaut l'infini (-1)
Valeur par défaut: -1
coeff_réfraction=flotter
Coefficient de réfraction
Options: 0.0-1.0
Valeur par défaut: 0.14286
Mémoire=Plus-value
Quantité de mémoire à utiliser en Mo
Valeur par défaut: 500
annuaire=un magnifique
Répertoire contenant les fichiers temporaires (ils peuvent être volumineux)
DESCRIPTION
r.vue est un module qui calcule le champ de vision d'un point sur un terrain raster. C'est-à-dire,
étant donné un raster d'altitude et l'emplacement d'un observateur, il génère une sortie raster
carte montrant quelles cellules sont visibles à partir de l'emplacement donné. L'algorithme sous-jacent
r.vue minimise à la fois les opérations du processeur et le transfert de données entre la mémoire principale
et disque ; par conséquent r.vue s'exécute rapidement sur de très grands rasters.
NOTES
Courir r.vue, l'utilisateur doit spécifier un nom de carte d'altitude en entrée, une carte raster en sortie
nom et l'emplacement du point de vue.
Pour l'instant le point de vue (les coordonnées paramètre) est supposé être situé à l'intérieur
le terrain. L'emplacement du point de vue est indiqué en coordonnées cartographiques.
La carte raster en sortie peut avoir l'un des trois formats possibles, en fonction des indicateurs
défini.
Par défaut, si aucun indicateur n'est défini, la sortie est en mode angle et chaque point de la sortie
la carte est marquée comme NULL si le point n'est pas visible ou le point respectif dans l'élévation
la carte est NULLE. Sinon, une valeur dans [0, 180] représentant l'angle vertical par rapport à
au point de vue, en degrés, si le point est visible. Une valeur de 0 est directement en dessous du
position de visualisation spécifiée, 90 est due à l'horizontale. L'angle avec la cellule contenant le
la position de visualisation n'est pas définie et est définie sur 180.
Si la -b flag est défini, la sortie est en mode booléen et chaque point de la carte de sortie est
marqué comme :
· 0 si le point est no-data/null ou non visible
· 1 si le point est visible.
Si la -e flag est défini, la sortie est en mode élévation et chaque point de la carte de sortie
est marqué comme :
· no-data (null), si le point respectif dans la carte d'altitude est no-data (null)
· -1, si le point n'est pas visible
· la différence d'élévation entre le point et le point de vue, si le point est
visible
Si vous souhaitez identifier la zone de la carte qui se trouve dans le rayon de recherche mais pas
visible, une combinaison de r.tampon et r.mapcalc peut être utilisé pour créer un négatif de la
carte du champ de vision.
Par défaut, les élévations ne sont pas ajustées pour la courbure de la terre. L'utilisateur peut
allumez-le avec le drapeau -c.
Par défaut, l'observateur est supposé avoir une hauteur de 1.75 unité cartographique au-dessus du terrain. Les
l'utilisateur peut changer cela en utilisant l'option observer_élévation. La valeur saisie est dans le même
unités comme l'élévation.
Par défaut, la cible est supposée avoir une hauteur de 0 unité cartographique au-dessus du terrain. Les
l'utilisateur peut changer cela en utilisant l'option élévation_cible pour déterminer si les objets d'un
la hauteur serait visible. La valeur saisie est dans les mêmes unités que l'altitude.
Par défaut, il n'y a aucune restriction sur la distance maximale à laquelle l'observateur peut voir.
L'utilisateur peut définir une distance maximale de visibilité en utilisant l'option distance_max. La valeur
saisie est dans les mêmes unités que la taille de cellule du raster.
Utilisation de la mémoire principale : par défaut r.vue suppose qu'il dispose de 500 Mo de mémoire principale et configure
ses structures de données internes afin qu'il ne nécessite pas plus que cette quantité de RAM.
L'utilisateur peut définir la quantité de mémoire utilisée par le programme en définissant le utilisation de la mémoire à
le nombre de Mo de mémoire qu'ils souhaitent utiliser.
Mémoire mode
L'algorithme peut fonctionner selon deux modes : en mémoire interne, ce qui signifie qu'il conserve tous les
structures de données nécessaires en mémoire pendant le calcul. Et dans la mémoire externe, qui
signifie que les structures de données sont externes, c'est-à-dire sur disque. r.vue décide quel mode
à exécuter en utilisant la quantité de mémoire principale spécifiée par l'utilisateur. Le mode interne est
(beaucoup) plus rapide que le mode externe.
Idéalement, l'utilisateur doit spécifier sur la ligne de commande la quantité de mémoire physique qui est
gratuit pour le programme à utiliser. Une sous-estimation de la mémoire peut entraîner r.vue Running
en mode externe au lieu d'interne, ce qui est plus lent. Surestimer le montant de la gratuité
la mémoire peut entraîner r.vue fonctionnant en mode interne et utilisant la mémoire virtuelle, ce qui
est plus lent que le mode externe.
Le algorithme
r.vue utilise le modèle suivant pour déterminer la visibilité : La hauteur d'une cellule est
supposée variable, et la hauteur réelle d'un point tombant dans une cellule, mais pas
identique au centre de la cellule, est interpolé. Ainsi, le terrain est considéré comme un
surface. Deux points sont visibles l'un à l'autre si leur ligne de visée ne se coupe pas
le terrain. La hauteur d'un point arbitraire x dans le terrain est interpolée à partir du 4
voisins environnants. Cela signifie que ce modèle fait une interpolation bilinéaire de
hauteurs. Ce modèle convient à la fois aux rasters basse et haute résolution ainsi qu'aux
terrain avec des pentes plates et raides.
Le cœur de l'algorithme est de déterminer, pour chaque cellule, la ligne de visée et son
intersections avec les cellules du terrain. Pour une grille (carrée) de n cellules, il peut y avoir
Sur 1 / 2) cellules qui coupent la LOS. Si nous testons chacune de ces cellules pour chaque point
dans la grille, cela s'ajoute à O(n3/2) essais. Nous pouvons faire tous ces tests plus rapidement si nous réutilisons
informations d'un point à l'autre (deux points de grille proches l'un de l'autre
être recoupé par un grand nombre des mêmes points) et organiser le calcul différemment.
Plus précisément, l'algorithme utilise une technique appelée en ligne balayage: Il considère un
demi-ligne centrée au point de vue et la fait pivoter radialement autour du point de vue, 360
degrés. Pendant le balayage, il garde une trace de toutes les cellules qui coupent la ligne de balayage
à ce moment-là; Ceux-ci sont appelés les infection cellules. Une cellule a 3 événements associés : lorsqu'elle
est d'abord rencontré par la ligne de balayage et inséré dans la structure active ; quand il est rencontré pour la dernière fois
par la ligne de balayage et supprimé de la structure active ; et quand la ligne de balayage passe
sur son point central, moment auquel sa visibilité est déterminée. Pour déterminer le
visibilité d'une cellule toutes les cellules qui coupent la ligne de visée doivent être actives, de sorte qu'elles
sont dans la structure active. L'algorithme examine toutes les cellules actives qui se trouvent entre
le point et le point de vue, et trouve le gradient maximum parmi ceux-ci. Si la cellule est
gradient est plus élevé, il est marqué comme visible, alors que s'il est inférieur, il est marqué comme
invisible.
Pour un raster (carré) de n point au total, l'algorithme de champ de vision standard utilise Sur
carré(n))= O(n3/2) temps, tandis que l'algorithme de ligne de balayage utilise Sur lg n) temps. Ce
l'algorithme est efficace en termes d'opérations CPU et peut également être rendu efficace en termes
des opérations d'E/S. Pour tous les détails, voir les RÉFÉRENCES ci-dessous.
La ligne de balayage. Les cellules actives.
EXEMPLES
À l'aide du jeu de données de Caroline du Nord : calculez le champ de vision à partir d'un point d'observation (coordonnées :
638728.087167, 220609.261501) qui est à 5 mètres au-dessus du sol :
g.region raster=elev_lid792_1m -p
r.viewshed entrée = elev_lid792_1m sortie = elev_lid792_1m_viewshed
coordonnées=638728.087167,220609.261501 observer_elevation=5.0
Bassin de vision Utilisation du jeu de données Spearfish : calcul du point de vue depuis le sommet d'une montagne :
g.region raster=élévation.10m
r.viewshed input=élévation.10m sortie=viewshed
coordonnées=598869,4916642 mem=800
Références
· Calcul de la visibilité sur les terrains en mémoire externe. Herman Haverkort, Laura Toma
et Yi Zhuang. Dans ACM Journal on Expérimental Algorithmique (JEA) 13 (2009).
· Calcul de la visibilité sur les terrains en mémoire externe. Herman Haverkort, Laura Toma
et Yi Zhuang. Dans le Procédures of le 9 Atelier on Algorithme ENGINEERING et
Expériences / Atelier on Analytique Algorithmes et Combinatoire (ALENEX/ANALCO
2007).
Utilisez r.viewshedgrass en ligne en utilisant les services onworks.net