Побитовый оператор Right Shift (Image Analyst)

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

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

Сводка

Выполняет побитовую операцию "Сдвиг вправо" над двоичными значениями входного растра.

Более подробно о работе побитовых математических инструментов

Иллюстрация

Иллюстрация инструмента Побитовый оператор Right Shift
OutRas = BitwiseRightShift(InRas1, 1)

Использование

  • Для выполнения этой побитовой операции необходимо наличие двух входных файлов.

  • Порядок входных данных имеет значение для этого инструмента.

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

  • В побитовых операциях:

    • Бинарные значения хранятся в виде поразрядного дополнения до двух.
    • Инструменты работают с 32-битовыми целыми числами.
    • Крайняя левая битовая позиция резервируется для знака значения (положительного или отрицательного). Если целое число положительное, битовая позиция равна нулю; если оно отрицательное, битовая позиция равна единице.

  • Побитовая операция сдвига вправо не выполняет свертывания бит. Крайний правый бит отбрасывается.

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

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

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

Синтаксис

BitwiseRightShift(in_raster_or_constant1, in_raster_or_constant2)
ParameterОбъяснениеТип данных
in_raster_or_constant1

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

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

Raster Layer; Constant
in_raster_or_constant2

Входной растр, определяющий число позиций для сдвига бит.

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

Raster Layer; Constant

Значение отраженного сигнала

NameОбъяснениеТип данных
out_raster

Выходной растр.

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

Raster

Пример кода

BitwiseRightShift, пример 1 (окно Python)

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

import arcpy
from arcpy import env
from arcpy.ia import *
env.workspace = "C:/iapyexamples/data"
outBitwiseRShift = BitwiseRightShift("degs", "negs")
outBitwiseRShift.save("C:/iapyexamples/output/outbitrs")
BitwiseRightShift, пример 2 (автономный скрипт)

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

# Name: BitwiseRightShift_Ex_02.py
# Description: Performs a Bitwise Right Shift operation on the binary
#              values of two input rasters
# Requirements: Image Analyst Extension

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

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

# Set local variables
inRaster1 = "degs"
inRaster2 = "negs"

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Execute BitwiseRightShift
outBitwiseRShift = BitwiseRightShift(inRaster1, inRaster2)

# Save the output 
outBitwiseRShift.save("C:/iapyexamples/output/outbitrshift.img")

Информация о лицензиях

  • Basic: Требуется Image Analyst or Spatial Analyst
  • Standard: Требуется Image Analyst or Spatial Analyst
  • Advanced: Требуется Image Analyst or Spatial Analyst

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