统计
  • 文章总数:855 篇
  • 评论总数:0 条
  • 分类总数:14 个
  • 最后更新:8月3日

利用arcpy将文件夹中所有栅格文件转化为矢量文件

本文阅读 2 分钟
首页 ArcGIS 正文

arcpy888.png

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

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

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)

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

本文来自投稿,不代表本站立场,如若转载,请注明出处:
arcpy项目-利用krusal最小树方法生成最小树
« 上一篇 04-08
新手学Photoshp软件应该安装什么版本好?推荐这个!
下一篇 » 04-11