Créer des classes

Disponible avec une licence Spatial Analyst.

Si vous souhaitez utiliser des classes pour les paramètres en entrée des outils de géotraitement, vous devez tout d’abord les créer. Une fois ces classes instanciées, vous pouvez accéder à leurs propriétés et interroger ou modifier les objets. Le meilleur moyen d’apprendre à créer des objets classe variés consiste à examiner des exemples de création faisant appel à différents types en entrée.

Conseil :

La documentation de chaque classe contient un exemple de script indiquant comment la définir et l’utiliser dans un paramètre d’outil.

Classes créées avec un nombre fixe d'entrées

  • Vous trouverez ci-dessous des exemples de création de classes différentes avec un nombre fixe d’entrées :
    # Creating a neighborhood class and assigning it to a variable
    neighborhood = NbrRectangle(10, 10, "CELL") 
    
    outFocalStats = FocalStatistics(inRas, neighborhood, "MINORITY")
    # Creating the Kriging model to be used
    kModelOrdinary = KrigingModelOrdinary("CIRCULAR", 2000, 2.6, 542, 0)
    
    # Creating a radius class and assigning it to a variable
    kRadius = RadiusFixed(20000, 1) 
    
    outKriging = Kriging(inFeatures, field, kModelOrdinary, cellSize, 
                         kRadius, outVarRaster)

Classes créées avec des listes Python ou une liste de listes

  • Voici un exemple de création d’une classe à partir d’une liste en vue d’une utilisation dans l’outil Topo vers raster :
    # Create classes as input for TopoToRaster
    myTopoPtElev = TopoPointElevation([["spots.shp", "spot_meter"], 
                                       ["spots2.shp", "elev"]]) 
    myTopoContour = TopoContour([["contours.shp", "spot_meter"]]) 
    myTopoBoundary = TopoBoundary(["boundary.shp"]) 
    myTopoLake = TopoLake(["lakes.shp"])
    myTopoSink = TopoSink([["sink1.shp", "elevation"], ["sink2.shp", "NONE"]]) 
    myTopoStream = TopoStream(["streams.shp"])
    
    # Applying the tool
    outTopoToRaster = TopoToRaster([myTopoPtElev, myTopoContour, myTopoBoundary, 
                                    myTopoLake, myTopoSink, myTopoStream])
  • Voici un exemple de création d’une classe à partir d’une liste en vue d’une utilisation dans l’outil Reclassification :
    # The RemapValue class has a usage of: 
    #   RemapRange(startValue, endValue, newValue)
    RemapTable = RemapValue([[1, 5], [2, 8], [3, 1], [4, 10]])
    
    # Run the tool 
    outReclass = Reclassify("inRas", RemapTable)

Classes créées à partir d’une série de classes dans une liste

  • Voici un exemple de création de classes à partir d’une série de classes Point dans une liste, en vue d’une utilisation lors de l’extraction d’une cellule raster :
    # Identify the points to be extracted by creating a list
    #   of Point objects.
    PointsToExtract = [Point(0, 5), Point(15, 175), Point(225, 450)] 
    
    # Run the tool
    Outraster = ExtractByPoints(PointsToExtract)

Arguments par défaut

  • Certains arguments sont facultatifs et sont définis entre {} (accolades) dans la syntaxe. Par exemple, la syntaxe de la classe de voisinage sectoriel est la suivante :
    NbrWedge({radius}, {startAngle}, {endAngle}, {units})
  • Si vous n’indiquez pas un argument facultatif, une valeur par défaut est utilisée.
    # The circle neighborhood will default to
    #   a radius of 3 and units of CELL
    circle = NbrCircle()
  • Il est possible de spécifier des arguments facultatifs avec des guillemets vides, "" ou "#", pour indiquer que la valeur doit être ignorée et que la valeur par défaut doit être utilisée.

Rubriques connexes