Доступно с лицензией Spatial Analyst.
Классы можно использовать для создания объектов, часто называемых экземплярами. После создания объекта можно использовать его свойства и методы. Классы Spatial Analyst, например, neighborhood или remap часто используются в качестве средства быстрого вызова для задания параметров инструментов геообработки, которые иначе пришлось бы задавать в виде сложных строк.
Создавать параметры и управлять ими намного проще с использованием классов, а не строк. Использование классов для параметров имеет следующие преимущества:
- Классы содержат справку и предусматривают автозаполнение для переменных аргументов параметра.
- Вы можете запрашивать отдельные аргументы для параметра из выходного объекта.
- Вы можете изменять отдельные аргументы класса для дальнейшего анализа.
Более подробно об использовании классов Spatial Analyst в алгебре карт см. в следующих разделах:
Ниже приведены примеры приложений, которые реализуются с помощью классов:
- Определение типа класса или значения отдельного аргумента:
Например, запросив тип входного радиуса и расстояние поиска, можно определить значение степени для интерполяции по методу обратных взвешенных расстояний.
- Изменение входного значения:
Например, можно изменить входное значение переклассификации в модели пригодности в соответствии с публичными данными на форуме для исследования воздействия различных сценариев на выходные данные, не создавая заново таблицу перекодировки.
- Для выполнения анализа чувствительности:
Например, вы можете итерационно увеличивать на 5 процентов значения До и От в таблице перекодировки для модели пригодности, чтобы исследовать влияние на результат небольших изменений входного критерия.
- Для выполнения анализа ошибок:
Например, вы можете несколько раз прогнать модель, меняя случайным образом аргументы параметров, чтобы исследовать потенциальное влияние на результат ошибки и изменчивость данных.
Использование классов Spatial Analyst
В некоторых параметрах инструментов геообработки Spatial Analyst объект класса используется в качестве входного значения. Обычно параметры представляют собой простые строки, имена набора данных, пути, ключевые слова, имена полей, допуски и имена доменов. Некоторые параметры более сложны и определяют ряд свойств или значений. Вместо того чтобы задавать эти параметры длинными и сложными текстовыми строками, можно использовать классы (например, окрестности или таблицы перекодировки). Знание входных требований конструктора класса поможет вам создать, запросить, изменить и сохранить объекты класса.
В качестве аргументов классов Spatial Analyst используются различные типы входных данных:
- Скаляры
- Строки
- Список или список списков Python
- Другие классы
Для удобства чтения рекомендуется задавать и использовать в инструменте переменную для класса. Например:
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")
В каждом из этих классов входные аргументы имеют предопределенную позицию. Эти классы можно сгруппировать по параметру инструмента, к которому они относятся:
- Классы нечеткой логики (Fuzzy)
FuzzyGaussian, FuzzyLarge, FuzzyLinear, FuzzyMSLarge, FuzzyMSSmall, FuzzyNear, FuzzySmall
- Классы Горизонтального фактора (Horizontal factor)
- Классы модели кригинга
- Классы Окрестности (Neighborhood)
NbrAnnulus, NbrCircle, NbrIrregular, NbrRectangle, NbrWedge, NbrWeight
- Классы радиуса (Radius)
- Классы времени
TimeWithinDay, TimeSpecialDays, TimeMultipleDays, TimeWholeYear
- Классы Функций преобразования (Transformation function)
TfExponential, TfGaussian, TfLarge, TfLinear, TfLogarithm, TfLogisticDecay, TfLogisticGrowth, TfMSLarge, TfMSSmall, TfNear, TfPower, TfSmall, TfSymmetricLinear
- Классы Вертикального фактора:
VfBinary, VfLinear, VfSymLinear, VfInverseLinear, VfSymInverseLinear, VfCos, VfSec, VfCosSec, VfSecCos, VfTable
Классы, создаваемые с помощью списков Python
Некоторые классы являются более сложными, например, классы TopoBoundary, TopoLake и TopoStream. Они требуют ряда входных аргументов и используются для параметров в инструменте Топо в растр. Ряды входных аргументов определены в списке Python, и число аргументов в списке зависит от ситуации (другими словами, от числа аргументов, требуемых для анализа).
Например, конструкторам класса TopoBoundary нужен список, содержащий один или несколько аргументов inFeature. Список, обозначенный как inFeatures, становится свойством выходного объекта. Для запроса или работы с элементами в списке inFeatures каждый из них адресуется как элемент в списке (см. Запрос классов).
inBoundary = TopoBoundary(["inBound1.shp", "inBound2.shp"])
Классы, созданные с помощью списков в списках
В других инструментах число вводимых в параметр элементов будет определяться конкретной ситуацией. Этот тип входного параметра создается из класса, полученного с помощью списков в списке. Есть три группы инструментов, классы которых создаются из списков в списках:
- Таблицы переклассификации (RemapRange, RemapValue)
- Таблицы взвешенной переклассификации (наложения и суммы) (WOTable, WSTable)
- Топоклассы (поднабор) (TopoContour, TopoPointElevation, TopoSink)
Например, входным аргументом классов Перекодировки должна быть таблица. Таблица моделируется с помощью списка записей, включающих значения 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)
Классы, создаваемые из набора классов в списке
Некоторые инструменты используют параметры класса, требующие в качестве входа набор классов. Классы составляются внутри списка. Инструменты, требующие в качестве входа набор классов в списке, такие как Извлечь по точкам и Извлечь по прямоугольнику, обычно извлекают данные по заданной геометрии.