<< (Bitwise Left Shift) operator

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

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

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

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

Иллюстрация

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

Обсуждение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры

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

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

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

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

Raster Layer | Constant
in_raster_or_constant2

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

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

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

Raster Layer | Constant

Пример кода

<< (Побитовый сдвиг влево) пример 1 (окно Python)

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

import arcpy
from arcpy import env
from arcpy.ia import *
env.workspace = "C:/iapyexamples/data"
outBitwiseLS = Raster("degs") << Raster("negs")
outBitwiseLS.save("C:/iapyexamples/output/outbitls.tif")
<< (Побитовый сдвиг влево) пример 2 (автономный скрипт)

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

# Name: Op_BitwiseLeftShift_Ex_02.py
# Description: Performs a Bitwise Left 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 BitwiseLeftShift
outBitwiseLShift = inRaster1 << inRaster2

# Save the output 
outBitwiseLShift.save("C:/iapyexamples/output/outlshift")

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