周宇轩-基于ArcGIS的Python编程秘籍
2021-12-23 22:09:16 0 举报
AI智能生成
基于ArcGIS的Python编程笔记
作者其他创作
大纲/内容
Python语言基础
1、胶水语言(解析性、文本)
开发环境
文本编辑器
记事本(仅仅书写,无法调试)
ultraedit
notepad++
sublime text(推荐)
配置python环境
ArcGIS Python(Python自带IDLE)
集成开发环境IDE
Pycharm(推荐、项目管理功能)
Vs code(微软出品、轻量级)
配置python环境
插件式开发环境,配置json文件
良好的书写环境(PEP8)
不同风格
键+值
智能提示
自动缩进
调试、运行
关键:指定编译器(注意多Python环境处理)
数据应用和分析(数据科学)
在线jupyter notebook(Web界面)
Python语言的运行要求
Python的包(模块、库)
包的安装和管理pip
如何进入当前的python环境
如何在当前环境中pip install
国内镜像源
调包---安装相应的包,寻找需求的包
安装和环境变量设置
操作系统
X68
X64
X32
字符集
版本不兼容
2.X
arcpy(一个库)
3.X
python管理软件
anaconda
课程环境
python2.X+Arcpy+IDLE,arcgis python窗口
配置vscode环境(python+arcpy)
课外环境
python3.X+找包安装+vscode
写代码注意
分部写注释
结构先行
输入部分注意数据类型
输出部分注意格式需求
arcpy基础入门
arcpy的相关概念
esri提供的一个GIS地处理包(各种模块、类和对象、函数)
arcpy由一系列模块支持。---业务逻辑---对应哪个模块?(哪些函数提供了相应的功能)
类和对象---三大特性(封装、继承、多态)
对象三个要点:属性(特征)、事件(动作)、方法(函数/功能)
开发者视角看待问题(找对象、找属性、找事件、找方法)
函数---功能实现的基本单位(找对象、找函数、传参数)
arcpy解决问题思路:
调包调模块
梳理业务,找出对象
设置属性,调用方法(函数)
会看函数原型
信息视角考虑GIS(例子:叠加)
数学(例子:集合)
数据(例子:不同数据集,如:要素、图层;数据处理:交、并...)
软件(例子:选用哪个工具)
arcgis中的主要对象
GIS软件三件套
目录---数据文件管理
图层---数据对象管理
地图---地图对象管理
软件操作步骤
物理视角:数据文件的操作(数据加载)
数据类型
geodatabase数据源
个人数据库.mdb(access格式)
企业数据库.sde+rdbms(oracle/postgis)
文件数据库.gdb
arcsde+关系数据库oracle
在线数据源
web service/ogc
url地址
离线文件
如shp、dwg、xls、txt、等
多源数据
.xls
.csv
.txt
.dat
.xyz
.las
加载方式
注意:加载不同数据源的基础环境要求
插件
驱动引擎
转换
软件功能
工具箱
脚本方式
逻辑视角:数据对象的操作
数据对象
工作空间
图层
图层来源
数据集
lyr
图层操作
状态的操作
编辑的操作
制图的操作
图层的本质
(后台数据表)数据属性
图层的风格属性
图层的属性
风格属性
类型属性
电、线、面
数据源(数据集:
要素类
要素集
属性表
关系类
几何要素
标注
对象的操作
编辑类操作
增加
删除
修改
查询
风格化/格式化
浏览类操作
列出...
查看属性
分组
基于arcpy的数据操作
编程的基本方式
需求---脚本编程
命令式的书写方式---IDLE、arcgis python窗口来完成
有流程控制的要求---IDE开发环境(VSC---要配置arcpy环境要求)保存为.py文件
交互操作的要求:输入参数
自定义工具箱toolbox
目录——添加工具箱——添加脚本,导入.py文件,设置输入、输出参数P130
应用场景分析举例
数据源的操作(物理层面数据的操作)
基础:文件路径(目录位置)的操作
绝对路径:从根目录开始
相对路径:相对于源文件的路径
目录的书写:
/→\,r
相对路径
python2,中文路径
要用的数据对象(变成对象)
env(环境对象)
workspace(设置当前工作空间)
arcpy.env.workspace="目录"#指定当前工作空间所在位置,字符串
workspace(工作空间)指默认工作目录
python中的os模块,进行目录的操作
import os
arcpy.da(数据访问模块)
游标cursor(第八章)
矢量数据feature
栅格数据raster
数据表的操作
GIS中的数据表
数据集
图层
表
行
记录
元组
选择:列出某些行
列
属性
字段
投影:列出相关列
对于数据表的操作
从结构上看
新建一张表
更新一张表
删除一张表
从内容上看
增
删
改
查
从方向上看
行方向(选择)
游标(记录集、临时表)P168
arcpy.da模块(三种)
查询
SearchCursor
插入
UpdateCursor
InsertCursor
更新
(内存对象:退出即消失,with语句)
游标应用场景
查询DQL
arcpy.da模块
arcpy.da.SearchCursor('shp文件',[],条件表达式)=游标对象
with语句
with arcpy.da.SearchCursor('shp文件',[],条件表达式) as cursor:#对临时表进行遍历
for row in cursor:#for循环,读取每一行
print
for row in cursor:#for循环,读取每一行
数据库select语句
select count(列)from表
where条件表达式
=临时表(记录集)
where条件表达式
=临时表(记录集)
插入P178
arcpy.da模块
arcpy.da.InsertCursor
权限问题P171
执行出错时考虑是否当前数据已打开
顺序无关
插入到表末尾
更新
arcpy.da模块
arcpy.da.UpdateCursor
列方向(投影)
列的相关要素
名称
数据类型
约束条件
主键约束
外键约束
自定义约束
非空约束
检查约束
唯一约束
默认值约束
几何属性(GIS独有)
列的相关操作_management
增加列AddField_management()
删除列DeleteField_management()
修改列AlterField_management()
字段计算器CalculateField_management()
连接
0 条评论
下一页