基于Arcpy的批量二值图转矢量文件并选取特定值

最近导师要求实现一个批量的二值图转矢量文件,发现用python调用arcgis的arcpy库非常方便,记录一下。

我的数据都是0,1分布的二值图,实际使用看需求来修改吧,我要提取值为1的区域,所以代码中gridcode值为1。

# -*- coding: UTF-8 -*-
#导入arcgis的pythonIDE使用或使用arcgis自带的python.exe

import arcpy
from arcpy import env
import os
import time

env.workspace = r"E:\jjw_work\GIS\raster_to_polygon\New2_veg" #二值图路径
output_path = r"E:\jjw_work\GIS\raster_to_polygon\shp/"       #0,1都有的shp
result_path = r"E:\jjw_work\GIS\raster_to_polygon\result/"    #只有gridcode=1的shp

filelist = os.listdir(env.workspace)
tif_list = []
for file in filelist:
    if os.path.splitext(file)[1] == ".tif":
        tif_list.append(file)
for tif in tif_list:
    stime = time.time()
    shpfile = tif.split(".")[0] + '.shp'
    shp_path = output_path + shpfile
    resultpath = result_path + shpfile
    arcpy.RasterToPolygon_conversion(tif, shp_path,
                                     "NO_SIMPLIFY", "VALUE")   #相当于Arcgis中的Raster to polygon 工具
    arcpy.Select_analysis(shp_path, resultpath, '"gridcode" = 1') #这里可以修改为你需要的字段
    print(shp_path, "time:", round(time.time()-stime, 2))

听说可以直接安装Arcpy库,不过我这里直接就用的是安装arcgis时自带的python解释器了,里面自带arcpy。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值