我可以读取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.
正确地说,fp
可以是二进制文件。最后检查:type(content)
是<class 'bytes'>
。
有关如何使用rasterio读取二进制数据的任何帮助?谢谢。