【arcpy学习实践教程】利用arcpy将文件夹中所有栅格文件转化为矢量文件

【需求】将文件夹中生成的栅格文件转化为矢量文件并合并

【分析】读取文件夹中的所有栅格文件,将栅格文件转换为矢量文件,矢量文件添加字段,合并矢量文件

import os
import arcpy
import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
     reload(sys)
     sys.setdefaultencoding(defaultencoding)
arcpy.env.workspace ="A:\\360data\\重要数据\\桌面\\边境市\\新建文件地理数据库.gdb"
f="A:\\360data\\重要数据\\桌面\\边境市\\新建文件地理数据库.gdb\\"
tmp="A:\\360data\\重要数据\\桌面\\边境市\\tmp.shp"
alline="A:\\360data\\重要数据\\桌面\\边境市\\alline.shp"
n=0
datasets = arcpy.ListRasters()
for f1 in datasets:
         n=n+1
         tmp_path = os.path.join(f,f1)
         line=str(n)+".shp"
         arcpy.AddField_management(tmp_path, "cost", "LONG")
         cursor = arcpy.da.UpdateCursor(tmp_path, ["PATHCOST", "cost"])
         for m in cursor:
                m[1] = m[0]
                cursor.updateRow(m)           
         print tmp_path
         arcpy.RasterToPolyline_conversion(tmp_path, line, "ZERO", "0", "SIMPLIFY", "cost")
         arcpy.AddField_management(line, "name", "TEXT") 
         cursor = arcpy.da.UpdateCursor(line, ["to"]) 
         for m in cursor:
                m[0] = f1
                cursor.updateRow(m)         
         arcpy.Delete_management(tmp)
         arcpy.CopyFeatures_management(alline, tmp)
         arcpy.Delete_management(alline)
         arcpy.Merge_management([line, tmp],alline) 

利用每个栅格文件读取的循环中套入转换成栅格,添加字段和合并要素类

在ArcGIS的自动处理工作中,Arcpy提供了一种高效的方式来处理多幅栅格影像,将其转换为矢量数据并计算面积。这一过程涉及到一系列的Arcpy函数和Python编程技术。对于初学者来说,了解和掌握这些技术可能会有些难度,但《ArcGIS栅格面积计算与Arcpy新手教程:重分类、矢量化与编程自动化》一书为这一主题提供了详尽的入门指导和实践案例。 参考资源链接:[ArcGIS栅格面积计算与Arcpy新手教程:重分类、矢量化与编程自动化](https://wenku.youkuaiyun.com/doc/6412b4fcbe7fbd1778d4189f?spm=1055.2569.3001.10343) 首先,要完成从栅格矢量的转换,你可以使用Arcpy的管理工具中的`RasterToPolygon_conversion`函数。这一函数能够将栅格单元转换为矢量多边形,每个多边形的面积可以通过属性表中的几何数据来计算。进行转换之前,你可能需要先对栅格数据进行重分类操作,以便更有效地进行面积分析。 在ArcGIS中,通过Python脚本调用`RasterToPolygon_conversion`函数,可以自动化地处理包含多个栅格影像的文件夹。例如,你可以编写一个Python脚本,遍历文件夹中的所有栅格影像文件,并对每个文件执行转换操作。示例代码如下: ```python import arcpy # 设置工作空间,假设影像文件夹为C:\栅格影像 arcpy.env.workspace = r 参考资源链接:[ArcGIS栅格面积计算与Arcpy新手教程:重分类、矢量化与编程自动化](https://wenku.youkuaiyun.com/doc/6412b4fcbe7fbd1778d4189f?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值