提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

【专注学习】基于Arcgis的python学习1

  • 前言
  • 一、主体思路流程?
  • 二、需要用到的函数
    • 1.清除所有变量
    • 2.读入数据-loadtxt
    • 3.读取文件夹中所有的txt文件的名字
    • 4. for 循环
    • 5.展xyz-MakeXYEventLayer_management
    • 6.克里金差值
    • 7.图层符号系统的改变
    • 8.图层符号的统一
    • 9.重分类
    • 10.查找范围
    • 11渔网
    • 12字段添加
    • 13图层名称获取
    • 14将图层名称插在表格的字段中
    • 15图层不可见或者直接删除
    • 16数据驱动出图
  • 三、慢慢合成一个程序(随时改)
  • 四、参考博文
    • 1.csv转shp
    • 2.数据驱动制图
  • 总结

前言

因为项目需要,加快项目成果处理速度,虽利用批处理可以解决一些问题,还是想试下二次开发arcgis。


一、主体思路流程?

依据 需要,先理个思路吧

  • 1.读入csv数据
  • 2. (增)csv转shp
  • 3. 展xyz
  • 4. 克里金
  • 5. 图层符号系统的改变
  • 6. 渔网
  • 7. 轴号和高程的标注
  • 8. 重分类
  • 9. 分类后的表格计算
  • 10. 表格添加到页面
  • 11. 数据驱动出图(渔网)

二、需要用到的函数

1.清除所有变量

代码如下(示例):

[globals().pop(var) for var in dir() if not var.startswith("__")]

2.读入数据-loadtxt

代码如下(示例):

import numpy as np
data=np.loadtxt(filepath,delimiter=',')

3.读取文件夹中所有的txt文件的名字

import os
path='./data'
files=os.listdir(path)

4. for 循环

for file in files:
print file,name

5.展xyz-MakeXYEventLayer_management

arcpy.MakeXYEventLayer_management("x1.csv","Field1","Field2","x1_Layer111","#","Field3")

6.克里金差值

# Replace a layer/table view name with a path to a dataset (which can be a layer file) or create the layer/table view within the script
# The following inputs are layers or table views: "f-new_layer"
arcpy.gp.Kriging_sa("7_f_s_layer","Field3","I:/teeeest/test.gdb/Kriging_csv_2","Spherical #","#","FIXED 0.1","#")

7.图层符号系统的改变

lyr.symbology.classBreakValues=[-5,0,5] #分类
lyr.symbology.classBreakLabels=["-5-0","0-5"]
lyr.symbology.classBreakDescriptions=["1","2"]
lyr.symbology.excludedValues='0'
arcpy.RefreshActiveView()

8.图层符号的统一

mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0]
updateLayer = arcpy.mapping.ListLayers(mxd, "K_X1", df)[0]
sourceLayer = arcpy.mapping.Layer(r"C:\Project\Data\Rivers.lyr") #使用存好的图层格式
arcpy.mapping.UpdateLayer(df, updateLayer, sourceLayer, True)

9.重分类

# Replace a layer/table view name with a path to a dataset (which can be a layer file) or create the layer/table view within the script
# The following inputs are layers or table views: "k_7_f_s"
arcpy.gp.Reclassify_sa("k_7_f_s","Value","-5 0 1;0 5 2","I:/teeeest/test.gdb/Reclass_k_7_1","DATA")
# Replace a layer/table view name with a path to a dataset (which can be a layer file) or create the layer/table view within the script
# The following inputs are layers or table views: "k_7_f_w"
arcpy.gp.Reclassify_sa("k_7_f_w","Value","-9.6422948837280273 -5 1;-5 0 2;0 5 3;5 10 4","I:/teeeest/test.gdb/Reclass_k_7_1","DATA")

10.查找范围

>>> import arcpy
>>> mxd = arcpy.mapping.MapDocument("current")
>>> df = arcpy.mapping.ListDataFrames(mxd)[0]
>>> lyrs = arcpy.mapping.ListLayers(df)
>>> lyr = lyrs[4]
>>> lyr
<map layer u'CNTRY92'>
>>> e = lyr.getExtent()
>>> e.XMax
180.25862595419844
>>> e.XMin
-180.25862595419844

11渔网

# Replace a layer/table view name with a path to a dataset (which can be a layer file) or create the layer/table view within the script
# The following inputs are layers or table views: "k_7_f_s"
arcpy.CreateFishnet_management("I:/teeeest/test.gdb/fish","1.997499962 -94.502500038","1.997499962 -84.502500038","0.1","0.1","#","#","3.252519038 -91.647456642","NO_LABELS","k_7_f_s","POLYGON")

12字段添加

arcpy.AddField_management(lyr,'context',"TEXT",field_length=50)

13图层名称获取

name_list=[]
for lyr in updateLayer:
...     print (lyr.name)
...     name_list.append(lyr.name)

14将图层名称插在表格的字段中

#先处理下图层名称
name=[]
for i in name_listname.append(i[1:-2])
#去重下
name_txt=[]
for i in name:if i not in name_txt:name_txt.append(i)#name_txt是最终需要的字段
#字段赋值i=0cursor=arcpy.UpdateCursor("fish2")for my_row in cursor:
...     my_value=my_row.getValue('TXT')
...     my_row.setValue('TXT',name_txt[i])
...     cursor.updateRow(my_row)
...     i +=1

15图层不可见或者直接删除

for lyr in lyrs:if lyr.name.endswith("layer"):lyr.visible=False #不可见arcpy.Delete_management(lyr)

16数据驱动出图

在这里插入代码片

三、慢慢合成一个程序(随时改)

[globals().pop(var) for var in dir() if not var.startswith("__")]
import arcpy
path1='I:/teeeest'
import os
path2=path1+'/data'
outDB=path1+'/test.gdb'
files=os.listdir(path2)
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0]
sourceLayer = arcpy.mapping.Layer(r"I:\teeeest\k_x1.lyr") for file in files:csv_path=path2+'/'+file filename=file.split('.')print (filename[0]+"is dealling")arcpy.MakeXYEventLayer_management(csv_path,"Field1","Field2",filename[0]+'layer',"#","Field3")arcpy.gp.Kriging_sa(filename[0]+'layer',"Field3",outDB+'/k_'+filename[0],"Spherical #","#","FIXED 0.1","#")print ("开始进行图层符号系统的统一")
updateLayer = arcpy.mapping.ListLayers(mxd, 'k*', df)
reclass_data="-10 -5 1;-5 0 2;0 5 3;5 10 4"
for lyr in updateLayer:arcpy.mapping.UpdateLayer(df, lyr, sourceLayer, True)arcpy.gp.Reclassify_sa(lyr,"Value",reclass_data,"re_"+lyr.name,"NODATA")#重分类print ("图层符号系统的统一结束")
print ("按照图层的分布进行渔网的生成")
for lyr in updateLayer:data_extent=lyr.getExtent()origin_coord=str(data_extent.XMin)+' '+str(data_extent.YMin)orient_coord=str(data_extent.XMin)+' '+str(data_extent.YMin+10)corner_coord=str(data_extent.XMax)+' '+str(data_extent.YMax)arcpy.CreateFishnet_management(lyr.name+'fish',origin_coord,orient_coord,"0.1","0.1","#","#",corner_coord,"NO_LABELS","#","POLYLINE")
print ("渔网生成结束")
print ("开始重分类")
#数据驱动的渔网
arcpy.CreateFishnet_management("I:/teeeest/test.gdb/fish2","0.5 -91.25","0.5 -81.25","5","3.5","#","#","5.5 0.5","NO_LABELS","0.5 -91.25 5.5 0.5","POLYGON")
#添加字段并生成num
arcpy.AddField_management('fish2','num',"FLOAT",field_length=10)
arcpy.CalculateField_management("fish2","num","!OID!","PYTHON_9.3","#")
# Replace a layer/table view name with a path to a dataset (which can be a layer file) or create the layer/table view within the script
# The following inputs are layers or table views: "fish2"
arcpy.CalculateField_management("fish2","TXT","'!num!+10'","PYTHON_9.3","#")

四、参考博文

1.csv转shp

arcpy将csv转换为shp

2.数据驱动制图

ArcGIS高级制图及批量出图使用数据驱动

总结

慢慢添加,最终应该可行

【专注学习】基于Arcgis的python学习1相关推荐

  1. (Python入门)学习笔记二,Python学习路线图

    (Python入门)学习笔记二,Python学习路线图 千里之行始于足下,谋定而后动,冰冻三尺非一日之寒.之所以说这三句话,就是对于下面整理的路线图,即不让自己感觉路途的遥远而感到达到巅峰神界的遥遥无 ...

  2. arcgis下的python编程-基于ArcGIS的Python编程秘笈(第2版)

    基于ArcGIS的Python编程秘笈(第2版) 译者简介 审阅人简介 1 面向ArcGIS的Python语言基础 1.1 使用IDLE进行Python脚本开发 1.1.1 Python Shell窗 ...

  3. 《基于ArcGIS的Python编程秘笈(第2版)》——第1章 面向ArcGIS的Python语言基础

    本节书摘来自异步社区<基于ArcGIS的Python编程秘笈(第2版)>一书中的第1章,第1.1节,作者: [美]Eric Pimpler(派普勒) 更多章节内容可以访问云栖社区" ...

  4. 基于arcgis的python编程秘笈第2版_基于ArcGIS的Python编程秘笈(第2版)

    基于ArcGIS的Python编程秘笈(第2版) 译者简介 审阅人简介 1 面向ArcGIS的Python语言基础 1.1 使用IDLE进行Python脚本开发 1.1.1 Python Shell窗 ...

  5. Python学习交流群、python学习群、python技术交流群

    为方便大家交流学习Python,特建立Python学习交流群.python学习群.python技术交流群,群内严禁广告,广告者直接T,因群二维码有效期只有七天,需要加群的朋友请先扫码,然后回复:Pyt ...

  6. Python学习入门2:Python学习路线(课程大纲+Python视频教程+下载地址)

    Python学习路线(课程大纲+Python视频教程+下载地址) 目前Python已经成为最受欢迎的程序设计语言之一.Python的设计哲学是"优雅"."明确" ...

  7. python学习路线-2020年 Python学习路线及学习目标规划 拿走不谢!

    找不到完整的学习路线?小编分享2020年Python学习路线及学习目标规划拿走不谢,Python作为今年来特别受欢迎的编程语言,是AI时代头牌语言AI领域的敲门砖,Python已经入驻小学生教材,将来 ...

  8. 基于arcgis的python脚本编程视频-面向ArcGIS的Python脚本编程 PDF 高清版

    给大家带来的一篇关于Python相关的电子书资源,介绍了关于ArcGIS.Python.脚本编程方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小49.9 MB,Paul编写,目前豆瓣.亚 ...

  9. Python学习入门7:python学习从基础到高手,再到就业

    其实入门Python并不难,难的是选定自己的学习方向. 简单说下Python可以做什么: 后台开发(Django / Flask / Tornado) 科学计算(Numpy / Scipy / Mat ...

最新文章

  1. 获取用户精准地理位置信息(百度地图)
  2. 流线动态图python_Node.js Stream(流)
  3. c语言第六章条件型循环结构,C语言课件(第六章 循环结构)
  4. python实现录音小程序 界面_微信小程序录音界面以及功能实现
  5. 08-07 性能测试--性能监听平台
  6. 极化码 极化现象matlab仿真(信道容量,巴氏参数,高斯近似三种方法)
  7. euraka 启动报错
  8. JS生成UUID的几种方法
  9. RMXP脚本解析(四):Window_Base
  10. 计算机页面下没有桌面图标,电脑下面小图标没了怎么办
  11. 大学生征信与相关金融知识手册
  12. 脱敏数据的残余风险评估
  13. STL:容器共性机制、容器元素深拷贝和浅拷贝问题
  14. mysql sql 多表更新语句_MySQL跨表、多表更新SQL语句总结
  15. Lexical Simplification with Pretrained Encoders 论文精读
  16. Ubuntu 挂载U盘
  17. [leetcode417]. 太平洋大西洋水流问题
  18. 开门最快的服务器,魔兽怀旧服最有牌面的服务器,开门进度惊人,国服的牌面...
  19. 内存正确性测试工具 memtester
  20. 购买视觉系统:您必须询问的10个问题

热门文章

  1. c语言单链表的实现,C语言 单链表的实现
  2. [转]国家税务总局:个税专项附加扣除APP正式启用!(附操作指南)
  3. 流失用户分析(Ⅰ)_流失用户定义
  4. Linux下kiftd开机启动,解决Windows下kiftd无法正常启动的问题
  5. 在电脑上找不到sql服务器,win8系统安装sql server软件后找不到怎么办
  6. 物联网宠物饮水机解决方案
  7. 通用排序框架在爱奇艺推荐的应用
  8. gis利器之Gdal(一)
  9. 学习总结1—TS解码和打包总结
  10. mdrill安装(2)