/ (Division) operator

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

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

Краткая информация

Делит значения двух растров по принципу ячейка-за-ячейкой.

Иллюстрация

Иллюстрация оператора Деление
OutRas = Raster("InRas1") / Raster("InRas2")

Обсуждение

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

Если в выражении используется несколько операторов, их необязательно выполнять слева направо. Оператор с наивысшим значением приоритета будет выполнен первым. Более подробно см. таблицу приоритета операторов в разделе Работа с операторами в Алгебре карт. Порядок выполнения операторов можно изменить с помощью скобок.

Для этого оператора важен порядок растров во входном списке.

В случае, если значение делится на 0, в соответствующей ячейке выходного растра будет значение NoData.

Точный метод деления, используемый этим оператором, зависит от используемого приложения при его выполнении.

В ArcGIS Pro деление с плавающей точкой Python 3 используется этим оператором всегда, результат будет всегда значением с плавающей точкой. Например, если 3 необходимо разделить на 2, выходное значение будет 1.5.

В ArcMap оператор деления использует метод целочисленного деления Python 2, при котором остается только целое от частного. Если оба входных набора данных – целочисленные, то оператор деления выполняет целочисленное деление и выходные данные будут целочисленными. Например, если 3 будет разделено на 2, результатом будет 1, либо если -3 будет разделено на 2, результатом будет -2. Если оба набора входных данных будут иметь тип чисел с плавающей точкой, то оператор деления будет выполнять деление с плавающей точкой и выходные данные будут представлять собой значения с плавающей точкой. Например, если 3 необходимо разделить на 2,0, выходное значение будет 1,5.

Примечание:

Имейте это различие в виду, когда переходите с ArcGIS Desktop на ArcGIS Pro, либо вам придется работать в обоих приложениях. Можно использовать оператор // (Целочисленное деление), если важно, чтобы результат был целым числом.

Другой способ выполнить деление – a /= b, что иным способом может быть записано как a = a / b.

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

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

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

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

Если у обоих входных данных одна переменная, но разные имена, установите False для среды геообработки matchMultidimensionalVariable, чтобы выполнить операцию.

Если одними из входных данных является многомерный растр, а другие - константой, оператор будет выполнен для всех срезов для всех переменных с постоянным значением, и на выходе будет получен многомерный растр.

Параметры

ОперандОписаниеТип данных
in_raster_or_constant1

Входные данные, значения которых будут делиться на значения вторых входных данных.

Если первый набор входных значений является растром, а второй – скаляром, то выходной растр создается с каждым значением входного растра, поделённым на значение скаляра.

Raster Layer | Constant
in_raster_or_constant2

Входные данные, на значения которых будут делиться значения первых входных данных.

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

Raster Layer | Constant

Пример кода

/ (Деление) Пример 1 (окно Python)

В этом примере делятся значения первого входного растра на значения второго.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outDivide = Raster("degs") / Raster("negs")
outDivide.save("C:/sapyexamples/output/outdivide")
/ (Деление), пример 2 (автономный скрипт)

В этом примере делятся значения первого входного растра на значения второго.

# Name: Op_Divide_Ex_02.py
# Description: Divides the values of two rasters on a cell-by-cell basis
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster01 = Raster("elevation")
inRaster02 = Raster("landuse")

# Execute Divide
outDivide = inRaster01 / inRaster02

# Save the output 
outDivide.save("C:/sapyexamples/output/outdivide2")

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