欢迎光临草根哥
www.cgg6.com

利用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”) #添加cost字段

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”) #添加name字段

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)

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

赞(0)
版权声明:
文章名称:《利用arcpy将文件夹中所有栅格文件转化为矢量文件》
文章链接:http://www.cgg6.com/7193.html
声明:文章版权归本站自创作者所有,未经允许不得转载

评论 抢沙发

评论前必须登录!