Disponible avec une licence Spatial Analyst.
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 effectue deux types d'analyse de visibilité, Fréquence et Points d'observation, qui peuvent être définis à l'aide du paramètre Type d'analyse.
Pour garantir la précision de la sortie, attribuez un système de coordonnées verticales au raster en entrée, s’il n’y en a pas déjà un.
L'outil Champ de vision 2 n'a pas besoin d'un paramètre de facteur z. Il calcule un facteur z en interne à l'aide de l'unité verticale (Z) et des unités de la carte (XY) à partir de la référence spatiale du raster en entrée.
Les rasters en entrée qui contiennent du bruit, le plus souvent dans les données haute résolution, risquent d'entraîner des résultats inattendus. Avant d'exécuter cet outil, vous pouvez corriger les données dans une étape de prétraitement ou lisser l'effet de l'erreur en utilisant d'abord l'outil Statistiques focales ou Filtre avant d'effectuer l'opération de champ de vision.
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é 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.
Pour optimiser les performances, vous pouvez définir explicitement le paramètre Rayon extérieur sur une valeur représentant la distance d'affichage d'intérêt maximale pour votre analyse.
Par défaut, le paramètre Méthode d'analyse utilise l'option ALL_SIGHTLINES, qui génère la sortie la plus précise. Pour améliorer les performances de l'outil en termes de temps de traitement, utilisez l'option PERIMETER_SIGHTLINES.
Les paramètres des points d'observation associés à la hauteur, tels que Décalage de la surface, Altitude du point d'observation et Décalage du point d'observation, peuvent être spécifiés en tant qu'unité linéaire ou champ. Au cours du calcul, la valeur de l'unité linéaire est convertie en interne en unité z du raster en entrée. Toutefois, si l'unité linéaire est inconnue ou si un champ numérique est spécifié, la valeur est censée être dans l'unité z du raster en entrée.
Les paramètres des points d'observation associés aux distances d'affichage, tels que Rayon intérieur et Rayon extérieur, peuvent être spécifiés en tant qu'unité linéaire ou champ. Au cours du calcul, la valeur de l'unité linéaire est convertie en interne en unités XY du raster en entrée. Toutefois, si l'unité linéaire est inconnue ou si un champ numérique est spécifié, la valeur est censée être dans l'unité XY du raster en entrée.
Le champ spécifié pour un paramètre de point d'observation, tel que Décalage de la surface ou Décalage du point d'observation, peut être de type chaîne et contenir une valeur numérique et une unité. Si, par exemple, le champ obs_height est spécifié pour Observer offset (Décalage du point d’observation), il peut contenir des valeurs, telles que « 6 pieds ».
Dans les scripts, les paramètres des points d'observation, tels que observer_offset, peuvent être spécifiés sous différentes formes de chaînes. Sous chaque forme, une valeur et une unité linéaire sont analysées à partir de la chaîne. La table suivante répertorie certains exemples de chaînes en entrée et indique comment l'unité linéaire est définie pour chaque cas. Vous pouvez suivre le même modèle pour d'autres paramètres.
Exemple de chaîne en entrée pour Décalage du point d'observation Unité linéaire utilisée ' ' ou '#'
La valeur et l'unité par défaut sont utilisées, c'est-à-dire 1 mètre.
'6'
Le décalage du point d'observation est égal à 6 et comme aucune unité n'est spécifiée, l'outil utilise l'unité par défaut, à savoir les mètres.
'6 Feet'
Le décalage du point d'observation est de 6 pieds.
'6 Unknown'
Le décalage du point d'observation est égal à 6 et comme aucune unité n'est spécifiée, l'outil utilise l'unité par défaut, à savoir les mètres.
Exemples de chaînes en entrée et d'unités linéaires Cet outil tire automatiquement parti d'un processeur graphique (GPU) pour optimiser ses performances, s'il est disponible sur votre système et configuré correctement.
Reportez-vous à la rubrique d'aide Traitement GPU avec Spatial Analyst pour plus d'informations sur la configuration de votre périphérique GPU.
Si vous ne souhaitez pas que l'outil tire parti des périphériques GPU disponibles installés sur votre système, créez une variable d'environnement système CUDA_VISIBLE_DEVICES, définissez sa valeur sur -1 et redémarrez votre application. L’outil s’exécute ensuite avec le processeur graphique (GPU) uniquement. Pour que votre outil utilise à nouveau un périphérique GPU, supprimez la variable d'environnement système CUDA_VISIBLE_DEVICES ou définissez sa valeur sur la valeur d'index (0 pour le premier, 1 pour le deuxième et ainsi de suite) du périphérique GPU que vous souhaitez utiliser, puis redémarrez votre application.
Pour plus d’informations sur les environnements de géotraitement qui s’appliquent à cet outil, reportez-vous à la rubrique Environnements d’analyse et Spatial Analyst.
Syntaxe
Viewshed2(in_raster, in_observer_features, {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_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 Dataset |
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 une distance verticale à ajouter à la valeur z de chaque cellule, telle qu'elle est prise en compte pour la visibilité. La valeur doit être un entier positif ou un nombre à virgule flottante. Vous pouvez sélectionner un champ dans le jeu de données d’observation en entrée ou spécifier 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. La valeur par défaut est 0. | Linear Unit; Field |
observer_elevation (Facultatif) | Cette valeur permet de définir les altitudes des surfaces des points d'observation ou des sommets. Vous pouvez sélectionner un champ dans le jeu de données d’observation en entrée ou spécifier 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 une distance verticale à ajouter à l'altitude du point d'observation. La valeur doit être un entier positif ou un nombre à virgule flottante. Vous pouvez sélectionner un champ dans le jeu de données d’observation en entrée ou spécifier 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. La valeur par défaut est 1 mètre. | Linear Unit; Field |
inner_radius (Facultatif) | Cette valeur définit la distance de départ à partir de laquelle la visibilité est déterminée. Les cellules plus proches que cette distance ne sont pas visibles dans la sortie, mais peuvent quand même empêcher la visibilité des cellules situées entre le rayon intérieur et le rayon extérieur. Vous pouvez sélectionner un champ dans le jeu de données d’observation en entrée ou spécifier 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. La valeur par défaut est 0. | 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. Vous pouvez sélectionner un champ dans le jeu de données d’observation en entrée ou spécifier 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, sous forme d'entier ou de virgule flottante, 0 étant orienté vers le nord. La valeur par défaut est 0. Vous pouvez sélectionner un champ dans le jeu de données d’observation en entrée ou spécifier 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. | Double; 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, sous forme d'entier ou de virgule flottante, 0 étant orienté vers le nord. La valeur par défaut est 360. Vous pouvez sélectionner un champ dans le jeu de données d’observation en entrée ou spécifier 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. | Double; Field |
vertical_upper_angle (Facultatif) | Cette valeur définit la limite de l’angle vertical supérieur de l’analyse par rapport au plan horizontal. Elle est exprimée en degrés et peut être un nombre entier ou à virgule flottante. La plage autorisée est comprise entre -90 et 90 inclus. La valeur de ce paramètre doit être supérieure à celle du paramètre Vertical Lower Angle (Angle inférieur vertical). Vous pouvez sélectionner un champ dans le jeu de données d’observation en entrée ou spécifier 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. La valeur par défaut est 90 (tout droit vers le haut). | Double; Field |
vertical_lower_angle (Facultatif) | Cette valeur définit la limite de l’angle vertical inférieur de l’analyse par rapport au plan horizontal. Elle est exprimée en degrés et peut être un nombre entier ou à virgule flottante. La plage autorisée est comprise entre -90 et 90 (non inclus). La valeur de ce paramètre doit être inférieure à celle du paramètre Vertical Upper Angle (Angle supérieur vertical). Vous pouvez sélectionner un champ dans le jeu de données d’observation en entrée ou spécifier 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. La valeur par défaut est -90 (tout droit vers le bas). | Double; 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 |
Valeur renvoyée
Nom | Explication | Type de données |
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 point d’observation quelconque. 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 |
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
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outViewshed2 = Viewshed2("elevation", "obser1.shp", "", "OBSERVERS", "",
"C:/sapyexamples/output/obstable01.dbf",
analysis_method="ALL_SIGHTLINES")
outViewshed2.save("C:/sapyexamples/output/outvwshd2_01")
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: Viewshed2_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
# observer features.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.checkOutExtension("Spatial")
inRaster = "elevation"
inObservers = "obser2.shp"
outAGL = ""
analysisType = "OBSERVERS"
verticalError = ""
outAnalysisRelationTable = "C:/sapyexamples/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
outViewshed2 = Viewshed2(inRaster, inObservers, outAGL, analysisType,
verticalError, outAnalysisRelationTable, refractCoeff,
surfaceOffset, observerElevation, observerOffset,
innerRadius, innerIs3D, outerRadius, outerIs3D,
horizStartAngle, horizEndAngle, vertUpperAngle,
vertLowerAngle, analysisMethod)
# Save the output
outViewshed2.save("C:/sapyexamples/output/outvwshd2_02")
Environnements
- Validation automatique
- Taille de cellule
- Méthode de projection de la taille de cellule
- Compression
- Espace de travail courant
- Étendue
- Transformations géographiques
- Masque
- Mot-clé CONFIG en sortie
- Système de coordonnées en sortie
- Facteur de traitement parallèle
- Espace de travail temporaire
- Raster de capture
- Taille de tuile
Informations de licence
- Basic: Requiert Spatial Analyst ou 3D Analyst
- Standard: Requiert Spatial Analyst ou 3D Analyst
- Advanced: Requiert Spatial Analyst ou 3D Analyst