微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从字节流加载栅格并设置其 CRS

如何解决从字节流加载栅格并设置其 CRS

我想要做的是:从内存中的 s3 存储桶加载栅格并将其 CRS 设置为 4326(它没有设置 crs)

到目前为止我所拥有的:

import boto3
import Rasterio
from Rasterio.crs import CRS

bucket = 'my bucket'
key = 'my_key'
s3 = boto3.client('s3')
file_byte_string = s3.get_object(Bucket=bucket,Key=key)['Body'].read()
with Rasterio.open(BytesIO(file_byte_string),mode='r+') as ds:
  crs = CRS({"init": "epsg:4326"}) 
  ds.crs = crs

在这里找到了构建代码方法

Set CRS for a file read with rasterio

如果我给它一个本地文件的路径它可以工作,但它不适用于字节流

当我使用“+r”模式时出现的错误

Rasterio.errors.PathError: invalid path '<_io.BytesIO object at 0x7fb4503ca4d0>'

当我使用 'r' 模式时出现的错误

Rasterio.errors.DatasetAttributeError: read-only attribute

有没有办法在 r+ 模式下加载字节流,以便我可以设置/修改 CRS?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。