ArcGIS Notebooks 是基于 Jupyter Notebook 框架的 Python notebook,可在 ArcGIS Pro、ArcGIS Online 中使用,以及通过 Notebook Server 在 ArcGIS Enterprise 中使用。 借助 Notebooks,用户可以编写 Python 代码,以交互方式处理代码单元和代码块,然后计划 notebook 以固定时间间隔运行,或者根据 webhook 或 REST 请求配置其运行。 Notebook Python 环境包含多种标准库,并支持访问 ArcGIS API for Python 和 arcpy 模块,用于运行地理处理任务以及与 ArcGIS 系统组件进行交互。
Notebooks 为业务系统之间的集成提供了一个极具吸引力的选项,原因如下:
Python 社区包含了丰富的开发模式、模块以及用于处理各种数据源的现有功能,数据源涵盖从文件、数据库到 web 服务、WebSocket 或自定义 TCP 协议等。 这些模块可以通过 pip 或 conda 命令在 notebook 中安装并在运行时使用,也可以从 Notebook Server 中的自定义目录导入。
Notebook 具有上下文感知能力:当以交互方式运行时,会以当前用户身份连接到服务;当定时运行时,会以 notebook 所有者身份连接到服务,由此实现 notebook 代码安全可靠地与 ArcGIS 内的私有内容、服务、数据和要素进行交互。
Notebook 既可以交互式运行(用户逐一单击或运行代码单元),也可以定时运行(所有代码单元在指定时间按顺序运行,相当于一个定时执行的 Python 脚本)。 在 ArcGIS Online 中,使用 Advanced Runtime 的交互式 notebook 会消耗配额,而所有定时运行的 notebook 则根据定时任务的持续时间消耗配额。
在 ArcGIS Online 中,拥有相应权限的成员可以创建 notebook。 当 ArcGIS Enterprise 组织与 Notebook Server 联合时,其成员可以创建 notebook。 ArcGIS Pro 用户可以创建本地 notebook。
| 功能 | ArcGIS Online | ArcGIS Enterprise | ArcGIS Location Platform | ArcGIS Pro |
|---|---|---|---|---|
| ArcGIS Notebooks | N/A |
完全支持 部分支持
对于计划定时运行或通过 REST 调用触发的 notebook,通常应将其设计为在单个连续会话中运行,这意味着所有代码单元按顺序执行,期间无需用户输入,也不会出现操作暂停。 由此可确保任务完整运行,并提高定时任务的成功率。
定时 Python notebook 的可观测性基于近期任务执行的记录,该记录将显示每次运行所产生的状态和输出。
ArcGIS Online 中的 notebook 在容器化执行环境中运行,该环境对网络访问进行了限制,以防止安全风险。 这意味着,对于 ArcGIS Online 托管的 notebook,某些模式无法使用,例如对非标准端口的 HTTP 请求,或者使用 SMTP 等协议或专有端口组合。
值得注意的是,虽然您可以访问在线资源以及存储在 ArcGIS Enterprise 或 ArcGIS Online 组织中的项目,但无法直接访问您所用计算机上的资源或本地文件。 这是由于 ArcGIS Notebooks 的容器化特性所致。