需求

分析不同年份土地利用类型的变化。

思路

1、准备要对比的不同年份的数据
2、从文件夹中分别读取不同年份每个小类的shp文件
3、将不同年份相同小类的图层的属性放到一个图层里(union)
4、在union生成的结果中新增字段(change)
5、使用字段计算器,给新增字段赋值,如果属性没变,就赋值为1,如果属性变化了就赋值为0
6、按照属性选择发生变化的要素,最终输出结果文件

方法

  • os.listdir()——用于返回指定的文件夹包含的文件或文件夹的名字的列表
  • os.path.splitext()——分离文件名与扩展名
  • append() ——用于在列表末尾添加新的对象
  • arcpy.ListFeatureClasses() ——列出工作空间中的要素类
  • arcpy.Union_analysis() ——计算输入要素的几何并集,将要素及其属性都写入输出要素类
  • arcpy.CreateFileGDB_management() ——创建文件地理数据库
  • arcpy.ListFields() ——列出指定数据集中的要素类、shapefile 或表中的字段
  • arcpy.AddField_management() ——向表或要素类表、要素图层、栅格目录或带属性表的栅格添加新字段
  • arcpy.CalculateField_management() ——为要素类、要素图层或栅格计算字段的值
  • arcpy.FeatureClassToGeodatabase_conversion() ——将一个或多个要素类/要素图层转换为地理数据库要素类
  • arcpy.MakeFeatureLayer_management() ——创建要素图层
  • arcpy.SelectLayerByAttribute_management() ——基于属性查询在图层或表视图中添加、更新或移除选择内容
  • arcpy.CopyFeatures_management() ——将输入要素类或图层中的要素复制到新要素类

详解

1、os.listdir()

用于返回指定的文件夹包含的文件或文件夹的名字的列表。

os.listdir(new_shp_file_path) # 列出shp_file_path这个路径下的所有文件

如果目录下有中文,需要先进行转码处理:

new_shp_file_path = shp_file_path.decode('utf-8')

2、os.path.splitext()

分离文件名与扩展名,以最后一个.来区分扩展名

os.path.splitext(file)[0] 获得文件名
os.path.splitext(file)[1] 获得文件扩展名
os.path.splitext("D:/土地利用2017.gdb")[0] # D:/土地利用2017
os.path.splitext("D:/土地利用2017.gdb")[1] # .gdb
os.path.splitext("D:/土地利用2017.gdb.shp")[0] # D:/土地利用2017.gdb
os.path.splitext("D:/土地利用2017.gdb.shp")[1] # .shp

3、append()

append() 方法用于在列表末尾添加新的对象,无返回值,会修改原来的列表

aList = [123, 'xyz', 'zara', 'abc'];
aList.append( 2009 );  # alist = [123, 'xyz', 'zara', 'abc', 2009]

4、arcpy.ListFeatureClasses()

列出工作空间中的要素类

5、arcpy.Union_analysis()

计算输入要素的几何并集。将所有要素及其属性都写入输出要素类
![image.png](https://img-blog.csdnimg.cn/img_convert/dce759fe17e671f6841dc6daf92cf303.png#align=left&display=inline&height=245&margin=[object Object]&name=image.png&originHeight=245&originWidth=469&size=12726&status=done&style=none&width=469)

arcpy.Union_analysis (inFeatures, outFeatures, "ALL")

6、arcpy.CreateFileGDB_management()

arcpy.CreateFileGDB_management(out_gdb_path,out_gdb_name)
# 在指定目录中创建了文件地理数据库,如果输出地理数据库名称不包含 .gdb 扩展名,则会添加这样一个扩展名

7、arcpy.ListFields()

arcpy.ListFields(new_item_path)
# 指定的要素类或表的字段名称列表

8、arcpy.AddField_management()

arcpy.AddField_management(new_item_path,name_space,'SHORT')
# new_item_path :要添加指定字段的输入表
# name_space :新增的字段名
# SHORT :新字段的字段类型,

其他值

9、arcpy.CalculateField_management()

arcpy.CalculateField_management(new_item_path, name_space, expression, 'PYTHON_9.3')
# new_item_path :文件路径
# name_space :新增的字段名
# expression : 赋值运算的表达式
# PYTHON_9.3 :指定要使用的表达式的类型
"""
VB —表达式将使用标准 VB 格式编写,默认设置,64 位产品不支持
PYTHON —表达式将使用标准 Python 格式编写。地理处理器方法和属性的使用与创建 9.2 版地理处理器相同
PYTHON_9.3 —表达式将使用标准 Python 格式编写。地理处理器方法和属性的使用与创建 9.3 版地理处理器相同
"""

10、arcpy.FeatureClassToGeodatabase_conversion()

arcpy.FeatureClassToGeodatabase_conversion(new_item_path,out_location)

11、arcpy.MakeFeatureLayer_management()

根据输入要素类或图层文件创建要素图层。该工具创建的图层是临时图层,如果不将此图层保存到磁盘或保存地图文档,该图层在会话结束后将不会继续存在。

arcpy.MakeFeatureLayer_management(item_name, lyr_name)

12、arcpy.SelectLayerByAttribute_management()

arcpy.SelectLayerByAttribute_management(lyr_name, 'NEW_SELECTION', condition)
# NEW_SELECTION —生成的选择内容将替换任何现有选择内容,默认设置

其他属性
输入必须为要素图层或表视图。不能使用要素类或表作为输入。

13、arcpy.CopyFeatures_management()

将输入要素类或图层中的要素复制到新要素类。如果输入是具有选定内容的图层,则仅复制所选要素。如果输入是地理数据库要素类或 shapefile,则会复制所有要素。

arcpy.CopyFeatures_management(lyr_name,out_path)

补充

  • Python将反斜线 () 用作转义字符。例如,\n 表示换行符,\t 表示制表符。指定路径时,可使用正斜线 (/) 代替反斜线。使用两条反斜线(而不是一条)以避免语法错误。也可通过在包含反斜线的字符串前放置字母 r(以便正确解释)来使用字符串文本。

ArcPy处理土地利用类型数据相关推荐

  1. ArcGIS软件应用(二)——统计各行政区内的各土地利用类型面积

    之前有许多同学遇到过如何利用ArcGIS统计不同行政区内的各土地利用类型面积,于是我写了这个博文,便于大家查看. 所用数据: "河南省市级行政区.shp" "河南省土地利 ...

  2. 1980-2018年全国30米土地利用类型样例数据

    数据名称:中国全国30米高精度土地利用现状土地利用类型遥感监测数据 数据精度:30m 数据类型:栅格数据 数据范围:全国(含港澳台) 下载地址:https://download.csdn.net/do ...

  3. 全国及各省土地利用类型面板数据(2009-2016年)

    数据集名称:全国及各省土地利用类型面板数据 时间范围:2009-2016年 数据来源:第二次全国土地调查和年度全国土地变更调查 相关说明:采用中华人民共和国国家标准<土地利用现状分类>(G ...

  4. 全国省市县土地利用类型面板数据2009-2021年

    数据名称:省.市.县(区)最新土地利用类型面板数据(含36种用地类型) 数据来源:第二次和第三次全国土地调查和年度全国土地变更调查,采用中华人民共和国国家标准<土地利用现状分类>(GB/T ...

  5. arcgis把jpg转成栅格图像_土地利用JPG数据转栅格

    一.课程简介 本套视频以栅格数据处理.矢量数据处理与制图综合.空间分析.自动矢量化和ArcScene三维可视化为主,课程内容见目录标题,视频时长12小时. 购买本课程后将免费获取下列资料: ①11G视 ...

  6. arcgis使用arcpy计算土地利用LUCC变化转移矩阵、马尔科夫模型变化表,最好用的方法TabulateArea实现两期数据变化统计

    arcgis使用arcpy计算土地利用LUCC变化转移矩阵.马尔科夫模型变化表,最好用的方法TabulateArea实现两期数据变化统计: 下载链接:LUCC变化转移矩阵Arcpy脚本 coding ...

  7. 【Arc GIS 零基础教学】土地利用类型图的绘制方法

    Hi,我是胡学长!今天教大家怎么利用Arc GIS 绘制土地利用类型图.土地利用类型图是表达土地资源的利用现状.地域差异和分类的专题地图.它是研究土地利用的重要工具和基础资料,同时也是土地利用调查研究 ...

  8. 更新土地利用.shp 数据,垃圾场选址... 第八届GIS技能大赛解题

    这次我们来做一下第八届全国大学生 GIS 技能大赛2019年上午试题,虽然说是考试,但是其实里面的数据拿来作为练习是非常不错的,适合新手,当然了,如果你做得非常顺畅流利的话,那么你也可以去每年都有的G ...

  9. GEE学习总结(7)——MODIS 土地利用产品数据

    MODIS 土地利用产品数据-MCD12Q1 MCD12Q1 V6产品提供六种不同的分类标准的每年全球土地覆盖类型产品.通过使用监督分类和后处理的方式,以及先验知识和辅助知识等用于进一步细化特定类的信 ...

最新文章

  1. CTO:再写 if-else,逮着罚款 1000!
  2. Spring MVC控制层的返回类型--String类型与Bean类型
  3. AS2的MD5/SHA1/TEA等加密算法类
  4. Linux下的主辅DNS服务器同步
  5. xilinx IP核之ROM
  6. 用Android Studio调试Framework层代码
  7. 公办低分二本_山东的5所专科院校,属于本省公办,适合低分学生报考
  8. vue检测不到data里数组里面元素的变化
  9. Mongodb 集群实战
  10. (转)SpringMVC学习(九)——SpringMVC中实现文件上传
  11. 源代码电影涉及的计算机思想,关于电影源代码的结局解释
  12. leetcode力扣36.有效的数独
  13. [javascript] Promise API
  14. vs下qt混合编译错误:MOC问题
  15. 【MySQL技术内幕】34-lock与latch
  16. 腾讯企业邮箱免费申请 mail-tencent.com
  17. 好用的Linux数据库管理工具推荐!
  18. X射线系统、超声波系统及MRI数字成像原理解析
  19. 婚礼MV怎么自己做?制作婚礼MV视频的方法,小白也能3步搞定
  20. 迅雷首席架构师刘智聪:微信小程序的架构与系统设计的几点观感

热门文章

  1. IDEA 在头注解上添加用户名称和时间
  2. idea中配置maven仓库
  3. 利用python求解节点介数和边介数
  4. Java限流之 —— Guawa
  5. 吴恩达机器学习:逻辑回归
  6. 以下模块打印出超级块中某些字段的内容
  7. [USACO08OPEN]寻宝之路Clear And Present Danger
  8. linux ubuntu 12.04 下默认是安装了openjdk的
  9. 暴力/图论 hihoCoder 1179 永恒游戏
  10. 小试MemSQL (The World's Fastest Database?)