GP サービス:バッファ ポイント
フォルダ |
BufferPoints |
目的 |
ポイントの周囲にポリゴンを作成します。 |
サービス |
BufferService(ジオプロセシング サービス) |
ジオプロセシング タスク |
Buffer Points |
入力 |
ユーザがポイントをデジタイズします。 |
出力 |
ポリゴン |
データ |
なし |
エクステンション |
なし |
備考 |
すべてのサンプルの中で最も基本的なサービスです。 |
対応するフォルダ
データは C:\arcgis\ArcTutor\GP Service Examples\BufferPoints にあります。ここで説明する手順をすべて完了すると、このフォルダの内容が複製されます。
データの準備
ツール共有フォルダの作成
- ArcCatalog を起動します。
- 次の手順に従って、適当な場所に BufferPts という名前の新しいフォルダを作成します。
- 既存のフォルダを選択します。
- カタログ ツリーでフォルダを右クリックし、[新規作成] → [フォルダ] の順にクリックします。
- このフォルダの名前を BufferPts にします。
- カタログ ツリーで BufferPts を右クリックし、[新規作成] → [フォルダ] の順にクリックします。
- フォルダの名前を ToolData にします。
- カタログ ツリーで ToolData を右クリックし、[新規作成] → [ファイル ジオデータベース] の順にクリックします。
- このファイル ジオデータベースの名前を Schema にします。
- 同じ手順で、BufferPts 内に Scratch という名前のフォルダを作成します。Scratch フォルダ内に、Scratch という名前の新しいファイル ジオデータベースを作成します。
ツールボックスの作成
カタログ ツリーで、次の手順を実行します。
- BufferPts フォルダを右クリックします。
- [新規作成] → [ツールボックス] の順にポイントします。
- ツールボックスの名前を BufferService にします。
スキーマ フィーチャクラスの作成
ここで説明するモデルで使用する、フィーチャ セット変数のスキーマとして使用するポイント フィーチャが必要です。
- BufferPts/ToolData フォルダ内の Schema ジオデータベースを右クリックして [新規作成] → [フィーチャクラス] の順にクリックします。
- フィーチャクラスの名前を Points にします。
フィーチャ タイプを [ポイント フィーチャ] に設定します。
- [次へ] をクリックします。
- [次へ] をクリックします。
- [XY 許容値] のデフォルト値を適用し、[次へ] をクリックします。
- [コンフィグレーション キーワード] のデフォルト値を適用し、[次へ] をクリックします。
- [完了] をクリックします(フィーチャクラスはユーザ定義の属性を含んでいません)。
モデルの作成
次の手順に従って、ポイント フィーチャをバッファリングするための新しいジオプロセシング モデルを作成します。
- [BufferService] ツールボックスを右クリックし、[新規作成] → [モデル] の順にポイントします。[ModelBuilder] ウィンドウが表示されます。
- [バッファ(Buffer)] ツールを追加する手順
- [ModelBuilder] ツールバーの [追加] をクリックします。
- [データまたはツールの追加] ダイアログ ボックスで、[Toolboxes] → [System Toolboxes] → [Analysis Tools] → [近接] の順に選択します。
- [バッファ(Buffer)] をクリックして [追加] をクリックします(別の方法として、[バッファ(Buffer)] ツールを [ArcToolbox] ウィンドウ、検索 ウィンドウ、または カタログ ウィンドウから ModelBuilder キャンバスへドラッグできます)。ModelBuilder キャンバスの表示は次のようになります。
- ModelBuilder を使用するときには、エレメント(ツール、変数)の移動やサイズ変更が頻繁に必要になります。先の図では、出力変数の実際の名前は「出力フィーチャクラス」ですが、変数のサイズのせいで切詰められています。サイズを変更するには、出力変数をクリックし、小さな青い四角形の 1 つをクリック&ドラッグします。これにより、モデルは次のようになります。
- [バッファ(Buffer)] を右クリックし、[変数の作成] → [パラメータから] の順のポイントして、[入力フィーチャ] をクリックします。これにより、モデルは次のようになります。
- [入力フィーチャ] を右クリックして [プロパティ] をクリックします。[入力フィーチャ プロパティ] ダイアログ ボックスで [データ タイプ] タブをクリックします。
- [データ タイプを選択] ドロップダウン リストの [フィーチャ セット] を選択します。[インポートするスキーマとシンボル] ボックスで、パスを入力するか、上記の手順で作成したポイント フィーチャクラス Points を参照して選択します。
- [OK] をクリックします。[入力フィーチャ] 変数の色が青に変わります。
- [バッファ(Buffer)] を右クリックし、[変数の作成] → [パラメータから] の順のポイントして、[バッファの距離 [値、またはフィールドを指定]] をクリックします。新しいモデル変数が作成されます。
- 変数をクリック&ドラッグして、[入力フィーチャ] 変数の上に重ならないようにし、変数名が完全に表示されるようにサイズを変更する必要があるかもしれません。
- [バッファの距離 [値またはフィールドを指定]] 変数を右クリックして [名前の変更] をクリックします。変数の名前を「距離」に変更します。
- [距離] を右クリックして [プロパティ] を選択します。[距離プロパティ] ダイアログ ボックスで [データ タイプ] タブをクリックします。
- [データ タイプを選択] ドロップダウン リストの [距離単位] を選択します。
- [OK] をクリックします。
- [距離] をダブルクリックします(または右クリックして [開く] をクリックします)。距離を 1000 メートルに設定します。[距離] 変数の色が青に変わり、[出力フィーチャクラス] 変数の色が緑に変わります。これは、[バッファ(Buffer)] への必須入力がすべて指定されていることを示します。
- [出力フィーチャクラス] 変数([バッファ(Buffer)] の出力)を右クリックして [名前の変更] をクリックします。変数の名前を「出力ポリゴン」に変更します。
- [出力ポリゴン] をダブルクリックして、%scratchworkspace%\BufferedPoints.shp を入力します。
- [OK] をクリックします。
- [入力フィーチャ] を右クリックして [モデル パラメータ] を選択します。変数の横に P(パラメータを表す)が表示されます。
- [距離] を右クリックして [モデル パラメータ] を選択します。変数の横に P が表示されます。
- [出力ポリゴン] を右クリックして [モデル パラメータ] を選択します。変数の横に P が表示されます。
モデルは次のようになります。
- ModelBuilder のメイン メニューで [モデル] → [モデル プロパティ] の順にクリックします。
- [名前] を「BufferPoints」に設定します。
- [ラベル] を「Buffer Points」に設定します。
- [相対パスで保存] オプションをオンにします。
設定は次のようになります。
- [OK] をクリックします。
- ModelBuilder のメイン メニューで [モデル] → [上書き保存] の順にクリックします。[モデル] を再びクリックし、[閉じる] をクリックします。
モデルのテスト
ここでは、ArcMap を使ってモデルをテストします。サービスを公開する前に常にテストすることをお勧めします。
- ArcMap を起動し、データを追加してマップを作成するか、既存のマップ ドキュメントを開きます。
- ArcMap の [ジオプロセシング] メニューを使用して、[ジオプロセシング オプション] と [環境設定] の両方のダイアログ ボックスを開きます。
- 以下のように設定します。
- ジオプロセシング オプション:[ジオプロセシング処理の出力ファイルを上書き] チェックボックスをオンにします。
- ジオプロセシング オプション:[ジオプロセシング処理結果をマップに追加] チェックボックスをオンにします。
- 環境設定:[ワークスペース] カテゴリを展開して、[テンポラリ ワークスペース] を上記で作成したフォルダ BufferPoints\Scratch に設定します。
設定は次のようになります。
- ArcMap のカタログ ウィンドウで、ツール共有フォルダを選択して、先の手順で作成した [BufferService] ツールボックスを選択します。
- [Buffer Points] をダブルクリックします(必要に応じて [Buffer Points] を右クリックし、[開く] をクリックします)。[Buffer Points] ツール ダイアログ ボックスが表示されます
- [対話的にフィーチャを追加] をクリックして、バッファを発生させるためのポイント フィーチャを追加します。フィーチャは複数追加することができます。
- 必要に応じて、[距離] パラメータを変更します。
- [OK] をクリックします。
ツールの実行が開始されます。ツールの実行が完了すると、BufferedPoints という名前の新しいレイヤが ArcMap のコンテンツ ウィンドウに追加されます。
- ArcMap を終了します。変更内容を保存する必要はありません。
サービスの公開
ArcGIS Server にツールボックスを公開するには、ArcGIS Server への管理者アクセスの権限が必要です。サーバに接続するには、カタログ ツリーで [GIS Servers] エントリを展開し、[ArcGIS Server サーバの追加] をクリックします。ArcGIS Server システムのアカウントを設定して管理する立場にあるサーバ管理者に、アカウントを作成して管理者権限を割り当ててもらう必要があります。
ArcGIS Server への管理者アクセスを設定すれば、ツールボックスを公開する準備は万全です。
- ArcCatalog で [BufferService] ツールボックスを右クリックし、[ArcGIS Server で公開] をクリックします。
- [ArcGIS Server で公開] ダイアログ ボックスで、公開先のサーバを選択します。サービスの名前を「BufferService」に設定します(これはデフォルト名であり、ツールボックスの名前と同じです)。
- [次へ] をクリックします。
- [完了] をクリックします。
サービスの使用
ここでは、ArcMap で、作成したジオプロセシング サービスを使用します。
- ArcMap を起動し、選択したデータを追加するか、既存のマップ ドキュメントを開きます。
- ArcMap のカタログ ウィンドウで、[GIS Servers] の下のサーバ接続に移動します。
- サーバの下のジオプロセシング サービス [BufferService] を見つけて、[BufferService] を展開し、その中の [Buffer Points] タスクを表示します。
- [Buffer Points] タスクをダブルクリックします(必要に応じて [Buffer Points] を右クリックし、[開く] をクリックします)。[Buffer Points] タスク ダイアログ ボックスが表示されます[Buffer Points] ツール ダイアログ ボックス(上記を参照)とは異なり、モデルのテスト時は、このダイアログ ボックスに [出力ポリゴン] パラメータは表示されません。これは、ArcGIS Server が出力ポリゴンをサーバ上の場所(%scratchworkspace% によって定義される)に書き出すので、出力場所を指定する必要がないからです。
- [対話的にフィーチャを追加]()をクリックして、バッファを発生させるためのポイント フィーチャを追加します。フィーチャは複数追加することができます。
- 必要に応じて、[距離] パラメータを変更します。
- 必ず、次の手順を実行し、バックグラウンド プロセスをオフにしてプロセス ダイアログ ボックスが表示されるようにしてください。
- ArcMap で [ジオプロセシング] をクリックします。
- [ジオプロセシング オプション] を選択します。
- [バックグラウンド処理] の [有効化] チェックボックスがオンになっている場合は、オフにします。チェックボックスがオフになっている場合は、そのままの状態にしておきます。
- [OK] をクリックします。
- [ジオプロセシング] メニュー → [結果] の順にクリックして [現在のセッション] を展開し、[BufferPoints] エントリを展開します。出力、入力、環境、タスク実行のメッセージを表示できることに注目してください。ジオプロセシング ツールを実行した結果は常に [結果] ウィンドウに書き出されます。
タスクはほんの短時間で完了します。新しいレイヤが ArcMap のコンテンツ ウィンドウに追加されます。このレイヤの名前は Output Polygons [<時刻>_<日付>] になります。
次に、BufferService のプロパティを変更して Buffer Points タスクを再び実行し、これらのプロパティを変更した効果を確認します。このため、ArcMap を終了しないでおいてください。
サービス プロパティの変更
サービス プロパティを変更することにより、タスクの実行方法を制御することができます。
- カタログ ウィンドウで、BufferService ジオプロセシング サービスが含まれているサーバを選択します。
- [BufferService] を右クリックして [停止] をクリックします。プロパティを変更する前には、必ずジオプロセシング サービスを停止する必要があります。
- [BufferService] を右クリックして [サービス プロパティ] を選択します。
- [パラメータ] タブをクリックします。
変更可能なパラメータのうち、タスクの実行方法に影響をおよぼすパラメータは 3 つあります。次の手順に従って、これらのパラメータを変更し、[OK] をクリックして、サービスを開始します([BufferService] を右クリックして [開始] をクリックします)。ArcMap でタスクを再び実行し、効果を確認します。
実行タイプ
同期とは、サーバがタスクの実行を完了するまでクライアントが待機することを意味します。非同期とは、サーバがタスクを実行している間、クライアントが他の作業を行えることを意味します。同期モードを選択するのは、すばやく実行するタスクに限定してください。
BufferService には Buffer Points というタスクがあり、このタスクはすばやく実行されます。実行タイプを同期モードに変更し、サービスを再開した後、Buffer Points を再び実行します。同期実行の場合は、タスクの実行が完了するまで進捗ダイアログ ボックスが開いたままとなります。
サーバによって返されるレコードの最大数
入力する数値は、サーバからクライアントに転送できるレコードまたはフィーチャの最大数です。0 の値は、レコードを転送できないことを意味します。デフォルト値は 1000 です。サービスを停止した後、値を 0 に変更し、サービスを再開して Buffer Points を再び実行します。タスクが実行され、レイヤが作成されますが、最大数が 0 に設定されているのでフィーチャは存在しません。[結果] ウィンドウで結果を表示すると、[出力ポリゴン] に [<転送制限外のデータ>] が表示されます。
メッセージの表示
ジオプロセシング モデルは、モデル プロセスの実行中にメッセージを書き出します。これらのメッセージには、警告、エラー、その他の情報が含まれます。これらのメッセージには、サーバやローカル エリア ネットワーク上のデータへのパス名が含まれていることがあり、これらのデータへのパスをユーザに表示したくないことがあります。デフォルトでは、メッセージは表示されません。
[メッセージの表示] の横のチェックボックスをオンにしてサービスを再開し、Buffer Points を再び実行します。進捗ダイアログ ボックス(サービスを同期モードで実行している場合)と結果の両方にメッセージが表示されます。
サービスを開発してテストするときには、メッセージを常に表示することをお勧めします。