rasterio如何读取二进制数据?

时间:2019-04-07 11:24:12

标签: python amazon-s3 rasterio

我可以读取S3文件并获取其二进制内容,但是我无法将其转换为rasterio格式。

这是我的方法:

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)<class 'bytes'>

有关如何使用rasterio读取二进制数据的任何帮助?谢谢。

0 个答案:

没有答案