Skip to main content

Создание классов

Доступно с лицензией Spatial Analyst.

Чтобы использовать классы в качестве входных параметров для инструментов геообработки, вы сначала должны их создать. После установки вы можете обратиться к их свойство и запросить или изменить объекты. Самым лучшим способом узнать, как создавать разные объекты классов, будет посмотреть на примеры их создания на основе использования разных входных типов.

Подсказка:

Документация по каждому классу содержит пример скрипта, где показано, как каждый из них определяется и используется в параметре инструмента.

Классы, создаваемые с использованием фиксированного числа входных аргументов

  • Ниже приведены примеры создания разных классов на основе разных входных данных:

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

Классы, которые создаются с помощью списка списков, или списков Python

  • Ниже приведен пример создания класса на основе списка для использования в инструменте Топо в растр:

    # 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])
    
  • Ниже приведен пример создания класса на основе списка для использования в инструменте Переклассификация:

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

Классы создаются на основе серий классов в списке

  • Ниже приведен пример создания классов на основе серий классов Point внутри списка для использования в извлечении ячеек растра:

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

Аргументы по умолчанию

  • Некоторые аргументы являются дополнительными и определяются {} (скобки или фигурные скобки) в ходе использования. Например, синтаксис для класса клиновидной окрестности будет следующим:

    NbrWedge({radius}, {startAngle}, {endAngle}, {units})
    
  • Если дополнительный аргумент не указан, то будет использоваться значение по умолчанию.

    # The circle neighborhood will default to
    #   a radius of 3 and units of CELL
    circle = NbrCircle()
    
  • Дополнительные аргументы можно указать, используя пустые кавычки "", либо #, которые указывают на то, что значение должно быть пропущено и будет использовано значение по умолчанию.