Résumé
Crée une zone tampon à une distance donnée des entités en entrée.
Pour en savoir plus sur le fonctionnement de l’outil Zone tampon
Illustration
Utilisation
Comme la rubrique Fonctionnement de l’outil Zone tampon l’explique, une des fonctionnalités importantes de l’outil Zone tampon est le paramètre Method (Méthode), qui définit le mode de génération des zones tampon. Les deux méthodes de base pour construire des zones tampon, euclidienne et géodésique, sont décrites comme suit :
- Les zones tampon euclidiennes mesurent la distance dans un plan cartésien bidimensionnel, où les distances en ligne droite ou euclidiennes sont calculées entre deux points d’une surface plane (plan cartésien). Les zones tampon euclidiennes sont le type de zone tampon le plus courant et conviennent à l’analyse de distances autour d’entités dans un système de coordonnées projetées concentrées dans une surface relativement petite (par exemple, une zone UTM).
- Les zones tampon géodésiques tiennent compte de la forme réelle de la Terre (ellipsoïdale, ou plus exactement géoïdale). Les distances sont calculées entre deux points d'une surface courbe (forme géoïdale), et non entre deux points d'une surface plane (plan cartésien). Il est recommandé de toujours créer des zones tampon géodésiques dans les cas suivants :
- Vos entités en entrée sont dispersées (elles couvrent plusieurs zones UTM, de vastes régions ou même l’ensemble du globe).
- La référence spatiale (projection cartographique) de vos entités en entrée déforme les distances en vue de préserver d’autres propriétés, telles que la surface.
Le paramètre Method (Méthode) détermine le mode de création des zones tampon.
- Planar (Planaire) (method = "PLANAR" dans Python) est l’option par défaut. Cette option détermine automatiquement la méthode à utiliser en fonction du système de coordonnées de l’entrée.
- Si les entités en entrée disposent d'un système de coordonnées projetées, des zones tampon euclidiennes sont créées.
- Si les entités en entrée disposent d’un système de coordonnées géographiques et que vous spécifiez une valeur Buffer Distance (Distance de la zone tampon) en unités linéaires (mètres, pieds, etc., par opposition aux unités angulaires telles que les degrés), des zones tampon géodésiques sont créées.
- Cette option produit le même résultat que l’outil Zone tampon avant ArcGIS 10.3.
- Geodesic (Géodésique) (method = "GEODESIC" dans Python) crée une zone tampon géodésique de préservation de la forme, quel que soit le système de coordonnées en entrée. La zone tampon géodésique de préservation de la forme densifie les entités en entrée avant de créer les zones tampon géodésiques en sortie en vue de générer des zones tampon qui représentent plus fidèlement la forme des entités en entrée. Si vous vous préoccupez de la forme de vos zones tampon, ainsi que du degré de correspondance de leur forme avec les entités en entrée d'origine, il est recommandé d'utiliser cette option, en particulier lorsque vos données en entrée se trouvent dans un système de coordonnées géographiques. Dans certains cas, cette opération peut prendre plus de temps que si vous choisissez l’option Planar (Planaire) pour créer la zone tampon géodésique, mais vous obtenez une zone tampon qui correspond davantage à la forme de l’entité en entrée.
Lorsque vous utilisez la méthode Planar (Planaire), vous pouvez améliorer l’exactitude des zones tampon créées avec les entrées projetées à l’aide d’une projection qui réduit la distorsion de distance, comme une projection Equidistante conique ou une projection azimutale équidistante, adaptée à votre entrée d’un point de vue géographique.
Lors de la bufférisation d’entités dans un système de coordonnées projetées avec une sortie vers une classe d’entités de géodatabase, les géométries créées peuvent contenir des segments d’arc circulaire (lors de la bufférisation de points, la sortie est toujours constituée d’arcs circulaires). Si les zones tampon contenant des arcs circulaires sont une nouvelle fois projetées vers un système de coordonnées différent, l'emplacement et la taille des zones tampon d'origine sont transformés, mais la forme des zones tampon ne change pas : les zones tampon à nouveau projetées ne représentent plus avec exactitude la surface couverte par la zone tampon d'origine. Si vous projetez une nouvelle fois les zones tampon comportant des arcs circulaires, utilisez tout d’abord l’outil Densifier pour convertir des segments d’arc circulaire en lignes droites, puis projetez une nouvelle fois les zones tampon densifiées.
La classe d’entités en sortie comporte un champ BUFF_DIST, qui indique la distance de zone tampon utilisée pour mettre en mémoire tampon chaque entité, dans l’unité linéaire du système de coordonnées de l’entrée. Lorsque vous utilisez la méthode Geodesic (Géodésique) pour créer des zones tampon, la distance de la zone tampon saisie est convertie en mètres dans tous les cas.
Si un champ nommé BUFF_DIST est présent dans l’entrée, ses valeurs sont remplacées dans la sortie. Si l’option Dissolve Type (Type de fusion) est utilisée avec la valeur All (Tout) ou List (Liste) (ALL ou LIST dans Python), la sortie ne comporte pas ce champ.
La classe d’entités en sortie contient un champ ORIG_FID qui contient l’ID de l’entité en entrée pour laquelle la zone tampon a été créée. Si un champ nommé ORIG_FID est présent dans l’entrée, ses valeurs sont remplacées dans la sortie. Si un type de fusion (Dissolve Type) All (Tout) ou List (Liste) est utilisé, la sortie ne comporte pas ce champ.
Lors de la création de zones tampon autour d'entités polygone, l'utilisation de distances de zone tampon négatives permet de créer des zones tampon à l'intérieur des entités polygone. L'utilisation d'une distance de zone tampon négative réduit les limites des polygones de la distance spécifiée.
Si les distances de la zone tampon sont déterminées par un champ de l’entrée, les valeurs du champ peuvent correspondre à un nombre (par exemple, 5) ou à un nombre accompagné d’une unité linéaire valide (5 kilomètres, par exemple). Si une valeur de champ est un nombre, la distance est supposée être exprimée dans l’unité linéaire de la référence spatiale de l’entrée (à moins que l’entrée ne se trouve dans un système de coordonnées géographiques, auquel cas la valeur doit être en mètres). Si l’unité linéaire indiquée dans les valeurs de champ est incorrecte ou non reconnue, l’unité linéaire de la référence spatiale de l’entrée est utilisée par défaut.
Le bouton Add Field (Ajouter un champ) du paramètre Dissolve Field(s) (Champ(s) de fusion) n’est utilisé que dans ModelBuilder. Dans ModelBuilder, si l’outil précédent n’a pas été exécuté ou que ses données dérivées n’existent pas, le paramètre Dissolve Field(s) (Champ(s) de fusion) peut ne comporter aucun nom de champ. Le bouton Add Field (Ajouter un champ) permet d’ajouter des champs attendus à la liste Dissolve Field(s) (Champ(s) de fusion) afin de renseigner la boîte de dialogue de l’outil Buffer (Zone tampon).
Syntaxe
arcpy.analysis.Buffer(in_features, out_feature_class, buffer_distance_or_field, {line_side}, {line_end_type}, {dissolve_option}, {dissolve_field}, {method})
Paramètre | Explication | Type de données |
in_features | Entités point, ligne ou polygone en entrée à buffériser. | Feature Layer |
out_feature_class | Classe d'entités contenant les zones tampon en sortie. | Feature Class |
buffer_distance_or_field | Distance autour des entités en entrée à buffériser. Les distances peuvent être fournies en tant que valeur représentant une distance linéaire ou en tant que champ des entités en entrée contenant la distance utilisée pour bufferiser chaque entité. Si les unités linéaires ne sont pas indiquées ou sont spécifiées inconnues, l'unité linéaire de la référence spatiale des entités en entrée est utilisée. Lors de la spécification d'une distance, si l'unité linéaire souhaitée comporte deux mots, tels que Decimal Degrees (Degrés décimaux), fusionnez ces deux mots (par exemple, 20 DecimalDegrees). | Linear Unit; Field |
line_side (Facultatif) | Spécifie les côtés des entités en entrée à buffériser.
| String |
line_end_type (Facultatif) | Spécifie la forme de la zone tampon aux extrémités des entités linéaires en entrée. Ce paramètre n'est pas valide pour les entités surfaciques en entrée.
| String |
dissolve_option (Facultatif) | Spécifie le type de fusion à effectuer pour supprimer les superpositions de la zone tampon.
| String |
dissolve_field [dissolve_field,...] (Facultatif) | Liste de champs des entités en entrée sur lesquelles les zones tampon en sortie seront fusionnées. Les zones tampon ayant des valeurs attributaire identiques dans les champs répertoriés (provenant des entités en entrée) sont fusionnées. | Field |
method (Facultatif) | Indique la méthode à utiliser, planaire ou géodésique, pour créer la zone tampon.
| String |
Exemple de code
Exemple 1 d'utilisation de l'outil Zone tampon (fenêtre Python)
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil Buffer.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.Buffer_analysis("roads", "C:/output/majorrdsBuffered", "100 Feet", "FULL",
"ROUND", "LIST", "Distance")
Exemple 2 d'utilisation de l'outil Zone tampon (script autonome)
Identifiez les surfaces de végétation convenable en excluant les surfaces très affectées par les routes principales.
# Name: Buffer.py
# Description: Find areas of suitable vegetation which exclude areas heavily
# impacted by major roads
# import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data/Habitat_Analysis.gdb"
# Select suitable vegetation patches from all vegetation
veg = "vegtype"
suitableVeg = "C:/output/Output.gdb/suitable_vegetation"
whereClause = "HABITAT = 1"
arcpy.Select_analysis(veg, suitableVeg, whereClause)
# Buffer areas of impact around major roads
roads = "majorrds"
roadsBuffer = "C:/output/Output.gdb/buffer_output"
distanceField = "Distance"
sideType = "FULL"
endType = "ROUND"
dissolveType = "LIST"
dissolveField = "Distance"
arcpy.Buffer_analysis(roads, roadsBuffer, distanceField, sideType, endType,
dissolveType, dissolveField)
# Erase areas of impact around major roads from the suitable vegetation patches
eraseOutput = "C:/output/Output.gdb/suitable_vegetation_minus_roads"
xyTol = "1 Meters"
arcpy.Erase_analysis(suitableVeg, roadsBuffer, eraseOutput, xyTol)
Environnements
- Valeur Z en sortie par défaut
- Résolution M
- Tolérance M
- Domaine M en sortie
- Domaine XY en sortie
- Domaine Z en sortie
- Système de coordonnées en sortie
- Étendue
- Grille spatiale 1 en sortie
- Grille spatiale 2 en sortie
- Grille spatiale 3 en sortie
- Espace de travail courant
- Transformations géographiques
- Espace de travail temporaire
- Valeurs M en sortie
- Valeurs Z en sortie
- Résolution XY
- Tolérance XY
- Résolution Z
- Tolérance Z
Informations de licence
- Basic: Limité
- Standard: Limité
- Advanced: Oui