路径用于浏览至数据和工具箱。本主题将详细讨论以下方面内容:路径、定义类型以及 ArcGIS 对路径的管理方式。
路径和路径名
路径
路径是以斜线分隔的一串目录名,并且后跟目录名或文件名。目录与文件夹相同。
示例 | 说明 |
---|---|
E:\Data\MyStuff | 以目录名结尾的路径。 |
E:\Data\MyStuff\roads.shp | 以文件名结尾的路径。 |
系统与目录路径
ArcGIS 使用术语目录路径或 ArcCatalog 路径。目录路径是只有 ArcGIS 能够识别的路径。以下述路径为例:
D:\Data\Final\Infrastructure.gdb\EastValley\powerlines
将在文件地理数据库 Infrastructure 的 EastValley 要素数据集中找到名为 powerlines 的要素类。对于 Windows 操作系统来说,这不是有效的系统路径,因为 Windows 不能识别文件地理数据库中的要素数据集或要素类。
工作空间和基本名称
目录路径包括两部分:工作空间和基本名称,如下所示:
正斜线与反斜线
Windows 约定使用反斜线 (\) 作为路径中的分隔符。UNIX 系统使用正斜线 (/)。在 ArcGIS 中,无论是在路径中使用正斜线还是反斜线,ArcGIS 始终可以将正斜线和反斜线转换成相应的操作系统约定。
Python 中的反斜线
诸如 Python 等基于 UNIX 的和类似 C 语言的编程语言将反斜线 (\) 视为转义字符。例如,\n 表示回车。由于路径可以包含反斜线,因此需防止将反斜线用作转义字符。一种常用的方法是转义反斜线,如下所示:
the_path = "E:\\data\\telluride\\newdata.gdb\\slopes"
另一种方法是使用 r 前缀将路径转换成 Python 原始字符串,如下所示。这会指示 Python 忽略反斜线。
the_path = r"E:\data\telluride\newdata.gdb\slopes"
绝对和相对路径
绝对或完整路径
绝对(或完整)路径以诸如 D: 之类的盘符开头,后跟一个冒号。
相对路径
相对路径是指相对于当前目录的位置。相对路径使用两种特殊符号,单点 (.) 和双点 (..),通过它们可以转换到当前目录或父目录。双点用于在目录等级中上移。单点表示当前目录。
在以下目录结构示例中,假定您使用 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 中,且其中一个图层中的数据为 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 代表通用(或一致、统一)命名约定,是一种用于访问计算机网络上的文件夹和文件的语法。语法如下:
\\<computer name>\<shared directory>\
路径结构可以后跟任意数量的目录,并以目录或文件名终止,例如:
\\pondermatic\public\studyarea.gdb
\\omni\shared_stuff\wednesday\tools
计算机名称的前面始终使用双反斜线 (\\)。
在 UNC 中,计算机名称又称为主机名称。
对于 UNC 路径,存在以下几条规则:
- UNC 路径不能包含盘符(如 D)。
- 不能浏览至共享目录的上级目录。
- 用于文档和工具的存储相对路径名选项对 UNC 路径不起作用。
在 ArcGIS 中,可以在需要路径的任何位置使用 UNC 路径。这对局域网 (LAN) 上的共享数据非常有用。只要计算机未关闭或未断开网络连接,就可以将数据存储在一台计算机上,然后具有该计算机访问权限的用户便可使用共享数据了。
在 Windows 上,可以共享文件夹以使局域网上的其他用户可访问该文件夹。在 ArcCatalog 或 Windows 资源管理器中,右键单击文件夹,单击共享和安全,然后按照弹出的对话框上的说明进行操作。
URL
URL 代表统一资源定位符,专门用于指定 Internet 上文档的地址。URL 由以下几部分组成:
- 用于访问资源的协议,例如 HTTP(超文本传输协议)或 FTP(文件传输协议)
- 与之通信的主机(服务器)
- 主机上文件的路径
例如:
http://www.esri.com/products.html
您可通过 Web 浏览器在地址栏中输入 www.esri.com,然后浏览器将自动添加 https://。不过,指定协议(例如 https)则更准确。
在 ArcGIS 中,只能在允许使用的位置使用 URL。通常,用户界面会告诉您是否允许或需要 URL。在 ArcGIS 中使用 URL 时,建议包括协议,如 https://www.esri.com 中所示,而不是 www.esri.com。
ArcSDE 连接文件路径
地理处理工具使用 ArcSDE 连接文件 (.sde) 的路径来确定存储于企业级数据库中的数据的位置。
D:\Data\Final\Connection to ArcSDE.sde\EastValley\powerlines
.sde 文件中的连接信息用于创建到企业级数据库的连接,而地理数据库查找所请求数据的方式与其查找文件和个人地理数据的方式相同。