Как растерио может читать двоичные данные? - PullRequest
0 голосов
/ 07 апреля 2019

Я могу прочитать файл 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'>.

Любая помощь в том, как читать двоичные данные с растерио? Спасибо.

...