arcgis影像批量裁剪代码

# -*- coding:utf-8 -*-
# Name: ExtractByMask_Ex_02.py
# Description: Extracts the cells of a raster that correspond with the areas
#    defined by a mask.
# Requirements: Spatial Analyst Extension
# Author: ESRI

# Import system modules
import arcpy
import os
from arcpy import env
from arcpy.sa import *


def getFiles(path):
    return [ os.path.join(path,file) for file in os.listdir(path)]
    
  
# Set environment settings
#******************************************************************数据所在的文件夹
path="D:/data"

env.workspace = path
files=getFiles(path+"/NetCDF")
for inputdata in files:
    # Create a scratch name for the Buffer tool output.
    #   The scratch name created will be include 'temp0.shp',
    #   If temp0.shp already exists, the number will be incremented
    #   until the name is unique in the workspace.
    #
    scratch_name = arcpy.CreateScratchName("temp",
                                           data_type="RasterDataset",
                                           workspace=arcpy.env.scratchFolder)


    
    # Set local variables
    inNetCDFFile = inputdata
    variable = "precip"
    XDimension = "longitude"
    YDimension = "latitude"
    outRasterLayer = scratch_name
    bandDimmension = ""
    dimensionValues = ""
    valueSelectionMethod = "BY_VALUE"

# Execute MakeNetCDFRasterLayer
    arcpy.MakeNetCDFRasterLayer_md(inNetCDFFile, variable, XDimension, YDimension,
                               outRasterLayer, bandDimmension, dimensionValues, 
                               valueSelectionMethod)
                               
    print "Execute MakeNetCDFRasterLayer completely"
    
    inRaster = scratch_name
    #*******************************************************************************************************掩膜
    inMaskData = "Export_Output.shp"

    # Check out the ArcGIS Spatial Analyst extension license
    arcpy.CheckOutExtension("Spatial")

    # Execute ExtractByMask
    outExtractByMask = ExtractByMask(inRaster, inMaskData)

    # Save the output 
    outExtractByMask.save("D:/jiangxi/"+inputdata)
    print inputdata
    # Delete scratch dataset
    arcpy.Delete_management(scratch_name)

 

posted on 2017-12-08 20:58  J.M.Liu  阅读(2457)  评论(0编辑  收藏  举报