パスは、データおよびツールボックスを参照するために使用されます。ここでは、どのような種類のパスがあり、それらのパスが ArcGIS でどのように管理されるかなど、パス全般について詳しく説明します。
パスおよびパス名
パス
パスは、スラッシュで区切られた一連のディレクトリ名の後に、ディレクトリ名またはファイル名が指定されたものです。ディレクトリはフォルダーと同じです。
例 | 説明 |
---|---|
E:\Data\MyStuff | ディレクトリ名で終わっているパス。 |
E:\Data\MyStuff\roads.shp | ファイル名で終わっているパス。 |
システム パスとカタログ パス
ArcGIS では、カタログ パスまたは ArcCatalog パスという用語を使用します。カタログ パスは、ArcGIS のみが認識するパスです。たとえば、次のパスがあるとします。
D:\Data\Final\Infrastructure.gdb\EastValley\powerlines
powerlines という名前のフィーチャクラスが、ファイル ジオデータベース Infrastructure 内の EastValley フィーチャ データセット内にあります。Windows はファイル ジオデータベース内のフィーチャ データセットやフィーチャクラスを認識しないので、Windows オペレーティング システムでは、これは有効なシステム パスではありません。
ワークスペースとベース名
下図に示すように、カタログ パスは 2 つの部分 (ワークスペースとベース名) で構成されます。
スラッシュとバックスラッシュ
Windows の表記規則では、パスの区切り文字としてバックスラッシュ (円記号) (\) を使用します。UNIX システムではスラッシュ (/) を使用します。ArcGIS ではどちらを使用してもかまいません。スラッシュであっても、バックスラッシュであっても、該当するオペレーティング システムの表記法に変換されます。
Python でのバックスラッシュ
UNIX 関連のプログラミング言語 (Python や C 言語) では、バックスラッシュ (\) はエスケープ文字と見なされます。たとえば、\n は改行を表します。パスにはバックスラッシュが含まれるので、バックスラッシュがエスケープ文字として使用されないようにする必要があります。一般的な方法は、次のようにバックスラッシュをエスケープします。
the_path = "E:\\data\\telluride\\newdata.gdb\\slopes"
あるいは、次のように r 接頭辞を使用して、パスを Python の未処理文字列に変換する方法もあります。これは、バックスラッシュを無視するよう Python に指示します。
the_path = r"E:\data\telluride\newdata.gdb\slopes"
絶対パスと相対パス
絶対パス (フル パス)
絶対パス (フル パス) は、「D:」のように、ドライブ文字の後にコロンを付けます。
相対パス
相対パスは、現在のディレクトリからの相対的な位置を表します。相対パスでは、2 つの特殊な記号 (ドット (.) とダブルドット (..)) を使用して、現在のディレクトリと親ディレクトリを表すことができます。ダブルドットは、上位の階層へ移動するときに使用します。シングルドットは現在のディレクトリを表します。
たとえば、次のようなディレクトリ構造があり、Windows エクスプローラーを使用して D:\Data\Shapefiles\Soils へ移動したとします。このディレクトリへ移動した後で相対パスを使用すると、D:\Data\Shapefiles\Soils が現在のディレクトリになります (さらにここから別のディレクトリへ移動した場合は、その新しいディレクトリが現在のディレクトリになります)。現在のディレクトリは「ルート ディレクトリ」とも呼ばれます。
現在のディレクトリ (Soils) から Landuse ディレクトリへ移動するときは、Windows エクスプローラーの [アドレス] バーに次のように入力します。
..\Landuse
Windows エクスプローラーが D:\Data\Shapefiles\Landuse を参照します。D:\Data\Shapefiles\Landuse を現在のディレクトリとする場合の例をさらにいくつか紹介します。
パス | 結果 |
---|---|
.. | D:\Data\Shapefiles |
..\.. | D:\Data |
..\..\Final | D:\Data\Final |
. | D:\Data\Shapefiles\Landuse - 現在のディレクトリ。 |
.\..\Soils | D:\Data\Shapefiles\Soils |
..\..\.\Final\..\Shapefiles\.\Landuse | D:\Data\Shapefiles\Landuse |
ArcMap での絶対パスと相対パス
ArcMap、ArcScene、または ArcGlobe のドキュメントを作成するとき、パスが相対パスとして格納されるように指定できます。このオプションを設定するには、[ファイル] メニューを開いて [マップ ドキュメント プロパティ] をクリックします。ここで、絶対パスで格納するか、相対パスで格納するかを指定できます。
ドキュメントを相対パスで保存すると、そのドキュメントの保存場所 (現在のディレクトリ) を基準とする相対パス (ドットおよびダブルドット表記) に変換されます。たとえば、ドキュメントが D:\Maps\Posters\Newmap.mxd に格納され、レイヤーのうちの 1 つに含まれるデータが D:\Data\Final\Infrastructure.gdb\Streets である場合、Newmap.mxd に格納されるのは、..\..\Data\Final\Infrastructure.gdb\Streets です。
Newmap.mxd を再び開くと、ArcMap によって、保存されている相対パス (ドット/ダブルドット表記) が元の絶対パス表記へ変換され、レイヤーのデータ ソースとして表示されます。この変換では、常にマップ ドキュメント (現在のディレクトリ) が基準となります。
同じディスク上のパスのみが変換される
相対パスの場合、異なるディスク ドライブは指定対象になりません。つまり、ルート ディレクトリがドライブ D だとすると、相対パスを使用して E ドライブ上のディレクトリを参照することはできません。相対パスを使用してマップ ドキュメントを保存する場合、同じドライブ上のパスのみが変換され、保存されます。
モデル ツールでの絶対パスと相対パス
ArcMap のデータと同様、モデル ツールでもパスを相対パスとして保存できます。
相対パスで使用される現在のディレクトリは、そのツールのツールボックスがあるディレクトリです。相対パス オプションを選択した場合、パスが次の要素に変換され、保存されます。
- モデルのデータ
- モデルのグラフィックス画像
- モデルで使用するツール
- ツール メタデータおよびヘルプで参照されているファイル
- スタイルシート
- シンボルで使用するレイヤー ファイル (*.lyr)
- コンパイルされたヘルプ ファイル (*.chm)
相対パスとして保存するには、モデル ツールを右クリックして [プロパティ] をクリックし、[一般] タブをクリックします。下図のように、ダイアログ ボックスの下部にある [相対パスで保存] チェックボックスをオンにします。
同じディスク上のパスのみが変換される
相対パスの場合、異なるディスク ドライブは指定対象になりません。つまり、ルート ディレクトリがドライブ D だとすると、相対パスを使用して E ドライブ上のディレクトリを参照することはできません。相対パスを使用してモデルを保存する場合、同じドライブ上のパスのみが変換され、保存されます。
スクリプト ツールでの絶対パスと相対パス
[スクリプトの追加] ウィザードを実行すると、最初のウィンドウに、相対パスでの保存を指定するオプションが表示されます。このオプションを設定するには、スクリプト ツールを右クリックして [プロパティ] を選択し、[一般] タブをクリックする方法もあります。ダイアログ ボックスの下部にある [相対パスで保存] チェックボックスをオンにします。
相対パスで使用される現在のディレクトリは、そのツールのツールボックスがあるディレクトリです。相対パス オプションを選択した場合、パスが次の要素に変換され、保存されます。
- スクリプト
- デフォルト値プロパティで使用するデータセット
- ツール メタデータおよびヘルプで参照されているファイル
- シンボル プロパティで使用するレイヤー ファイル (*.lyr)
- コンパイルされたヘルプ ファイル (*.chm)
- スタイルシート
同じディスク上のパスのみが変換される
相対パスの場合、異なるディスク ドライブは指定対象になりません。つまり、ルート ディレクトリがドライブ D だとすると、相対パスを使用して E ドライブ上のディレクトリに移動することはできません。相対パスを使用してスクリプト ツールを保存する場合、同じドライブ上のパスのみが変換され、保存されます。
スクリプト内のパスは変換されない
スクリプトではドット表記やダブルドット表記を使用できません。たとえば、..\redlands.gdb\streets が相対パスであるため、次のスクリプトは正常に機能しません。
arcpy.AddField_management("..\redlands.gdb\streets", "ref_ID", "TEXT",
field_length=10)
相対パスと絶対パスの利点
絶対パスの利点は次のとおりです。
- ドキュメントまたはツールボックスをコンピューター上のどこにでも移動でき、同じドキュメントやツールを再び開いたときにデータを検出できます。
- 通常、ほとんどのパーソナル コンピューターではデータの場所が変わりません。つまり、パーソナル コンピューター上でデータを移動することはほとんどありません。このような場合は絶対パスが適しています。
- 他のディスク ドライブのデータを参照できます。
相対パスを使用する場合は次の調整が必要になります。
- マップ ドキュメントまたはツールボックスを移動する場合、参照先のデータも移動する必要があります。
- ドキュメント、ツールボックス、およびデータを他のユーザーへ配布するときは、相対パスを使用した方が便利です。相対パスを使用しない場合、配布元コンピューターと配布先コンピューターを同じディレクトリ構成にする必要があります。
たとえば、次のようなディレクトリ構成になっているとします。この例では、D:\Tools\Toolboxes\Toolbox1 は、D:\Tools\Scripts\MyScript.py を使用するスクリプト ツールを含んでいます。
D:\Tools\Toolboxes\Toolbox1 から異なるディスク (E:\Final\Toolbox1 など) にツールボックスを移動した場合、絶対パスを使用すると、ArcGIS が D:\Tools\Scripts\MyScript.py を検出し、すべてが正常に機能します。ただし、相対パスを使用した場合は、ArcGIS が目的のスクリプトを見つけられず、ツールが機能しません。ツールのダイアログ ボックスが表示されますが、スクリプトを特定できないため、ツールが実行時に失敗します。このツールのプロパティを開き、スクリプトの正しいパスを入力する必要があります。
一方、相対パスを使用する場合は、D:\Tools フォルダーを他のコンピューターへコピーするだけで、そのまま作業できます。絶対パスではこの方法を使用できません。別のユーザーがこのフォルダーを F:\NewTools にコピーした場合、そのコンピューター上には D:\Tools\Scripts\MyScript.py パスが存在しないためです。
サマリー
- 相対パスの場合、異なるディスク ドライブは指定対象になりません。
- (パーソナル コンピューター上のディスクなど) データを移動しない場合は、絶対パスが適しています。
- ドキュメントとデータを他のユーザーへ配布する場合は、相対パスが適しています。
- 相対パスではドット (.) 表記とダブルドット (..) 表記を使用します。Windows エクスプローラーおよび Windows コマンド プロンプトでは、この表記法を使用して相対パスを入力できます。
- ArcGIS では、ドット/ダブルドット表記を使用した相対パスを入力できません。相対パスはドキュメントまたはツールボックスに保存されます ([相対パスで保存] オプションをオンにした場合)。
- 相対パスは、現在のディレクトリ (ドキュメントまたはツールボックスの保存場所) が基準となります。
UNC パス
UNC は Universal (あるいは Uniform または Unified) Naming Convention の略称であり、コンピューター ネットワーク上のフォルダーやファイルへアクセスするための構文です。構文は次のとおりです。
\\<computer name>\<shared directory>\
このパス構造は、任意の数のディレクトリが続き、ディレクトリ名またはファイル名で終わることができ、たとえば次のようになります。
\\pondermatic\public\studyarea.gdb
\\omni\shared_stuff\wednesday\tools
コンピューター名の前には必ずダブル バックスラッシュ (\\) が付きます。
UNC では、コンピューター名はホスト名とも呼ばれます。
UNC パスにはいくつかルールがあります。
- UNC パスにはドライブ文字 (D など) を含めることができません。
- 共有ディレクトリより上のディレクトリは参照できません。
- ドキュメントおよびツールの [相対パスで保存] オプションは、UNC パスには適用されません。
ArcGIS では、パスが要求された場合、どの場所でも UNC パスを使用できます。これは、LAN でデータを共有する場合、特に役立ちます。いずれか 1 台のコンピューターにデータを保存しておけば、そのコンピューターの電源をオフにしたり、ネットワークから削除したりしない限り、そのコンピューターへのアクセス権を持っているすべてのユーザーが同じデータを使用できます。
Windows では、フォルダーを共有し、LAN 上の他のユーザーがそのフォルダーにアクセスできるように設定できます。ArcCatalog または Windows エクスプローラーで、フォルダーを右クリックして [共有とセキュリティ] をクリックし、表示されるダイアログ ボックスの指示に従います。
URL
URL は Uniform Resource Locator の略称であり、インターネット上でのドキュメントの場所を一意に指定します。URL の構成要素は次のとおりです。
- HTTP (Hypertext Transfer Protocol) や FTP (File Transfer Protocol) など、リソースにアクセスするためのプロトコル
- 通信先のホスト (サーバー)
- ホスト上のファイルのパス
例:
http://www.esri.com/products.html
Web ブラウザーのアドレス バーに「www.esri.com」と入力することができ、そのブラウザーは自動的に「https://」を追加します。ただし、https など、使用するプロトコルを明確に指定した方が確実です。
ArcGIS では、URL を使用できる場所が限られています。通常、URL を指定できるかどうか、URL が必要かどうかが画面に表示されます。ArcGIS で URL を使用するときに、www.esri.com ではなく https://www.esri.com のようにプロトコルを含めることをお勧めします。
ArcSDE 接続ファイル パス
ジオプロセシング ツールは、ArcSDE 接続ファイル (*.sde) のパスを使用して、エンタープライズ データベースに保存されているデータを特定します。
D:\Data\Final\Connection to ArcSDE.sde\EastValley\powerlines
*.sde ファイルの接続情報に基づいてエンタープライズ ジオデータベースへの接続が作成されます。また、ファイル ジオデータベースやパーソナル ジオデータベースの場合と同様、ジオデータベースで要求したデータが検索されます。