Spatial Analyst のライセンスで利用可能。
サマリ
ポリゴンに基づいてラスターのセルを抽出します。
使用法
一連の X、Y の組の代わりに、フィーチャクラスのポリゴンに基づいて抽出するには、[マスクで抽出 (Extract By Mask)] ツールを使用します。
セルがポリゴンの内部か外部かを判定するには、セルの中心が使用されます。中心がポリゴンのアーク内にある場合、そのセルの一部がポリゴンの外にあっても、そのセル全体が内部にあると見なされます。
ポリゴンの頂点の上限は、1,000 です。ポリゴンの頂点は、時計回りの順番で入力する必要があります。複数のポリゴンを使用する場合は、各ポリゴンを閉じるために最初と最後の頂点が同じである必要があります。最後のポイントが同じでない場合、ポリゴンは自動的に閉じられます。ポリゴンのアークは他のアークと交差してもかまいませんが、複雑なポリゴンは推奨しません。
-
選択されていないセル位置には NoData 値が代入されます。
-
入力としてマルチバンド ラスターを指定すると、新しいマルチバンド ラスターが出力として作成されます。入力マルチバンド ラスターの各バンドは個別に解析されます。
デフォルトの出力形式は、ジオデータベース ラスターです。出力形式として Esri Grid スタックを指定した場合、名前を数字で開始すること、名前にスペースを使用すること、名前の長さが 9 文字を超えることはできません。
-
入力が、4 バンド以上のマルチバンド ラスターから作成したレイヤーである場合、抽出操作ではレイヤーによって読み込まれた (シンボル表示された) バンドだけが考慮されます。そのため、出力マルチバンド ラスターには、入力レイヤーの表示で使用されるバンドに該当する 3 つのバンドしか出力されません。
-
入力ラスターが整数の場合、出力ラスターも整数になります。入力のいずれかが浮動小数点値である場合、出力は浮動小数点値になります。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
ExtractByPolygon (in_raster, polygon, {extraction_area})
パラメータ | 説明 | データ タイプ |
in_raster | セルを抽出する入力ラスター。 | Raster Layer |
polygon [point,...] | 抽出する入力ラスターのエリアを定義するポリゴン。 それぞれのポリゴン パーツは、Point クラスによって定義される頂点のリストです。オプションで、Polygon クラスを使用して、ポリゴン パーツのリストを定義できます。 ポイントは、入力ラスターと同じマップ単位で、XY 座標で指定されます。オブジェクトの形式:
ポリゴンを閉じるため、最後の座標は最初の座標と同じである必要がありますので、注意してください。 | Point |
extraction_area (オプション) | 入力ポリゴンの内部と外部のどちらのセルを抽出するかを識別します。
| String |
戻り値
名前 | 説明 | データ タイプ |
out_raster | 入力ラスターから抽出したセル値が格納される出力ラスター。 | Raster |
コードのサンプル
ExtractByPolygon (ポリゴンで抽出) の例 1 (Python ウィンドウ)
次の例では、定義されたポリゴン座標に基づいて、ラスターからセルを抽出しています。
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 (ポリゴンで抽出) の例 2 (スタンドアロン スクリプト)
次の例では、定義されたポリゴン座標に基づいて、ラスターからセルを抽出しています。
# 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)]
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ExtractByPolygon
extPolygonOut = ExtractByPolygon(inRaster, polyPoints, "INSIDE")
# Save the output
extPolygonOut.save("c:/sapyexamples/output/extpoly02")
環境
ライセンス情報
- ArcGIS for Desktop Basic: 次のものが必要 Spatial Analyst
- ArcGIS for Desktop Standard: 次のものが必要 Spatial Analyst
- ArcGIS for Desktop Advanced: 次のものが必要 Spatial Analyst