ArcPy处理土地利用类型数据

需求

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

思路

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

方法

详解

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(以便正确解释)来使用字符串文本。
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值