1.搜罗全网!码下ArcGIS二次开发Python(arcpy)指南(七):你也可以制作ArcGIS工具箱
2.[ArcPy百科]第一节:何为arcpy
3.ArcGIS与MySQL的码下实现高效数据交互arcgismysql
4.GIS之家整理GIS源码、地图数据及资料
搜罗全网!码下ArcGIS二次开发Python(arcpy)指南(七):你也可以制作ArcGIS工具箱
1.自定义工具箱是码下什么
自定义工具箱如同其名,是码下由个人创建的工具集合,类似于后缀为.tbx的码下乡村振兴网站源码压缩包。每个工具箱中可以包含多个工具集、码下脚本工具甚至模型构建器工具。码下
1.1如何添加自定义工具箱(熟悉可跳过)
第一步:右键点击ArcToolbox -> 添加工具箱
第二步:在添加工具箱窗口中选择需要添加的码下工具,点击右下角的码下打开即可。
1.2如何创建自定义工具箱
点击右上角的码下红色工具箱符号,可以新建并重命名一个工具箱。码下
1.3添加一个脚本工具
在工具箱中右键,码下点击添加,码下再点击脚本,码下进而创建一个脚本工具;亦或是右键,点击新建,再点击工具集,创建一个可以自定义名称的工具集,然后在工具集里新建一个脚本工具。
这里添加的脚本工具只是一个空壳,我们后面会继续完善。
新建的win10源码网址工具箱位于../Chapter7/海怪工具箱.tbx。
2.工具箱的封装
工具箱由三部分组成,其中有两部分需要我们来控制:所以下面的重点就是输入界面和 Python 源代码。
2.1工具箱输入界面
工具箱输入界面,或者说图形交互界面(GUI),我们可以通过该界面控制工具的行为,自定义输入界面然后配合 Python 脚本,可以实现多种客制化的功能。
2.2 Python 脚本
工具箱输入界面和 Python 代码要相互配合才行,工具箱界面中的输入、输出以及各种各样的参数,在 Python 脚本文件中都得一一对应上,将输入界面中的各个参数传给 Python 脚本,这样才能让 Python 脚本按照预期的效果正常运行。
看上去有点麻烦,但实际上 arcpy 中提供了现成的函数就可以直接获得参数。
3. 工具箱的各种错误和注意事项
3.1“限定”的错误
让我如此苦恼、如此害怕的,就是把写好的 Python 脚本封装成 ArcGIS 的工具箱。
每次我把程序代码写好,也能正常的运行,然后将其导入自定义工具箱中,点击运行之前还得沐浴更衣好好的pyqt 源码打包跨平台祈祷一番,愿天公助我。
3.2工具箱名字导致的错误
由于输出路径会自动填入工具箱的名字,中间有特殊符号的话,比如:“-”,就会报错。
3.3缩进错误
诡异的错误来了,报错显示如下。我都不知道是说的什么鬼话,怎么还有缩进错误?
3.4两种“变量”错误
第一种:global name xx is not defined
第二种:name xx is not defined
这个错是缠绕我最久的,每次出这种错误我都到处测试,偶尔莫名其妙就好了,但是一直不知道原因,直到后来我怀疑是不是也是中文字符造成的错误,结果发现,嘿,还真是!
比如错误处的代码是这样的,在变量 pta2 的上面是一行中文注释:
[ArcPy百科]第一节:何为arcpy
本系列"ArcPy百科"旨在系统整理有关ArcPy的知识。面向对象为具备Python开发经验和能力的ArcGIS/GeoScene软件使用者。
ArcPy是Python的一个站点包,实质上是一种模块,用于Python的销售平台网站源码代码组织,通常与模块概念互用。站点包是Python安装目录下专门用于安装各种工具包的文件夹,ArcPy即安装于此。
具体而言,ArcPy提供以下能力,涉及以下专用模块。值得注意的是,ArcPy在Pro版本中与ArcMap有所不同。
若有关于ArcPy的疑问,欢迎查阅源码及文章,所有内容均在gitee上同步,具体仓库地址如下:
gitee.com/godxia/arcpy...
ArcGIS与MySQL的实现高效数据交互arcgismysql
ArcGIS与MySQL的实现高效数据交互
随着数据量的不断增长和数据之间的复杂联系,如何实现高效的数据交互和管理成为了所有数据处理工具的核心问题。ArcGIS和MySQL作为两个比较重要的数据处理工具,如何实现高效的数据交互也成为了很多用户关注的问题。下面我们将具体介绍如何使用ArcGIS和MySQL实现高效的数据交互。
一、ArcGIS和MySQL的简介
ArcGIS是美国ESRI公司生产的一种以空间分析和高质量的地理信息为核心的地理信息系统软件,可用于矢量、栅格数据的存储、编辑、分析以及图形输出等操作。在哪里看java源码 ArcGIS支持多种数据格式,包括Shapefile、数据库、CSV等常见的数据格式,并提供了批量处理、模型工具、数据驱动等方便的功能,使它成为广泛应用于各个领域中的数据处理工具。
MySQL是一个开源的关系型数据库管理系统,它是一种单机型数据库,可用于Web服务器和桌面/企业应用程序。MySQL开放源代码,使得用户可以查看、更改和自由分发MySQL源代码和二进制代码。 MySQL以其卓越的性能、灵活性和可扩展性而受到广泛的应用,尤其是在Web应用程序中。
二、ArcGIS和MySQL之间的联系
在数据处理中,ArcGIS作为空间信息处理工具,处理的数据往往具有空间属性并呈现地图形式,因此需要与MySQL等关系型数据库进行数据交互。具体来说,ArcGIS可以通过ODBC接口与MySQL数据库建立连接并读、写MySQL数据库中的数据,ArcGIS与MySQL之间的数据交互主要可以通过以下两种方式来实现:一种是使用ODBC数据连接,另一种是通过Python编写自动化代码实现。
1.ODBC数据连接
ODBC(Open Database Connectivity,开放式数据库连接)是Microsoft推出的面向C语言的数据访问技术,它允许应用程序访问各种不同类型的数据源和数据库管理系统。ArcGIS利用ODBC技术可以通过连接器访问MySQL数据库,包括读、写、查询和删除等操作。通常情况下,ODBC驱动程序是不包含在ArcGIS中的,用户需先下载安装ODBC驱动程序,然后再连接到MySQL数据库。在创建ODBC连接时,需要设置一些连接参数,如连接的服务器地址、端口号、用户名、密码等。创建好连接后,在ArcGIS中通过选中数据库可以直接读取MySQL数据库中的数据。
2.Python自动化代码
除了使用ODBC数据连接以外,用户还可以通过Python编写代码实现ArcGIS与MySQL之间的数据交互。Python是一种高级程序设计语言,它可以与ArcGIS交互,用户可以用Python程序来自动化处理ArcGIS中的数据,同时也可以通过Python与MySQL数据库进行数据交互。该方法需要用户熟练掌握Python编程,并且了解SQL语句和MySQL数据库的使用。
三、实战案例演示
下面通过一个实战案例来演示如何使用ArcGIS和MySQL实现高效的数据交互。本案例中,我们使用Python编写代码来实现ArcGIS与MySQL之间的数据交互。下面是具体步骤:
1、创建MySQL数据库
在MySQL中创建test数据库,并创建一个名为student的表,如下所示:
CREATE DATABASE test;
USE test;
CREATE TABLE student( id INT PRIMARY KEY, name CHAR() NOT NULL, gender CHAR(4), score INT );
2、在ArcGIS中创建Shapefile文件
在ArcGIS中新建一个Shapefile文件,然后以点的方式在地图上添加一些点,用来代表学生位置。
3、编写Python代码
在Python中使用arcpy库连接ArcGIS和MySQL,将Shapefile文件中的数据导入到MySQL数据库中的student表中。
import arcpy
import mysql.connector as MySQLdb
#连接MySQL数据库
conn = MySQLdb.connect(user=’root’,
password=’′,
host=’localhost’,
database=’test’,
use_unicode=True)
cursor = conn.cursor()
#连接Shapefile文件
fc = r’C:\data\Points.shp’
fields = [‘id’, ‘name’, ‘gender’,’score’]
#读取Shapefile文件中的数据
rows = arcpy.da.SearchCursor(fc, fields)
#将数据更新到MySQL数据库中
for row in rows:
values = (row[0], row[1], row[2],row[3])
cursor.execute(“INSERT INTO student VALUES (%s, %s, %s,%s)”, values)
#关闭连接
conn.commit()
cursor.close()
conn.close()
4、运行Python代码
运行Python代码即可将ArcGIS中的数据导入到MySQL数据库中的student表中,同时也可以通过Python代码将MySQL数据库中的数据读取到ArcGIS中进行空间分析和可视化展示。
四、总结
本文介绍了如何使用ArcGIS和MySQL实现高效的数据交互,包括使用ODBC数据连接和Python编写自动化代码两种方式。通过上述实战案例,可以看出Python编写自动化代码的方法比ODBC数据连接更适合具有一定编程基础的用户,同时也拓宽了ArcGIS的数据处理能力和应用范围。相信读者们通过本文的介绍和实战演示,对ArcGIS和MySQL之间的数据交互有了更深入的了解。
GIS之家整理GIS源码、地图数据及资料
GIS之家的全面资料库
GIS之家精心整理了一系列GIS相关资源,涵盖四个核心部分:1. GIS源代码
arcgis api 3.x:包括地图加载、开发教程(个系列)如地图查询、态势标绘、热力图等,以及大连地图导航、GIS网格化监管等实例。
arcgis api 4.x:涉及第三方矢量切片、Echarts集成、地图叠加等高级功能。
leaflet:与Echarts、geoserver集成的地理信息处理功能,如图层编辑、属性查询等。
Cesium:三维场景、3D-Tiles、贴地标绘等高级3D展示技术。
OpenLayers:支持大规模数据渲染,如GeoServer服务的加载和在线分析。
Python方向:arcpy工具包的OSGB、MDB转换,以及切图工具等。
2. 地图数据
全国及部分区域的矢量数据,如路网、水系、绿地和行政区划。
不同分辨率的DEM数据、 ESA数据,以及三维模型数据。
多个城市的三维实景数据、倾斜影像数据和校园地图。
OSM中国区矢量数据、3DTiles大雁塔等。
3. 安装包和文档
包括arcgis .2.2至.5的不同版本。
文档资料包括教程、处理流程、技术大纲、开发指南等。
4. 适用对象与更新
面向webGIS和GIS初学者,以及对学习有帮助的GIS专业人员。
年更新记录:新增的省份地图数据和GIS项目实例。