Как работает инструмент Фокальная статистика

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

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

Инструмент Фокальная статистика выполняет операцию окрестности, которая вычисляет выходной растр, где значением для каждой выходной ячейки является функция значений всех входных ячеек, которые находятся в заданной окрестности вокруг этого места. Выполняемая над входными данными функция – это вычисление статистики, например максимума, среднего или суммы всех значений, находящихся в этой окрестности.

Обработка окрестности

Концептуально, после выполнения, алгоритм посещает каждую ячейку растра и рассчитывает заданную статистику для ячеек, которые попадают в окрестность заданной формы вокруг нее. Ячейка, для которой вычисляется статистика, называется обрабатываемой ячейкой. Значение обрабатываемой ячейки обычно включено в вычисление статистики окрестности, но в зависимости от формы окрестности, может и не быть включено. Поскольку окрестности будут перекрываться в процессе сканирования, входные ячейки, которые входят в вычисления для обрабатываемой ячейки, могут также участвовать в вычислении для другой обрабатываемой ячейки.

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

Ячейки NoData

Параметр Игнорировать значение NoData при вычислениях (Ignore NoData in calculations) определяет, как в окне окрестности обрабатываются ячейки со значением NoData. Если эта опция включена (опция DATA) любые ячейки NoData в окрестности будут игнорироваться в вычислениях выходного значения ячейки. Если опция не включена (опция NODATA), то при наличии в окрестности ячейки NoData выходная ячейка также будет NoData.

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

Пример

Чтобы проиллюстрировать обработку окрестности для инструмента Фокальная статистика, рассмотрим вычисление суммарной статистики для обрабатываемой ячейки со значением 5 на следующей диаграмме. Задаётся окрестность прямоугольной формы размером 3 на 3 ячейки, параметр Игнорировать NoData в вычислениях по умолчанию остается включенным остается с настройкой по умолчанию. Сумма значений ячеек окрестности (3 + 2 + 3 + 4 + 2 + 1 + 4 = 19) плюс значение обрабатываемой ячейки (5) равняется 24 (19 + 5 = 24). Значение 24 дается ячейке выходного растра в том же местоположении, что и обрабатываемая ячейка входного растра.

Входные значения ячеек для примера фокальной окрестности 3 на 3 ячейки и итоговое выходное значение для обрабатываемой ячейки

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

Пример входных данных и выходных данных фокальной суммы

Угловые ячейки и ячейки на ребрах

Если обрабатываемые ячейки во входном растре находятся рядом с углами и ребрами, число ячеек, включаемых в окрестность соответственно меняется. Расчет статистики также корректируется.

Следующие диаграммы показывают, как выходная статистика рассчитывается для каждой обрабатываемой ячейки из доступных ячеек для каждой отдельной окрестности. Обработка начинается в верхнем левом углу входного растра и сканирование происходит слева направо по каждой строке, прежде, чем обрабатывать следующую строку. Окрестность, используемая в этом примере, прямоугольник 3 на 3 ячейки, а вычисляемая статистика – сумма. Параметр Игнорировать NoData в вычислениях остается с настройкой по умолчанию. На диаграммах окрестность оконтурена желтым, а обрабатываемая ячейка – голубым.

Первая обрабатываемая ячейка находится в верхнем левом углу входного растра 6 на 6 ячеек, поэтому для окрестности доступно только 4 ячейки. Совместное добавление этих значений приводит к тому, что первой ячейке будет присвоено выходное значение 11. Для следующей справа ячейки в окрестности теперь находится шесть ячеек, сумма вычисляется для них. Сканирование выполняется по всем ячейкам в первой строке. Чтобы сохранить место, показаны не все обрабатываемые ячейки.

Окрестность вокруг каждой из обрабатываемых ячеек в первой строке входных ячеек выделена, указывая, какие ячейки будут использоваться для вычисления выходного значения ячейки.
Окрестность (желтый контур) вокруг каждой обрабатываемой ячейки (голубой контур) указывает, какие входные ячейки (вверху) будут использоваться для вычисления выходного значения статистики (внизу).

Обратите внимание, что в первой строке для третьей слева обрабатываемой ячейки (значение = 1) одна из входных ячеек имеет значение NoData. Поскольку для инструмента задано игнорировать NoData, эта ячейка не будет участвовать в вычислении. Если вычисляемую статистику задать на Среднее вместо Суммы, она бы вычислялась как сумма всех ячеек в окрестности, которые не имеют значение NoData, деленная на 5.

Во второй строке входных ячеек статистика для первой обрабатываемой ячейки будет вычислена на основании имеющихся шести ячеек в окрестности. Для следующей обрабатываемой ячейки здесь будет девять ячеек, учитываемых в вычислении. Для последующей ячейки в вычислениях будет участвовать восемь входных ячеек, так как одна из ячеек в окрестности 3 на 3 имеет значение NoData. Обработка продолжается для оставшихся ячеек в строке, а затем переходит на следующие строки, пока не будут проанализированы все обрабатываемые ячейки.

Показана обработка окрестности для второй строки входных ячеек
Указаны окрестность, обрабатываемая ячейка и выходное значение для части второй строки входных ячеек.

Типы окрестностей

Окрестность может быть в форме кольца, окружности, прямоугольника или клина. Используя керн-файл, вы можете определить пользовательскую форму окрестности, а также присвоить различные веса конкретной ячейке в окрестности до вычисления статистики.

Ниже рассматриваются различные формы окрестности и то, как они определяются:

  • Кольцо
    • Форма плоского кольца состоит из двух окружностей, одно внутри другого, формирующих форму бублика. В обрабатываемую окрестность будут включены ячейки, центры которых попадают за пределы круга меньшего радиуса, но внутрь круга большего радиуса. Поэтому, область между двумя окружностями становится окрестностью кольца.
    • Радиус определяется в ячейках или единицах карты и измеряется перпендикулярно оси x или оси y. Если радиусы указаны в единицах карты, то они конвертируются в единицы ячеек. Итоговый радиус в единицах ячеек задаёт область, которая наиболее точно определит область, вычисленную с помощью исходного радиуса в единицах карты. Все ячейки, центры которых попадают между окружностями, будут включены в обрабатываемую окрестность.
    • Окружность кольца по умолчанию – внутренний радиус одной ячейки и внешний радиус трех ячеек.
    • Пример вычисления кольцевой окрестности:

    Обрабатываемая ячейка с кольцевой окрестностью по умолчанию
    Обрабатываемая ячейка с кольцевой окрестностью по умолчанию (внутренний радиус = 1 ячейка, внешний радиус = 3 ячейки).

  • Круг
    • Окрестность в форме круга задаётся значением радиуса.
    • Радиус определяется в единицах ячеек или карты и измеряется перпендикулярно оси x или оси y. Если радиус задан в единицах карты, применяется дополнительная логика, чтобы определить ячейки, задействованные в обрабатываемой окрестности. Сначала рассчитывается точная площадь круга, определенного заданным значением радиуса. Затем определяется площадь для двух дополнительных кругов, причем в одном случае значение заданного радиуса округляется в меньшую сторону, а в другом – в большую сторону. Эти две площади сопоставляются с величиной, полученной для заданного радиуса, и выбирается радиус, для которого получен более близкий результат.
    • По умолчанию радиус окрестности круга равен 3 ячейкам.
    • Пример вычисления окрестности круга:

    Обрабатываемая ячейка с круговой окрестностью
    Обрабатываемая ячейка с круговой окрестностью (радиус = 2 ячейки).

  • Прямоугольник
    • Окрестность в форме прямоугольника задается путем указания ширины и высоты в ячейках или единицах измерения карты.
    • В обработку окрестности в форме прямоугольника будут включены только те ячейки, чей центр попадает в заданный объект.
    • По умолчанию прямоугольная окрестность является квадратом со стороной, равной трем ячейкам.
    • Положение x,y для обрабатываемой ячейки в пределах окрестности, по отношению к верхнему левому углу окрестности, определяется следующими уравнениями:

      x = (ширина окрестности + 1)/2 y = (высота окрестности + 1)/2

      Если число входных ячеек четное, координаты x,y округляются в меньшую сторону. Например, при использовании окрестности 5 на 5 ячеек, значения x и y будут равны 3,3. При использовании окрестности 4 на 4 ячейки значения x и y будут равны 2,2.

    • Далее приведены примеры иллюстраций двух прямоугольных окрестностей:

    Обрабатываемая ячейка с двумя прямоугольными окрестностями
    Обрабатываемая ячейка с двумя разными прямоугольными окрестностями.

  • Клин
    • Клин – это окрестность в форме клина, определяемая радиусом, начальным и конечным углами.
    • Клин строится в направлении против часовой стрелки от начального угла до конечного угла. Углы задаются в арифметических градусах от 0 до 360, где 0 находится на положительной x-оси (3:00 часа), и могут быть как целочисленными, так и с плавающей точкой. Могут использоваться отрицательные значения углов.
    • Радиус определяется в ячейках или единицах карты и измеряется перпендикулярно оси x или оси y. Если радиус указан в единицах карты, то они конвертируются в единицы ячеек. Итоговый радиус в единицах ячеек задаёт область, которая наиболее точно представляет область, определенную ранее в единицах карты. Все ячейки, центры которых попадают в клин, будут включены в обрабатываемую окрестность.
    • Клиновидная окрестность по умолчанию имеет углы от 0 до 90 градусов, с радиусом, равным трем ячейкам.
    • Пример вычисления клиновидной окрестности:

    Обрабатываемая ячейка с клиновидной окрестностью
    Обрабатываемая ячейка с клиновидной окрестностью по умолчанию (радиус = 3 ячейки, начальный угол = 0, конечный угол = 90).

  • Неправильная
    • Это позволяет указать окрестность неправильной формы вокруг обрабатываемой ячейки.
    • То, какие ячейки будут включены в окрестность, определяет керн-файл для окрестности неправильной формы.
    • Положение x,y для обрабатываемой ячейки в пределах окрестности, по отношению к верхнему левому углу окрестности, определяется следующими уравнениями:

      x = (ширина + 1)/2 y = (высота + 1)/2

      Если число входных ячеек четное, координаты x,y округляются в меньшую сторону.

    • Керн-файл для окрестности неправильной формы:

      • Керн-файл для окрестности неправильной формы представляет собой текстовый файл ASCII, который определяет значения и форму окрестности неправильной формы. Файл можно создать с помощью любого текстового редактора.
      • Первая строка задаёт ширину высоту окрестности (количество ячеек в направлении x, затем пробел, затем количество ячеек в направлении y).
      • Последующие строки содержат значения для каждого положения ячейки окрестности. Значения вводятся в той же конфигурации, в которой они появляются в представляемой ими окрестности. Пробел между значениями является обязательным.
      • Значения в керн-файле должны быть равны 0 (нулю) или 1 (единице). При этом, любое значение, которое не равно 0, будет проинтерпретировано как 1.
      • Нулевое значение (не пробел) для положения ячейки указывает на то, что ячейка не является частью окрестности, и что она не будет включена в обработку. Значение, равное 1, указывает на то, что соответствующая ему ячейка (и ее значение) является частью окрестности.

    • Пример ASCII керн-файла и окрестности неправильной формы, которую он описывает:

    Иллюстрация обрабатываемой ячейки с окрестностью неправильной формы
    Обрабатываемая ячейка с ядром окрестности неправильной формы.

  • Вес
    • Так же как и с окрестностью неправильной формы, взвешенная окрестность позволяет задавать вокруг обрабатываемой ячейки окрестности неправильной формы, но также позволяет применять к входным значениям веса.
    • Керн-файл весов задает, какие ячейки будут включены в окрестность, а также веса, на которые будут умножены значения ячеек.
    • Взвешенная окрестность может использоваться только для статистики: среднее, Среднеквадратическое отклонение и сумма.
    • Положение x,y для обрабатываемой ячейки в пределах окрестности, по отношению к верхнему левому углу окрестности, определяется следующими уравнениями:

      x = (ширина + 1)/2 y = (высота + 1)/2

      Если число входных ячеек четное, координаты x,y округляются в меньшую сторону.

    • Керн-файл во взвешенной окрестности:

      • Керн-файл для окрестности типа Вес представляет собой текстовой ASCII-файл формата, который определяет значения и форму окрестности "Вес". Файл можно создать с помощью любого текстового редактора.
      • Первая строка задаёт ширину высоту окрестности (количество ячеек в направлении x, затем пробел, затем количество ячеек в направлении y).
      • Последующие строки содержат значения для каждого положения ячейки окрестности. Значения вводятся в той же конфигурации, в которой они появляются в представляемой ими окрестности. Положительные, отрицательные и десятичные значения являются корректными опциями в качестве весов. Пробел между значениями является обязательным.
      • Для местоположений в окрестности, которые не участвуют в вычислениях, используйте для соответствующего местоположения в керн-файле значение, равное 0.

    • Пример ASCII керн-файла весов и окрестности типа "Вес", которую он описывает:

    Иллюстрация обрабатываемой ячейки со взвешенной окрестностью
    Обрабатываемая ячейка с ядром взвешенной окрестности.

Тип статистики

Доступная статистика: Большинство, Максимум, Среднее, Медиана, Минимум, Меньшинство, Процентиль, Диапазон, Среднеквадратическое отклонение и Сумма. Тип статистики, используемый по умолчанию – Среднее.

Определенные типы статистики доступны только для входных растров целочисленного типа.

  • Большинство
    • Входными данными могут быть только целочисленные растры.
    • Сначала определяется частота каждого уникального значения ячейки в окрестности. Если имеется только одно значение, которое имеет наивысшую частоту (наиболее частое), это значение возвращается как выходное для данной ячейки. Однако может возникнуть ситуация, когда два и более значений имеют максимальную частоту. В этом случае, обрабатываемая ячейка в выходном растре получит значение NoData.
  • Максимум
    • Если входной растр целочисленный, значения на выходном растре будут целочисленными; если значения на входном растре представлены числами с плавающей точкой, значения на выходном растре будут также представлены числами с плавающей точкой.
  • Среднее
    • Это может быть целочисленный растр или растр с плавающей точкой.
    • Выходной растр всегда будет представлен числами с плавающей точкой.
    • Тип статистики Среднее может быть использован с типом окрестности Вес.
  • Медиана
    • Это может быть целочисленный растр или растр с плавающей точкой.
    • Выходной растр всегда будет представлен числами с плавающей точкой.
    • Когда количество действительных значений ячеек в окрестности нечетное, значение медианы вычисляется путем ранжирования значений и выбора среднего значения. Если число значений в окрестности четное, значения ранжируются, и находится среднее для двух срединных значений.
  • Минимум
    • Если входной растр целочисленный, значения на выходном растре будут целочисленными; если значения на входном растре представлены числами с плавающей точкой, значения на выходном растре будут также представлены числами с плавающей точкой.
  • Меньшинство
    • Входными данными могут быть только целочисленные растры.
    • Сначала определяется частота каждого уникального значения ячейки в окрестности. Если имеется только одно значение, которое имеет наименьшую частоту (наименее частое), это значение возвращается как выходное для данной ячейки. Однако может возникнуть ситуация, когда два и более значений имеют минимальную частоту. В этом случае, обрабатываемая ячейка в выходном растре получит значение NoData.
  • Процентиль
    • Это может быть целочисленный растр или растр с плавающей точкой.
    • Выходной растр всегда будет представлен числами с плавающей точкой.
    • Результат статистики процентиля вычисляется по следующей формуле (Hyndman and Fan, 1996):
      pk = (k-1)/(n-1)
  • Диапазон
    • Если входной растр целочисленный, значения на выходном растре будут целочисленными; если значения на входном растре представлены числами с плавающей точкой, значения на выходном растре будут также представлены числами с плавающей точкой.
    • Значения для местоположения каждой ячейки на выходном растре определяются по принципу "ячейка-за-ячейкой" путём применения простой формулы:
      Фокальный диапазон = Фокальный максимум – Фокальный минимум
  • Среднеквадратическое отклонение
    • Выходной растр всегда будет представлен числами с плавающей точкой.
    • Тип статистики Среднеквадратическое отклонение может быть использован с взвешенной окрестностью.
    • Обратите внимание, что среднеквадратическое отклонение вычислено для всей популяции (метод N), а не для выборки (метод N-1).
  • Сумма
    • Если входной растр целочисленный, значения на выходном растре будут целочисленными; если значения на входном растре представлены числами с плавающей точкой, значения на выходном растре будут также представлены числами с плавающей точкой.
  • Разнообразие
    • Входными данными могут быть только целочисленные растры.

Справочная информация

  • Hyndman, R.J. and Fan, Y. (November 1996). "Sample Quantiles in Statistical Packages", The American Statistician 50 (4): pp. 361-365.

Связанные разделы