Créer des isolignes avec barrières (3D Analyst)
Récapitulatif
Crée des isolignes à partir d'une surface raster. Grâce à l'inclusion d'entités interruptions, une entité peut générer indépendamment des isolignes de part et d'autre d'une interruption.
Utilisation
-
La version actuelle de l'outil Créer des isolignes avec barrières prend uniquement en charge la sortie de type polyligne. Si l'option en sortie Polygones est utilisée, elle sera ignorée et une sortie de type polyligne sera créée.
Si l'Extension ArcGIS Spatial Analyst est installée, des isolignes plus lisses mais moins précises peuvent être obtenues en prétraitant le raster en entrée via une opération Statistiques focales par l'intermédiaire de l'option MEAN, ou l'outil Filtre au moyen de l'option LOW.
-
Les isolignes se prolongent dans la cellule NoData du raster sur une distance correspondant à la moitié de la taille de cellule du raster. Cela signifie que les isolignes sont générées sur des cellules NoData simples. Toutefois, une surface NoData de 3x3 cellules comprend uniquement des isolignes qui se prolongent dans cette surface sur une distance correspondant à la moitié de la taille de cellule.
-
Le champ Type de la classe d'entités isolignes en sortie a les valeurs suivantes :
1 for contours 2 for indexed contours 3 for explicit contours
-
Il est possible d'utiliser un intervalle des isolignes indexées afin de générer des isolignes supplémentaires ; leur Type a alors la valeur 2 dans la classe d'entités en sortie.
-
Par exemple, une isoligne de base est utilisée lorsque vous souhaitez créer des isolignes tous les 15 mètres, en commençant à 10 mètres. Ici, l'isoligne de base a la valeur 10 et l'intervalle des isolignes a la valeur 15. Les valeurs des isolignes sont alors 10, 25, 40, 55, etc.
-
La spécification d'une isoligne de base n'empêche pas la création d'isolignes au-dessus ou au-dessous de cette valeur.
-
Un fichier texte contenant les spécifications des valeurs d'isolignes peut comprendre les éléments suivants :
- les lignes qui commencent par une valeur non numérique sont ignorées et traitées comme des lignes de commentaire,
- les lignes comportant une valeur unique sont traitées comme des valeurs d'isolignes réelles,
- une ligne comportant trois valeurs est traitée comme une base, un intervalle des isolignes et une isoligne indexée,
- une ligne comportant quatre valeurs est traitée comme suit : à partir des isolignes, vers les isolignes, par isoligne et isolignes indexées.
Si, par exemple, un raster a une valeur minimale de 102 et une valeur maximale de 500, un fichier texte avec :
# contour values and ranges 122.75 485 500 5 12 4 100 99
génère des isolignes à :
122.75 104, 204, 304, 404 103, 202, 301, 400, 499 485, 490, 495, 500 497
-
Si une entité polygonale avec interruptions contient des valeurs de cellules du raster, les isolignes sont fractionnées à l'interruption. Si les valeurs de cellules au sein de l'entité polygonale doivent être ignorées, définissez ces valeurs de cellules sur NoData.
-
Si la surface de raster en entrée est très grande ou si de nombreuses entités en sortie sont demandées, de nombreux fichiers temporaires sont créés dans le dossier des fichiers temporaires du système d'exploitation. Si, pour cette raison, des problèmes surviennent, procédez comme suit :
- augmentez l'espace disponible sur le disque pour les fichiers temporaires,
- réduisez le nombre d'isolignes spécifié ou divisez la plage d'isolignes et traitez chaque groupe séparément, puis combinez les résultats de chaque plage en un résultat final,
- traitez les données en entrée par sections (tuiles), puis fusionnez les résultats individuels en un jeu de données.
Les entités isolignes en sortie peuvent être étiquetées à l'aide de l'outil Annotation de contour.
Syntaxe
Paramètre | Explication | Type de données |
in_raster |
Raster de surface en entrée. | Raster Layer |
out_contour_feature_class |
Entités isolignes en sortie. | Feature Class |
in_barrier_features (Facultatif) |
Entités interruptions en entrée. | Feature Layer |
in_contour_type (Facultatif) |
Type d'isoligne à créer.
La version actuelle de l'outil Créer des isolignes avec interruptions prend uniquement en charge la sortie de type polyligne. Si l'option en sortie Polygones est utilisée, elle sera ignorée et une sortie de type polyligne sera créée. | String |
in_contour_values_file (Facultatif) |
L'isoligne de base, l'intervalle des isolignes, l'intervalle des isolignes indexées et les valeurs d'isolignes réelles peuvent également être spécifiées par un fichier texte. | File |
explicit_only (Facultatif) |
Seules les valeurs d'isolignes réelles sont utilisées. L'isoligne de base, l'intervalle des isolignes et les intervalles des isolignes indexées ne sont pas spécifiés.
| Boolean |
in_base_contour (Facultatif) |
Valeur de l'isoligne de base. Les isolignes sont générées au-dessus et en dessous de cette valeur de façon à couvrir la plage de valeurs complète du raster en entrée. La valeur par défaut est zéro. | Double |
in_contour_interval (Facultatif) |
Intervalle, ou distance, entre les isolignes. Il peut s'agir d'un nombre positif quelconque. | Double |
in_indexed_contour_interval (Facultatif) |
Les isolignes sont également générées pour cet intervalle et sont signalées en conséquence dans la classe d'entités en sortie. | Double |
in_contour_list [in_explicit_contour,...] (Facultatif) |
Valeurs réelles auxquelles créer des isolignes. | Double |
in_z_factor (Facultatif) | Facteur de conversion d'unités utilisé lors de la génération des isolignes. La valeur par défaut est 1. Les isolignes sont générées en fonction des valeurs z dans le raster en entrée, qui sont souvent mesurées en mètres ou en pieds. Avec la valeur par défaut 1, les isolignes sont dans les mêmes unités que les valeurs z du raster en entrée. Pour créer des isolignes dans une autre unité que celle des valeurs z, définissez une valeur appropriée pour le facteur z. Notez qu'il n'est pas nécessaire que les unités x,y au sol et les unités z de surface soient homogènes pour cet outil. Par exemple, si les valeurs d'altitude dans votre raster en entrée sont en pieds, mais que vous voulez que les isolignes soient générées en mètres, définissez le facteur z sur 0,3048 (car 1 pied = 0,3048 m). | Double |
Exemple de code
Cet exemple crée des isolignes à partir d'un raster de grille Esri avec une entité interruption en entrée, ainsi qu'une base et un intervalle. La sortie crée des isolignes autour de la surface sous forme de polylignes dans un fichier de formes.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.ContourWithBarriers_3d("elevation", "C:/output/outcwb.shp",
"elevation_barrier.shp", "POLYLINES", "", "", 0, 300)
Cet exemple crée des isolignes à partir d'un raster de grille Esri avec une entité interruption en entrée, ainsi qu'une base et un intervalle. La sortie crée des isolignes autour de la surface sous forme de polylignes dans un fichier de formes.
# Name: ContourWithBarriers_3d_Ex_02.py
# Description: Creates contours from a raster surface. The inclusion of
# barrier features will allow one to independently generate contours on
# either side of a barrier.
# Requirements: 3D Analyst Extension
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inRaster = "elevation"
inBarrier = "elevation_barrier.shp"
inTextFile = ""
explicitValues = "NO_EXPLICIT_VALUES_ONLY"
contourInterval = 200
contourList = "600; 935; 1237.4"
baseContour = 0
outContours = "C:/output/outcwb.shp"
# Check out the ArcGIS 3D Analyst extension license
arcpy.CheckOutExtension("3D")
# Execute Contour
arcpy.ContourWithBarriers_3d(inRaster, outContours, inBarrier, "POLYLINES",
inTextFile, explicitValues, baseContour,
contourInterval, "", contourList, "")