
《ArcGIS遇上Python》
文章平均质量分 70
Python语言是目前很火热的语言,极大的促进了人工智能发展。你知道在ArcGIS中也会有python的身影吗?事实上,在ArcGIS中使用Python会起到事半功倍的效果,大大提高工作效率,本专栏讲解在ArcGIS中使用Python进行制图、地理处理、数据库等批处理。
优惠券已抵扣
余额抵扣
还需支付
¥89.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
刘一哥GIS
多年研究地图学、地理信息系统、遥感、摄影测量和GPS等应用,精通ArcGIS等软件的应用,精通多门编程语言,擅长GIS二次开发和数据库系统开发,具有丰富的行业经验,致力于无人机测绘、地信、数字城市、资源、环境、生态、国土空间规划、空间数字建模、数字城市等领域深度应用。
展开
-
【ArcGIS遇上Python】批量提取多波段影像至单个波段
本案例基于ArcGIS python,将landsat影像的7个波段影像数据,批量提取至单个波段。原创 2025-01-30 22:35:05 · 1184 阅读 · 0 评论 -
Visual Studio 2022如何配置ArcGIS Python环境
在开始配置Visual Studio Code以支持Python开发之前,首先需要确保你的计算机上已经安装了Python。你可以从Python的官方网站下载并安装最新版本的Python。安装完成后,可以在命令行中输入python --version来验证Python是否成功安装以及查看其版本信息。如果在安装VS时选择了Python,则不需要安装,如果么有勾选,可以从扩展中搜索python插件,进行安装。ArcGIS默认安装的是python27,而本次安装的Visual Studio2022并不支持。原创 2024-11-19 11:42:52 · 638 阅读 · 0 评论 -
【ArcGIS遇上Python】python实现批量XY坐标生成shp点数据文件
ArcGIS 10.2批量导入Excel数据X、Y坐标(经纬度、平面坐标),一键py生成Shapefile点数据图层生成的数据是带有坐标系的,也就是wgs1984,是根据代码中的EPSG代码来确定的。例如,你的数据如果是平面坐标,就需要找到对应的坐标的EPSG。现有多个excel、txt或者csv格式的坐标数据,需要根据其坐标批量一键生成shp点数据,如下X为经度,Y为维度。多个文件通常是借助python来完成的,代码如下,点击F5运行即可。批量生成的shp:所有的属性数据都没有丢失的转到了shp属性表中。原创 2024-01-27 17:06:10 · 1236 阅读 · 0 评论 -
【ArcGIS遇上Python】ArcGIS Python批量筛选多个shp中指定字段值的图斑(以土地利用数据为例)
以土地利用数据为例,提取多个shp数据中的旱地。提取的旱地:(以图层名称+地类名称命名)原创 2024-01-13 16:14:45 · 772 阅读 · 0 评论 -
【ArcGIS遇上Python】ArcGIS批量为多个矢量图层添加一个或多个字段(Add Field)案例实现
多个人在利用ArcGIS做数字化之后,需要批量为多个图层添加一个或者多个相同的字段,挨个手动添加字段显然不可取。ArcGIS Python提供了快速高效的批量添加字段的解决方案。本文以土地利用数据(Landuse1和Landuse2)为例,采用简单的Python代码实现了文中两个矢量图层批量添加字段。文章目录1. 矢量化结果预览2. 批量添加字段前后的属性表对比3. ArcGIS Python实现4. 配套实验数据下载1. 矢量化结果预览2. 批量添加字段前后的属性表对比在数字化时,只采集了.原创 2021-11-02 23:49:13 · 4610 阅读 · 6 评论 -
【ArcGIS遇上Python】ArcGIS Python获取某个字段的唯一值(获取指定字段的不同属性值)
以土地利用数据为例,DLMC字段为每个图斑的用地类型,怎样用Python代码获取该字段的属性唯一值?Python代码实现结果:Python源代码:import arcpyfrom arcpy import envarcpy.gp.overwriteOutput=1env.workspace = "E:/data"def getuniqueValue(inTable,inField): rows = arcpy.SearchCursor(inTable) unique.原创 2021-09-01 17:38:54 · 2516 阅读 · 1 评论 -
【ArcGIS遇上Python】ArcGIS Python按照指定字段批量筛选不同类型的图斑(以土地利用数据为例)
基于土地利用数据,根据用地类型名称,批量筛选出不同类型的用地,生成不同类型的shp数据,以类型名称命名。文章目录土地利用原始数据根据名称批量筛选结果ArcGIS Python批处理代码土地利用原始数据根据名称批量筛选结果ArcGIS Python批处理代码# -*- coding: cp936 -*-import arcpyfrom arcpy import envarcpy.gp.overwriteOutput=1env.workspace = "E:/data"def .原创 2021-09-01 17:31:43 · 4107 阅读 · 1 评论 -
【ArcGIS遇上Python】ArcGIS Python将多个文件夹内的分幅数据整合到同一个文件夹内——以Globeland30数据为例
从Glabeland30官网下载的全球地覆盖数据包括3年(2000、2010、2020),每一年都是按图幅存储的tif格式栅格数据。以2000的数据为例,全球共812个图幅,每一个图幅对应一个压缩包,如下图所示。WinRAR解压缩在进行数据预处理时,必须将其逐个解压(其实我们知道,为了便于在软件中操作,最好的方式是将所有的图幅数据解压到一个文件夹内),然而这样可能有困难,可以先将所有的文件夹选中,右键→WinRAR→解压到当前文件夹。解压结果是每个图幅对应一个文件夹,WinRAR解压软件只能做到这原创 2021-08-18 08:18:46 · 947 阅读 · 10 评论 -
【ArcGIS遇上Python】Python实现Modis NDVI批量化月最大合成
最大合成法(MVC)可以在Envi中的Band Math中进行,式子是B1>B2,但是无法批量化;本文实现在ArcGIS中利用Python代码批量进行,如下:用到的Modis NDVI数据是在MRT中进行拼接与转投影后的月数据,一个月有两期,数据格式是.tif,文件名的格式如:20040101.1_km_16_days_NDVI.tif,20040102.1_km_16_days_NDVI.tif代表2004年1月份的两期数据。本次处理的为2004-2013年的10年的数据。Python代码如原创 2014-08-29 13:23:08 · 17495 阅读 · 30 评论 -
【ArcGIS遇上Python】使用add-in向导开发ArcGIS插件(1):add-in工具介绍及安装
文章目录addin介绍addin下载addin安装addin介绍ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作。相对于以往9.x系列,addin的无论是从使用或者编写都更加方便快捷。通过开发语言,可以制作ArcGIS Desktop各个软件模块的插件。Esri提供了Python加载项向导工具来实现Addin界面的搭建,可以到Esri官网去下载该工具Python加载项向导 。从介绍来看,该设计器要求的最低ArcGIS版本为10.1 ,如下图所示:add原创 2021-04-04 17:15:27 · 6503 阅读 · 4 评论 -
【ArcGIS遇上Python】Python批量将多个文件夹下的多个影像数据镶嵌至新栅格
ArcGIS虽然可以实现一次多个影像同时参与,拼接成一个整的影像,但是通常情况下,多个影像并不在同一个文件夹下,这样拼接的时候需要逐个手动进行添加,如果数据量大的话,跟不就不可取,针对这一问题,本文采用Python,实现将多个文件夹下的多个影像拼接,高效快速。我们以Globeland30土地利用数据为例进行演示。从官网上下载2000、2010、2020三年的数据,解压后是3个文件夹。选择2000年的数据,打开文件夹,有个多个压缩包,全选,解压到当前文件夹。这样我们就得到了如下的数据样式然后打开原创 2021-01-14 16:35:09 · 4672 阅读 · 5 评论 -
【ArcGIS遇上Python】ArcGIS批量处理栅格影像(NDVI)归一化完整案例代码
文章《ArcGIS栅格影像(NDVI)归一化处理的两种方法精解》详细介绍了ArcGIS中进行NDVI影像归一化处理的两种方法,但是无法批量进行,本文就放大招用Python实现批量NDVI归一化处理,大大提高了工作效率,还不赶快Get了?import arcpyfrom arcpy import envfrom arcpy.sa import *arcpy.CheckOutExtension(“Spatial”)#这个是工作空间目录,待处理的所有影像都在这个文件型数据库中env.workspace原创 2021-01-14 00:54:02 · 4976 阅读 · 5 评论 -
【ArcGIS遇上Python】从入门到精通系列之第一章:ArcGIS Python简介
文章目录1. Python简介2. Python的特点3. ArcGIS的脚本语言4. ArcGIS中的Python脚本编辑器1. Python简介Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。2. Python的特点3. ArcGIS的脚本语言ArcGIS中支持Python、VBScript、JavaScrip原创 2020-12-03 23:46:08 · 11757 阅读 · 7 评论 -
【ArcGIS遇上Python】从入门到精通系列之第二章:ArcGIS Python基本语法基础速递
Python的语法和其它编程语言的语法有所不同,编写Paython程序之前需要对语法有所了解,才能编写规范的Python程序。本篇介绍Python标识符的同时,也讨论了Python变量的声明和赋值。通过本章的学习,将对python的数据类型、操作符、变量与赋值、代码块及缩进对齐、控制结构、函数、错误处理等进行全面的掌握,为后续ArcGIS Python深度学习打好基础。文章目录1. 数据类型2. 运算符3. 标识符4. 变量与赋值5. 代码块及缩进对齐6. 控制结构7. 函数8. 错误处理1. 数.原创 2020-12-22 21:42:06 · 1864 阅读 · 1 评论 -
【ArcGIS遇上Python】ArcGIS Python实现Modis NDVI批量求年最大值
一年中的12个月份的月最大合成(mvc)数据放在“F:\\Vegetation Change\\Data\\GIMMS Data\\1MVC\\",数据名称格式为mvc_198801,mvc_198802........mvc_198812。处理年份为1981-2006,代码为:import arcpyarcpy.CheckOutExtension("spatial")for i in r原创 2014-08-29 21:45:00 · 10730 阅读 · 1 评论 -
【ArcGIS遇上Python】栅格影像批量除以10000
影像做除法时,要先进行float()运算,在进行Divide运算。以下将指定文件夹下的.tif文件首先转换为float并保存在指定文件,再进行divide运算。import arcpy,os,globarcpy.CheckOutExtension("spatial")datafiles=glob.glob("F:\\Modis_16\\1Moasic\\*.tif")for datafi原创 2014-08-29 21:55:29 · 5999 阅读 · 6 评论 -
【ArcGIS遇上Python】Python使用栅格数据
栅格数据是一个独特的空间数据类型。很多地理处理工具都是为了处理栅格数据而开发的。1. 列出栅格数据ListRaster函数是以Python列表的形式返回工作控件中的栅格数据,该函数的语法格式是:ListRaster({wild_card},{raster_type})可选参数wild_card通过名称限制返回的结果,参数raster_type通过栅格数据的类型限制返回的结果。举例:列出某个工作空间中的所有tif格式的栅格数据如下。import arcpyfrom arcpy impor.原创 2020-12-03 23:09:49 · 2993 阅读 · 5 评论 -
【ArcGIS遇上Python】ArcGIS Python实现批量化矢量和栅格数据重命名
在ArcGIS中,要为矢量数据或栅格数据重命名,需要到ArcCatalog中进行,但是只能一个个重命名。ArcGIS中也提供了矢量、栅格数据的重命名工具:【重命名】,如下图所示:双击运行该工具,可以看到,更改数据集的名称。这包括各种数据类型,其中包括要素数据集、栅格、表 和 shapefile。在工具上右键→批处理,也可以进行批处理。以上操作虽然可以实现批处理,但是过程比较麻烦,需要不断确定输入元素和输出元素。本文讲述如何用Python代码实现高效批处理。下过如下图所示:原创 2014-09-06 20:47:47 · 8084 阅读 · 6 评论 -
【ArcGIS遇上Python】ArcGIS10.6 python批量将栅格中的特定值替换Setnull为NoData
ArcGIS10.6 python批量将栅格中的特定值替换Setnull为NoData 案例一: 如下图所示为兰州市dem,将图一中高程大于1600m的像元值设置为无效(Setnull)之后的效果如图二所示。 实现过程:栅格计算器参考文章:《【ArcGIS风暴】ArcGIS 10.2栅格计算器实用公式大全(经典珍藏版)》,该文章中主要以rcGIS102.为平台讲解栅格计算器的使用方法及注意事项。在ArcGIS10.6中,以GRID格式的DEM数据为例,将高程值大于1600的像元设源代码赠送原创 2020-11-01 12:04:59 · 5795 阅读 · 7 评论 -
【ArcGIS遇上Python】ArcGIS python计算长时间序列多个栅格数据的平均值
通常,我们需要将多个栅格求平均,例如,将一年中每个月的NDVI值加起来除以12,就会等到月均NDVI,该过程虽然在栅格计算器中可以实现,但是当时间序列较长时就比较费事,此时,python代码是不二的选择。下图所示为栅格数据相加的原理图,也就是对应的栅格相加,生成新的栅格数据。求均值是需要再除以栅格个数。python求均值代码:import arcpyfrom arcpy.sa import *arcpy.CheckOutExtension("spatial")arcpy.gp.ove原创 2020-11-01 11:46:19 · 9896 阅读 · 21 评论 -
【ArcGIS遇上Python】python批量获取栅格数据四至(top,bottom,left,right)坐标代码
ArcGIS python批量获取栅格数据四至(top,bottom,left,right)坐标代码上图所示为ArcGIS自带的影像数据,存放路径为C:\Program Files (x86)\ArcGIS\Desktop10.6\ArcGlobeData\wsiearth.tif",在源中可以查看该数据的四至坐标,那么,怎样用python批量获取多个栅格数据的四至坐标呢?实现方法:在python中编写如下代码,回车!代码运行结果: import arcpy arcpy.env.workspa原创 2020-11-01 10:41:55 · 3727 阅读 · 5 评论 -
【ArcGIS遇上Python】ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换
由于论文的需要,将MODIS NDVI数据进行投影变换和格式转换,具体操作可以参照:《ArcGIS10.8完美实现MODIS NDVI数据格式转换和投影变换》,但是该文章中的做法只能一次性实现一景影像的转换,没法批量,虽然ArcGIS中提供了Batch的方法但是需要挨个添加数据,确定输出路径等等,本文就实现以ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换。先来看投影后的效果:在实现批量投影转换之前,需要两个投影文件:Sinusoidal.prj和MyAl原创 2020-10-31 16:52:35 · 3343 阅读 · 17 评论 -
【Python可视化】Windows 10系统上Pyecharts安装教程
简单的Python库,如Numpy,可以直接在PyCharm中自动下载并安装。同添加Python环境变量一样,需要先添加pip环境变量。pip位于C:\Python27\ArcGIS10.8\Scripts路径下。Win+R→cmd:安装完成!原创 2020-05-29 00:11:10 · 1944 阅读 · 1 评论 -
【Python可视化】利用Numpy绘制各种统计图表
NumPy简介NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。NumPy 是一个.原创 2020-05-28 23:40:15 · 2505 阅读 · 0 评论 -
【ArcGIS遇上Python】ArcGIS Python中文编码问题案例详解
前面的文章《ArcGIS Python获取Shapefile矢量数据字段名称》我们已经学会了如何用 Python 获取中文路径下的shp数据的所有字段,英文没有问题,但是如果你输出中文路径下的数据字段, 就有可能会碰到中文编码问题。Python 文件中如果未指定编码,在执行过程会出现报错:import arcpyshp = 'C:\data\地级市.shp'fields = arcpy.ListFields(shp)for f in fields: print f.name.原创 2020-05-28 23:02:52 · 2271 阅读 · 0 评论 -
【ArcGIS遇上Python】ArcGIS Python获取Shapefile矢量数据字段名称
借助PyCharm环境,在不打开ArcGIS的情况下,编写Python代码,获取矢量数据的所有字段。import arcpyshp = r'C:\data\out\Export_Output.shp'fields = arcpy.ListFields(shp)for f in fields: print f.name运行结果:原创 2020-05-28 22:52:10 · 3342 阅读 · 0 评论 -
【ArcGIS遇上Python】三种利用Python批量处理地理数据的方法——以栅格数据投影转换为例
时至今日,笔者已经总结了三种用Python语言结合ArcGIS10.2提供的接口去批量处理地理数据的方法。即: 1. 用IDLE、Python Tools for Visual Studio等去编写py文件; 2. 用Python提供的tKinter模块去构建可视化窗体,并将其打包成exe可执行文件; 3. 用Python脚本工具自定义工具箱。 下面对三种方法分别做介绍。一、用IDLE、Python Tools for Visual Studio或PyChar原创 2015-12-20 18:11:36 · 22456 阅读 · 4 评论 -
【ArcGIS遇上Python】窗体版Python批量处理地理数据--栅格裁剪
一、说明 之前写过用Python代码块处理地理数据的例子,如裁剪、投影、格式转换等,曾想过用C#制作个窗体,嵌入Python代码,今天无意发现Python也能用tKinter构建简单的窗体,眼前一亮,先写个批量裁剪的例子吧。这样就不用对数据路径改来改去了,只需确定元数据路径,掩膜数据和输出路径就OK了,十分方便。二、效果三、代码#coding=utf-8fro原创 2015-12-20 16:21:54 · 3937 阅读 · 0 评论 -
【ArcGIS遇上Python】Python版的ArcGIS栅格计算器模板
import arcpyfrom arcpy.sa import *arcpy.CheckOutExtension("spatial")arcpy.gp.overwriteOutput=1#customarcpy.env.workspace="G:\\Phenology of 30 Years\\GIMMS 3g\\15Length\\1Length\\"#customoutpat原创 2015-11-07 11:02:31 · 6111 阅读 · 9 评论 -
【ArcGIS遇上Python】Python实现点转栅格(PointToRaster)
在ArcGIS中提供了点转栅格(PointToRaster)的工具,如下所示:参数说明:(1)file:点图层(.shp)(2)data:值字段(3)outFile:转换后的栅格图层(4)9660.848118:空间分辨率import arcpyarcpy.gp.overwriteOutput=1arcpy.env.workspace="G:\\Phenology of 30 Years\\GIMMS 3g\\14Down\\1PointsJoin\原创 2015-11-07 10:19:24 · 4393 阅读 · 2 评论 -
【ArcGIS遇上Python】长时间序列(30年)每两组栅格数据对应做减法运算求物候参数
Python语言在ArcGIS软件中发挥着乾坤大挪移的作用,然而很多人并不知道它的厉害之处。今天我们利用Python语言来批处理遥感物候数据,获取物候期的参数。说明:(1)Up_Path:始期数据路径变量(2)Down_Path:末期数据路径变量(3)outPath:相减输出结果路径变量完整的Python代码如下:原创 2015-11-07 10:07:23 · 5886 阅读 · 5 评论 -
【ArcGIS遇上Python】ArcGIS Python实现长时间序列遥感影像批量处理--以裁剪为例
任务分析:在采用遥感方法研究植被物候变化时,需要下载长时间序列(本文用到的是30年)GIMMS 3G NDVI数据。原始数据是全球的,预处理过程包括几何校正、裁剪、投影变换、Hants时间序列谐波分析等等。在这过程中,由于是长时间序列数据,需要重复操作,当然ArcGIS软件提供了批量(Batch)操作功能,但是,需要我们手动添加,比较费时费事,此时我们首先想到的是用Python进行。原创 2014-09-06 12:20:28 · 19962 阅读 · 3 评论 -
Python 3.6出现报错解决方案:No Python 3.6 installation was detected,无法卸载Python
卸载Python 3.6时错误提示,No Python 3.6 installation was detected。解决办法是,先右键→更改→Repair。然后再卸载,完成!原创 2020-06-05 11:04:44 · 5472 阅读 · 3 评论 -
Python趣味编程---Python也会讲笑话
笑话从哪里来?自己写肯定是不现实的。在这个“云”的时代,各种云都有,自然是不缺开放API的(大部分都是免费的)。随意一搜,果然被我找到一个接口:易源_笑话大全http://apistore.baidu.com/apiworks/servicedetail/864.html。下面写一个用Python写的例子,其实不止python语言,同样提供了C#,java等语言接口。# -*- codin原创 2016-04-19 21:33:04 · 4372 阅读 · 0 评论 -
Python环境搭建与连接SQL Server类MyDBase的实现
说起连接数据库,总是将一连串的代码封装成一个类,C#,Java一样,Python更是如此,下面来看它的实现 C#:使用ADO.NET自定义类MyDBase连接SQL Server数据库# -*- coding:utf-8 -*-import pymssqlclass MyDBase: def __init__(self,host,user,pwd,db):原创 2016-04-19 19:42:36 · 1595 阅读 · 0 评论 -
ArcGIS Python
1.遍历指定文件夹下的Grid格式的原创 2014-08-26 07:41:54 · 2454 阅读 · 0 评论 -
Python版九九乘法表
1、示例一>>> for i in range(10): s='' for j in range(1,i+1): s+=str(j)+'*'+str(i)+'='+str(j*i)+'\t' print s2、示例二>>> for i in range(10): s='' for j in range(1,i+1): s+=str(j)+'*'+str(i)+'='+re原创 2015-12-28 11:09:45 · 4306 阅读 · 0 评论 -
Python面向对象编程基础
#coding=utf-8class hello: def __init__(self,NAME): self.name=NAME def sayhello(self): print("Hello, {0}".format(self.name)) #拼接字符串,也可以用print("Hello "+self.name)#类的继承class原创 2015-11-13 20:19:43 · 833 阅读 · 0 评论 -
第一个网页爬虫程序
import reimport requestsheaders={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36'}html=requests.get('http://tieba.bai原创 2015-11-09 12:16:23 · 1249 阅读 · 0 评论 -
Python网页图片爬虫
#coding=utf-8import reimport requestsf=open('source.txt','r')html=f.read()f.close()pic_url=re.findall('img src="(.*?)" class="lessonimg"',html,re.S)i=0for each in pic_url: print each原创 2015-11-08 21:56:19 · 1413 阅读 · 0 评论