# -*- 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)