Disponible avec une licence 3D Analyst.
Résumé
Détermine les emplacements de surfaces raster visibles pour un ensemble d'entités d'observation, à l'aide de méthodes géodésiques.
En savoir plus sur le fonctionnement de l'outil Champ de vision 2
Illustration
Utilisation
Cet outil peut réaliser deux types d'analyse de visibilité, qui sont contrôlés par le paramètre Type d'analyse. Pour le premier type, FREQUENCY, l'outil détermine quels emplacements de surfaces raster sont visibles pour un ensemble de points d'observation. Pour l'autre, OBSERVERS, il identifie les points d'observation visibles depuis chaque emplacement de la surface raster.
S'il est installé sur votre système, le GPU (processeur graphique) peut accélérer cet outil et améliorer ses performances.
A l'heure actuelle, cet outil prend uniquement en charge les cartes graphiques NVIDIA présentant une architecture de calcul CUDA 2.0 ou OpenCL 1.2 et suppose qu'une carte appropriée est installée sur votre système. Pour garantir la bonne exécution de cet outil, consultez la page de mise à jour du pilote NVIDIA afin d'obtenir le pilote le plus récent.
Une erreur GPU risque d'être renvoyée et l'outil ne fonctionne pas correctement si la valeur de la clé du Registre Windows TdrDelay (Timeout Detection and Recovery Delay) est trop petite pour l'opération. La valeur par défaut de la clé TdrDelay est de 2 secondes, mais vous pouvez utiliser une valeur plus importante, par exemple 60 secondes. Sur la plupart des systèmes Windows, le chemin d'accès à la clé TdrDelay dans le Registre est HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers. Si la clé TdrDelay n'existe pas, vous devez la créer à cet emplacement et lui attribuer une valeur plus élevée. Vous devez redémarrer la machine pour que cette modification prenne effet. Pour plus d'informations sur la définition de la clé du Registre TdrDelay, consultez la page Web sur les clés du Registre TDR de Microsoft.
Contrairement à d'autres outils similaires, Champ de vision 2 ne comporte pas de paramètre Facteur Z. Pour garantir l'exactitude du raster de visibilité en sortie, attribuez un système de coordonnées verticales ellipsoïdal au raster en entrée, le cas échéant.
La visibilité du centre de chaque cellule est déterminée par un test de ligne de visée entre la cible et chaque point d'observation. Si un point d'observation peut voir la cible au centre de la cellule, celle-ci est considérée comme visible. Cet outil tient toujours compte de la courbure de la Terre pour déterminer la visibilité.
Sur le raster de visibilité en sortie, les cellules non visibles se voient attribuer la valeur NoData.
Pour le type d'analyse OBSERVERS, le nombre maximum autorisé de points d'observation en entrée est 32.
-
Si le raster en entrée comporte du bruit indésirable causé par des erreurs d'échantillonnage, et si l'Extension ArcGIS Spatial Analyst est installée, vous pouvez lisser le raster avec un filtre passe bas, comme l'option Moyenne de Statistiques focales, avant d'exécuter cet outil.
Si le raster en entrée doit être ré-échantillonné, la technique bilinéaire sera utilisée. Un raster en entrée peut être ré-échantillonné par exemple lorsque le système de coordonnées en sortie, l'étendue ou la taille de cellule est différent(e) de celui ou celle en entrée.
Par défaut, le champ de vision est calculé sur l'étendue maximum du jeu de données en entrée. Pour optimiser les performances, il est recommandé de définir explicitement le paramètre Rayon extérieur sur la distance d'intérêt maximum pour votre analyse. Ce paramètre permet à l'outil d'effectuer ses calculs uniquement sur les cellules qui se trouvent à une certaine distance des points d'observation.
Vous pouvez utiliser le paramètre Méthode d'analyse pour contrôler la qualité du résultat et le temps requis pour l'obtenir. La méthode The PERIMETER_SIGHTLINES est destinée à une analyse d'exploration, car cette méthode permet d'accélérer les performances au détriment de la qualité en sortie. Pour obtenir la sortie la plus précise, utilisez la méthode ALL_SIGHTLINES.
Pour obtenir plus de détails techniques sur l'implémentation de cet outil, consultez le document suivant.
http://support.esri.com/en/knowledgebase/techarticles/detail/42804
Syntaxe
Viewshed2_3d (in_raster, in_observer_features, out_raster, {out_agl_raster}, {analysis_type}, {vertical_error}, {out_observer_region_relationship_table}, {refractivity_coefficient}, {surface_offset}, {observer_elevation}, {observer_offset}, {inner_radius}, {inner_radius_is_3d}, {outer_radius}, {outer_radius_is_3d}, {horizontal_start_angle}, {horizontal_end_angle}, {vertical_upper_angle}, {vertical_lower_angle}, {analysis_method})
Paramètre | Explication | Type de données |
in_raster | Raster de surface en entrée. Il peut s'agir d'un entier ou d'un raster en virgule flottante. Le raster en entrée est transformé en système de coordonnées 3D géocentriques au cours du calcul de la visibilité. Les cellules NoData du raster en entrée n'empêchent pas de déterminer la visibilité. | Raster Layer |
in_observer_features | Classe d'entités en entrée qui identifie les emplacements des points d'observation. Il peut s'agir d'entités ponctuelles, multi-points ou polylinéaires. La classe d'entités en entrée est transformée en système de coordonnées 3D géocentriques au cours du calcul de la visibilité. Les points d'observation en dehors de l'étendue du raster de surface ou se trouvant sur les cellules NoData ne sont pas pris en compte dans le calcul. | Feature Layer |
out_raster | Raster en sortie. Pour le type d'analyse FREQUENCY, si le paramètre d'erreur verticale n'est pas spécifié ou s'il est égal à 0, le raster en sortie enregistre le nombre de fois où chaque emplacement de cellule dans le raster de surface en entrée peut être vu des points d'observation en entrée. Lorsque le paramètre d'erreur verticale est supérieur à 0, chaque cellule du raster en sortie enregistre la somme des probabilités que la cellule puisse être vue d'un quelconque point d'observation. Pour le type d'analyse OBSERVERS, le raster en sortie enregistre les ID de région uniques pour les zones visibles, qui peuvent être reliés aux entités points d'observation via la table de relations point d'observation-région. | Raster |
out_agl_raster (Facultatif) | Raster AGL en sortie. Le raster AGL obtenu est un raster dans lequel la valeur de chaque cellule correspond à la hauteur minimale devant être ajoutée à une cellule (qui, sinon, ne serait pas visible) pour la rendre visible par au moins un observateur. La valeur 0 sera attribuée aux cellules qui étaient déjà visibles dans ce raster en sortie. Lorsque le paramètre d'erreur verticale est égal à 0, le raster AGL en sortie est un raster monocanal. Lorsque l'erreur verticale est supérieure à 0, pour prendre en compte les effets aléatoires du raster en entrée, le raster AGL en sortie est créé sous forme de raster à trois canaux. Le premier canal représente les valeurs AGL moyennes, le deuxième canal représente les valeurs AGL minimales et le troisième canal représente les valeurs AGL maximales. | Raster |
analysis_type (Facultatif) | Choisissez le type d'analyse de visibilité que vous souhaitez effectuer, soit en déterminant le degré de visibilité de chaque cellule par rapport aux points d'observation, soit en identifiant pour chaque emplacement de la surface quels points d'observation sont visibles.
| String |
vertical_error (Facultatif) | Niveau d'incertitude (Erreur Quadratique Moyenne ou EQM) des valeurs d'altitude de surface. Il s'agit de la valeur à virgule flottante représentant l'erreur attendue des valeurs d'altitude en entrée. Lorsque ce paramètre se voit attribuer une valeur supérieure à 0, le raster de visibilité en sortie sera à virgule flottante. Dans ce cas, chaque valeur de cellule du raster de visibilité en sortie représente la somme des probabilités que la cellule puisse être vue d'un quelconque point d'observation. Lorsque le type d'analyse est OBSERVERS ou que la méthode d'analyse est PERIMETER_SIGHTLINES, ce paramètre est désactivé. | Linear unit |
out_observer_region_relationship_table (Facultatif) | Table en sortie permettant d'identifier les régions que chaque point d'observation peut voir. Cette table peut être reliée à la classe d'entités des points d'observation en entrée et au raster de visibilité en sortie pour identifier les régions que les points d'observation spécifiés peuvent voir. Cette sortie n'est générée que lorsque le type d'analyse est OBSERVERS. | Table |
refractivity_coefficient (Facultatif) | Coefficient de réfraction de la lumière visible dans l'air. La valeur par défaut est 0,13. | Double |
surface_offset (Facultatif) | Cette valeur indique la distance verticale (en unités de surface) à ajouter à la valeur z de chaque cellule cible, telle qu'elle est prise en compte pour la visibilité. La valeur doit être un entier positif ou un nombre à virgule flottante. Il peut s'agir d'un champ dans le jeu de données d'entités d'observation en entrée ou d'une valeur numérique. Si une valeur est attribuée à ce paramètre, elle est appliquée à tous les points d'observation. Pour spécifier des valeurs différentes pour chaque point d'observation, définissez ce paramètre sur un champ dans le jeu de données des entités des points d'observation en entrée. | Linear unit | Field |
observer_elevation (Facultatif) | Cette valeur permet de définir les altitudes des surfaces des points d'observation ou des sommets. Il peut s'agir d'un champ dans le jeu de données d'entités d'observation en entrée ou d'une valeur numérique. Si ce paramètre n'est pas spécifié, l'altitude du point d'observation s'obtient à partir du raster de surface à l'aide de l'interpolation bilinéaire. Si une valeur est attribuée à ce paramètre, elle est appliquée à tous les points d'observation. Pour spécifier des valeurs différentes pour chaque point d'observation, définissez ce paramètre sur un champ dans le jeu de données des entités des points d'observation en entrée. | Linear unit | Field |
observer_offset (Facultatif) | Cette valeur indique la distance verticale (en unités de surface) à ajouter à l'altitude du point d'observation. La valeur doit être un entier positif ou un nombre à virgule flottante. Il peut s'agir d'un champ dans le jeu de données d'entités d'observation en entrée ou d'une valeur numérique. Si une valeur est attribuée à ce paramètre, elle est appliquée à tous les points d'observation. Pour spécifier des valeurs différentes pour chaque point d'observation, définissez ce paramètre sur un champ dans le jeu de données des entités des points d'observation en entrée. | Linear unit | Field |
inner_radius (Facultatif) | Cette valeur définit la distance de départ (minimum) à partir de laquelle la visibilité est déterminée. Les cellules plus proches que cette distance sont considérées comme non visibles dans la sortie, mais peuvent toujours empêcher la visibilité des cellules situées entre le rayon intérieur et le rayon extérieur. La valeur par défaut est 0. Il peut s'agir d'un champ dans le jeu de données d'entités d'observation en entrée ou d'une valeur numérique. Si une valeur est attribuée à ce paramètre, elle est appliquée à tous les points d'observation. Pour spécifier des valeurs différentes pour chaque point d'observation, définissez ce paramètre sur un champ dans le jeu de données des entités des points d'observation en entrée. | Linear unit | Field |
inner_radius_is_3d (Facultatif) | Type de distance pour le paramètre de rayon intérieur.
| Boolean |
outer_radius (Facultatif) | Cette valeur définit la distance maximale à partir de laquelle la visibilité est déterminée. Les cellules situées au-delà de cette distance sont exclues de l'analyse. Il peut s'agir d'un champ dans le jeu de données d'entités d'observation en entrée ou d'une valeur numérique. Si une valeur est attribuée à ce paramètre, elle est appliquée à tous les points d'observation. Pour spécifier des valeurs différentes pour chaque point d'observation, définissez ce paramètre sur un champ dans le jeu de données des entités des points d'observation en entrée. | Linear unit | Field |
outer_radius_is_3d (Facultatif) | Type de distance pour le paramètre de rayon extérieur.
| Boolean |
horizontal_start_angle (Facultatif) | Cette valeur définit l'angle de départ de la plage d'analyse horizontale. La valeur doit être exprimée en degrés de 0 à 360.0, 0 étant orienté vers le nord. La valeur par défaut est 0. Il peut s'agir d'un champ dans le jeu de données d'entités d'observation en entrée ou d'une valeur numérique. Si une valeur est attribuée à ce paramètre, elle est appliquée à tous les points d'observation. Pour spécifier des valeurs différentes pour chaque point d'observation, définissez ce paramètre sur un champ dans le jeu de données des entités des points d'observation en entrée. | Constant | Field |
horizontal_end_angle (Facultatif) | Cette valeur définit l'angle de fin de la plage d'analyse horizontale. La valeur doit être exprimée en degrés de 0 à 360.0, 0 étant orienté vers le nord. La valeur par défaut est 360.0. Il peut s'agir d'un champ dans le jeu de données d'entités d'observation en entrée ou d'une valeur numérique. Si une valeur est attribuée à ce paramètre, elle est appliquée à tous les points d'observation. Pour spécifier des valeurs différentes pour chaque point d'observation, définissez ce paramètre sur un champ dans le jeu de données des entités des points d'observation en entrée. | Constant | Field |
vertical_upper_angle (Facultatif) | Cette valeur définit la limite de l'angle vertical supérieur de l'analyse au-dessus du plan horizontal. La valeur doit être exprimée en degrés de 0 à 90.0 et peut être un entier ou une valeur à virgule flottante. La valeur par défaut est 90.0. Il peut s'agir d'un champ dans le jeu de données d'entités d'observation en entrée ou d'une valeur numérique. Si une valeur est attribuée à ce paramètre, elle est appliquée à tous les points d'observation. Pour spécifier des valeurs différentes pour chaque point d'observation, définissez ce paramètre sur un champ dans le jeu de données des entités des points d'observation en entrée. | Constant | Field |
vertical_lower_angle (Facultatif) | Cette valeur définit la limite de l'angle vertical inférieur de l'analyse au-dessous du plan horizontal. La valeur doit être exprimée en degrés de -90.0 à 0 et peut être un entier ou une valeur à virgule flottante. La valeur par défaut est -90.0. Il peut s'agir d'un champ dans le jeu de données d'entités d'observation en entrée ou d'une valeur numérique. Si une valeur est attribuée à ce paramètre, elle est appliquée à tous les points d'observation. Pour spécifier des valeurs différentes pour chaque point d'observation, définissez ce paramètre sur un champ dans le jeu de données des entités des points d'observation en entrée. | Constant | Field |
analysis_method (Facultatif) | Choisissez la méthode qui permettra de calculer la visibilité. Cette option vous permet d'adapter la précision afin d'optimiser les performances.
| String |
Exemple de code
Exemple 1 d'utilisation de l'outil Viewshed2 (fenêtre Python)
Cet exemple détermine les emplacements de surface visibles depuis un ensemble de points d'observation sans utiliser de paramètres de points d'observation.
import arcpy
from arcpy import env
env.workspace = "C:/data"
result = arcpy.Viewshed2_3d("elevation", "obser1.shp", "C:/output/outvwshd01",
"", "OBSERVERS", "", "C:/output/obstable01.dbf")
Exemple 2 d'utilisation de l'outil Viewshed2 (script autonome)
Cet exemple détermine les emplacements de surface visibles depuis un ensemble de points d'observation en utilisant les attributs de la classe d'entités en entrée comme paramètres de points d'observation.
# Name: Viewshed_3d_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
# observer features.
# Requirements: 3D Analyst Extension
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Check out the ArcGIS 3D Analyst extension license
arcpy.CheckOutExtension("3D")
inRaster = "elevation"
inObservers = "obser2.shp"
outRaster = "c:/output/outvshd02"
outAGL = ""
analysisType = "OBSERVERS"
verticalError = ""
outAnalysisRelationTable = "C:/output/obser_region2.dbf"
refractCoeff = ""
surfaceOffset = "offsetb"
observerElevation = "spot"
observerOffset = "offseta"
innerRadius = "radius1"
innerIs3D = "False"
outerRadius = "radius2"
outerIs3D = "True"
horizStartAngle = "azimuth1"
horizEndAngle = "azimuth2"
vertUpperAngle = "vert1"
vertLowerAngle = "vert2"
analysisMethod = "ALL_SIGHTLINES"
# Execute Viewshed2
result = arcpy.Viewshed2_3d(inRaster, inObservers, outRaster, outAGL,
analysisType, verticalError,
outAnalysisRelationTable, refractCoeff,
surfaceOffset, observerElevation, observerOffset,
innerRadius, innerIs3D, outerRadius, outerIs3D,
horizStartAngle, horizEndAngle, vertUpperAngle,
vertLowerAngle, analysisMethod)
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert 3D Analyst ou Spatial Analyst
- ArcGIS Desktop Standard: Requiert 3D Analyst ou Spatial Analyst
- ArcGIS Desktop Advanced: Requiert 3D Analyst ou Spatial Analyst