Я могу прочитать файл S3 и иметь его двоичное содержимое, но я не могу сделать, как преобразовать его в формат растерио.
Вот мой подход:
import boto3
import rasterio
s3 = boto3.resource('s3')
bucket = 'sentinel-s2-l1c'
key = 'tiles/31/U/DQ/2019/3/2/0/B01.jp2'
content = s3.Object(bucket, key).get(RequestPayer='requester')['Body'].read()
rio = rasterio.open(content, driver="JP2OpenJPEG").read(1)
Но это возвращает ошибку, говоря: invalid path or file: b'\x00\x00\x00\x0cjP...
Несмотря на то, что я прочитал в исходном коде rasterio.open
, что:
fp : str, file object or pathlib.Path object
A filename or URL, a file object opened in binary ('rb') mode,
or a Path object.
(источник: https://github.com/mapbox/rasterio/blob/c2df12979a5e07f96f108b0be8329e79fe950532/rasterio/init.py#L74)
Правильно сказано, что fp
может быть двоичным файлом. Последняя проверка: type(content)
is <class 'bytes'>
.
Любая помощь в том, как читать двоичные данные с растерио? Спасибо.