@ecnu-cyx
2017-01-11T06:09:21.000000Z
字数 3077
阅读 1188
ArcGIS-ENVI
python的开放性、跨平台
站点包:Arcpy,pip,matplotlib,numpy,pandas,flask,jinja2,Web.py
缺点:强制缩进、执行速度慢
python map的字段计算器
python窗口IDLE
python脚本,然后在model builder中进行调用批处理、功能定制
1.arcpy.da:数据的编辑会话;表、要素类与Numpy格式互转;版本、属性域和子类工作流(data analysis)
2.arcpy.mapping:操作.mxd和.lyr;扩展了数据驱动页面导航,自动导出、打印地图
3.arcpy.sa:执行空间分析、空间运算(spatial analysis)
4.arcpy.na:可访问Network Analyst的所有工具(增删图层、获取属性);结合Arcpy.describe使用(network analysis)
5.arcpy.ga
6.arcpy.time
来自managemenrt.py,完全实现Data Management Tools
1、管理地理数据库(personal/file/sde GDB)
数据创建
数据库连接
数据备份
数据过滤
字段计算
2、其他
数据格式转换、空间数据格式转换、非空间数据格式转换、数据预处理、数据抽稀、字段计算、空间选择、属性选择、元数据处理、元数据填写、元数据标准转换。
eg: python实现数据转换
import arcpy
f = open(r"D:\data.txt")
cursor = arcpy.InsertCursor(r'D:\polygon.shp')
array = arcpy.Array()
point = arcpy.Point()
for line in f:
pt = line.split()
str = pt[3].split(',')
name = pt[1]
for j in str:
xy = j.split(',')
point.X = float(xy[0])
point.Y = float(xy[1])
array.add(point)
row = cursor.newRow()
row.shape = array
row.name = name
array.removeAll()
cursor.insertRow(row)
使用ArcPy.Mapping模块
1、与MapDocument、Layer及其内的数据进行交互
2、更改图层datasource
3、获得MXD相关信息:数据源,无效图层,空间参考
4、更改symbology、label显示、图层透明度等
5、自动化地图集生产
示例:
1.修改label的显示字符
import arcpy
mxd = arcpy.mapping.MapDocument(r'C:\change.mxd')
df = arcpy.mapping.ListDataFrames(mxd,"图层")[0]
# 对第一个图层进行修改
lyr = arcpy.mapping.ListLayers(mxd,"",df)[0]
lyr.showLabels = True
lyr.labelClasses[0].expression = "[CITY NAME] +" "+[CNTRY NAME]"
# 保存结果
mxd.save()
del mxd
2.更改文档中的datasource
import arcpy
mxd = arcpy.mapping.MapDocument(r'C:\changeSource/mxd')
mxd.findAndReplaceWorkPaths(r'C:\Python.gdb',r'C"\changeSource.gdb',"FILEGDB_WORKSPACE")
# 另存为一个新的mxd文档
mxd.saveACopy(r'C:\copy.mxd')
- 使用ArcPy.sa、ArcPy.na、ArcPy.time
- Add-In插件
- Python Add-In开发,开发工具addin_assistant
1) 向导方式创建ArcPy Add-In工程
2) 支持创建基于ArcMap、ArcCatalog、ArcGlobe、ArcScene插件
3) 支持创建扩展模块、菜单、工具条
4) 生成各种组件类及方法
https://www.arcgis.com/home/item.html?id=5f3aefe77f6b4f61ad3e4c62f30bff3b
-位于ArcGIS for Server 安装目录tools/admin目录下
-提供一套管理ArcGIS Server的脚本命令行工具
应用:
- 启动和停止服务
- 从集群添加和移除计算机
- 从服务定义(.sd)文件发布服务
- 备份或还原站点配置
- 定义新地图缓存
- 构建和删除地图缓存
- 在松散和紧凑格式之间转换地图缓存
1) 运行脚本时需要有管理员权限,必须提供一个具有管理员权限的用户名和密码
2) 在脚本中获取和使用令牌
3) 配置参数,构筑请求(服务停止,资源上传删除等)
实用:对实时数据处理要求高的行业,则可以用arcgis python API则可以将处理结果直接发布成服务。
- Python调用ArcGIS Portal/online REST api来调用资源
- ArcREST --python包(REST API for AGS,AGOL,webmap json)管理Portal\AGS\AGOL站点、管理内容用户
- 安装requirement.txt --pip install -r requirement.txt;
- 运行setup.py --python setup.py install
是一个全新的API,可以执行GIS分析和可视化、空间数据管理、GIS平台管理.
-- https://developer.arcgis.com/python/
原生、强大、简单,交互式开发,可分享、更新和重新运行的分析记录
gis模块:提供管理arcgis online或者portal for arcgis的功能,是使用GIS平台的入口。
tools模块:使用arcgis online或portal提供的各种分析功能
lyr模块:使用GIS平台提供的图层服务
viz模块:提供用来进行数据可视化和分析功能的组件