GP サービス サンプル: 高度な河川ネットワーク
フォルダ |
StreamNet2 |
目的 |
事前に計算された河川ネットワークをユーザがダウンロードし、独自の河川ネットワークを作成します。 |
サービス |
StoweStreamNetworksBasemap(マップ サービス)StoweStreamNetworkTasks(ジオプロセシング サービス) |
ジオプロセシング タスク |
Get Precomputed Stream Network、Create Stream Network。 |
入力 |
Get Precomputed Stream Network タスクではレイヤ名を入力します。Create Stream Network タスクでは最小上流域をヘクタール単位で入力します。 |
出力 |
河川ネットワーク |
データ |
デジタル標高データ(ラスタ)と Spatial Analyst チュートリアル内の他のデータ |
エクステンション |
Spatial Analyst |
備考 |
レイヤ シンボル ファイル(*.lyr)によって、クライアント アプリケーションでの出力河川ネットワークの描画方法を指定(「GP サービス: 集水域ラスタの作成(Watershed)」をご参照ください)。 |
対応するフォルダ
C:\arcgis\ArcTutor\GP Service Examples\StreamNet2 に完全なモデルとデータが含まれています。
このサンプルについて
このサービス サンプルは、「GP サービス サンプル: 河川ネットワーク」で作成した Create Stream Network タスクをベースにしています。「河川ネットワーク」サンプルで説明したように、このタスクは、カートグラフィック表示のための河川ネットワークを作成し、ユーザにさまざまなネットワークを作成してもらい、それぞれのカートグラフィックのニーズに合ったものを選択できるようにします。Create Stream Network タスクでは、結果マップ サービスを使って結果を表示しました。
このサンプルでは、河川ネットワーク フィーチャをクライアントに転送し、そこで表示します。フィーチャはクライアント アプリケーションに転送されるので、結果マップ サービスは必要ありません。このサービスには、計算済みのネットワークを取得するためのタスクと、新しいネットワークを作成するためのタスクが含まれています。
StoweStreamNetworksBasemap マップ サービスのコンテンツ ウィンドウと StoweStreamNetworkTasks ジオプロセシング サービスのジオプロセシング タスクの最終的な結果は次のようになります。
ベースマップ サービスでは、事前に計算された 10 ~ 15 ヘクタールまでの 5 つのネットワークを表示することができます。ジオプロセシング サービスは次の 2 つです。
- Get Precomputed Stream Network - 計算済みの河川ネットワークをユーザが選択すると、フィーチャが返されます。
- Create Stream Network - ユーザが上流域を入力すると、新しいネットワークが作成されます。このサービスは、「GP サービス サンプル: 河川ネットワーク」で説明した Create Stream Network タスクをわずかに修正したバージョンです。
ベースマップ
次に、StoweStreamNetworksBasemap.mxd のコンテンツ ウィンドウと、カタログ ビューの StoweStreamNetworkTasks ツールボックスを示します。
[Precompute a Stream Network] モデルを使用して、河川ネットワーク レイヤが 5 つ作成されています。これはユーティリティ ツールであり、ジオプロセシング サービスの一部ではありません。Precompute a Stream Network は Create Stream Network と似ていますが、次の点が異なります。
- 入力変数の名前は Area です。
- accumulation および flowdir ラスタ変数は、ArcMap のコンテンツ ウィンドウ内のレイヤではなく、ToolData フォルダ内のラスタ データセットを参照します。このため、ArcMap のコンテンツ ウィンドウにラスタ レイヤが存在しなくても、モデルを実行することができます。
- Stream Network 変数には、レイヤ シンボル ファイルが設定されます。
レイヤ シンボル ファイルを作成して使用する基本手順は次のとおりです。
- カタログ ウィンドウから Precompute a Stream Network モデルを実行します。ArcMap に新しいレイヤが追加されます。
- 新しいレイヤを右クリックして [プロパティ] をクリックし、[シンボル] タブをクリックします。
- [GRID_CODE] を値として使用し、シンボルを [等級シンボル] に変更します。[自然分類(Jenks)] 分類を使用します。
- コンテンツ ウィンドウでレイヤを右クリックして、[レイヤ ファイルとして保存] をクリックします。ToolData/Stream Network.lyr に保存します。
- Precompute a Stream Network モデルを編集します。
- Stream Network 出力変数を右クリックして [プロパティ] をクリックします。
- [プロパティ] ダイアログ ボックスで、[レイヤ シンボル] タブをクリックし、先ほど作成したレイヤ ファイルを入力します。
モデル
次に、StoweStreamNetworkTasks.mxd の内容を示します。
コンテンツ ウィンドウには、StoweStreamNetworksBasemap.mxd に含まれているものと同じ、計算済みの河川ネットワーク レイヤがあります。これらのレイヤは次の手順で作成されています。
- StoweStreamNetworksBasemap.mxd に含まれている河川ネットワークはそれぞれ ToolData ディレクトリにレイヤ ファイルとして保存されます。
- StoweStreamNetworkTasks.mxd で [データの追加] を使用して、作成した各レイヤ ファイルをコンテンツ ウィンドウに追加します。
Get Precomputed Stream Network モデルは、フィーチャ レイヤの内容をテンポラリ ワークスペースにコピーする単純なモデルです。
入力変数である Network to download は、フィーチャ レイヤ データ タイプです。タスクを実行すると、フィーチャベースのレイヤがすべて表示され、ユーザがその中の 1 つを選択します(ラスタ レイヤはフィーチャではないので表示されません。ArcGIS Server はツール レイヤとそれらのサブレイヤをフィーチャ レイヤのリストから自動的に除外するため、ツール レイヤ内のサブレイヤも表示されません)。元のフィーチャがテンポラリ ワークスペースにコピーされ、クライアントに返送されるときに、ToolData/Stream Network.lyr で定義されたシンボルを使って描画されます。
Create Stream Network タスクは「GP サービス サンプル: 河川ネットワーク」のものと同じですが、1 つだけ例外があり、出力変数 Stream Network の [レイヤ シンボル] プロパティが Stream Network.lyr に設定されます(下図を参照)。
公開
StoweStreamNetworksBasemap.mxd はマップ サービスとして公開されます。
StoweStreamNetworkTasks.mxd はジオプロセシング サービスとして公開されます。
- カタログ ウィンドウで、GIS サーバに移動して右クリックし、[新規サービスの追加] を選択します。サービスの名前として StoweStreamNetworkTasks を指定し、タイプとして [Geoprocessing Service] を選択します。
- [次へ] をクリックします。
- サービスのソースとして StoweStreamNetworkTasks.mxd を選択します。
- [サーバから返される最大レコード数] を 10000 に変更します。これを変更する必要があるのは、結果を描画するための結果マップ サービスが存在せず、フィーチャがクライアントに返送されるためです。どのタスクも 1000 個以上のレコードを生成するので、レコードの数をデフォルトの 1,000 のままにしておくと、タスクによって完全なデータセットが返されません。
- テストのために [メッセージの表示] をオンにします。
- [次へ] をクリックします。ここからは、ウィザードによって提供されるデフォルト値を使用することができます。
使用
サービスを使用するには、ArcMap を空のドキュメントで開始し、StoweStreamNetworksBasemap マップ サービスと StoweStreamNetworkTasks ジオプロセシング サービスを追加します。両方のタスクを開いて実行します。どちらか一方のタスクから結果が得られない場合は、[サーバから返される最大レコード数] パラメータが上記のような大きな数に設定されていないことが原因と考えられます。
範囲フィルタの使用
モデル ツール パラメータでは、パラメータ値の整合チェックに使用されるフィルタを設定することができます。[Create Stream Network] タスク の場合は、範囲フィルタを使って [Minimum upstream area in hectares] パラメータの整合チェックを行うことができます。最小面積が 5 ヘクタールに満たない場合は河道部分が無数に作成され、(少なくともカートグラフィック表示には)使用できない出力が生成されます。フィルタを使用して、値が 5 ヘクタール未満の場合は処理を実行できないようにします。
次の手順に従って、範囲フィルタを設定します。
- カタログ ウィンドウで、[Create Stream Network] ツールを右クリックして [プロパティ] をクリックします。あるいは、ModelBuilder で [Create Stream Network] を開き、ModelBuilder のメイン メニューで [モデル] → [モデル プロパティ] の順にクリックします。
- [プロパティ] ダイアログ ボックスで、[パラメータ] タブをクリックします。
- [Minimum upstream area in hectare] パラメータの [フィルタ] セルをクリックして [範囲] を選択します。[範囲] ダイアログ ボックスが自動的に開きます。
- [範囲] ダイアログ ボックスに、最小値と最大値を入力します。
[Create Stream Network] モデルでこの変更を行った後、この変更を有効にするには、サービスを再起動する必要があります。
これらの変更により、5 未満の値が入力されると、タスクはエラー メッセージを表示するようになります。ユーザにメッセージが表示されるようにするには、サービスの [メッセージの表示] がオンになっている必要があります。