ArcGIS是一款用于处理空间数据的软件,其空间处理能力几乎可以满足空间处理的绝大多数需求,但与此同时,也带来了相对较高的学习门槛与较为繁琐的操作。很多时候,光是一个地理坐标和投影坐标,就能让很多小白从入门到放弃。近期,因为一个地图匹配项目,我初步接触了python调用ArcGIS的工作。不幸的是,在第一步环境配置过程中,该走的弯路,我都走了。下面,讲一讲我在ArcGIS+python遇到的问题,给大家避雷。
>>>
ArcGIS中内置的python版本
首先,附一张官网给出的ArcGIS Desktop内置python版本的介绍。可以看出,即使是最新的ArcGIS 10.8内置的仍是python2.7。而我们常用的python版本是3.x版本,因此,若在spyder或者pycharm中直接import arcpy,会出现“No module named arcpy”的报错。
>>>
配置方法避雷
百度上述问题之后,会发现很多网友给出的解决方法是,直接将对应的spyder的python版本改为ArcGIS安装路径下的python版本,不出意外:
说明:我的ArcGIS版本是10.2,习惯用的IDE是spyder。
另外,还有一个较为繁琐的配置方法:
1.在anaconda中找到Anaconda Prompt,单击右键,更多→以管理员身份运行,以管理员身份打开Anaconda Prompt,更改环境为32 bit:
set CONDA_FORCE_32BIT=1
2.然后新建一个python2的环境(命名随意),安装时会询问是否显示安装过程,输入y,然后按回车键。
conda create -n env_name python=2.7
2.确定安装成功后,激活新的python环境,并安装适用于新环境的spyder:
activate env_name
conda install spyder=3 -y
3.安装成功后,打开新的spyder(会有两个spyder,以环境名为后缀的spyder才可以导入arcpy),每次导入arcpy前都需要输入以下代码:
在经历了N次无法启动spyder报错后(一一百度解决),测试方法可行,但该方法最大的雷点,配置的新python环境,啥包没有,大部分包都需要一一安装,实在离谱。因此,不推荐该方法。
>>>
推荐的方法—— 安装对应版本的anaconda
尝试上述方法后,发现直接安装对应版本的anaconda可以省去很多麻烦。
1.到anacondad清华镜像源下载 Anaconda2 的安装包进行安装,对ArcGIS10.1及以上的用户,安装最新版本Anaconda2 即可。
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
2.安装成功后,即可打开Anaconda2的spyder运行代码,在每次运行代码前输入下例代码即可导入arcpy。
至此,配置工作完成,直接安装anaconda2真省时省力!
>>>
一些常用的arcpy语句
最后,向大家罗列一些常用的arcpy语句:
1.创建缓冲区
arcpy.analysis.Buffer(in_features,out_feature_class,buffer_distance_or_field,{line_side},{line_end_type},{dissolve_option},{dissolve_field}, {method})
其中,in_features,out_feature_class,buffer_distance_or_field为必填项,in_features表示需要创建缓冲区的对象;out_feature_class是输出缓冲区的类别;buffer_distance_or_field为创建缓冲区的距离。
2.相交
arcpy.Intersect_analysis(A,B,C)
其中,A,B为相交的图层,C是需要输出的图层(需要输出到一个GDB中,否则不会出结果)。
3.邻近分析
arcpy.analysis.Near(in_features,near_features,{search_radius}, {location}, {angle}, {method}, {field_names})
其中,in_features为要进行缓冲的输入点、线或面要素;near_features为一个或多个包含邻近要素候选项的要素图层或要素类;{search_radius}是用于搜索邻近要素的半径;{location}指定是否将邻近要素上最近位置,默认不输入;{angle}指定是否计算邻近角并将其写入输出表;{method}确定是使用椭球体上的最短路径(测地线)还是使用地平(平面)方法;{field_names}指定将在处理过程中添加的属性字段的名称。
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/11456/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取