Обзор использования классов дополнительного модуля Spatial Analyst

Классы можно использовать для создания объектов, часто называемых экземплярами. После создания экземпляра объекта становится возможным использовать его свойства и методы. Классы дополнительного модуля Spatial Analyst, такие как Окрестность или Перекодировка, часто используют в качестве ярлыков для задания параметров инструментов геообработки, которые иначе имели бы более сложный строчный эквивалент.

Создавать параметры и управлять ими намного проще с использованием классов, а не строк. Использование классов для определения параметров имеет следующие преимущества:

Дополнительную информацию об использовании классов модуля Spatial Analyst в Алгебре карт можно найти в следующих темах:

Создание классовЗапрос классовИзменение аргументов в классахКак использовать классы в Python

Ниже приведены примеры приложений, которые легко реализуются с помощью классов:

Использование классов дополнительного модуля Spatial Analyst

В некоторых параметрах инструментов геообработки дополнительного модуля Spatial Analyst объект класса используется в качестве входного значения. Обычно параметры представляют собой простые строки, имена набора данных, пути, ключевые слова, имена полей, допуски и имена доменов. Некоторые параметры более сложны и определяют ряд свойств или значений. Вместо того чтобы задавать эти параметры длинными и сложными текстовыми строками, можно использовать классы (например, окрестности или таблицы перекодировки). Знание входных требований конструктора класса поможет вам создать, запросить, изменить и сохранить объекты класса.

В качестве аргументов классов дополнительного модуля Spatial Analyst используются различные типы входных данных:

Для удобства чтения рекомендуется задавать и использовать в инструменте переменную для класса. Например:

Neighborhood = NbrRectangle(5, 5, "MAP")
outRas = FocalStatistics("inRas", Neighborhood, "MEAN")

Однако вы можете определить класс и в параметре инструмента.

outRas = FocalStatistics("inRas", NbrRectangle(5, 5, "MAP"), "MEAN")

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

Некоторые классы строятся с помощью фиксированного числа простых скалярных или строчных аргументов. Например, чтобы создать круговую окрестность с радиусом пять единиц карты:

Neighborhood = NbrCircle(5, "MAP")
outRas = FocalStatistics("inRas", Neighborhood, "MAXIMUM")

В каждом из этих классов входные аргументы имеют предопределенную позицию. Эти классы можно сгруппировать по параметру инструмента, к которому они относятся:

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

Некоторые классы являются более сложными, например, классы TopoBoundary, TopoLake и TopoStream. Они требуют ряда входных аргументов и используются для параметров в инструменте Топо в растр (Topo to Raster). Ряды входных аргументов определены в списке Python, и число аргументов в списке зависит от ситуации (другими словами, от числа аргументов, требуемых для анализа).

Например, конструкторам класса TopoBoundary нужен список, содержащий один или несколько аргументов inFeature. Список, обозначенный как inFeatures, становится свойством выходного объекта. Для запроса или работы с элементами в списке inFeatures каждый из них адресуется как элемент в списке (см. Запрос классов).

inBoundary = TopoBoundary(["inBound1.shp", "inBound2.shp"])

Классы, созданные с помощью списков в списках

В других инструментах число вводимых в параметр элементов будет определяться конкретной ситуацией. Этот тип входного параметра создается из класса, полученного с помощью списков в списке. Есть три группы инструментов, классы которых создаются из списков в списках:

Например, входным аргументом классов Перекодировки должна быть таблица. Таблица моделируется с помощью списка записей, включающих значения startValue, endValue и newValue для классификации. Таблица становится свойством выходного объекта. Для запроса или работы с входными данными таблицы к ним нужно обращаться, как к записям списков внутри списков (см. Запрос классов).

# Usage: RemapRange([[startValue, endValue, newValue],...])
myRemapRange = RemapRange([[-3, -1.75, 1], [-1.75, -0.5, 2], [-0.5, 0.75, 3], 
                           [0.75, 2, 4], [2, 3.25, 5], [3.25, 4.5, 6],
                           [4.5, 5.75, 7], [5.75, 7, 8]])
outReclassRR = Reclassify("inRas", "VALUE", myRemapRange)

Классы, создаваемые из набора классов в списке

Некоторые инструменты используют параметры класса, требующие в качестве входа набор классов. Классы составляются внутри списка. Инструменты, требующие в качестве входа набор классов в списке, такие как Извлечь по точкам (Extract by Points) и Извлечь по прямоугольнику (Extract by Rectangle), обычно извлекают данные по заданной геометрии.

Связанные темы

5/10/2014