Spatial Analyst のライセンスで利用可能。
サマリー
頂点を指定したポリゴンに基づいて、ラスターのセルを抽出します。
図
使用法
一連の X,Y 座標の代わりに、フィーチャクラスのポリゴンに基づいて抽出するには、[マスクで抽出 (Extract By Mask)] ツールを使用します。
ポリゴン オブジェクトは、1 つのパートまたは複数のパート (ポリゴン クラス) から構成されます。後者の場合、1 つのポリゴン輪郭を描けるように、すべてのポリゴン パートが連続している必要があります。不連続な複数のパートを含むポリゴン フィーチャに基づいて抽出するには、[マスクで抽出 (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 クラスによって定義される頂点のリストです。ポイントは、入力ラスターと同じマップ単位で、X,Y 座標の組として指定されます。 単一ポリゴンのオブジェクトの形式は次のとおりです。
必要に応じて、Polygon クラスを使用してポリゴン パートのリストを定義することで、複数のポリゴンのグループを指定できます。これを実行するには、すべてのパートが連続していて、1 つの境界で囲まれるようにする必要があるので注意してください。この場合のオブジェクトの形式は、次のような連続リストになります。
すべての場合で、ポリゴンを閉じるため、各ポリゴン パートの最後の座標は、最初と同じ座標にする必要があります。 | 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 Desktop Basic: 次のものが必要 Spatial Analyst
- ArcGIS Desktop Standard: 次のものが必要 Spatial Analyst
- ArcGIS Desktop Advanced: 次のものが必要 Spatial Analyst