一、Arcpy介绍和安装【ArcGIS Python系列】

2023-11-24 16:18:30 浏览数 (2)

本文首次发布在我的博客(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:

  1. 找到arcgis pro环境的conda镜像源文件.condarc,文件一般在:"C:Program FilesArcGISProbinPython.condarc"。
  2. 右键.condarc修改文件的权限,保证登录的用户可以修改。如图勾选“Users”的修改权限。
  1. 修改文件,将以下文本覆盖粘贴进此文件:
代码语言:javascript复制
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/
  1. 找到"C:Program FilesArcGISProbinPythonScriptsproenv.bat"并运行以激活环境:

image-20230823160526441

  1. 运行清除conda包索引的命令:conda clean -i ,提示输入y
  2. **管理员运行**Arcgis Pro程序,进入包管理器,点击克隆环境,指向你自己安装的conda环境文件夹或者其他文件。

image-20230823160753831

  1. **管理员运行**Pycharm或其他编辑器,添加解释器-使用现有conda环境-选择刚刚克隆的环境。
方法二:直接复制环境文件夹

下面说明如何快速克隆环境,简单来说就是直接复制arcgispro-py3文件夹:

  1. 找一个你认为合适的存放克隆文件夹的位置,我在此处将文件夹放在了conda环境文件夹下"C:Users用户名condaenvsarcgispro-py3-clone"
  2. 进入到Pro默认安装文件下,拷贝文件arcgispro - py3到上述地址中,改名,此处改名为arcgispro-py3-clone。
  3. 在Pro "管理环境"--"添加", 然后指向到第二步中的文件夹。
  4. 点击确定即可。
(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' 

0 人点赞