ArcGIS中的Python入门知识点整理(附练习源代码)
关于Arcpy大家应该都比较熟悉,Python用的好,数据处理快又好!在ArcGIS中ArcPy是一个以成功的arcgisscripting模块为基础并继承了arcgisscripting功能进而构建而成的站点包。
目的是为以实用高效的方式通过Python执行地理数据分析、数据转换、数据管理和地图自动化创建基础。ArcPy提供了丰富纯正的Python体验,具有代码自动完成功能。今天我们就看看关于Arcpy相关处理的使用,通过一些简单代码与大家一起认识Arcpy。
一、使用什么编译器?
1.ArcGIS在安装的时候已经自动安装了相应版本的Python,直接在【开始】菜单中找得arcgis的安装路径,下来找到【IDLE(Python GUI)】这个图形用户界面双击即可,如下图所示:
这时候会弹出一个叫Python shell的窗口,shell其实是一个接受由键盘输入的命令,并将其传递给操作系统来执行的程序。这时候我们在这个窗口输入带啊吗是无效的,这个窗口其实是用来显示代码运行的结果或者错误提示信息,那么在那里输入代码呢?【File】-【New Window】即可。
这时候在新弹出的窗口【Untitled】就可以进行代码的书写啦,书写完毕后点击菜单栏上面的【Run】-【Run Model】就可以保存为.py文件后运行代码了。(不过貌似没有代码提示功能哦.....)
2.使用ArcMap桌面版里面的编辑器。首先打开ArcMap后,点击菜单栏上面的【Python】窗口,如下图所示:
在打开的界面中左键选择【Format】可以来设置窗体中的字体和文本颜色。窗体提供了黑白两个主题,我个人比较比较喜欢黑色哦。这个界面左边用来编写代码和显示运行结果以及错误信息,右边也可以提示错误信息,如下图所示:
3. 当然还可以使用第三方编译器,比如Pycharm,只要在设置中指定Python解释器为arcgis安装时附带的Python.exe就可以正常的导入相关包,开始享受舒适的编写环境了,运行代码不用打开GIS软件。
二、Arcpy具体怎么写?
直接上代码吧,里面有了很详细的注释啦,还不明白的可以留言哦。
1. 实现矢量裁剪效果:
如下图所示,蓝色的区域是【长沙市.shp】数据,黄色的是【长沙市建成区.shp】数据:
为了让【长沙市建成区.shp】来裁剪【长沙市.shp】,我输入了如下代码:
这段代码就是非常简单的使用了arcmap中的【裁剪】工具,如下图所示,工具打开需要3个必要参数。
打开下面的【工具帮助】也可以看到对【Clip_analysis】方法的语法解释以及一些简单的实现例子,使用其他函数方法时都可以这样参照学习了解,如下图所示:
运行这段代码的时候我是没有打开arcmap软件的,运行之后再打开看看,可以看到在D盘下面的【ArcpyBook】文件夹下面没有生成【clip.shp】文件,不急,右键【ArcpyBook】文件夹点击【刷新】,这时候子目录多了一个矢量数据【clip.shp】,将其拖入数据框中可以发现和【长沙市建成区.shp】一样。
2. 对之前生成的裁剪对象做缓冲区分析:
刷新后拖拽到数据框如下图所示:
3. 按位置选择要素(intersect):
按位置高亮选中前面生成的缓冲区范围内的公司点要素,并且在控制台输出被选中的点要素数量,【公司点.shp】数据如下图所示:
相关代码如下图所示:
针对方法【arcpy.MakeFeatureLayer_management(a,b)】我在这里多说一下,这个方法相当于将文件夹中的一份数据a临时复制到内容列表中命名为b,如果在第3方编译器中书写代码,这个是不会显示b到内容列表中,并且使用多次该方法,b的命名可以是一样的。但是如果采用前面说到的第2种方法进行书写代码,每一次调用该方法都要求这个b命名不一样,否则就会报错已存在该要素。
运行完代码后控制台输出了被选中的点要素数量,但是在arcmap这边却是没有被高亮选中,为此我们可以使用前面介绍的第2种方法进行代码的书写。
输出结果如下所示:
可以看到内容列表中多了一个【GSD】的临时数据,它和下面的【公司点.shp】存储路径是一模一样的。
源码如下:(文末有下方源代码下载链接)
代码下载
进入本公众号后台
发送数字
1771
获取下载链接
文件名:源代码
- END -
去除影像黑边的N种方法
如何做一张漂亮的高程、坡度、坡向分析图(附练习数据下载)
使用深度学习重建3D建筑
自主创新 多元生态,MapGIS 10.6信创GIS打造更强中国“芯”