赞
踩
本教程使用的是ArcGIS Pro而不是ArcGIS Pro和ArcMap,关于两者的区别:4.2.2-ArcGIS Pro和ArcMap的区别.md
一句话说明ArcPy是什么: ArcPy是一个 Python 站点包,可提供以实用高效的方式通过 Python 执行地理数据分析、数据转换、数据管理和地图自动化。可以通过ArcPy调用ArcGIS Pro中几乎所有的工具,将其与其他Python工具结合使用,形成自己的工作流程。
Python脚本在ArcGIS Pro中的应用可实现自动执行复杂的任务,避免繁琐的软件操作界面。举例来说,假设你需要收集不同渠道的shpfile,然后要检查和匹配所有shp的坐标系,如果是在软件中那么你一定会崩溃。利用Arcpy我们可以编写一个 Python 脚本以检查多个数据集的坐标系,然后都转为指定的坐标系。
ArcPy 包是默认 Python 存在于ArcGIS Pro环境中的,而且需要搭配软件使用。所以安装好ArcGIS Pro就完成了第一步。
对于新手,可以选择方式一试用。
方式一:官方试用21天
方式二:参考麻辣GIS分享的ArcGIS Pro 3.0 完整安装教程和安装包。
本站也提供软件的百度网盘地址:链接:https://pan.baidu.com/s/1ObwKZBwujcrKGpV0czdk7g?pwd=n2kw 提取码:n2kw。如果你需要的阿里云盘链接,可以关注公众号renhailab后私信“ArcGIS PRO 3.0”,我会手动发送给你阿里云盘快传链接。
ArcPy采用conda管理环境,可以自定义环境,添加或删除库,但是不能修改默认的arcgispro-py3环境,因为自定义环境会使其在某些情况下不可用,会导致ArcGIS Pro 应用程序(使用 arcgispro-py3 环境)中的功能也可能处于错误状态。 可能需要完全卸载并重新安装 ArcGIS Pro。
我们需要克隆环境然后进行环境管理,但是使用官方教程通过程序内置包管理器克隆环境时会出错,原因不明,亲测不是因为网络问题。
自定义环境中添加和删除包非常容易导致环境出错,建议不要大量修改环境中的库。
适合国内环境,配置conda镜像之后,通过程序自带的conda包管理器进行克隆,同样支持使用Pycharm:
.condarc
,文件一般在:“C:\Program Files\ArcGIS\Pro\bin\Python.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/
打开命令提示符输入proenv
(或者找到并打开"C:\Program Files\ArcGIS\Pro\bin\Python\Scripts\proenv.bat"),如图所示则激活了arcgispro-py
环境,:
运行清除conda包索引的命令: conda clean -i
,提示输入y
。
**管理员运行**Arcgis Pro程序,进入包管理器,点击克隆环境,指向你自己安装的conda环境文件夹或者其他文件。(相当于在后台运行了conda克隆环境的命令)
**管理员运行**Pycharm或其他编辑器,添加解释器-使用现有conda环境-选择刚刚克隆的环境。
下面说明如何快速克隆环境,简单来说就是直接复制arcgispro-py3文件夹:
找一个你认为合适的存放克隆文件夹的位置,我在此处将文件夹放在了conda环境文件夹下"C:\Users\用户名\conda\envs\arcgispro-py3-clone"
进入到Pro默认安装文件下,拷贝文件arcgispro - py3到上述地址中,改名,此处改名为arcgispro-py3-clone。
在Pro “管理环境”–“添加”, 然后指向到第二步中的文件夹。
点击确定即可。
从 ArcGIS Pro 2.7 开始,当 ArcPy 包版本不冲突时,可将其添加到现有 Python 3 环境中。 要添加 ArcPy,请使用 conda 从 Anaconda Cloud 上的 Esri 频道安装 ArcPy。 从 Python 命令提示符中,使用适当的版本号运行以下命令:
conda install arcpy=3.0 -c esri
具体留在如何配置机器学习的arcpy环境中一起说明。
除了使用proenv
可以激活环境之外,还有另一种方式,proswap
命令:
proswap -n <your_env>
proswap
命令不是标准 conda
命令的,是arcgispro独有的。proswap
命令前面没有 conda
。 proswap
会直接更改ArcGIS的默认环境,而proenv
只是在对话框临时暂时激活环境。
我们可以直接打开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'
conda install <package> # 推荐
pip install <package>
国内pip换源:
临时使用:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
- 1
设为默认:
升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
Python -m pip install --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
- 1
- 2
conda与pip安装的区别:
conda
可以创建和管理独立的虚拟环境,每个环境可以有自己的Python解释器和包集合。这使得在不同项目之间隔离包依赖关系变得更加容易。pip
也可以创建虚拟环境,但是通常需要借助其他工具(如virtualenv
)来实现。conda
可以从多个包源(如Anaconda仓库、conda-forge、arcgis的esri渠道等)中获取软件包,这些包源提供了广泛的软件包集合。conda
还能够解决包之间的依赖关系,确保安装的软件包及其依赖项兼容。pip
主要从Python Package Index(PyPI)获取软件包,但在解决依赖关系方面相对较弱,可能需要手动处理依赖项。arcpy
是ArcGIS软件的Python库,用于地理信息系统(GIS)数据处理和空间分析。它提供了许多功能和工具,用于读取、写入、处理和分析地理空间数据。arcpy
可以用于自动化地理数据处理任务、地图制作、空间分析等。requests
是一个简洁而强大的Python库,用于发送HTTP请求和处理HTTP响应。它提供了简单易用的API,使得与Web服务进行通信变得简单。selenium
是一个用于Web应用程序测试和自动化的Python库。它可以模拟用户与浏览器的交互,实现自动化操作,例如填写表单、点击按钮、抓取网页内容等。更多:
【ArcGIS Python系列】系列笔记为学习ArcGIS Pro和ArcPy过程中的总结,记下来方便回看,最新版本会优先发布在我的博客和GITHUB。
【ArcGIS Python系列】教程部分:
【ArcGIS Python系列】jupyter notebook:
如果你觉得本系列文章有用,欢迎关注博客,点赞和收藏,也欢迎在评论区讨论:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。