データやツールボックスを選択するときなど、日々の作業で頻繁にパスを使用します。ここでは、どのような種類のパスがあり、それらのパスが ArcGIS でどのように管理されるかなど、パス全般について詳しく説明します。
パスおよびパス名
Path
パスは、スラッシュで区切られた一連のディレクトリ名の後に、ディレクトリ名またはファイル名が指定されたものです。ディレクトリはフォルダと同じです。
E:\Data\MyStuff (path terminating in a directory name)
E:\Data\MyStuff\roads.shp (path terminating in a file name)
パス名
パスやパス名という用語の意味は同じです。
システム パスとカタログ パス
ArcGIS では、カタログ パスまたは ArcCatalog パスという用語を使用します。カタログ パスは、ArcGIS のみが認識するパスです。次に例を示します。
D:\Data\Final\Infrastructure.gdb\EastValley\powerlines
このパスは、ファイル ジオデータベース Infrastructure の EastValley フィーチャ データセットにある powerlines フィーチャクラスを示しています。Windows はファイル ジオデータベース内のフィーチャ データセットやフィーチャクラスを認識しないので、Windows オペレーティング システムでは、これは有効なシステム パスではありません。もちろん、ArcGIS の要素はすべてカタログ パスで使用できます。
ワークスペースとベース名
下図に示すように、カタログ パスは 2 つの部分(ワークスペースとベース名)で構成されます。
場所
場所はパスを包括的に表す用語です。たとえば、「データの場所を指定する」、「データの場所を入力する」などのように使用します。
スラッシュとバックスラッシュ
Windows の表記規則では、パスの区切り文字としてバックスラッシュ(円記号)(\)を使用します。UNIX システムではスラッシュ(/)を使用します。ArcGIS ではどちらを使用してもかまいません。スラッシュであっても、バックスラッシュであっても、該当するオペレーティング システムの表記法に変換されます。
スクリプトでのバックスラッシュ
UNIX 関連のプログラミング言語(Python や C 言語)では、バックスラッシュ(\)はエスケープ文字と見なされます。たとえば、\n は改行を表します。パスにはバックスラッシュが含まれるので、バックスラッシュがエスケープ文字として使用されないようにする必要があります。一般的な方法は、次のようにバックスラッシュをエスケープします。
thePath = "E:\\data\\telluride\\newdata.gdb\\slopes"
あるいは、次のように r ディレクティブを使用して、パスを Python の未処理文字列に変換する方法もあります。これは、バックスラッシュを無視するよう Python に指示する方法です。
thePath = r"E:\data\telluride\newdata.gdb\slopes"
絶対パスと相対パス
絶対パス(フル パス)
絶対パス(フル パス)は、「D:」のように、ドライブ文字の後にコロンを付けます。
相対パス
相対パスは、現在のディレクトリからの相対的な位置を表します。相対パスでは、2 つの特殊な記号(ドット(.)とダブルドット(..))を使用して、現在のディレクトリと親ディレクトリを表すことができます。ダブルドットは、上位の階層へ移動するときに使用します。シングルドットは現在のディレクトリを表します。
たとえば、次のようなディレクトリ構造があり、Windows エクスプローラを使用して D:\Data\Shapefiles\Soils へ移動したとします。このディレクトリへ移動した後で相対パスを使用すると、D:\Data\Shapefiles\Soils が現在のディレクトリになります(さらにここから別のディレクトリへ移動した場合は、その新しいディレクトリが現在のディレクトリになります)。現在のディレクトリは「ルート ディレクトリ」とも呼ばれます。
現在のディレクトリ(Soils)から Landuse ディレクトリへ移動するときは、Windows エクスプローラの [アドレス] バーに次のように入力します。
..\Landuse
これで、D:\Data\Shapefiles\Landuse へ移動することができます。D:\Data\Shapefiles\Landuse を現在のディレクトリとする場合の例をさらにいくつか紹介します。
.. (D:\Data\Shapefiles)
..\.. (D:\Data)
..\..\Final (D:\Data\Final)
. (D:\Data\Shapefiles\Landuse - the current directory)
.\..\Soils (D:\Data\Final\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 を再び開くと、保存されている相対パス(ドット/ダブルドット表記)から元の絶対パス表記へ変換され、レイヤのデータ ソースとして表示されます。この変換では、常にマップ ドキュメント(現在のディレクトリ)が基準となります。
同じディスク上のパスのみが変換される
相対パスの場合、異なるディスク ドライブは指定対象になりません。つまり、ルート ディレクトリがドライブ D だとすると、相対パスを使用して E ドライブ上のディレクトリへ移動することはできません。相対パスを使用してマップ ドキュメントを保存する場合、同じドライブ上のパスのみが変換され、保存されます。
モデル ツールでの絶対パスと相対パス
ArcMap のデータと同様、モデル ツールでもパスを相対パスとして保存できます。
相対パスで使用される現在のディレクトリは、そのツールのツールボックスがあるディレクトリです。相対パス オプションを選択した場合、パスが次の要素に変換され、保存されます。
- モデルのデータ
- モデルのグラフィックス画像
- モデルで使用するツール
- ツール メタデータおよびヘルプで参照されているファイル
- スタイルシート
- シンボルで使用するレイヤ ファイル(*.lyr)
- コンパイルされたヘルプ ファイル(*.chm)
相対パスとして保存するには、モデル ツールを右クリックして [プロパティ] をクリックし、[一般] タブをクリックします。下図のように、ダイアログ ボックスの下部にある [相対パスで保存] チェックボックスをオンにします。
同じディスク上のパスのみが変換される
相対パスの場合、異なるディスク ドライブは指定対象になりません。つまり、ルート ディレクトリがドライブ D だとすると、相対パスを使用して E ドライブ上のディレクトリへ移動することはできません。相対パスを使用してモデルを保存する場合、同じドライブ上のパスのみが変換され、保存されます。
スクリプト ツールでの絶対パスと相対パス
[スクリプトの追加] ウィザードを実行すると、最初のパネルに、相対パスでの保存を指定するオプションが表示されます。このオプションを設定するには、スクリプト ツールを右クリックして [プロパティ] を選択し、[一般] タブをクリックする方法もあります。ダイアログ ボックスの下部にある [相対パスで保存] チェックボックスをオンにします。
相対パスで使用される現在のディレクトリは、そのツールのツールボックスがあるディレクトリです。相対パス オプションを選択した場合、パスが次の要素に変換され、保存されます。
- スクリプト
- デフォルト値プロパティで使用するデータセット
- ツール メタデータおよびヘルプで参照されているファイル
- シンボル プロパティで使用するレイヤ ファイル(*.lyr)
- コンパイルされたヘルプ ファイル(*.chm)
- スタイルシート
同じディスク上のパスのみが変換される
相対パスの場合、異なるディスク ドライブは指定対象になりません。つまり、ルート ディレクトリがドライブ D だとすると、相対パスを使用して E ドライブ上のディレクトリへ移動することはできません。相対パスを使用してスクリプト ツールを保存する場合、同じドライブ上のパスのみが変換され、保存されます。
スクリプト内のパスは変換されない
スクリプトではドット表記やダブルドット表記を使用できません。たとえば、次のパスは正しく認識されません。
arcpy.AddField_management("..\redlands.mdb\streets", "ref_ID", "long", "9", "#", "#", \
"refcode", "NULLABLE", "REQUIRED", "#")
このパスを使用できないのは、..\redlands.mdb\streets が相対パスであるためです。
相対パスと絶対パスの利点
絶対パスの利点は次のとおりです。
- ドキュメントまたはツールボックスをコンピュータ上のどこにでも移動でき、同じドキュメントやツールを再び開いたときにデータを検出できます。
- 通常、ほとんどのパーソナル コンピュータではデータの場所が変わりません。つまり、パーソナル コンピュータ上でデータを移動することはほとんどありません。このような場合は絶対パスが適しています。
- 他のディスク ドライブのデータを参照できます。
相対パスを使用する場合は次の調整が必要になります。
- マップ ドキュメントまたはツールボックスを移動する場合、参照先のデータも移動する必要があります。
- ドキュメント、ツールボックス、およびデータを他のユーザへ配布するときは、相対パスを使用した方が便利です。相対パスを使用しない場合、配布元コンピュータと配布先コンピュータを同じディレクトリ構成にする必要があります。
たとえば、次のようなディレクトリ構成になっているとします。この例では、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
\\omnipotent\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
Windows Internet Explorer では、アドレス バーに「www.esri.com」と入力すると http:// が自動的に追加されます。ただし、http など、使用するプロトコルを明確に指定した方が確実です。他にも、HTTPS(Secure Hypertext Transfer Protocol)、FTP、mailto(電子メール アドレス)、news(Usenet ニュースグループ)などのプロトコルがあります。
ArcGIS では、URL を使用できる場所が限られています。通常、URL を指定できるかどうか、URL が必要かどうかが画面に表示されます。ArcGIS で URL を使用するときは、次のようにプロトコルも入力してください。
http://www.esri.com
次のような入力方法は避けてください。
www.esri.com
ArcSDE 接続ファイル パス
ジオプロセシング ツールは、ArcSDE 接続ファイル(*.sde)のパスを使用して、ArcSDE データベースに保存されているデータを特定します。
D:\Data\Final\Connection to ArcSDE.sde\EastValley\powerlines
*.sde ファイルの接続情報に基づいて ArcSDE への接続が作成されます。また、ファイル ジオデータベースやパーソナル ジオデータベースの場合と同様(上記の説明を参照)、ジオデータベースで要求したデータが検索されます。