一、Arcpy介绍和安装【ArcGIS Python系列】
本教程使用的是ArcGIS Pro而不是ArcMap,关于两者的区别可以看看这篇文章:4.2.2-ArcGIS Pro 和 ArcMap 的区别.md
想象一下,通过几行 Python 代码,您可以轻松地遍历大量的地理数据集,快速制作地图,甚至进行大量的空间数据分析,帮助论文写作。这不仅是提高效率的工具,更是创新和探索的平台。
在这篇文章中,我将介绍什么是Arcpy
,以及如何安装和配置它,开始吧。
如果让我用一句话说明Arcpy
是什么,我想说:"Arcpy
是一个功能强大的 Python 库,专门用于执行地理数据分析、数据转换、数据管理,以及在 ArcGIS Pro 中实现地图自动化,它允许用户调用几乎所有 ArcGIS 工具,并可与其他 Python 工具结合,打造个性化的工作流程。”
Python 代码文件被称为脚本,Python 脚本可以在 ArcGIS Pro 中的应用可实现自动执行复杂的任务,避免繁琐的软件操作界面。举例来说,假设你需要收集不同渠道的 shapefile,然后要检查和匹配所有 shp 的坐标系,如果是在 GIS 软件中手动操作,那么你一定会感到崩溃。利用Arcpy
,我们可以编写 Python 脚本来检查并统一多个数据集的坐标系:
图中实现了读取多个文件中所有的栅格文件,并且根据其原有坐标批量统一到同一个坐标系,具体会在看完基础课程之后的案例部分讲到:利用 ArcGIS Python 批量处理地理数据的坐标系。
一、ArcPy 的环境配置
ArcPy是默认 Python 存在于 ArcGIS Pro 环境中的,而且需要搭配软件使用。所以安装好 ArcGIS Pro 就完成了第一步。
1、ArcGIS Pro 的安装
对于刚入门的 GIS 学习者,可以拿企业邮箱选择先试用 21 天,说不定“从入门到放弃”😂。
-
方式一:官方试用链接
-
方式二:学习版,参考麻辣 GIS的安装包和安装步骤:ArcGIS Pro 3.1 完整安装教程(更新到 3.1.6)。
- 不建议使用 3.0.* 版本,会出现深度学习相关 bug。
- 麻辣 GIS提供的是百度云盘链接,下载较慢。如果需要阿里云盘高速下载的可以关注微信公众号【renhai-lab】然后发送私信【ArcGISPro 安装包】即可以免费获取。
2、ArcPy 环境管理
Arcpy
采用 conda 管理环境,可以自定义环境,添加或删除库,但是不建议修改默认的 arcgispro-py3 环境,因为自定义环境会使其在某些情况下不可用,会导致 ArcGIS Pro 应用程序(使用 arcgispro-py3 环境)中的功能也可能处于错误状态。一旦出现错误,可能需要完全卸载并重新安装 ArcGIS Pro。
我们需要克隆环境,官方使用的是anaconda
管理 Python 软件包,但是因为我们在国内,使用官方教程中通过软件设置界面进行克隆环境操作时会出错或者超时,需要科学上网。
经过查找,我找到了两种方法来克隆环境,有需要的可以点击查看。
(2)手动安装环境(不推荐)
从 ArcGIS Pro 2.7 开始,当 Arcpy
包版本不冲突时,可将其添加到现有 Python 3 环境中。 要添加 Arcpy
,请使用 conda 从 Anaconda Cloud 上的 Esri 频道安装 Arcpy
。 从 Python 命令提示符中,使用适当的版本号运行以下命令:
conda install arcpy=3.0 -c esri
具体留在如何配置机器学习的Arcpy
环境中一起说明。
3.激活环境
除了使用proenv
可以激活环境之外,还有另一种方式,proswap
命令:
proswap -n <your_env>
proswap
命令不是标准 conda
命令的,是 arcgispro 独有的。proswap
命令前面没有 conda
。 proswap
会直接更改 ArcGIS 的默认环境,而proenv
只是在对话框临时暂时激活环境。
4.测试 ArcPy 安装情况
我们可以直接打开 ArcGIS Pro 中的Jupyter Notebook,打开方式:
要创建笔记本,请单击功能区上的插入选项卡,然后单击新建笔记本按钮 。 或者,可以打开目录窗格,浏览至工程目录,右键单击文件夹,然后选择新建 > 笔记本。
已添加到工程中的 ArcGIS Notebooks 将在目录窗格的 Notebooks 文件夹下列出。 使用 ArcGIS Pro 创建的 Notebook 会自动添加到您的工程中。 要将现有的笔记本添加到工程中,请右键单击 Notebooks 文件夹,然后选择添加笔记本,或者单击插入功能区上添加笔记本按钮旁边的下拉箭头,然后选择添加笔记本。
要在工程中打开现有笔记本,请浏览到目录窗格中的笔记本文件,然后双击笔记本,或者右键单击笔记本并选择打开笔记本。
我们输入一下代码导入Arcpy
,无报错则配置成功:
# 方式一导入随 ArcGIS 安装的标准工具箱中的所有地理处理工具
import arcpy
# 导入某个模块
import arcpy.mp
在很多情况下,用户可能不想使用整个模块或无需使用整个模块。
如果只导入某一模块的一部分,可以使用 from-import 语句。在下例中,将导入 env 类(env 类包含所有地理处理环境)。现在无需以 arcpy.env 的形式访问环境,而可以将其简化为 env。
from arcpy import env
env.workspace = 'c:/data'
5.管理环境
conda install <package> # 推荐
pip install <package>
国内 pip 换源:
临时使用:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
设为默认:
升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
Python -m pip install --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
conda 与 pip 安装的区别:
conda
可以创建和管理独立的虚拟环境,每个环境可以有自己的 Python 解释器和包集合。这使得在不同项目之间隔离包依赖关系变得更加容易。pip
也可以创建虚拟环境,但是通常需要借助其他工具(如virtualenv
)来实现。- 包源和依赖解析:
conda
可以从多个包源(如 Anaconda 仓库、conda-forge、arcgis 的 esri 渠道等)中获取软件包,这些包源提供了广泛的软件包集合。conda
还能够解决包之间的依赖关系,确保安装的软件包及其依赖项兼容。pip
主要从 Python Package Index(PyPI)获取软件包,但在解决依赖关系方面相对较弱,可能需要手动处理依赖项。
6.常用软件包还有:
- NumPy:一个用于科学计算的库,提供了高性能的多维数组对象和各种数学函数。
- Pandas:一个用于数据分析和处理的库,提供了高效的数据结构和数据操作工具。
- Geopandas:基于 Python 的开源地理数据处理库,它结合了 Pandas 的数据处理功能和 Shapely 的地理几何操作,提供了方便的地理数据分析和可视化工具。
- Shapely 是一个基于 Python 的开源库,用于进行地理几何操作,包括点、线、面等地理对象的创建、编辑和分析。
- TensorFlow:一个用于机器学习和深度学习的开源库,提供了丰富的工具和功能。
- PyTorch:一个用于构建深度学习模型的开源机器学习库,提供了动态计算图的支持。
- Matplotlib:一个用于绘制数据可视化图表的库,提供了各种绘图选项和样式。
- OpenCV:一个用于计算机视觉和图像处理的开源库,提供了各种图像处理和计算机视觉算法。
- Arcpy:
arcpy
是 ArcGIS 软件的 Python 库,用于地理信息系统(GIS)数据处理和空间分析。它提供了许多功能和工具,用于读取、写入、处理和分析地理空间数据。arcpy
可以用于自动化地理数据处理任务、地图制作、空间分析等。 - Scikit-learn:一个用于机器学习的库,提供了各种常用的机器学习算法和工具。
- Django:一个强大的 Web 应用框架,用于构建高效的、可扩展的 Web 应用程序。
- requests:
requests
是一个简洁而强大的 Python 库,用于发送 HTTP 请求和处理 HTTP 响应。它提供了简单易用的 API,使得与 Web 服务进行通信变得简单。 - selenium:
selenium
是一个用于 Web 应用程序测试和自动化的 Python 库。它可以模拟用户与浏览器的交互,实现自动化操作,例如填写表单、点击按钮、抓取网页内容等。
文章索引
【ArcGIS Python 系列】系列笔记为学习 ArcGIS Pro 和
Arcpy
过程中的总结,记下来方便回看,最新版本会优先发布在我的博客和GITHUB。
【ArcGIS Python 系列】教程部分:
- 一、Arcpy 介绍和安装【ArcGIS Python 系列】
- 二、ArcGIS Pro 和 ArcMap 的区别【ArcGIS Python 系列】
- 三、Arcpy 基础【ArcGIS Python 系列】
- 四、探索空间数据【ArcGIS Python 系列】
- 五、处理地理数据异常【ArcGIS Python 系列】
- 六、处理几何数据【ArcGIS Python 系列】
- 七、处理栅格数据【ArcGIS Python 系列】
- 八、制图模块【ArcGIS Python 系列】
- 九、自定义工具箱【ArcGIS Python 系列】
- 十、ArcGIS_Pro 常见问题【ArcGIS Python 系列】
- 利用 ArcGIS Python 批量处理地理数据的坐标系
- 使用 ArcGIS Python 检测洪水影像的区域
- 利用 ArcGIS_Python 制作考虑路况的交通等时圈
- 利用 ArcGIS Pro 制作弧线 OD 图【ArcGIS Python 系列】
- 使用 ArcGIS Pro 对卫星图进行建筑轮廓识别和车辆检测
- ArcGIS_Pro 官方课程整理
- 持续更新…
【ArcGIS Python 系列】jupyter notebook:
- 4.2.3-arcpy 基础(代码练习).ipynb
- 4.2.4-探索空间数据(代码练习).ipynb
- 4.2.5-示例 1:使用 Arcpy 进行 GIS 人口空间分布数据探索.ipynb
- 4.2.7-处理几何数据代码练习和示例 2.ipynb
- 4.2.8-栅格数据(代码练习).ipynb
- 4.2.9-制图模块.ipynb
- 4.2.12-实操 1-利用 Python 批量处理地理数据的坐标系.ipynb
- 4.2.13-实操 2-使用 Python 对图像中的洪水进行分类.ipynb
- 4.2.14-实操 3-制作考虑路况的交通等时圈.ipynb
如果你觉得本系列文章有用,欢迎关注博客,点赞 👍 和收藏,也欢迎在评论区讨论,也欢迎访问我的爱发电支持我,或者对此文章进行赞赏。