Python与Arcgis系列
文章平均质量分 68
通过Arcpy实现各种arcgis地理处理工具脚本
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
Auto工程师
爱写代码的工程师
展开
-
Python与ArcGIS系列(二十)GDAL之合并shp和geojson要素图层
Shp格式是GIS中非常重要的数据格式,主要在Arcgis中使用,但在进行很多基于网页的空间数据可视化时,通常只接受GeoJSON格式的数据,众所周知JSON是利用键值对+嵌套来表示数据的一种格式,以其轻量、易解析的优点,被广泛使用与各种领域,而GeoJSON就是指在一套规定的语法规则下用JSON格式存储矢量数据。本篇将介绍如何利用Python的GDAL实现多个同类型shp文件和geojson文件的合并。原创 2024-01-30 22:26:31 · 698 阅读 · 0 评论 -
Python与ArcGIS系列(十九)GDAL之面要素转线要素
在arcgis软件中,我们可以通过加载面数据至图层面板,在arctoolbox中打开数据管理工具——要素——面转线实现面转线的功能。下面介绍如何在python中利用gdal实现这个功能。面要素转线要素是将面状的地理要素(如多边形)转换为线状的地理要素(如折线)。本篇将介绍如何利用Python的GDAL实现面要素转线要素以及一些应用场景。GDAL(Geospatial Data Abstraction Library)是一个开源的地理数据处理库,它提供了处理地理空间数据的功能和工具。原创 2024-01-14 10:23:07 · 255 阅读 · 0 评论 -
Python与ArcGIS系列(十八)GDAL之gdb转shp
MDB和GDB数据格式分别是微软Access数据库文件格式(MDB)和Esri文件地理数据库格式(GDB)。而Shp格式是GIS中的一种重要的图层数据格式,MDB和GDB数据通常包含多个图层数据。本篇将介绍如何利用Python完成MDB和GDB数据到Shp格式的转换。GDB格式提供了更高级的功能和性能,适用于大规模和复杂的GIS项目。GDB格式相对于MDB格式来说更加灵活和强大,适用于大型GIS项目和专业的地理空间分析。MDB格式适用于小型和中型的GIS项目,对于处理较大规模的空间数据集可能存在性能限制。原创 2024-01-01 21:08:27 · 1134 阅读 · 0 评论 -
Python与ArcGIS系列(十七)GDAL之shp转geojson
Shp格式是GIS中非常重要的数据格式,主要在Arcgis中使用,但在进行很多基于网页的空间数据可视化时,通常只接受GeoJSON格式的数据,众所周知JSON是利用键值对+嵌套来表示数据的一种格式,以其轻量、易解析的优点,被广泛使用与各种领域,而GeoJSON就是指在一套规定的语法规则下用JSON格式存储矢量数据。多线要素是多个线要素的组合,因此其coordinates传入三维列表,来组合多条线,对应的geometry下type属性为"MultiLineString"。原创 2023-12-25 22:45:15 · 1716 阅读 · 0 评论 -
Python与ArcGIS系列(十六)重复节点检测
在处理gis线图层和面图层数据时,有时候会遇到这种情况:数据存在重复节点或伪重复节点(两个节点距离极小),往往我们需要对这种数据进行检测标注或进行修改。本篇将介绍如何利用arcpy及arcgis的工具箱实现这个功能。我们有一个面图层,其中有些面要素存在重复节点或伪重复节点(两个节点距离极小)情况,需要将这些重复节点位置找出来并单独创建一个标注图层。我们采用arcgis的工具箱形式添加我们的脚本,脚本中输入用户界面选择的两个参数,分别是输入图层和输出路径。原创 2023-12-08 22:17:45 · 751 阅读 · 0 评论 -
Python与ArcGIS系列(十五)根据距离抓取字段
在处理gis数据的时候,会遇到这种需求:将一个图层与另一个图层中相近的要素进行字段赋值。本篇将介绍如何利用arcpy及arcgis的工具箱实现这个功能。我们采用arcgis的工具箱形式添加我们的脚本,脚本中输入用户界面选择的两个参数,分别是道路图层和路口图层。我们分别有一个道路的线图层和一个路口的点图层,现在需要将道路图层的道路名字段赋给相应的路口点要素。为了介绍这个功能的实现,我们需要有一个特定的功能需求。如两个交叉路名分别为1号路和2号路,那么我们为路口字段命名则为:1号路_2号路。原创 2023-12-08 21:12:00 · 742 阅读 · 0 评论 -
Python与ArcGIS系列(十四)批量输出shp
在处理gis数据的时候,会遇到这种情况:需要将n个mdb文件内的所有图层全部保存成shp格式,或者,将当前工作空间加载的所有图层批量输出shp。首先需要了解的是,完成这个功能我们需要指定输出文件夹,如果每次都修改再加载代码又有点麻烦。这时候前面章节介绍过的工具箱就有用处了,通过工具箱创建一个窗口,指定选择输出路径,通过加载写好的代码,就可以完成将当前工作空间的所有图层输出到指定文件夹。这个功能我们需要指定输入的mdb文件以及输出文件夹(进一步可拓展为多个mdb输出),其他步骤与1基本类似,只展示代码部分。原创 2023-12-03 21:12:07 · 2369 阅读 · 0 评论 -
Python与ArcGIS系列(十三)UpdateCursor方法
更新游标(UpdateCursor)对象会在正在编辑或删除的数据上设置锁。创建了更新游标(UpdateCursor)实例,你就可以调用updateRow()方法来更新表或要素类中的记录,也可以调用deleteRow()方法删除行记录。如果需要编辑或删除表或要素类中的行数据,可以使用更新游标(UpdateCursor)。接着上一节的例子,我们上一节中为省级行政区图层添加了一行taiwan,现在我们将通过UpdateCursor方法将该添加行中字段为0的进行修改,修改后为-9999。原创 2023-11-28 20:15:43 · 1779 阅读 · 0 评论 -
Python与ArcGIS系列(十二)InsertCursor方法
InsertCursor()函数可用于创建插入游标(InsertCursor)对象,通过程序向要素类和表中添加新行。本案例中,我们要在要素类中插入两个新数据,要插入的行数据保存在一个列表变量中。之后,在构造函数中使用要素类和字段参数创建一个插入游标对象。我们选取的数据依然是省级行政区图层数据,我们的需求是:在已有数据基础上,添加一行台湾数据,台湾数据保存在txt中,具体如下图所示。插入游标(InsertCursor)对象可以向表或要素类中插入行,如果想在新行中插入属性值,需要按照属性表中字段顺序依次赋值。原创 2023-11-28 19:58:22 · 1625 阅读 · 0 评论 -
Python与ArcGIS系列(十一)SearchCursor方法
ARCGIS10.1后引入了几何令牌,可以只返回几何的一部分信息,对于只需要特定几何的情况可以明显提高SearchCursor性能。几何令牌以SHAPE@<要返回的要素几何信息>的格式作为字段列表中的字段来传递给游标构造函数。SearchCursor函数返回的对象,只能通过遍历行的方式返回只读目标,不可进行修改。默认情况下SearchCursor将返回一个要素类的所有行,若需要使用某些限制条件约束返回的行,可以通过where子句设置筛选条件实现。若存在中文编码错误问题,可以在代码前加上以下代码。原创 2023-11-26 20:54:43 · 1735 阅读 · 0 评论 -
Python与ArcGIS系列(十)要素查询与选择
Arcgis的Select by Attributes入门使用、Arcpy的Select Layer by Attribute按属性查询选择方法、Arcpy的Select Layer by Location按空间查询选择方法。通过Select Layer by Location工具可以对要素类执行按空间关系查询和选择,该工具针对的是要素类和相关要素图层进行使用。Select by Attributes是通过SQL语句的方式执行的,构造选择条件时与python有一些语法和类型上的区别。原创 2023-11-26 20:05:27 · 1784 阅读 · 0 评论 -
Python与ArcGIS系列(九)自定义python地理处理工具
在arctoolbox中的自定义工具箱可以创建自定义的地理处理工具脚本,通过python代码实现功能,它拥有更好地易于使用的用户界面和检查功能。在arcmap中单击ArcToolbox打开工具窗口;在ArcToolbox空白处右键添加工具箱;新创建一个我的工具箱;以裁剪功能为一个简单例子来实现自定义工具箱,先将代码准备好(GetParameterAsText用来接收工具用户界面传入的参数):try:except:为我的工具箱添加4中的脚本;原创 2023-11-18 21:19:28 · 1561 阅读 · 0 评论 -
Python与ArcGIS系列(八)通过python执行地理处理工具
arcgis包含数百种可以通过python脚本执行的地理处理工具,这样就通过python可以处理复杂的工作和批处理。本篇将介绍如何利用arcpy实现。在脚本执行地理处理工具之前我们需要知道有哪些地理处理工具,可以通过地理处理–搜索工具进行地理处理工具搜索,并通过帮助查看具体使用方法。很多时候需要将一个地理处理工具结果作为另一个的输入,这边需要建立地理处理工具间的联系。确定了我们需要使用的地理处理工具函数后,就可以在arcpy中执行该地理处理工具。执行地理处理工具以及在地理处理工具间建立联系。原创 2023-11-16 19:56:50 · 1578 阅读 · 0 评论 -
Python与ArcGIS系列(七)自动化打印地图
使用ListPrinterNames()函数生成可用的打印机列表,然后再用PrintMap()函数将打印任务发送给指定打印机。使用ExportToJPEG()、ExportToGIF()、ExportToBMP()函数可以导出不同类型图像文件。以上代码,将数据框打印到默认打印机,若要指定打印机,在第二个参数传入即可,此外还有输出打印质量的参数等。通过arcpy提供的ListPrinterNames()函数可以生成可用的打印机列表。使用ExportToPDF()函数可以将数据框导出至pdf文件。原创 2023-11-12 14:10:31 · 1781 阅读 · 0 评论 -
Python与ArcGIS系列(六)查找和修复数据源
查找丢失数据源、findAndReplaceWorkspacePaths()方法修复丢失数据源、replaceWorkspaces()方法修复丢失数据源、replaceDataSource()修复单个图层和表对象。本篇将介绍如何利用arcpy实现。通过arcpy.mapping模块中的replaceWorkspaces()方法可以将数据源由文件地理数据库转换至个人地理数据库,对丢失数据链接进行修复。layer和tableview都有replaceDataSource()方法,改变单个图层和表的工作路径。原创 2023-11-12 14:08:13 · 1946 阅读 · 0 评论 -
Python与ArcGIS系列(五)图层更新
UpdateLayer()函数可以更新图层属性,所有可在图层属性中找到的属性都可以通过这种方法进行修改,包括字段别名、定义查询、标注字段等。其中updateLayer图层是需要更新的图层,sourcelayer是包含更新的符号系统图层。通过UpdateLayer()函数可以改变地图文档中图层的符号系统,也可以改变图层的各种属性。UpdateLayer()函数在arcpy.mapping模块中。改变图层的符号系统、改变图层属性。本篇介绍如何利用arcpy实现。原创 2023-11-12 13:59:23 · 1468 阅读 · 0 评论 -
Python与ArcGIS系列(四)在地图文档中加入图层
arcpy的mapping模块提供的AddLayer()函数可以实现将图层添加到地图文档中。功能本质上与“add data”功能按钮一致。要实现将图层插入到数据框中的指定位置,可以使用arcpy的mapping模块提供的InsertLayer()函数。对于函数中的AUTO_ARRANGE自动放置图层在数据中,也可指定参数TOP或BOTTOM将其放在最上或最下方。将图层添加到地图文档中,以及将图层插入到地图文档指定的位置。本篇介绍如何利用arcpy实现。原创 2023-11-12 13:56:08 · 1683 阅读 · 0 评论 -
Python与ArcGIS系列(三)视图缩放
在所有图层中进行缩放使用的方法是DataFrame.zoomToSelectedFeatures(),选择的要素可以来自于数据框的所有图层,若没有选择,则缩放至全图显示。对于以及创建的选择集数据,通常需要进行缩放以更好地显示所选要素,要素缩放可分为两种:第一种是在所有图层中进行缩放,另一种只考虑单独图层进行缩放。本篇介绍如何利用arcpy实现缩放视图到所选要素以及改变地图范围功能。缩放至指定图层所选要素。原创 2023-11-11 22:49:36 · 1554 阅读 · 0 评论 -
Python与ArcGIS系列(二)获取地图文档
在ArcPy中,要引用当前的地图文档(Map Document),可以使用 mapping 模块中的 MapDocument 类。值得注意的是,在arcgis内部python窗口运行该代码才能访问已加载进arcgis的文档,如果通过其他idle则无法访问。要引用磁盘上的地图文档并对其进行一些设置,同样可以使用ArcPy中的 mapping 模块和 MapDocument 类。对于我们平常的工作,接触最多的就是图层数据处理,获取图层后就可以方便地进行下一步处理。原创 2023-11-11 22:48:44 · 1676 阅读 · 0 评论 -
Python与ArcGIS系列(一)ArcGIS中使用Python
按照惯例,作为本系列专栏的第一篇,先简单地介绍下本系列文章的内容:通过python语言创建arcgis环境脚本、将脚本以工具箱形式存放在arcgis中、通过脚本自动执行地理处理、数据修复、查找和编辑要素等,以及一系列提高gis工作效率的开发功能案例。arcgis的python窗口也提供了代码补全功能,除了常用的python常用语句补全外,对于arcpy包中的相关函数也会自动补全,极大地方便了我们的代码编写。第一种方式:在“地理处理”工具栏下的“python”,打开python窗口;原创 2023-11-11 20:51:35 · 2924 阅读 · 0 评论 -
Python与ArcGIS(Arcpy)系列文章【汇总指北】持续更新中
目录一、ArcGIS中使用Python二、获取地图文档三、视图缩放四、在地图文档中加入图层五、图层更新六、查找和修复数据源七、自动化打印地图八、通过python执行地理处理工具九、自定义python地理处理工具十、要素查询与选择十一、SearchCursor方法十二、InsertCursor方法十三、UpdateCursor方法十四、字段列表十五、mdb、gdb输出shp(自定义工具)十六、根据距离范围填充字段(自定义工具)十七、提取要素(自定义工具)十八、待更新(自定义工具)一、ArcGIS中使用Py原创 2023-11-11 20:50:27 · 1192 阅读 · 0 评论