ジオプロセシング サービスの例:河川ネットワーク
フォルダ |
StreamNet |
目的 |
流量データと累積データから河川ネットワークを作成します。 |
サービス |
|
ジオプロセシング タスク |
Create Stream Network |
入力 |
ヘクタール単位の最小上流域 |
出力 |
河川ネットワーク |
データ |
デジタル標高データ(ラスタ)と Spatial Analyst チュートリアル内の他のデータ |
エクステンション |
Spatial Analyst |
備考 |
結果マップ サービスを使用してネットワークを描画します。 |
対応するフォルダ
この例のデータは、ArcGIS.com からダウンロードできます。ダウンロードしたら、その zip ファイルを C:\arcgis\ArcTutor\ に解凍します。GP Service Examples\StreamNet フォルダに、完全なモデルとデータが含まれています。
Create Stream Network タスクについて
Create Stream Network タスクの主な目的は、カートグラフィック表示のための河川ネットワークを作成することです。次に示すのは、調査地域(バーモント州ストウ)の陰影起伏を参照マップとして使用した 2 つの結果です。このサービスは、ユーザにさまざまなネットワークを作成してもらい、それぞれのカートグラフィックのニーズに合ったものを選択できるようにします。
タスクは最小面積によって定義された河川ネットワークを作成します。面積が小さければ小さいほど、作成される河道部分が増えます。各河道部分には、上流河道部分の数に基づいて河川次数値が割り当てられ、この値を使用して、各河道部分を表示するためのラインの太さが決定されます。
作成される河道部分の数は、使用される最小面積によって決まります。1 ヘクタールの入力を使用すると、約 32,000 の河道部分が作成されます。45 ヘクタールの場合、約 600 の河道部分が作成されます。
ジオプロセシング サービスの作成時には、サービスからクライアントに返すことができるレコードとフィーチャの最大数を決定する必要があります。デフォルトは 1,000 ですが、この数は数十億まで増やすことができます。ただし、Web 経由で大量のフィーチャを転送すると、コストと時間がかかります。大量のフィーチャを出力する可能性があるサービスの場合は、結果マップ サービスを使用して結果のマップを作成し、フィーチャではなくそのマップを ArcGIS for Server を利用して Web 経由で転送することを検討してください。Create Stream Network タスクによって作成される河道部分の数は、最小流域、カスタム データに置き換えるかどうか、調査地域の面積と地形によって決まります。そこで、このサンプルでは、Web 経由でクライアントにフィーチャを転送するのでなく、結果マップ サービスを使って結果を描画します。
準備作業
マップ サービスとジオプロセシング サービスを公開する前に、GIS サーバ接続を確立する必要があります。
GIS サーバ接続の設定
公開者接続を設定する必要があり、これによって、ArcGIS for Server を使用して公開できるようになります。
- カタログ ウィンドウで、GIS サーバ ノードに移動し、[ArcGIS Server サーバの追加] をダブルクリックします。
- [GIS サービスを公開する] を選択し、[次へ] をクリックします。
- GIS サーバの [サーバの URL] を入力します。たとえば、「http://myserver:6080/arcgis/」と入力します。ユーザ名とパスワードを入力して [完了] をクリックします。これで、カタログ ウィンドウの GIS サーバ ノードで、GIS サーバへの(公開者)接続が確立されました。
参照マップ
このサンプルの参照マップである StoweHillshade.mxd には、下図に示す Hillshade というレイヤが 1 つ含まれています。hillshade レイヤは 55% の透過率で描画されます。
StoweHillshade.mxd を、マップ サービスとして公開する必要があります。これは、ジオプロセシング サービスを使用するときに参照を提供します。
- 新しい ArcMap セッションを開始します。
- StoweHillshade マップ ドキュメントを開きます。
- [ファイル] メニューから、[共有] → [サービス] の順にクリックします。
- [サービスを公開] を選択し、[次へ] をクリックします。
- GIS サーバ接続を設定したときに確立した公開者接続を選択します。デフォルトの名前が選択された状態で、[次へ] をクリックします。
- [新規フォルダの作成] をクリックし、Stream を入力します。これによって、公開されるサービスを保持するフォルダが作成されます。
- [続行] をクリックして、[サービス エディタ] を起動します。
- [分析] ボタンをクリックします。エラーをすべて修正します。
データがサーバにコピーされることを示す警告メッセージと、レイヤがすべての縮尺範囲で描画されることを示すメッセージが表示されます。これらのメッセージは安全に無視できますが、必要な場合はカスタマイズしてください。
- [公開] ボタンをクリックすると、マップ サービスの公開が完了します。
モデルとツールのデータ
ジオプロセシング サービスのツールボックスは、[StoweStreamNet.tbx] です。サービスのソース マップ ドキュメントは、StoweStreamNet.mxd です。StoweStreamNet.mxd には、フロー方向(flowdir ラスタ)および累積流量(accumulation ラスタ)という 2 つのソース データ レイヤが含まれています。
カタログ ウィンドウから、StoweSteamNet マップ ドキュメントをダブルクリックして開きます。
モデルの概要
モデルをよく理解するには、[StoweStreamNet.tbx] ツールボックスを展開し、Create Stream Network モデルを右クリックして [編集] を選択します。以下に、Create Stream Network モデルを示します。入力変数は 1 つであり、ヘクタール単位の最小上流域です。この変数は double であり、河道部分を作成するために必要な最小流域です。面積が小さければ小さいほど、作成される河道部分が増えます。
このモデルは入力面積のラスタ セルの数を計算し、次に [Con] ツールを使用して Flow Accumulation ラスタ内の入力セルごとに if/else 条件評価を実行します。Flow Accumulation ラスタ内のセル値はセルに流れ込む上流セルの数なので、上流域が境界点よりも大きいセルが選択されます。選択されたセルは河道部分を形成し、出力ラスタで 1 が割り当てられます。
[河川次数ラスタの作成(Stream Order)] ツールは、[Con] ツールの出力など、線形ネットワークの分岐を表すラスタに順序を表す数値(次数)を割り当てます。一般に、次数が高い河川は流水量が多いため、次数を河川幅の代わりとして使用することができます。モデルの出力は、次数の高い部分ほど太いラインで描画されるようにシンボル表示されます。
[河川ラスタをフィーチャに変換(Stream to Feature)] ツールは、[Stream Order Raster] を出力ライン フィーチャクラスに変換します。このフィーチャクラスは、結果マップ サービスで定義されたシンボルを使用して、結果マップ サービスによって描画されます。
プロジェクト データ
累積流量変数とフロー方向変数は、ソース マップ ドキュメント(StoweStreamNet.mxd)のレイヤです。これらの変数はパラメータを持たない入力データであるため、プロジェクト データと呼ばれます。
最小面積のセル数の計算
すべてのラスタ データセットは、メートル単位の Vermont State Plane 投影座標です。セル サイズは 30 x 30 メートルです。ラスタの空間参照とセル サイズを決定するには、次のいずれかの手順を実行します。
- カタログ ウィンドウで、ラスタを右クリックしてから [プロパティ] をクリックします。
- ArcMap のコンテンツ ウィンドウでラスタ レイヤを右クリックして [プロパティ] をクリックし、[ソース] タブをクリックします。
[値の計算(Calculate Value)] ツールは、入力ヘクタールをヘクタール単位のセル サイズで割り(30 x 30 メートル = 900 平方メートル = 0.09 ヘクタール)、最小上流域のセル数を算出します。[値の計算(Calculate Value)] ツールのパラメータには変数置換を利用します。変数名をパーセント記号(%)で囲むことにより、変数の内容が値と置き換えられます。
Con プロセス
[Con] ツールを使用して、Flow Accumulation ラスタ内の入力セルごとに if/else 条件評価を実行します。
条件式で変数置換を利用することに注意してください。条件式では、最小セル数よりも値が大きいセルがすべて選択されます(Flow Accumulation ラスタ内のセルの値は個々のセルに流れ込むセルの数です)。
[条件式が TRUE のときの入力ラスタ、または定数値] パラメータは、選択された各セルに割り当てられる値であり、1 に設定されます。
河川次数ラスタの作成プロセス
[河川次数ラスタの作成(Stream Order)] ツールは、河川ネットワークの分岐を表すセルの数値を計算します。モデルの [河川次数ラスタの作成(Stream Order)] のパラメータ値は次のようになります。
出力ラスタには、河川を表すセルごとにシュリーブ河川次数が含まれます。
河川ラスタをフィーチャに変換プロセス
[河川ラスタをフィーチャに変換(Stream to Feature)] ツールは、Stream Order Raster に含まれる河道部分のシェープファイルを作成します。
出力シンボルの設定
- [StoweStreamNet.tbx] を展開し、Create Stream Network ネットワーク モデルをダブルクリックします。
- デフォルトの 45 ヘクタールを適用し、[OK] をクリックしてモデルを実行します。
- StreamNet レイヤが ArcMap に追加されます。
- StreamNet レイヤを右クリックし、[プロパティ] をクリックして [レイヤ プロパティ] ウィンドウを開きます。
- 次に、シンボルを等級ライン シンボルに変更します。[シンボル] タブをクリックして、適切なシンボルを設定します。
- [数値分類] カテゴリの下にある [等級シンボル] をクリックします。
- 値フィールドとして [GRID_CODE] を選択します。
- [分類] をクリックします。
- [分類手法] ダイアログ ボックスで、分類方式として [手動] を選択します。
- 100、250、500、750、および 10000 の区切りで手動分類を設定します。[閾値] パネルで、リストの最後の値をクリックします。この方法で、値を編集することができます。閾値のうちのいずれか(10000 など)を入力します。リストが更新されて、値が並べ替えられます。
- リストが次のようになるまで、閾値の編集と設定を繰り返します。
- [OK] をクリックします。[シンボル] タブは次のようになります。[テンプレート] をクリックし、河川を思わせる青を選択する必要があるかもしれません。
- [OK] をクリックします。
- StreamNet レイヤの凡例には、GRID_CODE が分類フィールドとして表示されますが、これはサービスのユーザにとってあまり意味をなしません。これを変更するには、凡例で [GRID_CODE] をクリックして F2 キーを押し、Shreve Order や Stream Order といったわかりやすいテキストに変更します。
公開
ジオプロセシング サービスを公開するには、以下の手順を実行します。
- [結果] ウィンドウで、Create Stream Network の結果を右クリックし、[共有] → [ジオプロセシング サービス] の順に選択します。
- [サービスを公開] を選択し、[次へ] をクリックします。
- GIS サーバ接続を設定したときに確立した公開者接続を選択します。[サービス名] を StoweStreamNet に変更し、[次へ] をクリックします。
- マップ サービスを公開したときに作成した Stream フォルダを [既存のフォルダを使用] ドロップダウン リストから選択し、[続行] をクリックして [サービス エディタ] を起動します。
- [分析] ボタンをクリックします。エラーがないようにしてください。エラーがある場合は、それらを修正してから次に進みます。
- [パラメータ] ページを開き、サービスのプロパティを設定します。
- [マップ サービスに結果を表示] チェックボックスをオンにします。これを設定すると、ジオプロセシング サービスから、フィーチャに加えて出力画像を取得できます。
- 必要に応じて、サービスを実行したときのツールの実行メッセージを表示するために、メッセージ レベルを Info に設定します。
- [公開] ボタンをクリックすると、ジオプロセシング サービスの公開が完了します。
サービスの使用
サービスを使用するには、ArcMap を開始し、確立済みのユーザ接続を使用して StoweHillshade マップ サービスを追加します。同じ GIS サーバ接続を使用して、StoweStreamNet ジオプロセシング サービスから Create Steam Network タスクを開きます。[Minimum upstream area in hectares] パラメータに値を指定し、タスクを実行します。Create Steam Network マップ サービスは、結果マップ サービスであるため、追加しないでください。
独自の河川ネットワーク タスクの設定
このチュートリアルに含まれるモデルで独自のデータを使用して、独自の河川ネットワーク タスク設定できます。独自のデータを使用してモデルを設定するには、[流向ラスタの作成(Flow Direction)] ツールと [累積流量ラスタの作成(Flow Accumulation)] ツールを使用してラスタ入力を事前に計算する必要があります。陰影起伏を作成する必要はありませんが、[陰影起伏(Hillshade)] ツールの出力は、河川ネットワークを効果的に描画するための参照マップを提供します。
入力ラスタが作成されたら、モデル内のそれらの入力を更新します。さらに、ユーザが数値を入力する際に使用する [Minimum upstream area in hectares] パラメータに、適切な範囲を追加することをお勧めします。ラスタに適した範囲を設定することによって、確実に正しい入力が得られます。
- モデルを右クリックし、[プロパティ] を選択します。
- [パラメータ] タブを選択し、[Minimum upstream area in hectares] パラメータの [フィルタ] という見出しの下の [なし] の値をクリックします。
- ドロップダウン リストから [範囲] を選択します。
- 最小値と最大値を入力し、[OK] をクリックして変更を適用します。
設定した最小値は、返されるフィーチャの数に影響を与える場合があります。作成するサービスが多数の河川(フィーチャ)を生成する可能性がある場合、公開時に [サーバが返すレコードの最大数] を増やす必要がある場合があります。あるいは、結果を描画する結果マップ サービスを使用してサービスを公開するため、この値を 0 に設定してフィーチャを返さないようにすることもできます。
公開前の最後の変更は、適切な閾値を分類シンボルに設定することに関連しています。閾値は調査地域のサイズに大きく依存しており、異なる閾値を試行してみる必要があります。多くの河川を作成する可能性のある大きな調査地域に対しては、大きな値の閾値の作成が必要になる場合があります。上記の「出力シンボルの設定」の手順に従ってください。