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