第五章 工具共享(二)

news/2024/10/22 16:40:58/

5.4 使用标准文件夹结构分享工具

建议使用标准的文件夹结构,便于进行共享自定义工具。没有固定的标准文件夹结构,但是可以使用原著给的参考,这个参考只是一个参考,没有展示所有的文件。
在这里插入图片描述
根目录Tools下面包含了有一个或者多个自定义的工具箱(Toolbox.tbx),在工具箱中可能包括了模型或者脚本工具,或者一个或者多个python工具箱。自定义工具箱也可以包括在地理数据库中,但是.tbx一般是在文件夹下面。脚本工具的相对存储路径“store tool with relative path ”应该 被选中。

上图中的Data文件夹中包含了示例数据集,用户可以使用这些数据集了解工具的功能,然后再使用自己的数据使用工具。这些工具还可能需要某些数据作为工具执行的一部分,例如查找表lookup tables等工具,也被包含在文件夹中。许多模型工具和脚本工具使用一个工作空间,在默认的Data文件夹或者单独的Scrctch文件夹中也提供了用于抓取数据默认的文件地理数据库。分发一个ArcGIS Pro文件(.aprx文件)是一个可选的选项,但是当示例数据集是共享工具的一部分时,可能会有帮助。(这里没有太理解什么意思)

Doc文件夹是用于了工具文档,工具文档应该清楚的说明工具允许所需要的产品和拓展的许可。在根目录下面还会有一个readme文件,这个文件解释了工具是如何运行的,通产包含工具的版本号、创造者信息、如何安装等。可以在word或者PDF中提供更加详细的用户手册。还可以直接打开当前的脚本,从脚本的注释和代码中去学习了解工具。

layer文件夹中包含了单独的图层文件(lyr或者lyrx),可以为项目输出指定的符号系统,可以指示用户使用这种符号或者直接将其设置到脚本中。

Scripts文件夹包含了脚本工具中使用的python脚本,对于只有一个或者几个python脚本的比较简单的工具可能不用建立单独的脚本文件夹,直接将脚本文件放在根目录下面即可。脚本也可以嵌入到工具箱中,在这种情况下就不会有单独的脚本文件,但是一般不会将脚本嵌入到工具箱中,这样的话不利于其他用户学习使用脚本工具。

其他相关的文件可能还包括脚本库、动态链接库(dynamic-link libraries DLL)、txt文件、XML文件、图像或者其他可执行文件,例如exe文件或.bat文件等。

这里原书只是介绍了一种存储的结构,但是有很多种示例,其实可以直接在arcgis官网下载,在实际使用过程也没有很严格的要求。

原书推荐了一个外国老师的博客:https://ianbroad.com/,这个博客提供了一个文件结构,所有的文件在根目录中被提供,包含了.tbx、.py、readme.txt。
在这里插入图片描述
Esri’s Applications Prototype Lab提供的分布式流线工具 包括了一个python工具箱,一个包含根目录文件夹中样本数据的文件地理数据库,一个readme.txt,以及一个在线的链接。
在这里插入图片描述
在第一章讨论的 Terrain Mapping工具提供了一个更加复杂的工具结构,因为这些工具包含了不同的文件。
在这里插入图片描述
在这个单独的自定义工具箱中包含了14种不同的脚本工具,根目录的readme文件提供了对于工具的基本描述,在DOC文件夹种提供了一个PDF的用户手册,samples文件夹中提供了示例数据来进行练习工具的使用,包括.mxd文档。mxd文档也可以导入到Pro中,工具可以和10.x和Pro一起使用,每个工具关联的python脚本存储到了Scripts文件夹中,一组自定义的颜色色带和lyr文件也存储在单独的文件夹中,其他支持文件保存到了SkyLuminance文件夹中。

上面的例子都只是示例,没有特殊的要求,只需要做到结构上清晰、便于自己和其他人去理解使用就好了。

5.5 路径 paths

路径是数据和工具正常运行不可获取的一部分,当工具被共享后,路径便尤为重要,因为没有争取的文档路径,工具将不能运行。

ArcGIS Pro包括相对路径与绝对路径。绝对路径也是“full paths”完全路径,他们以硬盘分区号为开头,然后跟一个文件夹和文件名称,例如最常见的:C:\Data\shp.shp。相对路径是相对于当前文件夹的位置,下面的示例中包含了两个shp文件位于C:\AllData\shapefiles\Final folder:boundary.shp和locations.shp中。相对而言,除了文件名称外,没有比要知道其他的路径。以使用两个shp文件:locations.shp和floodzone.shp的工具为示例,两个文件在两个不同的文件夹中,因此他们的相对路径是Final\locations.shp和Project\floodzone.shp,只需要定位到上一级的文件夹:Alldata即可,不需要再定位到C:\。找到AllData文件夹后,就能判断两个文件的相对位置。

在这里插入图片描述
使用相对路径就可以使用或者重命名文佳佳,例如将AllData重命名为Data,相对路径就会保持不变。但设置相对路径后,从C盘移动到D盘,也会失效。相对路径和绝对路径可以在模型和脚本中使用,但是一般情况下,共享工具依赖于相对路径。构建模型时可以在模型属性对话框中启用相对路径。
在这里插入图片描述
对于脚本工具,在脚本工具属性对话框中启用相对路径。
在这里插入图片描述
模型和脚本工具的相对路径相对于工具箱文件所在的当前的文佳佳。当相对路径启用后,将会应用在脚本文件、默认参数值的数据集、引用于工具文档中的文件、符号属性的lyr文件、style表。

重要的一点是脚本的路径不会变换,因为Pro不会检查和修改脚本代码,因此如果脚本使用了绝对路径,当使用脚本工具属性中的设置为脚本工具启用相对路径后,仍然不会转为相对路径。

注:通常,python代码必须被编写,这样才能找到相对于已知位置的文件,比较典型的是相对于脚本自己的位置。

使用前面的文件夹结构:

在这里插入图片描述
如果想要共享工具,必须在脚本的工具属性中开启相对路径。在这个示例中,脚本工具将引用Scripts文件夹中的一个脚本工具,它还可以有引用DOC文件夹中的工具文档,脚本本身还可以引用Data文件夹中的数据。如果维护了文件夹的结构,那么当脚本工具和另一个用户共享时,这个引用仍然有效。如果包含脚本的工具箱被移动到其他文件夹,和文件在不同的位置,脚本工具就会找不到文件,脚本不工作,出现以下错误:
在这里插入图片描述
因此,如果想要脚本工具正常工作,就要重新维护文件夹结构


http://www.ppmy.cn/news/189263.html

相关文章

好用的局域网文件共享工具

在公司或者学校实验室,经常会遇到要互相传文件的情况,或者往服务器上发文件的情况,下面就这种应用场景,推荐一下好用的工具 情景一: windows和windows互传 直接使用飞秋[1],这种情况最普遍。解决方案也很…

SAMBA共享工具安装

1,环境win7 b4位,ubuntu16.04,确定ubuntu已连接到互联网, 执行如下命令下载 Samba 工具:sudo apt-get install samba samba-common 输入Y,按回车继续安装 2,安装完成后:sudo apt-ge…

Chfs 文件共享工具

Chfs 文件共享工具 简介 CuteHttpFileServer/chfs 是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问。它具有以下特点: 单个文件,核心功能无需其他文件跨平台运行,支持主流平台:Windows,Li…

4种大文件传输工具和软件,用于共享大文件

无论是个人还是与团队一起工作,大文件传输软件和网站都能协助提高工作效率、有效地管理工作内容。疫情原因有时我们不得不居家办公,在这种情况下可以分享文件的工具就显得尤为重要。 每个公司都需要一个文件传输软件,让员工可以上传和分享他…

好用的局域网共享工具有哪些?win10系统如何设置?

简单文件共享是我们日常工作中经常要用到的功能,使用这个功能我们可以很轻松的访问到对面电脑共享出来的文件和打印机。 但是由于这个功能只能在局域网中使用,所以应用场景大大受限。下面给大家推荐一个局域网共享工具外网使用的方法。 由于目前新电脑…

桌面共享工具(可以实现RTMP直播、K歌、投屏等功能)

桌面共享工具(可以实现RTMP直播、K歌、投屏等功能)是基于ffmpegopencv开发的C(vs2013 mfc)程序,目前共两个版本:普通版及硬编版,目前主要以普通版开发维护为主,因为普通版是基础&…

局域网文件共享软件 开源_4个用于共享文件的开源工具

局域网文件共享软件 开源 在您的生活中,有时您必须与某人共享一个或多个文件,无论该人是朋友,家庭成员,同事或合作伙伴还是客户。 许多人通过使用诸如ownCloud , Nextcloud或SparkleShare之类的应用程序来完成自己对开源的信念。 这三款游戏既坚固又灵活,但它们并不是镇…

为什么HTTPS是安全的?

在谈论 HTTPS 协议之前,先来回顾一下 HTTP 协议的概念。 1. HTTP 协议 1.1 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层。 HTTP 协议是通过客户端和服务器的请求应答来进行通讯,目前协议由之前的 RFC…