[英]Google Earth Engine Python API wrong MODIS NDVI value extracted
[英]Why are wrong bits extracted in python?
我需要在位置 p 提取幾個 k 位才能轉換為十進制值。 我使用了一個標准函數,但是當我測試一個 6/7/8 字節長的二進制代碼時,它仍然不正確。 當我有一個 1 字節的代碼時,它是小端的,但是一旦我使用 8 字節的代碼,它就會被移位。 對於一個信號(7 字節代碼),它被移動了 +7 位,而另一個信號(另一個 ID,8 字節代碼)被移動了 -21 位。 我無法向自己解釋這一點,所以我想四處玩耍並手動添加或減去位,以便使用正確的位進行計算。 你知道為什么會這樣嗎?
示例 8 字節:
extract_k_bits('100001111000000001110111011001000111011111111000001110100111101',16,0)
輸出: 001110100111101
而不是1000011110000000
extract_k_bits('100001111000000001110111011001000111011111111000001110100111101',16,24)
輸出: 0110010001110111
而不是1011001000111011
這是我正在使用的代碼:
import openpyxl
from openpyxl import Workbook
theFile = openpyxl.load_workbook('Adapted_T013.xlsx')
allSheetNames = theFile.sheetnames
print("All sheet names {} " .format(theFile.sheetnames))
sheet = theFile.active
def extract_k_bits(inputBIN,k,p):
end = len(inputBIN) - p
start = end - k + 1
kBitSub = inputBIN[start : end+1]
print(kBitSub)
Dec_Values=int(kBitSub,2)
這是一個有效的解決方案:
def extract_k_bits(inputBIN,k):
# Since you always extract 16 bits
# just use the point where you want to extract from
kBitSub = inputBIN[k : k+16]
print(kBitSub)
extract_k_bits('100001111000000001110111011001000111011111111000001110100111101',0)
extract_k_bits('100001111000000001110111011001000111011111111000001110100111101',23)
輸出
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.