Python
文章平均质量分 66
gislaozhang
这个作者很懒,什么都没留下…
展开
-
arcpy添加shp或者gdb中的数据到arcmap或者arcgispro中
需求:如何通过arcpy将本地的shp或者gdb中的数据添加到arcmap或者arcgispro中具体实现:实现一:arcpy将本地的shp或者gdb中的数据添加到arcmaparcmap中是python2环境,可以通过下述代码将shp或者gdb中的要素类添加到arcmap的工程文档中(.mxd)参考这个链接即可:https://blog.csdn.net/gislaozhang/article/details/91447835实现二:arcpy将本地的shp或者gdb中的数据添加到原创 2021-05-26 09:55:17 · 2778 阅读 · 0 评论 -
如何遍历mxd中图层的字段列表
需求:如何遍历mxd(工程文档)中图层(layer)的字段列表以及获取字段的名称、类型和字段长度等信息脚本如下:# -*- coding:utf-8 -*-import arcpyimport arcpy.mapping as mappingmxd = mapping.MapDocument(r"D:\data\listfiled\test.mxd")layers = mapping.ListLayers(mxd)for lyr in layers: print(lyr原创 2021-03-03 17:13:44 · 410 阅读 · 1 评论 -
使用arcpy导出要素类和删除要素类中的要素数据
需求:目的是在指定的GDB数据库中,将要素数据集SourcePolygon下的北京图层中的Layer字段值等于“KZ-控制指标”的记录先到处到新创建的TempPolygon下,导出的图层名为“ControlIndex”,然后再将北京图层中的Layer字段值等于“KZ-控制指标”的记录删除。示例数据:链接:https://pan.baidu.com/s/115XtROqpCLkFQ8ZSJ8Nbhg提取码:4n1i具体代码:# -*- coding:utf-8 -*-imp...原创 2020-12-16 12:01:56 · 2540 阅读 · 0 评论 -
python命令提示符窗口下如何运行python脚本
以arcgispro的python脚本为例在arcgispro自带的python窗口下运行python脚本示例数据:链接:https://pan.baidu.com/s/1utIrY4Il_Y7hQi2Czg8IEg提取码:cfgj演示过程:脚本:将arcgispro的.aprx项目包中gdb的数据源路径更换为sde数据源路径。import arcpyimport jsonimport sysimport osimport argparseimport rer.原创 2020-09-09 16:34:01 · 1547 阅读 · 0 评论 -
arcgispro中加密python工具箱
问题:在arcgispro中对python工具箱进行加密,加密之后发现参数的显示名称都变成乱码了。而且再解密会报解码失败的错误提示。如果在加密时没有备份pyt文件,那么这样的话会导致该工具箱无法恢复。解决方法:...原创 2020-04-26 15:13:45 · 1559 阅读 · 0 评论 -
如何获取相交要素的属性值
需求:有个shapefile,要依次遍历每条要素 ,然后查询当前正在遍历要素与shapefile中其他的那些要素相交,将相交要素的id值赋值给当前正在遍历要素指定的字段当中。例如:下图中与要素001相交的要素是004和005,那就需要将004和005的值存储在001的记录中。其它要素同理。数据准备:具体实现:1、使用空间链接工具获取与每条要素相交的要素,按照下述图示的步骤操...原创 2020-04-15 14:03:31 · 1065 阅读 · 0 评论 -
通过Python使用环境设置
前言脚本可通过多种方式执行。可在 ArcGIS 应用程序中作为脚本工具运行。也可以通过其他脚本运行或本身在Python窗口中运行。当某个脚本在 ArcGIS 应用程序的工具中运行或通过其他地理处理脚本运行时,调用该脚本的应用程序或脚本所使用的环境设置将被传递到该脚本。这些设置将成为工具脚本执行时所使用的默认设置。被调用的脚本可能会更改传递的设置,但这些更改仅用在该脚本内或由该脚本可能调用的...原创 2020-04-11 20:19:12 · 1095 阅读 · 0 评论 -
使用Python添加工具箱
需求:在Python窗口使用Python工具箱中的工具具体实现:Python工具箱:# -*- coding: utf-8 -*-import arcpyclass Toolbox(object): def __init__(self): """Define the toolbox (the name of the toolbox is the na...原创 2020-03-23 18:27:20 · 1771 阅读 · 0 评论 -
ArcGIS Pro中如何使用jupyter notebook
1、初识jupyter2、如何打开jupyternotebook安装完ARCGISPro就会有jupyter环境,arcgispro是Python3,安装完pro会自动的将Python3路径写入到环境变量由于jupyter.exe在“C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\S...原创 2020-03-06 00:25:04 · 2633 阅读 · 0 评论 -
Python工具箱中使用值表(GPValueTable)
需求:参数数据类型为值表,值表中有两列,一列是字段,一列是字符串路径,如何实现选择其中一列字段,会将要素数据的存储位置自动填充给字符串列效果图:具体实现:import arcpyclass Toolbox(object): def __init__(self): """Define the toolbox (the name of the tool...原创 2020-03-05 23:22:02 · 584 阅读 · 0 评论 -
批量添加字段
需求:将其它图层(图层A、B)的字段添加到另一图层(图层C)属性表中如下图:下图中“气象数据201706”图层已有6个字段,现在想将“point”图层中除了OBJECTID、SHAPE之外的字段添加到“气象数据201706”图层中。具体实现:使用Python脚本进行实现,通过遍历“point”图层并将其字段名称、类型等参数获取到传递给arcpy.AddField_mana...原创 2020-01-19 17:06:13 · 2431 阅读 · 0 评论 -
ArcGIS Python编程案例-数据查询和选择
内容列表:1、创建要素图层和表视图注:要素图层和表视图会作为临时存储在内存上的中间数据集,来专门用于像按位置选择和按属性选择工具的一类工具。尽管这些临时数据集可以保存,这些临时图层可以通过右键选择保存图层文件(Save As Layer File)或简单地保存地图文档文件来保存到硬盘中,不过大多数情况下都不需要。创建要素图层:>>> import arcpy>>&g...原创 2018-06-14 17:14:13 · 4200 阅读 · 0 评论 -
基于ArcGIS的Python编程秘笈笔记(三):自动化地图制图和打印
引言本篇博客介绍如何使用arcpy.mapping模块来实现多个与地图生产和打印有关的地理处理任务。ArcGIS10推出的arcpy.mapping模块提供了许多与自动化地图生产相关的功能。arcpy.mapping模块可用于自动化地图生产,创建地图册,导出为图像或PDF文件以及创建并管理PDF文件。1、创建布局元素的python列表在地理处理脚本中,自动化地图生产的第一步通常...原创 2019-08-18 17:00:25 · 3643 阅读 · 0 评论 -
python3.x系列小案例集锦(不断更新中......)
前言:ArcMap中的python环境是2.x,ArcGISPro的Python环境是3.x,3.x系列对中文字符的支持更好,如果用独立的python编辑器(例如:pycharm)使用中文字符时,不需要在脚本中去声明编码格式;同时测试时发现python3.x运行时速度要快很多。另外在pycharm中如何切换python版本,如下图:1、缩放至图层import arcpyapr...原创 2019-08-09 14:59:33 · 1387 阅读 · 2 评论 -
基于ArcGIS的Python编程秘笈笔记(二):管理地图文档和图层
引言本篇博客记录如何使用ArcPy制图模块管理地图文档和图层文件,包括在地图文档文件中添加和移除地图图层和表,将图层插入到数据框中,在地图文档中移动图层,以及更新图层属性和符号系统。ArcGIS制图模块提供了自动化的制图功能,包括管理地图文档和图层文件,以及这些文件中的数据。此外,还提供自动导出和打印地图、创建PDF地图册和将地图文档发布成ArcGIS Server地图服务等功能。...原创 2019-08-11 00:00:07 · 2056 阅读 · 0 评论 -
python2.x中文乱码集锦(不断更新中......)
python2.x中使用中文字符会出现乱码等情况,一些解决方法如下:①IDLE(python GUI)②arcmap的python窗口支持③pychram④出现的问题:解决方案:参考链接:https://blog.csdn.net/supergiser_lee/article/details/56012714https://www...原创 2019-09-03 22:14:34 · 371 阅读 · 0 评论 -
arcpy处理mdb中的要素数据集和要素类
最近在测试如何获取mdb中的要素数据集,并且查询mdb要素类的属性表内容。测试数据使用ArcMap的python环境(C:\Python27\ArcGIS10.7\python.exe),并使用下述代码进行测试,发现能够将mdb中要素数据集名称获取到,并且能够查询指定要素类的内容。import arcpyimport osws = r"E:\test\testcwd.mdb...原创 2019-09-12 17:15:18 · 3853 阅读 · 1 评论 -
使用arcpy对两个要素进行更新操作
需求1:想在两个要素之间做更新,目标要素需要更新源要素的内容过来,包括几何和属性信息,他们的字段基本一致。数据:案例数据:链接:https://pan.baidu.com/s/1xAcOTuLXvtdPiiSFGPDWdQ提取码:lh2i脚本:import arcpyarcpy.env.workspace = r"E:\testing\Beijing449...原创 2019-09-17 15:56:25 · 1454 阅读 · 0 评论 -
如何使用Python网络爬虫
最近在测试一份代码,需求是从去哪儿网通过Python网络爬虫获取一些城市的信息,代码如下:from bs4 import BeautifulSoupimport pandas as pdimport requestsdef get_static_url_content(url): headers = {'User-Agent': 'Mozilla/5.0 (Window...原创 2019-09-24 12:13:16 · 421 阅读 · 0 评论 -
更改图层栅格分类符号系统外观的各种属性
需求:将符号化后的img数据另存为图层文件(.lyr),基于此图层文件对tif数据进行符号化。效果图:具体实现:import arcpymxd = arcpy.mapping.MapDocument(r"E:\testing\testanhui.mxd")df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]lyr = a...原创 2019-07-11 22:16:52 · 2192 阅读 · 2 评论 -
创建渔网工具
创建渔网(create fishnet)工具是指创建由矩形像元组成的渔网。输出可以是折线或面要素。创建渔网需要三条基本信息:渔网的空间范围、行数和列数以及旋转的角度。要指定这些基本信息可通过多种方法。例如,您可能不确定准确的行数和列数,但却清楚每个矩形像元必须正好为 110 米乘 63 米,并且必须覆盖另一要素类的空间范围。 可通过在模板范围参数中输入要素类或图层,或通过设置“输出坐标系”...原创 2019-07-08 15:16:15 · 10886 阅读 · 0 评论 -
使用python添加矢量数据到mxd
1、添加shp数据到mxd# -*-coding:utf-8-*-import arcpymxd = arcpy.mapping.MapDocument(r"E:\testmxd\testmxd.mxd")df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]theShape = r"E:\testmxd\江夏区.shp"addL...原创 2019-06-11 16:56:03 · 1760 阅读 · 0 评论 -
移除mxd中的空图层
需求移除mxd中的空图层,同时删除对应文件夹中的矢量数据图示:test.mxd——>output.mxd技术实现数据路径硬编码:##路径硬编码import arcpymxd = arcpy.mapping.MapDocument(r"F:\zhouliyun\test2.mxd")for df in arcpy.mapping.ListDataFrames(m...原创 2018-08-24 15:01:16 · 1243 阅读 · 0 评论 -
【02】python脚本语言的编辑器安装和环境配置
(1)将python根目录配置到window环境变量中。在cmd中输入python,查看python版本。(2)安装JetBrains PyCharm Community Edition 2016.2.3,安装程序在链接:https://pan.baidu.com/s/16wblwyOP7M58W2szYFuYIw 密码:fmmd安装步骤,参考链接https://jin...原创 2018-08-20 00:08:08 · 654 阅读 · 1 评论 -
基于ArcGIS的Python——要素类至地理数据库
需求(1)将目录下中的多个(甚至多达1000个)gdb中的要素类合并到同一个gdb中(2)目录结构如下图所示:思路利用da.walk()来输出目录中gdb数据库里要素类的实际名称;walk函数式arcpy.da的一部分,通过自上而下或自下而上的方式遍历目录树,生产目录树中的文件名;每个目录或工作空间生产一个包含目录路径、目录名称和文件名的元组。这个函数类似Python的os...原创 2018-08-04 21:24:40 · 5511 阅读 · 1 评论 -
ArcGIS Python编程案例-ArcPy数据访问模块
背景1、什么是游标(cursor)?游标是包含从要素类或表中获取的一行或多行数据的内存对象。每行数据包含了数据源中每个字段中的属性以及每个要素的几何信息。游标可对表和要素类的数据进行搜索,增加,插入,更新以及删除。2、ArcPy数据访问模块(arcpy.da)是ArcGIS10.1新引入的模块,该模块包含的方法可迭代游标对象中的行。你还可以创建多种形式的游标。比如,搜索游标用于读取...原创 2018-06-15 10:27:27 · 7775 阅读 · 8 评论 -
ArcGIS Python编程案例-创建自定义地理处理工具
背景除了能够在脚本中执行所有可用的工具(ArcGIS桌面软件提供了800多个地理处理工具,这些工具都可以在Python脚本中使用),你还可以在脚本中调用自己创建的自定义工具。许多自定义工具来专门用于执行组织机构内特定需求的地理处理任务。而且这些工具也很方便共享。目的将脚本添加到ArcToolbox下的自定义工具箱中创建自定义地理处理脚本工具。案例将使用一个已编写好的Python...原创 2018-06-14 11:45:22 · 5591 阅读 · 0 评论 -
基于面要素腌膜提取栅格并生成各自的栅格文件
需求:根据矢量面图层,腌膜提取栅格,同时基于面要素去生成各自的栅格文件数据:结果:代码:# Import system modulesimport arcpyfrom arcpy import envfrom arcpy.sa import *# Set environment settingsenv.workspace = "E:\\tttt"pa...原创 2018-10-08 18:09:43 · 3226 阅读 · 1 评论 -
查看file geodatabase(.gdb)版本
例如:我想查看D:\temp.gdb的版本。(示例中的gdb是在ArcGIS10.6.1中新建的)操作见下图。代码:import arcpydesc = arcpy.Describe(r'D:\temp.gdb') print desc.release查询的结果:3,0,0通过http://desktop.arcgis.com/en/arcmap/latest/a...原创 2019-03-08 14:42:33 · 1036 阅读 · 0 评论 -
Windows系统中设置Python程序定时运行
需求:在安装完ArcGIS后会同时安装Python和IDLE开发环境,平时我们大多在IDLE或者arcmap的python窗口运行我们的python脚本,现在的需求是让python脚本在指定的时间运行。实现过程如下(本机环境:win10 X64):控制面板——管理工具——任务计划程序解释如下:(1)示例数据和脚本:链接:https://pan.baidu.com/s/1...原创 2019-05-31 22:58:12 · 781 阅读 · 0 评论 -
如何使用python发布地图服务
环境:pycharm编辑器;ArcGIS Server10.6.1思路:(1)调用arcpy.mapping中的CreateMapSDDraft()函数,将地图文档文件(.mxd)转换为服务定义草稿文件(.sddraft),该文件由一个地图文档、服务器信息和一组服务属性组合而成;(2)调用StageService Tool(.sd,过渡服务工具),编译能成功发布GIS 资源所需的所有必...原创 2019-06-05 12:10:41 · 1355 阅读 · 0 评论 -
python2.x的一些解决方案积累(不断更新中......)
1、用Python实现IDW插值,并将环境设置中的输出范围设为指定图层输出范围可以使用arcpy.env.extent,具体参见:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#//001w00000009000000import arcpyfrom arcpy import env from arcpy.s...原创 2019-05-17 14:16:44 · 614 阅读 · 0 评论 -
遍历要素数据集中的要素类
需求:遍历sde中要素数据集下存放的要素类效果图:代码:import arcpy import os from arcpy import env env.overwriteOutput = True env.workspace = r"C:\Users\admin\AppData\Roaming\ESRI\Desktop10.6\ArcCatalog\C...原创 2019-05-11 09:50:55 · 2021 阅读 · 0 评论 -
arcpy操作sde中的要素类
环境:ArcGIS10.6.1、Oracle12c R1示例一:对sde中的要素类执行缓冲区分析import arcpy from arcpy import env env.workspace = r"C:\Users\admin\AppData\Roaming\ESRI\Desktop10.6\ArcCatalog\Connection to orcl.sde" arc...原创 2019-05-06 10:56:36 · 2055 阅读 · 1 评论 -
修改多波段影像像元值
需求:用户有上千幅多波段栅格数据(.tif),由于操作失误,导致每个栅格数据在不同波段中出现nodata值的情况,用户的需求是想将栅格数据中的nodata值改成255。思路:(1)创建输出文件夹。创建文件夹用于存储处理后的栅格数据。(2)遍历原始数据文件夹。(3)对每一个遍历的栅格数据执行计算统计值、然后对每一个多波段数据的各个波段(band1、band2、band3)执行co...原创 2019-04-03 18:15:19 · 3016 阅读 · 0 评论 -
使用python替换属性表记录信息
gdb里有很多个要素类,每个要素类都有SYSTEM_CODE和GISOBJID字段,现需要将SYSTEM_CODE 中的内容变成数字存放到GISOBJID(长整型) 这个字段中,例如:将“T3C-B1_”改成“03391”,同时去除掉“0001”前的“_”,并将更改后的值赋值给GISOBJID字段。思路:(1)迭代gdb中的要素类(2)将“T3C-B1_”改成“03391”,同...原创 2019-04-17 15:49:36 · 1153 阅读 · 0 评论 -
基于属性表不同字段的不同记录值空间插值
需求:基于属性表不同字段(例如:砷、镉、铜、铅、汞、镍)和属性表中分层字段中的不同分层(第1层、第2层.........、第6层)的要素记录进行空间插值。例如:在空间插值之前,将砷字段基于分层字段细分为6个单独的砷图层,即第1层的砷字段对应的要素数据、第2层的砷字段对应的要素数据、第3层的砷字段对应的要素数据、第4层的砷字段对应的要素数据、第5层的砷字段对应的要素数据、第6层的砷字段对应的...原创 2019-04-20 17:14:37 · 549 阅读 · 0 评论