>> (Bitwise Right Shift) operator

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

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

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

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

Иллюстрация

Иллюстрация >> (Побитового сдвига вправо)
OutRas = Raster("InRas1") >> 1

Обсуждение

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

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

Побитовые операторы работают с 32-разрядными целыми числами.

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

Для выполнения битовой операции требуется ввести два исходных значения (растры или числа).

При выполнении операции побитового сдвига вправо имеет значение порядок ввода.

Бинарные значения хранятся в виде поразрядного дополнения до двух.

Самая левая битовая позиция зарезервирована для знака значения (положительное или отрицательное). Если целое число положительное, бит имеет значение 0, а если отрицательное – бит имеет значение 1.

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

Также операцию побитового сдвига влево можно выполнить как a >>= b, что является альтернативным способом написания a = a >> b.

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

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

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

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

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

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

Параметры

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

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

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

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

Raster Layer | Constant
in_raster_or_constant2

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

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

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

Raster Layer | Constant

Пример кода

>> Пример (Bitwise Right Shift) 1 (окно Python)

В этом примере операция побитового сдвига вправо выполняется с двумя входными растрами.

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

В этом примере операция побитового сдвига вправо выполняется с двумя входными растрами.

# Name: Op_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 = Raster("degs")
inRaster2 = Raster("negs")

# Execute BitwiseRightShift
outBitwiseRShift = inRaster1 >> inRaster2

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

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