GP サービス:集水域ラスタの作成(Watershed)
フォルダ |
Watershed |
目的 |
Spatial Analyst Extension を使用して、分水界ポリゴンを計算します。 |
サービス |
StoweBasemap(マップ サービス)、StoweHydro(ジオプロセシング サービス)。 |
ジオプロセシング タスク |
Create Watershed Polygon |
入力 |
ユーザが調査地域にポイントをデジタイズします。 |
出力 |
計算された分水界のポリゴンとスナップされた分水点。 |
データ |
デジタル標高データ(ラスタ)と Spatial Analyst チュートリアル内の他のデータ。 |
エクステンション |
Spatial Analyst。 |
対応するフォルダ
C:\arcgis\ArcTutor\GP Service Examples\Watershed に完全なモデルとデータが含まれています。ここで説明する手順をすべて完了すると、このフォルダの内容が複製されます。
データの準備
データ
このサンプルのデータは、C:\arcgis\ArcTutor\Spatial Analyst にあります。データはバーモント州の都市ストウのものです。この場所のコンテンツを次に示します。
ツール共有フォルダの作成
- ArcCatalogを起動します。
- 適当な場所に、Watershed という名前の新しいフォルダを作成します。Watershed フォルダ内に、ToolData フォルダと Scratch フォルダを作成します。Scratch 内に、Scratch という名前の新しいファイル ジオデータベースを作成します。
- C:\arcgis\ArcTutor\Spatial Analyst フォルダのコンテンツを ToolData にコピーします。
データの処理
このサービスでは、次の手順に従って、新しいラスタ データセットを 4 つ作成する必要があります。
- Dem_fill は、標高を入力として使用する [サーフェスの平滑化(Fill)] ツールの実行結果です。
- Hillshade は、dem_fill を入力として使用する [陰影起伏(Hillshade)] ツールの実行結果です。
- Flowdir は、dem_fill を入力として使用する [流向ラスタの作成(Flow Direction)] ツールの実行結果です。
- Accumulation は、flowdir を入力として使用する [累積流量ラスタの作成(Flow Accumulation)] ツールの実行結果です。
このサンプルのモデルはフィーチャセットを使用するため、フィーチャ セット スキーマとして使用するポイント フィーチャクラスが必要です。Stowe.gdb で、PourPoint という名前の新しいポイント フィーチャクラスを作成します。
- 座標系については、[ToolData] フォルダ内の既存のデータセットをインポートします。
- XY 許容値とコンフィグレーション キーワードにはデフォルト値を使用します。
ベースマップ
ベースマップには、Landuse(landuse ラスタ)、Hillshade(hillshade ラスタ)、Roads(Stowe.gdb/roads フィーチャクラス)の 3 つのレイヤが含まれています。3 つのレイヤが含まれたマップ ドキュメントを作成する必要があります。この ArcMap ドキュメントに StoweBasemap.mxd という名前を指定します。
hillshade レイヤは 55% の透過率で描画されます。透過率を変更するには、hillshade レイヤを右クリックして [プロパティ] を選択し、[表示] タブをクリックして、透過率を変更します。
StoweBasemap.mxd を作成して保存した後、マップ サービスとしてサーバに公開します。
- カタログ ウィンドウで、StoweBasemap.mxd を右クリックし、[ArcGIS Server で公開] をクリックします。
- 最初のパネルでは、サービスの名前を「StoweBasemap」(デフォルト)に設定します。
- [次へ] をクリックします。
- 必要なケーパビリティは [マッピング] だけです。このサービスでは、他のケーパビリティはすべてオプションです。
- [次へ] をクリックします。
- [完了] をクリックします。
StoweBasemap サービスをテストするには、ArcMap を空のドキュメントで開始し、[データの追加] をクリックしてサーバを選択し、[StoweBasemap] を選択します。
ツールボックスとマップ ドキュメント
- [Watershed] フォルダで、StoweHydro という名前の新しいツールボックスを作成します。
- ArcMap を新しいドキュメントで開始し、accumulation と flowdir ラスタをコンテンツ ウィンドウに追加し、レイヤの名前を「Flow Accumulation」と「Flow Direction」に変更します。上記の手順で作成した PourPoint フィーチャクラスを追加します。
- 必要に応じて、PourPoint のシンボルを赤のプラス記号に変更します。
[Flow Direction] レイヤと [Flow Accumulation] レイヤは公開されたタスクで使用されますが、ユーザには表示されません。したがって、これらのレイヤのシンボルは重要でありません。
次の手順に従って、ジオプロセシングのテンポラリ ワークスペース環境を Scratch フォルダに設定します。
- ArcMap で [ジオプロセシング] → [環境] の順にクリックします。
- [ワークスペース] カテゴリを展開します。
- 上記で作成したテンポラリ ワークスペースへのパス(E:\Watershed\Scratch など)を入力します。
- [OK] をクリックして変更を適用します。
- マップを StoweHydro.mxd として保存します。
モデルの作成
Create Watershed Polygon モデルの入力は、ユーザが指定したポイントです。分水界ポリゴンは各入力ポイントの出力です。さらに、ユーザが指定したポイントは、[流出点のスナップ ラスタの作成(Snap Pour Point)] ツールを使用して、最大累積流量のセルにスナップされます。スナップされたポイントも出力されます。
これらのモデルはマップ ドキュメント内のレイヤを利用するため、StoweHydro マップ ドキュメントを使用して、ArcMap でこれらのモデルを作成します。
次に、Create Watershed Polygon モデルを示します。
モデルの作成手順
- カタログ ウィンドウで、[StoweHydro] ツールボックスを右クリックして、[新規作成] → [モデル] の順に選択します。
ModelBuilder が開き、新しい空のモデルが表示されます。
- 次の手順に従って、フィーチャ セット データ タイプの変数を作成します。
- ModelBuilder キャンバスを右クリックして [変数の作成] をクリックします。
- データ タイプとして [フィーチャ セット] を選択します。
- [OK] をクリックします。
- 変数の名前を「Pour Point」に変更します。
- [Pour Point] を右クリックして [プロパティ] を選択します。[データ タイプ] タブをクリックします。スキーマのドロップダウン リストから [PourPoint] レイヤを選択します。
- [Pour Point] を右クリックして [モデル パラメータ] を選択します。[モデル パラメータ] の横にチェックマークが表示され、[Pour Point] 変数の横に P が表示されます。
- [流出点のスナップ ラスタの作成(Snap Pour Point)] ツールを [ArcToolbox] ウィンドウ、カタログ ウィンドウ、または検索ウィンドウにドラッグしてモデルに追加します。
- [流出点のスナップ ラスタの作成(Snap Pour Point)] を右クリックして、[スナップ距離] パラメータから変数を作成します。
- [スナップ距離] をダブルクリックして、[スナップ距離] を 250 メートルに設定します。[スナップ距離] をモデル変数にする必要はありませんが、モデル変数にすると、モデルを表示したときにスナップ距離が重要な変数であることがひと目でわかります。
- [流出点のスナップ ラスタの作成(Snap Pour Point)] をダブルクリックして、入力ラスタ パラメータを Pour Point に設定します。[流出点フィールド] パラメータが設定されていない場合は ObjectID に設定します。[入力累積ラスタ] パラメータを Flow Accumulation レイヤに設定します。
- [流出点のスナップ ラスタの作成(Snap Pour Point)] を右クリックし、[変数の作成] → [環境から] → [処理範囲] → [範囲] の順にクリックします。
- [範囲] 変数をダブルクリックして、[入力データのすべての領域] に設定します。
- [流出点のスナップ ラスタの作成(Snap Pour Point)] の出力名を「Pour Point Raster」に変更します。これは中間出力であり、モデルを実行した後に削除されます。[Pour Point Raster] を右クリックして [出力先を固定] をオンにします。
- [ラスタ → ポイント(Raster to Point)] ツールをモデルに追加します。[ラスタ → ポイント(Raster to Point)] をダブルクリックして、[入力ラスタ] パラメータを Pour Point Raster に設定します。[出力ポイント フィーチャ] パラメータを %scratchworkspace%\snapped_pour.shp に設定します。
- [ラスタ → ポイント(Raster to Point)] 出力変数の名前を「Output snapped pour point」に変更します。
- [Output snapped pour point] を右クリックして、[モデル パラメータ] に設定します。
- [集水域ラスタの作成(Watershed)] ツールをモデルに追加し、[入力流向ラスタ] パラメータに Flow Direction レイヤを使用します。[集水域ラスタの作成 (Watershed)] ツールの出力名を「Watershed raster」に変更します。Watershed ラスタは中間出力です。
- [Watershed raster] を右クリックし、[出力先を固定] を選択します。
- [ラスタ → ポリゴン(Raster to Polygon)] ツールをモデルに追加します。[入力ラスタ] パラメータを Watershed raster に設定します。[出力ポリゴン フィーチャ] パラメータを %scratchworkspace%\Watershed.shp に設定します。
- [ラスタ → ポリゴン(Raster to Polygon)] ツールの出力変数の名前を「Output Watershed」に変更します。
- [Output Watershed] を右クリックして、[モデル パラメータ] に設定します。
- ModelBuilder のメイン メニューで、[モデル] → [モデル プロパティ] の順にクリックします。
- [名前] を CreateWatershedPolygon に設定します。
- [ラベル] を Create Watershed Polygon に設定します。
- [相対パスで保存] をオンにします。
- モデルを保存して閉じます。
シンボル レイヤ ファイルの作成
ここでは、タスクの出力シンボルとして使用するレイヤ ファイルを作成します。
- カタログ ウィンドウで、[Create Watershed Polygon] ツールをダブルクリックして、ダイアログ ボックスを表示します。次のようなダイアログ ボックスが表示されます。(変数モデル パラメータの作成順序に応じて、ツール ダイアログ ボックス内のパラメータの順序が異なる場合があります。パラメータの順序はモデル ツールのプロパティで変更することができます。)
- [フィーチャの追加]()をクリックして、分水点を追加します。分水点の場所は、分水界のない山頂ではなく、渓谷でなければなりません。Create Watershed Polygon を実行した結果は次のようになります。
この図では、分水界ポリゴンが青色で、スナップされた分水点が小さな点で示されています(シンボルは異なる場合があります)。次の手順では、より適切なシンボルを作成し、このシンボルをレイヤ ファイル(*.lyr)として保存し、これらのレイヤ ファイルを使って出力変数のシンボルを定義します。
- snapped_pour レイヤのプロパティを開いて、シンボルを赤い X 印に設定します。
- Watershed レイヤのプロパティを開いて、塗りつぶしシンボルを水色に設定します。
- snapped_pour を右クリックし、[レイヤ ファイルとして保存] をクリックして、Stowe\ToolData\snapped_pour.lyr という名前で保存します。
- Watershed を右クリックし、[レイヤ ファイルとして保存] をクリックして、Stowe\Tooldata\Watershed.lyr という名前で保存します。
- Create Watershed Polygon モデルを編集します。
- [Output snapped pour point] 変数を右クリックして [プロパティ] をクリックします。プロパティ ダイアログ ボックスで [レイヤ シンボル] タブをクリックし、シンボル レイヤを snapped_pour.lyr に設定します。
- [Output Watershed] 変数でも同じ作業を行い、シンボル レイヤを watershed.lyr に設定します。
- モデルを保存して閉じます。
- コンテンツ ウィンドウから既存の snapped_pour レイヤと Watershed レイヤを削除します。
ツール レイヤの作成
- snapped_pour レイヤと Watershed レイヤをコンテンツ ウィンドウから削除していない場合は削除します。
- ツール レイヤを作成するには、ArcMap のコンテンツ ウィンドウに [Create Watershed Polygon] ツールをドラッグします。ツール レイヤにサブレイヤが表示される場合と表示されない場合があります。サブレイヤが表示されるのは、ツール レイヤの作成時にツールの出力が存在する場合です。
- ツール レイヤを右クリックし、[開く] をクリックします。ツールのダイアログ ボックスが表示されます。フィーチャ セット コントロールを使用して分水点を追加して、ツールを実行します。ツールを実行した後、ArcMap のコンテンツ ウィンドウ内の 2 つのサブレイヤが更新され、上記で作成したシンボル レイヤで定義したシンボルが表示されます。
- 最後に、PourPoint レイヤはもう必要ないので削除します。その前にレイヤをレイヤ ファイルとして保存し、再利用できるようにしてください。
- マップを StoweHydro.mxd という名前で保存し、ArcMap を終了します。
サービスの公開
先の手順では、StoweBasemap マップ サービスを公開しました。ここでは、StoweHydro ジオプロセシング サービスを公開します。StoweHydro サービスには [Create Watershed Polygon] タスクが含まれています。
- カタログ ウィンドウで、サーバに移動して右クリックし、[新規サービスの追加] を選択します。サービスの名前として StoweHydro を指定し、タイプとして [Geoprocessing Service] を選択します。
- [次へ] をクリックします。
- StoweHydro.mxd をジオプロセシング サービスのソースとして選択します。サービスをテストするので、[メッセージの表示] チェックボックスをオンにします。プロダクション環境では、メッセージを無効にしてもかまいません。
- [次へ] をクリックします。ここからは、ウィザードによって提供されるデフォルト値を使用することができます。
サービスの使用
- ArcMap を空のドキュメントで開始します。
- ArcGIS Server 接続から ArcMap のコンテンツ ウィンドウに StoweBasemap マップ サービスを追加します。
- ArcGIS Server 接続の [StoweHydro] ジオプロセシング サービスを展開して Create Watershed Polygon ツールを開きます。
- フィーチャ セット コントロールを使用して Create Watershed Polygon にポイントを追加し、[OK] をクリックしてタスクを実行します。タスクが完了すると、コンテンツ ウィンドウに出力レイヤが 2 つ表示されます。
- [結果] ウィンドウでタスクの結果を確認してください。