再分類(Reclassify) (Spatial Analyst)
サマリ
ラスタの値を再分類(または変更)します。
使用法
-
入力ラスタには、有効な統計情報がなくてはなりません。統計情報が存在しない場合は、[データ管理ツール] ツールボックスの [統計情報の計算(Calculate Statistics)] ツールを使用して作成できます。
値の範囲を再分類する場合、その範囲は 2 つの入力範囲の境界以外で重なり合ってはいけません。入力範囲が重なり合う箇所では、より低い入力範囲の上限値はそれに含められ、より高い入力範囲の下限値はそれに含められません。
たとえば、2 つの範囲が指定され、値 1 ~ 5 を 100 として、値 5 ~ 10 を 200 として再分類した場合、出力において 5 未満の入力値と 5 に等しい入力値は値 100 に割り当てられ、5 より大きい入力値(5.01 など)は 200 に割り当てられます。
-
ツール ダイアログ ボックスを使用している場合は、[保存] ボタンを使用して、リマップ テーブルを保存できます。[保存] ボタンを使用して作成したリマップ テーブルは、[読み込み] ボタンを使用して開くことができます。
-
[再分類(Reclassify)] ツールで保存したテーブルだけを読み込むことをお勧めします。テーブルには固有の形式があり、FROM、TO、OUT、および MAPPING のフィールドを含んでいる必要があります。
-
デフォルトでは、入力ラスタは再分類テーブルに指定された 9 つのクラスに分類されます。
-
入力ラスタがレイヤの場合、再分類される元の値はレンダラから取得されます。レンダラがストレッチされている場合は、デフォルトで 255 クラスに再分類されます。
-
再分類のリマップ テーブルが変更されていると、新しい入力ラスタを選択したときに値が更新されません。再分類が新しいラスタに適切でない場合は、デフォルトの再分類を次の方法で再初期化できます。
- 再分類フィールドで値を編集するか新しい値を選択します。
- ツールを再起動します。
-
このツールは精度管理を行い、小数点の処理方法を管理します。
-
[再分類(Reclassify)] ツールをモデルの一部として使用する場合は、次の点に注意してください。
- このツールへの入力が、まだ実行されていないツールの出力データである場合は、先に必要なツールを実行してモデルを検証するまで、[再分類(Reclassify)] ツールのリマップ パラメータは空になります。これを避けるには、常に必要なツールを先に実行してから、これらのツールの出力変数を [再分類(Reclassify)] ツールへの入力として渡します。または、エントリを追加してカスタム再分類テーブルを作成することもできます。
- 再分類テーブルをモデル パラメータとして公開する場合は、再分類フィールドを変数として公開する必要があります。ただし、モデル パラメータとして設定する必要はありません。フィールドを変数として公開していない場合、モデル ツールのダイアログ ボックスで分類と個別値のボタンが無効になります。
構文
パラメータ | 説明 | データ タイプ |
in_raster |
再分類対象の入力ラスタ。 | Raster Layer |
reclass_field |
再分類する値を指定するフィールド。 | Field |
remap |
Remap オブジェクトを使用して、入力ラスタの値を再分類する方法を指定します。 出力ラスタで値を再分類する方法は、RemapRange と RemapValue の 2 つの方法で定義できます。入力値の範囲を 1 つの新しい出力値に割り当てるか、個々の値を新しい出力値に割り当てることができます。 リマップ オブジェクトの形式は次のとおりです。
| Remap |
missing_values (オプション) |
再分類テーブルに指定されていない値を、元の値のままにするか、NoData に変更するかを指定します。
| Boolean |
戻り値
名前 | 説明 | データ タイプ |
out_raster |
出力再分類ラスタ。 出力は常に整数タイプになります。 | Raster |
コードのサンプル
次の例は、ラスタを再分類するさまざまな方法を示しています。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outReclass1 = Reclassify("landuse", "Value",
RemapValue([[1,9],[2,8],[3,1],[4,6],[5,3],[6,3],[7,1]]))
outReclass1.save("C:/sapyexamples/output/landuse_rcls")
outReclass2 = Reclassify("slope_grd", "Value",
RemapRange([[0,10,"NODATA"],[10,20,1],[20,30,2],
[30,40,3],[40,50,4],[50,60,5],[60,75,6]]))
outReclass2.save("C:/sapyexamples/output/slope_rcls")
outReclass3 = Reclassify("pop_density", "Value",
RemapRange([[10,10,1],[10,20,2],[20,25,3],
[25,50,4],[50,]]), "NODATA")
outReclass3.save("C:/sapyexamples/output/popden_rcls")
この例は、文字列フィールドの値に基づいて入力ラスタを再分類します。
# Name: reclassify_example02.py
# Description: Reclassifies the values in a raster.
# 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 = "landuse"
reclassField = "LANDUSE"
remap = RemapValue([["Brush/transitional", 0], ["Water", 1],["Barren land", 2]])
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute Reclassify
outReclassify = Reclassify(inRaster, reclassField, remap, "NODATA")
# Save the output
outReclassify.save("C:/sapyexamples/output/outreclass02")