入力バリア設定を含むコンター(Contour with Barriers) (3D Analyst)
サマリ
ラスタ サーフェスからコンターを作成します。バリア フィーチャを含めることで、バリアの両側にコンターを独立して作成できます。
使用法
-
現在のバージョンの [入力バリア設定を含むコンター(Contour with Barriers)] ではポリライン出力だけがサポートされています。ポリゴン出力オプションを使用した場合は、無視されて、ポリライン出力が作成されます。
Spatial Analyst を使用できる場合、正確さには劣るにしても滑らかなコンターを作成したい場合には、[フォーカル統計(Focal Statistics)] ツールの [MEAN] オプションを使用するか、[フィルタ(Filter)] ツールの [LOW] オプションを使用して、入力ラスタを事前処理します。
-
コンターは、ラスタのセル サイズの半分の距離だけラスタの NoData セル内に延長されます。これは、単一の NoData セル上にもコンターが生成されることを意味します。ただし、3 x 3 のセル枠が NoData の場合、コンターはこの枠内にはセル サイズの半分の距離だけしか延長されません。
-
出力コンター フィーチャクラスの Type フィールドの値は次のとおりです。
1 for contours 2 for indexed contours 3 for explicit contours
-
インデックス付きコンター間隔を使用して、追加のコンターを生成できます。出力フィーチャクラスでの Type 値は 2 になります。
-
ベース コンターは、たとえば、10 メートルから開始して、15 メートルおきにコンターを作成する場合に使用されます。この場合、10 がベース コンターとして使用され、15 がコンター間隔になります。コンターの値は 10、25、40、55 のようになります。
-
ベース コンターを指定しても、その値より上または下のコンターが作成されるのを防ぐことはできません。
-
コンター値を指定するテキスト ファイルには、以下の行を含めることができます。
- 行頭が数値でない行はすべて無視され、コメント行として扱われます。
- 値が 1 つの行は、明示的コンター値として扱われます。
- 値が 3 つの行は、ベース、コンター間隔、インデックスが指定されたコンターとして扱われます。
- 値が 4 つの行は、開始値、終了値、間隔、インデックスが指定されたコンターとして扱われます。
たとえば、ラスタの最小値が 102 で最大値が 500 の場合、次のようなテキスト ファイルは、
# contour values and ranges 122.75 485 500 5 12 4 100 99
次の値でコンターを作成します。
122.75 104, 204, 304, 404 103, 202, 301, 400, 499 485, 490, 495, 500 497
-
バリア ポリゴン フィーチャ内にラスタのセル値がある場合、コンター ラインはバリアで分割されます。ポリゴン フィーチャ内のセル値を無視する場合は、そのセルの値を NoData に変更してください。
-
入力ラスタ サーフェスが非常に大きい場合、または、多数の出力フィーチャが要求されている場合は、オペレーティング システムの一時ファイルの作成場所に大量の一時ファイルが作成されます。この結果としてなにか問題が発生した場合は、以下のいずれかを実行してください。
- 一時ファイルに使用できるディスク容量を増やします。
- 指定するコンターの数を減らします。または、コンターの範囲を分割して、各範囲を別々に処理し、各範囲の結果を組み合わせて最終結果を得ます。
- 入力データをセクション(タイル)に分けて処理し、個々の結果をマージして 1 つのデータセットにします。
出力コンター フィーチャには、[コンター アノテーション(Contour Annotation)] ツールを使用して、ラベルを付けることができます。
構文
パラメータ | 説明 | データ タイプ |
in_raster |
入力サーフェス ラスタ。 | Raster Layer |
out_contour_feature_class |
出力コンター フィーチャです。 | Feature Class |
in_barrier_features (オプション) |
入力バリア フィーチャです。 | Feature Layer |
in_contour_type (オプション) |
作成するコンターのタイプです。
現在のバージョンの [入力バリア設定を含むコンター(Contour with Barriers)] ツールではポリライン出力だけがサポートされています。ポリゴン出力オプションを使用した場合は、無視されて、ポリライン出力が作成されます。 | String |
in_contour_values_file (オプション) |
ベース コンター、コンター間隔、インデックス付きコンター間隔、明示的コンターの値もテキスト ファイルで指定できます。 | File |
explicit_only (オプション) |
明示的コンター値だけを使用します。ベース コンター、コンター間隔、インデックス付きコンター間隔は指定しません。
| Boolean |
in_base_contour (オプション) |
ベース コンター値。 入力ラスタの値の範囲全体をカバーするように、必要に応じてこの値の上下にコンターが生成されます。デフォルトは 0 です。 | Double |
in_contour_interval (オプション) |
コンター ライン間の間隔、または距離。 正の数値を指定できます。 | Double |
in_indexed_contour_interval (オプション) |
コンターがこの間隔でも生成され、出力フィーチャクラスではマークが付けられます。 | Double |
in_contour_list [in_explicit_contour,...] (オプション) |
コンターを作成する明示的値です。 | Double |
in_z_factor (オプション) | コンターを生成するときに使用する単位変換係数。デフォルト値は 1 です。 コンター ラインは、入力ラスタの Z 値に基づいて生成されます。これは、多くの場合、メートルまたはフィート単位です。デフォルト値が 1 の場合、コンターは入力ラスタの Z 値と同じ単位になります。Z 値と異なる単位でコンターを作成するには、Z 係数に適切な値を設定します。このツールでは、地表の X、Y 単位とサーフェスの Z 単位が一致する必要はありません。 たとえば、入力ラスタの標高値はフィート単位であるが、コンターはメートル単位で生成したい場合、Z 係数を「0.3048」に設定します(1 フィート = 0.3048 メートルであるため)。 | Double |
コードのサンプル
この例では、入力バリア フィーチャを使用し、ベースおよび間隔パラメータを指定して、Esri Grid ラスタからコンターを作成します。出力コンターは、シェープファイルにポリラインとして出力されます。
import arcpy from arcpy import env env.workspace = "C:/data" arcpy.ContourWithBarriers_3d("elevation", "C:/output/outcwb.shp", "elevation_barrier.shp", "POLYLINES", "", "", 0, 300)
この例では、入力バリア フィーチャを使用し、ベースおよび間隔パラメータを指定して、Esri Grid ラスタからコンターを作成します。出力コンターは、シェープファイルにポリラインとして出力されます。
# Name: ContourWithBarriers_3d_Ex_02.py # Description: Creates contours from a raster surface. The inclusion of # barrier features will allow one to independently generate contours on # either side of a barrier. # Requirements: 3D Analyst Extension # Import system modules import arcpy from arcpy import env # Set environment settings env.workspace = "C:/data" # Set local variables inRaster = "elevation" inBarrier = "elevation_barrier.shp" inTextFile = "" explicitValues = "NO_EXPLICIT_VALUES_ONLY" contourInterval = 200 contourList = "600; 935; 1237.4" baseContour = 0 outContours = "C:/output/outcwb.shp" # Check out the ArcGIS 3D Analyst extension license arcpy.CheckOutExtension("3D") # Execute Contour arcpy.ContourWithBarriers_3d(inRaster, outContours, inBarrier, "POLYLINES", inTextFile, explicitValues, baseContour, contourInterval, "", contourList, "")