zoukankan      html  css  js  c++  java
  • ArcGIS Python工具箱.pyt裁剪工具

    # coding: utf-8
    import arcpy
    
    
    class Toolbox(object):
        def __init__(self):
            """Define the toolbox (the name of the toolbox is the name of the
            .pyt file)."""
            self.label = "ClipTool"
            self.alias = "ClipTool"
    
            # List of tool classes associated with this toolbox
            self.tools = [ClipTool]
    
    
    class ClipTool(object):
        def __init__(self):
            """Define the tool (tool name is the name of the class)."""
            self.label = "ClipTool"
            self.description = "ClipTool"
            self.canRunInBackground = False
    
    
        def getParameterInfo(self):
            # Input feature class
            param0 = arcpy.Parameter(
                displayName="in_features",
                name="in_features",
                datatype="GPFeatureLayer",
                parameterType="Required",
                direction="Input")
    
            # Input table
            param1 = arcpy.Parameter(
                displayName="Clip Features",
                name="clip_features",
                datatype="GPFeatureLayer",
                parameterType="Required",
                direction="Input")
    
            # Input workspace
            param2 = arcpy.Parameter(
                displayName="Output Feature Class",
                name="out_feature_class",
                datatype="DEFeatureClass",
                parameterType="Required",
                direction="Output")
    
            # Set the dependencies for the output and its schema properties
            #  The two input parameters are feature classes.
            #
            param2.parameterDependencies = [param0.name, param1.name]
    
            # Feature type, geometry type, and fields all come from the first
            #  dependency (parameter 0), the input features
            #
            param2.schema.featureTypeRule = "FirstDependency"
            param2.schema.geometryTypeRule = "FirstDependency"
            param2.schema.fieldsRule = "FirstDependency"
    
            # The extent of the output is the intersection of the input features
            #  and the clip features (parameter 1)
            #
            param2.schema.extentRule = "Intersection"
    
            params = [param0, param1, param2]
    
            return params
    
    
        def isLicensed(self):
            """Set whether tool is licensed to execute."""
            return True
    
        def updateParameters(self, parameters):
            """Modify the values and properties of parameters before internal
            validation is performed.  This method is called whenever a parameter
            has been changed."""
            return
    
        def updateMessages(self, parameters):
            """Modify the messages created by internal validation for each tool
            parameter.  This method is called after internal validation."""
            return
    
        def execute(self, parameters, messages):
            """The source code of the tool."""
            inFeatures      = parameters[0].valueAsText
            clipFeatures      = parameters[1].valueAsText
            outFeatureClass = parameters[2].valueAsText
    
            if int(arcpy.GetCount_management(inFeatures)[0]) == 0:
                messages.addErrorMessage("{0} has no features.".format(inFeatures))
                raise arcpy.ExecuteError
            if int(arcpy.GetCount_management(clipFeatures)[0]) == 0:
                messages.addErrorMessage("{0} has no features.".format(clipFeatures))
                raise arcpy.ExecuteError
    
            arcpy.AddMessage("inFeatures="+inFeatures)
            arcpy.AddMessage("clipFeatures ="+clipFeatures)
            arcpy.AddMessage("outFeatureClass ="+outFeatureClass)
            arcpy.Clip_analysis(inFeatures, clipFeatures, outFeatureClass)
    
            return
  • 相关阅读:
    学习进度条
    0302我的感想
    1217实验四 递归下降语法分析程序设计
    1118 实验三 有限自动机的构造与识别
    1112我的访问与评论日记
    1014 我的C语言文法定义与C程序推导过程
    0917词法分析
    命令解释程序的编写
    构建之法前三章读后感
    复利计算4.0
  • 原文地址:https://www.cnblogs.com/gisoracle/p/13337426.html
Copyright © 2011-2022 走看看