本文首次发布在我的博客(https://cdn.renhai-lab.tech/archives/4.2.1-Arcpy介绍和安装)。微信公众号无法嵌入超链接,推荐去博客阅读。
一句话说明ArcPy是什么:ArcPy是一个 Python 站点包,可提供以实用高效的方式通过 Python 执行地理数据分析、数据转换、数据管理和地图自动化。可以通过ArcPy调用ArcGIS Pro中几乎所有的工具,将其与其他Python工具结合使用,形成自己的工作流程。
Python脚本在ArcGIS Pro中的应用可实现自动执行复杂的任务,避免繁琐的软件操作界面。举例来说,假设你需要收集不同渠道的shpfile,然后要检查和匹配所有shp的坐标系,如果是在软件中那么你一定会崩溃。利用Arcpy我们可以编写一个 Python 脚本以检查多个数据集的坐标系,然后都转为指定的坐标系。
一、ArcPy的环境配置
ArcPy 包是默认 Python 存在于ArcGIS Pro环境中的,而且需要搭配软件使用。所以安装好ArcGIS Pro就完成了第一步。
1、ArcGIS Pro的安装
对于新手,可以选择方式一试用。
- 方式一:官方试用21天
- 方式二:参考ArcGIS Pro 3.0 完整安装教程,安装包下载可以去本教材的阿里网盘获取。
2、ArcPy环境管理
ArcPy采用conda管理环境,可以自定义环境,添加或删除库,但是不能修改默认的arcgispro-py3环境,因为自定义环境会使其在某些情况下不可用,会导致ArcGIS Pro 应用程序(使用 arcgispro-py3 环境)中的功能也可能处于错误状态。可能需要完全卸载并重新安装 ArcGIS Pro。
我们需要克隆环境然后进行环境管理,但是使用官方教程通过程序内置包管理器克隆环境时会出错,原因不明,亲测不是因为网络问题。
自定义环境中添加和删除包非常容易导致环境出错,建议不要大量修改环境中的库。
(1)快速克隆环境
方法一:使用conda进行环境克隆
适合国内环境,配置conda镜像之后,通过程序自带的conda包管理器进行克隆,同样支持使用Pycharm:
- 找到arcgis pro环境的conda镜像源文件
.condarc
,文件一般在:"C:Program FilesArcGISProbinPython.condarc"。 - 右键
.condarc
修改文件的权限,保证登录的用户可以修改。如图勾选“Users”的修改
权限。
- 修改文件,将以下文本覆盖粘贴进此文件:
channels:
- esri
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
- 找到"C:Program FilesArcGISProbinPythonScriptsproenv.bat"并运行以激活环境:
image-20230823160526441
- 运行清除conda包索引的命令:
conda clean -i
,提示输入y
。 - **管理员运行**Arcgis Pro程序,进入包管理器,点击克隆环境,指向你自己安装的conda环境文件夹或者其他文件。
image-20230823160753831
- **管理员运行**Pycharm或其他编辑器,添加解释器-使用现有conda环境-选择刚刚克隆的环境。
方法二:直接复制环境文件夹
下面说明如何快速克隆环境,简单来说就是直接复制arcgispro-py3文件夹:
- 找一个你认为合适的存放克隆文件夹的位置,我在此处将文件夹放在了conda环境文件夹下"C:Users用户名condaenvsarcgispro-py3-clone"
- 进入到Pro默认安装文件下,拷贝文件arcgispro - py3到上述地址中,改名,此处改名为arcgispro-py3-clone。
- 在Pro "管理环境"--"添加", 然后指向到第二步中的文件夹。
- 点击确定即可。
(2)手动安装环境
从 ArcGIS Pro 2.7 开始,当 ArcPy 包版本不冲突时,可将其添加到现有 Python 3 环境中。要添加 ArcPy,请使用 conda 从 Anaconda Cloud 上的 Esri 频道安装 ArcPy。从 Python 命令提示符中,使用适当的版本号运行以下命令:
代码语言:javascript复制conda install arcpy=3.0 -c esri
具体留在如何配置机器学习的arcpy环境中一起说明。
测试ArcPy安装情况
我们可以直接打开ArcGIS Pro 中的Jupyter Notebook,
要创建笔记本,请单击功能区上的插入选项卡,然后单击新建笔记本按钮 。或者,可以打开目录窗格,浏览至工程目录,右键单击文件夹,然后选择**新建 > 笔记本**。 已添加到工程中的 ArcGIS Notebooks 将在目录窗格的 Notebooks 文件夹 下列出。使用 ArcGIS Pro 创建的 Notebook 会自动添加到您的工程中。要将现有的笔记本添加到工程中,请右键单击 Notebooks 文件夹,然后选择添加笔记本 ,或者单击插入功能区上添加笔记本按钮旁边的下拉箭头,然后选择添加笔记本。 要在工程中打开现有笔记本,请浏览到目录窗格中的笔记本文件,然后双击笔记本,或者右键单击笔记本并选择打开笔记本。
我们输入一下代码导入arcpy,无报错则配置成功:
代码语言:javascript复制# 方式一导入随 ArcGIS 安装的标准工具箱中的所有地理处理工具
import arcpy
# 导入某个模块
import arcpy.mp
在很多情况下,用户可能不想使用整个模块或无需使用整个模块。如果只导入某一模块的一部分,可以使用 from-import 语句。在下例中,将导入 env 类(env 类包含所有地理处理环境)。现在无需以 arcpy.env 的形式访问环境,而可以将其简化为 env。
代码语言:javascript复制from arcpy import env
env.workspace = 'c:/data'