UNIX/Linux 環境用のタスクの作成
ArcGIS Server では、UNIX/Linux コンピュータのツールボックスに含まれているジオプロセシング ツールを実行することができ、ツールから UNIX/Linux コンピュータ上のデータを参照することができます。ただし、ツールを作成できるのは、Windows 上でのみ実行する ArcGIS Desktop に限られます。つまり、ツールボックスやマップ ドキュメントを Windows 上で作成した後、UNIX/Linux コンピュータにコピーする必要があります。次に、これらのリソースを ArcGIS Server に公開することができます。
UNIX/Linux 用のツールの作成
Unix/Linux 用のツールを作成するときの主な問題はパスです。Windows は、ローカル ディスクに対してドライブ文字規約(D:\ など)を使用し、LAN 上のリソースに対して UNC 規約(\\<ホスト>\<ディレクトリ> など)を使用します。UNIX/Linux は、パスに対して /<ホスト>/<ディレクトリ> のスラッシュ規約を使用します。ツールの作成とテストは Windows 上で実行するため、すべてのパスに Windows 規約を使用することになります。ツールを UNIX/Linux へ移動する前に、Windows のパスを UNIX/Linux のパスに変換する方法を決定する必要があります。そのための方法はいくつかあります。
- データの相対パスを使用します(パスの変換は必要ありません)。
- ArcMap レイヤを使用して、UNIX/Linux にコピーする前にパスを変換します。
- ArcGIS Server を利用して Windows の UNC パスを UNIX/Linux のパスに変換します。
- 上記の手法を組み合わせて使用します。
データの相対パスを使用する
最も簡単な方法は、ツール共有フォルダ構造を使用して、ツールが使用するすべてのデータを格納することです。次に、マップ ドキュメント、モデル ツール、スクリプト ツールのプロパティを相対パスで保存するように設定します。ツール共有フォルダを UNIX/Linux プラットフォームにコピーし、ArcGIS Server Manager を使用してサービスを公開します。サービス内のタスクを実行する際には、ツール共有フォルダを基準としてすべてのデータを検出することができます。
ArcMap レイヤを使用する
この方法では、ツール レイヤが含まれた ArcMap ドキュメントを公開します。モデル ツールとスクリプト ツールは、ArcMap のコンテンツ ウィンドウ内のレイヤとテーブルを使用します。マップ ドキュメントとツールボックスを UNIX/Linux にコピーする前に、次の作業を行います。
- ArcMap ドキュメントを開いて、データ ソースを相対パスで保存するオプションをオフにします。
- ArcMap で [ファイル] → [マップ ドキュメント プロパティ] の順に選択します。
- プロパティ ダイアログ ボックスで、[データ ソースを相対パスで保存] がオフになっていることを確認します。
- [OK] をクリックしてプロパティを保存したら、マップ ドキュメントを保存して終了します。
- カタログ ウィンドウでマップ ドキュメントを右クリックし、[データ ソースの設定] をクリックします。
- [データ ソースの設定] ダイアログ ボックスで、ツール レイヤのサブレイヤを含め、すべてのレイヤの UNIX/Linux パスを指定します(ツール レイヤのサブレイヤの変更は、結果マップ サービスを使用している場合にのみ必要です)。
- パスを設定した後、ダイアログ ボックスを閉じ、マップ ドキュメントとツールボックスを UNIX/Linux コンピュータにコピーします。
- サービスを公開するには、ツールボックスではなく、ツール レイヤを含むマップ ドキュメント を公開します。
ArcGIS Server を利用して Windows UNC パスを変換する
ジオプロセシング サービスが UNIX/Linux 上で実行される場合、Windows の UNC パス(\\host\)はすべて UNIX/Linux 規約(/host/)に変換されます。Windows のローカル パス(D:\)は変換されません。
そこで、Windows コンピュータに UNIX/Linux ディスク(/host/)をマウントし、Windows UNC パス(\\host\)を使用して、マウントされたディスク上のデータを参照します。次に、ドキュメントとツールボックスを UNIX/Linux コンピュータにコピーして公開します。
3 つの手法を組み合わせて使用する
これらの方法を組み合わせて使用することもできます。たとえば、データの一部をツールボックスを基準として格納し、ツールでは相対パスを使用することができます。ツールボックスを基準として格納されていないデータについては、データを参照する ArcMap ドキュメント内のレイヤを使用して、データをコピーする前にパスを変換することができます。
UNIX/Linux 環境での既知の制限
主な注意点はパスの変換ですが、UNIX/Linux 上で実行するサービスに関してさらに 2 つの注意点があります。それらは、100 文字の制限と、小文字のデータセット名です。次に、これらについて説明します。
GRID とカバレッジ パスの 100 文字の制限
次の 2 つのデータ形式には、パスにおいて文字数の制限があります。
- GRID(Esri ネイティブ ラスタ形式)
- カバレッジ(ArcInfo Workstation フィーチャ)
GRID またはカバレッジのパスは、100 文字を超えてはなりません。中間データと出力データはテンポラリ ワークスペースに書き出されるため、テンポラリ ワークスペースの合計文字数が 100 文字を超える可能性があります。
%scratchworkspace% の内容は次のようになります。
/disk/arcgisserver/arcgisjobs/drivetimepolygonsservice_gpserver/ jc01a0ddb3dc94455b8eb6629cf421798/scratch/
パスの一部 |
文字数 |
説明 |
---|---|---|
/disk/arcgisserver/arcgisjobs/ |
30 |
ジョブ ディレクトリ。ジョブ ディレクトリをセットアップするのは開発者またはシステム管理者なので、文字数を制御することができる。 |
drivetimepolygonsservice_gpserver/ |
34 |
サービス名(_gpserver は ArcGIS Server によって自動的に追加される)。サービスに名前を付けるのは開発者なので、文字数を制御することができる。 |
<フォルダ名> |
サービスを公開するときに、フォルダ名を指定することができる。このフォルダの名前がここに追加される。フォルダの名前に含まれる文字数は制御することができる。 |
|
jc01a0ddb3dc94455b8eb6629cf421798/scratch/ |
42 |
一意なジョブ ID と scratch フォルダ。ArcGIS Server によって定義されるため、制御することはできない。 |
合計 |
106 |
この表では、テンポラリ ワークスペースのパスは 106 文字であり、100 文字の制限を超えています。6 文字分を減らす必要があります。この例では、サービス名を drivetimepolygonsservice から dtpolys などの短いものに変更するのが最も簡単です。
小文字のデータセット名
GRID とカバレッジの名前は、UNIX/Linux では小文字でなければなりません。名前を小文字にする必要があるのは 2 つのデータセットだけですが、ディレクトリ名を含め、すべてのデータセット名に小文字を使用する習慣を身につけてください。