パスの説明(絶対パス、相対パス、UNC、URL)

データやツールボックスを選択するときなど、日々の作業で頻繁にパスを使用します。それにもかかわらず、データやツールを共有しない限り、パスについて深く検証する機会はほとんどありませんし、その必要を感じることもありません。このセクションでは、どのような種類のパスがあり、それらのパスが ArcGIS でどのように管理されるかなど、パス全般について詳しく説明します。

パスおよびパス名

パス

パスは、スラッシュで区切られた一連のディレクトリ名の後に、ディレクトリ名またはファイル名が指定されたものです。ディレクトリはシステム フォルダと同じです。

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

このパスは、ファイル ジオデータベース InfrastructureEastValley フィーチャ データセットにある powerlines フィーチャクラスを示しています。Windows はファイル ジオデータベース内のフィーチャ データセットやフィーチャクラスを認識しないので、Windows オペレーティング システムでは、これは有効なシステム パスではありません。もちろん、ArcGIS の要素はすべてカタログ パスで使用できます。

ワークスペースとベース名

下図に示すように、カタログ パスは 2 つの部分(ワークスペースとベース名)で構成されます。

データセット名

場所

場所はパスを包括的に表す用語です。たとえば、「データの場所を指定する」、「データの場所を入力する」などのように使用します。

スラッシュとバックスラッシュ

Windows の表記規則では、パスの区切り文字としてバックスラッシュ(円記号)(\)を使用します。UNIX システムではスラッシュ(/)を使用します。ArcGIS ではどちらを使用してもかまいません。スラッシュであっても、バックスラッシュであっても、該当するオペレーティング システムの表記法に変換されます。

スクリプトでのバックスラッシュ

UNIX 関連のプログラミング言語および Python や C 言語では、バックスラッシュ(\)はエスケープ文字と見なされます。たとえば、\n は改行を表します。パスにはバックスラッシュが含まれるので、バックスラッシュがエスケープ文字として使用されないようにする必要があります。最も簡単なのは、次のように 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)
注意注意:

ArcGIS アプリケーションでは、(ドットおよびダブルドット表記を使用して)相対パスを入力できません。また、Python スクリプトでも相対パスを使用できません。

相対パスの場合、異なるディスク ドライブは指定対象になりません。たとえば、現在のディレクトリがドライブ D の場合、相対パスを使用して E ドライブ上のディレクトリへ移動することはできません。

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 のデータと同様、モデル ツールでもパスを相対パスとして保存できます。

相対パスで使用される現在のディレクトリは、そのツールのツールボックスがあるディレクトリです。相対パス オプションを選択した場合、パスが次の要素に変換され、保存されます。

相対パスとして保存するには、モデル ツールを右クリックして [プロパティ] をクリックし、[一般] タブをクリックします。下図のように、ダイアログ ボックスの下部にある [相対パスで保存] チェックボックスをオンにします。

モデル ツールの相対パス

同じディスク上のパスのみが変換される

相対パスの場合、異なるディスク ドライブは指定対象になりません。つまり、ルート ディレクトリがドライブ D だとすると、相対パスを使用して E ドライブ上のディレクトリへ移動することはできません。相対パスを使用してモデルを保存する場合、同じドライブ上のパスのみが変換され、保存されます。

スクリプト ツールでの絶対パスと相対パス

[スクリプトの追加] ウィザードを実行すると、最初のパネルに、相対パスでの保存を指定するオプションが表示されます。このオプションを設定するには、スクリプト ツールを右クリックして [プロパティ] を選択し、[一般] タブをクリックする方法もあります。ダイアログ ボックスの下部にある [相対パスで保存] チェックボックスをオンにします。

相対パスで使用される現在のディレクトリは、そのツールのツールボックスがあるディレクトリです。相対パス オプションを選択した場合、パスが次の要素に変換され、保存されます。

同じディスク上のパスのみが変換される

相対パスの場合、異なるディスク ドライブは指定対象になりません。つまり、ルート ディレクトリがドライブ D だとすると、相対パスを使用して E ドライブ上のディレクトリへ移動することはできません。相対パスを使用してスクリプト ツールを保存する場合、同じドライブ上のパスのみが変換され、保存されます。

スクリプト内のパスは変換されない

ArcGIS でスクリプト コードを調べてすべてのパスを検出し、それらを相対パスに変換するための確実な方法がありません。さらに、スクリプトではドット表記やダブルドット表記を使用できません。たとえば、次のパスは正しく認識されません。

arcpy.AddField_management("..\redlands.mdb\streets", "ref_ID", "long", "9", "#", "#", \
             "refcode", "NULLABLE", "REQUIRED", "#")

このパスを使用できないのは、..\redlands.mdb\streets が相対パスであるためです。

スクリプト コードを修正し、既知の場所を基準にしてデータを検出できるようにする必要があります。簡単に見つけられる場所の 1 つは、スクリプトの場所です。「Python スクリプトを共有する方法」をご参照ください。

相対パスと絶対パスの利点

絶対パスの利点は次のとおりです。

相対パスを使用する場合は次の調整が必要になります。

たとえば、次のようなディレクトリ構成になっているとします。この例では、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 パスにはいくつかルールがあります。

ArcGIS では、パスが要求された場合、どの場所でも UNC パスを使用できます。これは、LAN でデータを共有する場合、特に役立ちます。いずれか 1 台のコンピュータにデータを保存しておけば、そのコンピュータの電源をオフにしたり、ネットワークから削除したりしない限り、そのコンピュータへのアクセス権を持っているすべてのユーザが同じデータを使用できます。

Windows では、フォルダを共有し、LAN 上の他のユーザがそのフォルダにアクセスできるように設定できます。ArcCatalog または Windows エクスプローラで、フォルダを右クリックして [共有とセキュリティ] をクリックし、表示されるダイアログ ボックスの指示に従います。

URL

URL は Uniform Resource Locator の略称であり、インターネット上でのドキュメントの場所を一意に指定します。URL の構成要素は次のとおりです。

次に例を示します。

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 への接続が作成されます。また、ファイル ジオデータベースやパーソナル ジオデータベースの場合と同様(上記の説明を参照)、ジオデータベースで要求したデータが検索されます。

他のジオデータベース データ形式(*.gdb および *.mdb)と同様、*.sde ファイルを ToolShare フォルダの下に保存し、ツールが相対パスを使用して *.sde ファイルにアクセスできるようにします。ツールを共有する場合、*.sde の保存場所およびアクセス場所として、ArcSDE 接続ファイルが保存されるデフォルトの場所(Database Connections システム パス)は使用しないでください。この場所はユーザによって異なり(ローカルの Windows ユーザ プロファイルに関連付けられます)、共有ツールが使用するファイルと同じ名前であっても、接続情報が異なる *.sde ファイルが存在する可能性があります。その場合はツールを正常に実行できません。

注意注意:

共有ツールで ArcSDE データを使用する場合、共有するツール が *.sde ファイルにアクセスできるだけでなく、そのツールを共有するユーザのための安全で正当な接続情報が *.sde ファイルに保存されていること、ArcSDE ジオデータベースが配置されているネットワークへユーザがアクセスできることが条件となります。一般に、データベースへの接続を許可されていないユーザとデータベース接続情報を共有することは、セキュリティ違反と見なされます。接続情報が含まれた ArcSDE 接続ファイルを他者と共有するだけでも、自社のセキュリティ ポリシーに反する可能性があります。セキュリティ問題を回避するため、最初にツールを共有するユーザが ArcSDE データベースへのアクセスを許可されているかどうかを確認してください。データベース アクセスを許可されている場合は、ToolShare フォルダで配布する *.sde ファイルにユーザ名とパスワードを含めないでください。代わりに、ArcSDE 接続ファイルに相手ユーザの接続情報を反映させる方法を説明したドキュメントを配布します。セキュリティ ポリシーについての詳細は、各組織の ArcSDE 管理者およびデータベース管理者に問い合わせてください。

関連項目


7/10/2012