【ArcGIS自定义脚本工具】批量裁剪中国多省份NDVI影像

您所在的位置:网站首页 arcgis裁剪栅格tif影像 【ArcGIS自定义脚本工具】批量裁剪中国多省份NDVI影像

【ArcGIS自定义脚本工具】批量裁剪中国多省份NDVI影像

2023-07-13 18:29| 来源: 网络整理| 查看: 265

一、功能介绍

名称:批量裁剪栅格(多对多)

源文件:Batch_clip .py

版本:ArcGIS 10.2,python2.7.3

描述: 以Shapefiles中的矢量文件对Tifs中的栅格进行裁剪,裁剪后的栅格文件名为“矢量文件名_+原命名”。裁剪后的栅格保存在Outfolder中命名为矢量文件名的文件夹中。

必要输入:

Tifs——待裁剪的栅格(.tif),多值

Shapefiles——将作为剪切范围使用的矢量文件(.shp),多值

Outfolder——储存裁剪后栅格的文件夹

创建时间:2021.2.11

最后修改时间: 2021.2.13

作者:Salierib

二、脚本代码

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import arcpy

from arcpy import env

import os

import time

import sys

reload(sys)

sys.setdefaultencoding('utf8')

tifs = arcpy.GetParameterAsText(0)

masks = arcpy.GetParameterAsText(1)

out_dir = arcpy.GetParameterAsText(2)

tifs = tifs.split(";")

masks = masks.split(";")

names = [os.path.splitext(os.path.basename(mask))[0] for mask in masks]

size = len(tifs) * len(masks)

num = 1

for i, mask in enumerate(masks):

    # create a new folder named by mask's name

    new_folder = out_dir + os.sep + names[i]

    if not os.path.exists(new_folder):

        os.mkdir(new_folder)

    else:

        arcpy.AddMessage("Folder {0} already exists. Please check it.".format(new_folder))

    for tif in tifs:

        s = time.time()

        cliped_tif = os.path.join(new_folder, "{0}_{1}".format(names[i],os.path.split(tif)[1]))

        if not os.path.exists(cliped_tif):

            arcpy.Clip_management(tif, "#", cliped_tif, mask, "0", "ClippingGeometry")

            e = time.time()

            arcpy.AddMessage("{0}/{1} | {2} Completed, time used {3}s".format(num, size, cliped_tif, e - s))

        else:

            e = time.time()

            arcpy.AddMessage("{0}/{1} | {2} already exists.".format(num, size, cliped_tif))

        num += 1

三、工具参数四、工具界面五、使用例

1、输入

2、参数设置

3、输出



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3