Mit Polygon extrahieren (Spatial Analyst)

Zusammenfassung

Extrahiert die Zellen eines Rasters basierend auf einem Polygon durch Festlegung der Stützpunkte des Polygons.

Vorversion:

Dieses Werkzeug ist veraltet und wird in einer zukünftigen Version entfernt.

Das Werkzeug Nach Maske extrahieren bietet eine erweiterte Funktionalität und Performance.

Abbildung

Darstellung "Nach Punkten extrahieren"
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")

Verwendung

  • Zusätzliche Attribute aus dem Eingabe-Raster, sofern vorhanden, werden unverändert in die Attributtabelle des Ausgabe-Rasters übernommen. Je nach Eigenschaft, die erfasst wird, müssen einige der Attributwerte möglicherweise neu berechnet werden.

  • Wenn ein Multiband-Raster als Eingabe-Raster-Wert (in_raster in Python) angegeben wird, werden alle Bänder verwendet.

    Wenn eine Auswahl von Bändern aus einem Multiband-Raster verarbeitet werden soll, erstellen Sie zunächst mit dem Werkzeug Bänder zusammensetzen ein Raster-Dataset, das aus den betreffenden Bändern besteht. Verwenden Sie dann das Ergebnis als Eingabe-Raster-Wert (in_raster in Python).

    Das Standardausgabeformat ist ein Geodatabase-Raster. Wenn ein Esri Grid Stack als Ausgabeformat angegeben wurde, beachten Sie, dass der Stack-Name nicht mit einer Zahl beginnen, keine Leerzeichen enthalten und nicht mehr als 9 Zeichen aufweisen darf.

  • Um in einer Feature-Class eine Extraktion auf der Grundlage eines Polygons vorzunehmen, statt eine Reihe von XY-Paaren bereitzustellen, können Sie das Werkzeug Nach Maske extrahieren verwenden.

  • Das Polygonobjekt kann als Polygonklasse aus nur einem oder aus mehreren Teilen bestehen. Im letzteren Fall müssen alle Polygonteile zusammenhängend sein, damit ein Umriss aus einem Polygon gebildet werden kann. Um basierend auf einem Polygon-Feature zu extrahieren, das mehrere unverbundene Teile enthält, verwenden Sie das Werkzeug Nach Maske extrahieren.

  • Der Mittelpunkt der Zelle wird verwendet, um zu bestimmen, ob eine Zelle innerhalb oder außerhalb eines Polygons liegt. Wenn sich der Mittelpunkt innerhalb der Bögen des Polygons befindet, gilt die Zelle als vollständig innerhalb, auch wenn Teile der Zelle außerhalb des Polygons liegen.

  • Für das Polygon gilt eine Obergrenze von 1.000 Stützpunkten. Polygonstützpunkte müssen nacheinander im Uhrzeigersinn eingegeben werden. Der erste und letzte Stützpunkt sollten identisch sein, damit das Polygon geschlossen wird. Dies ist besonders wichtig, wenn mehrere Polygone verwendet werden sollen. In diesem Fall können Polygone durch die direkte Verbindung mit dem ersten Stützpunkt automatisch geschlossen werden, wenn der letzte Punkt für jedes einzelne Polygon nicht mit dem Startstützpunkt identisch ist. Da dies jedoch zu einem Ergebnis führen kann, das nicht Ihren Erwartungen entspricht, sollten Sie bei dieser Methode sorgfältig vorgehen.

    Die Bögen des Polygons können einander schneiden, gefaltete Polygone werden jedoch nicht empfohlen.

  • Zellenpositionen, die nicht ausgewählt wurden, wird der Wert "NoData" zugewiesen.

  • Bei einem ganzzahligen Eingabe-Raster ist auch das Ausgabe-Raster ganzzahlig. Wenn die Eingaben Gleitkommawerte sind, ist die Ausgabe ebenfalls ein Gleitkommawert.

  • Weitere Informationen zu den Geoverarbeitungsumgebungen für dieses Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Raster

Das Eingabe-Raster, aus dem Zellen extrahiert werden.

Raster Layer
Polygon

Ein Polygon (bzw. Polygone), das durch eine Reihe von Stützpunkten (XY-Punktkoordinaten), die den zu extrahierenden Bereich des Eingabe-Rasters bestimmen, definiert ist. Die letzte Koordinate eines Polygonteils sollte mit der ersten identisch sein sollte, um ein Polygon zu schließen.

Werden mehrere Polygone angegeben, müssen sie zusammenhängend sein. Geben Sie die Koordinaten jeweils Polygon für Polygon ein. Stellen Sie sicher, dass jeder Teil geschlossen wird, indem Sie die letzte Koordinate so festlegen, dass sie mit der ersten identisch ist.

Die Punkte werden in den gleichen Karteneinheiten angegeben wie das Eingabe-Raster.

Point
Zu extrahierende Fläche
(optional)

Gibt an, ob Zellen innerhalb oder außerhalb des Eingabepolygons extrahiert werden sollen.

  • InnerhalbDie Zellen innerhalb des Eingabepolygons müssen ausgewählt und in das Ausgabe-Raster geschrieben werden. Alle Zellen außerhalb des Polygons erhalten NoData-Werte im Ausgabe-Raster.
  • AußerhalbDie Zellen außerhalb des Eingabepolygons müssen ausgewählt und in das Ausgabe-Raster geschrieben werden. Alle Zellen innerhalb des Polygons erhalten NoData-Werte.
String

Rückgabewert

BeschriftungErläuterungDatentyp
Ausgabe-Raster

Das Ausgabe-Raster mit den Zellenwerten, die aus dem Eingabe-Raster extrahiert wurden.

Raster

ExtractByPolygon(in_raster, polygon, {extraction_area})
NameErläuterungDatentyp
in_raster

Das Eingabe-Raster, aus dem Zellen extrahiert werden.

Raster Layer
polygon
[point,...]

Ein Polygon (oder Polygone), das den Bereich des Eingabe-Rasters definiert, der extrahiert werden soll.

Jedes Polygonteil ist eine Liste von Stützpunkten, die durch Point-Klassen definiert sind. Die Punkte werden als XY-Koordinatenpaare in den gleichen Karteneinheiten angegeben wie das Eingabe-Raster.

Für ein einzelnes Polygon wird die folgende Form des Objekts verwendet:

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

Optional kann eine Gruppe aus mehreren Polygonen festgelegt werden, indem eine Polygon-Klasse angegeben wird, um eine Liste von Polygonteilen zu definieren. Beachten Sie, dass hierzu alle Teile zusammenhängend und somit von einem einzelnen Umfangs-Shape umfasst werden. In diesem Fall weist das Objekt die folgende Form einer zusammenhängenden Liste auf:

  • [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), ...]

In allen Fällen sollte die letzte Koordinate für jedes Polygonteil mit der ersten identisch sein, um es zu schließen.

Point
extraction_area
(optional)

Gibt an, ob Zellen innerhalb oder außerhalb des Eingabepolygons extrahiert werden sollen.

  • INSIDEDie Zellen innerhalb des Eingabepolygons müssen ausgewählt und in das Ausgabe-Raster geschrieben werden. Alle Zellen außerhalb des Polygons erhalten NoData-Werte im Ausgabe-Raster.
  • OUTSIDEDie Zellen außerhalb des Eingabepolygons müssen ausgewählt und in das Ausgabe-Raster geschrieben werden. Alle Zellen innerhalb des Polygons erhalten NoData-Werte.
String

Rückgabewert

NameErläuterungDatentyp
out_raster

Das Ausgabe-Raster mit den Zellenwerten, die aus dem Eingabe-Raster extrahiert wurden.

Raster

Codebeispiel

ExtractByPolygon – Beispiel 1 (Python-Fenster)

In diesem Beispiel werden Zellen auf Grundlage der definierten Polygonkoordinaten aus einem Raster extrahiert.

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")
ExtractByPolygon – Beispiel 2 (eigenständiges Skript)

In diesem Beispiel werden Zellen auf Grundlage der definierten Polygonkoordinaten aus einem Raster extrahiert.

# 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")

Verwandte Themen