天天看點

Google Earth Engine 中的位運算

介紹Google Earth Engine 中常用的位運算操作

按位運算是程式設計中一個難點,同時也是在我們後續處理影像資料,尤其要使用影像自帶的波段比如QA波段經常會用到的一個東西。通過按位運算我們可以篩選出我們想要的各種質量規格的影像。

數值或字元在記憶體内都是被存儲為0和1的序列,每個0和1被稱之為1個位,比如說10進制資料2在計算機内被存儲為 0 0 1 0,當我們将記憶體内的位值改變之後,這個值代表的意義也就變了,比如把2前移動一位, 現在存儲單元裡面變成了 0 1 0 0,這個值表示的是十進制的4,這也就是按位操作符的運算原理。

在GEE中以Landsat5,pixel_qa,8bit波段為例

Google Earth Engine 中的位運算

這是GEE提供的官方去雲代碼

1 << 5表示:1零填充左位移,通過從右推入零向左位移,并使最左邊的位脫落,則在8bit表示中數字1變化如下

00 00 00 01 << 00 01 00 00

若pixel_qa表示有雲像元,則bit5為1,即pixel_qa像元值為00 01 00 00,通過bitwiseAnd( )可得到雲像元的掩膜,進而可以進行去雲操作

JavaScript 位運算符

運算符

名稱

描述

&

AND

如果兩位都是 1 則設定每位為 1

|

OR

如果兩位之一為 1 則設定每位為 1

^

XOR

如果兩位隻有一位為 1 則設定每位為 1

~

NOT

反轉所有位

<<

零填充左位移

通過從右推入零向左位移,并使最左邊的位脫落。

>>

有符号右位移

通過從左推入最左位的拷貝來向右位移,并使最右邊的位脫落。

>>>

零填充右位移

通過從左推入零來向右位移,并使最右邊的位脫落。

繼續閱讀