Extraction par polygone (Spatial Analyst)

Synthèse

Extrait les cellules d’un raster en fonction d’un polygone en spécifiant les sommets du polygone.

Héritage :

Cet outil est obsolète et sera retiré dans une version ultérieure.

L’outil Extraction par masque offre des fonctions ou des performances améliorées.

Illustration

Illustration de l’outil Extraction par polygone
OutRas = ExtractByPolygon(InRas1,[Point(1.4,0.4),Point(1.4,4.6),Point(3.6,4.6),Point(5.6,2.6),Point(3.6,0.4),Point(1.4,0.4)],"INSIDE")

Utilisation

  • Les éventuels attributs supplémentaires du raster en entrée seront inclus tels quels dans la table attributaire du raster en sortie. Selon la propriété en cours d’enregistrement, il peut être nécessaire de recalculer certaines valeurs attributaires.

  • Lorsqu’un raster multicanal est spécifié comme valeur dans le champ Input Raster (Raster en entrée) (in_raster dans Python), tous les canaux sont utilisés.

    Pour traiter une sélection de canaux d’un raster multicanal, créez d’abord un jeu de données raster composé de ces canaux spécifiques à l’aide de l’outil Canaux composites. Ensuite, utilisez le résultat comme valeur dans le champ Input Raster (Raster en entrée) (in_raster dans Python).

    Le format en sortie par défaut est un raster de géodatabase. Si le format en sortie est une pile de grilles Esri, le nom de la pile ne peut pas commencer par un chiffre, contenir des espaces ni comporter plus de neuf caractères.

  • Pour effectuer une extraction selon un polygone dans une classe d’entités au lieu de fournir une série de paires x,y, vous pouvez utiliser l’outil Extraction par masque.

  • L'objet polygone peut se composer d'une seule partie ou de plusieurs parties, comme une classe de polygones. Dans le dernier cas, toutes les parties de polygone doivent être contiguës afin d'être entourées par un polygone. Pour effectuer une extraction en fonction d’une entité surfacique qui contient plusieurs parties déconnectées, utilisez l’outil Extraction par masque.

  • Le centre de la cellule permet de déterminer si une cellule est à l'intérieur ou à l'extérieur d'un polygone. Si le centre se trouve dans l'arc du polygone, on considère que la cellule entière se trouve à l'intérieur, même si ses proportions débordent de ce polygone.

  • Le polygone est limité à 1 000 sommets. Les sommets du polygone doivent être saisis dans le sens des aiguilles d'une montre. Le premier sommet doit être identique au dernier sommet pour fermer le polygone. Ceci est particulièrement important si plusieurs polygones doivent être utilisés. Dans ce cas, si le dernier point de chaque polygone n'est pas identique au sommet de départ, les polygones peuvent être fermés automatiquement en établissant directement une connexion avec le dernier sommet. Soyez toutefois prudent si vous adoptez cette approche, car le résultat obtenu risque d'être différent de vos attentes.

    Les arcs du polygone peuvent s'entrecroiser, mais les polygones déformés ne sont pas recommandés.

  • La valeur NoData est attribuée aux emplacements de cellule qui ne sont pas sélectionnés.

  • Si le raster en entrée est un nombre entier, le raster en sortie sera un nombre entier. Si l'entrée est à virgule flottante, la sortie sera également à virgule flottante.

  • 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.

Paramètres

ÉtiquetteExplicationType de données
Raster en entrée

Raster en entrée à partir duquel les cellules seront extraites.

Raster Layer
Polygone

Polygone (ou plusieurs polygones) définis par une série de sommets (coordonnées x,y) qui désignent la surface du raster en entrée à extraire. La dernière coordonnée d'une partie de polygone doit être la même que la première pour fermer un polygone.

Lorsque vous indiquez plusieurs polygones, ils doivent être contigus. Saisissez la série de coordonnées, polygone par polygone. Veillez à fermer chaque partie en définissant la dernière coordonnée comme étant la même que la première.

Les points sont spécifiés dans les mêmes unités de carte que le raster en entrée.

Point
Zone d'extraction
(Facultatif)

Détermine l'extraction des cellules à l'intérieur ou à l'extérieur du polygone en entrée.

  • IntérieurLes cellules situées à l’intérieur du polygone en entrée sont sélectionnées et écrites dans le raster en sortie. Toutes les cellules situées à l'extérieur du polygone adoptent les valeurs NoData sur le raster en sortie.
  • ExtérieurLes cellules situées à l’extérieur du polygone en entrée sont sélectionnées et écrites dans le raster en sortie. La valeur NoData est attribuée à toutes les cellules situées à l'intérieur du polygone.
String

Valeur renvoyée

ÉtiquetteExplicationType de données
Raster en sortie

Raster en sortie contenant les valeurs de cellule extraites du raster en entrée.

Raster

ExtractByPolygon(in_raster, polygon, {extraction_area})
NomExplicationType de données
in_raster

Raster en entrée à partir duquel les cellules seront extraites.

Raster Layer
polygon
[point,...]

Un polygone (ou plusieurs) qui définit la surface du raster en entrée à extraire.

Chaque partie d’un polygone est une liste de sommets définie par des classes Point. Les points sont spécifiées en paires de coordonnées x,y dans les mêmes unités de carte que le raster en entrée.

La forme de l'objet pour un polygone simple est la suivante :

  • [point(x1,y1), point(x2,y2), ..., point(xn,yn), point(x1,y1]

Éventuellement, vous pouvez spécifier un groupe de plusieurs polygones à l’aide d’une classe Polygon pour définir une liste de parties de polygone. Notez que dans ce cas, toutes les parties doivent être contiguës et par conséquent être englobées dans une seule forme de périmètre. La forme de l'objet dans ce cas se trouve dans une liste contiguë comme suit :

  • [point(x1,y1), point(x2,y2), ..., point(xn,yn), point(x1,y1), point(x'1,y'1), point(x'2,y'2), ..., point(x'n,y'n), point(x'1,y'1), ...]

Dans tous les cas, la dernière coordonnée de chaque partie de polygone doit être la même que la première pour réaliser la fermeture.

Point
extraction_area
(Facultatif)

Détermine l'extraction des cellules à l'intérieur ou à l'extérieur du polygone en entrée.

  • INSIDELes cellules situées à l’intérieur du polygone en entrée sont sélectionnées et écrites dans le raster en sortie. Toutes les cellules situées à l'extérieur du polygone adoptent les valeurs NoData sur le raster en sortie.
  • OUTSIDELes cellules situées à l’extérieur du polygone en entrée sont sélectionnées et écrites dans le raster en sortie. La valeur NoData est attribuée à toutes les cellules situées à l'intérieur du polygone.
String

Valeur renvoyée

NomExplicationType de données
out_raster

Raster en sortie contenant les valeurs de cellule extraites du raster en entrée.

Raster

Exemple de code

Premier exemple d'utilisation de l'outil ExtractByPolygon (fenêtre Python)

Cet exemple décrit l'extraction des cellules d'un raster selon les coordonnées du polygone que vous avez indiquées.

import arcpy
from arcpy import env
from arcpy.sa import *
polyPoints = [arcpy.Point(743050, 4321275), arcpy.Point(743100, 4321200), 
             arcpy.Point(743500, 4322000),arcpy.Point(742900, 4321800)]
env.workspace = "C:/sapyexamples/data"
extPolygonOut = ExtractByPolygon("soil", polyPoints, "INSIDE")
extPolygonOut.save("c:/sapyexamples/output/extpoly")
Deuxième exemple d'utilisation de l'outil ExtractByPolygon (script autonome)

Cet exemple décrit l'extraction des cellules d'un raster selon les coordonnées du polygone que vous avez indiquées.

# Name: ExtractByPolgyon_Ex_02.py
# Description: Extracts the cells of a raster based on a polygon.
# 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"

# Set local variables
inRaster = "soil"
polyPoints = [arcpy.Point(743050, 4321275), arcpy.Point(743100, 4321200), 
             arcpy.Point(743500, 4322000),arcpy.Point(742900, 4321800)]

# Execute ExtractByPolygon
extPolygonOut = ExtractByPolygon(inRaster, polyPoints, "INSIDE")

# Save the output 
extPolygonOut.save("c:/sapyexamples/output/extpoly02")

Rubriques connexes