Đọc tệp hình ảnh S3 Sentinel-2 với rasterio


12

Tôi hiện đang gặp lỗi 'Truy cập bị từ chối' sau khi sử dụng rasterio để mở tệp hình ảnh Sentinel-2 AWS .jp2 (hiện đang được Sinergise lưu trữ và có thể tìm thấy ở đây ).

Mã của tôi trông như thế này:

import rasterio

access_key = '*****************'
secret_access_key = '***********************'
region_name = 'eu-central-1'

Session = rasterio.env.Env(aws_access_key_id=access_key,
             aws_secret_access_key=secret_access_key,
             region_name=region_name)

url = 's3://sentinel-pds/tiles/10/S/DG/2015/12/7/0/B01.jp2'

with Session:
    with rasterio.open(url) as dataset:
            print dataset

Câu trả lời là:

---------------------------------------------------------------------------
CPLE_AWSAccessDenied                      Traceback (most recent call last)
<ipython-input-1-4f6da7274649> in <module>()
     12 
     13 with Session:
---> 14     with rasterio.open(url) as dataset:
     15         print dataset

/Users/Barney/anaconda/lib/python2.7/site-packages/rasterio/__init__.pyc in open(path, mode, driver, width, height, count, crs, transform, dtype, nodata,  **kwargs)
    191         raise ValueError(
    192             "mode string must be one of 'r', 'r+', or 'w', not %s" % mode)
--> 193     s.start()
    194     return s
    195 

rasterio/_base.pyx in rasterio._base.DatasetReader.start (rasterio/_base.c:2847)()

rasterio/_base.pyx in rasterio._base.DatasetReader.start (rasterio/_base.c:2799)()

rasterio/_err.pyx in rasterio._err.CPLErrors.check (rasterio/_err.c:1773)()

CPLE_AWSAccessDenied: Access Denied 

Tôi không chắc chắn nếu tôi đang sử dụng môi trường rasterio aws một cách chính xác, khóa mã thông báo phiên aws có cần thiết ngay cả khi các khóa truy cập và bí mật được cung cấp không? Tôi cũng nên thêm rằng chức năng này hoạt động chính xác nếu được cung cấp url Landsat-8 (ví dụ: http://landsat-pds.s3.amazonaws.com/L8/139/045/LC81390452014295LGN00/LC81390452014295LGN00_B1.TIF )

Các phiên bản (được cài đặt qua Anaconda):

rasterio - 0,36.0

trăn - 2.7

Xin lỗi nếu những điều trên là mơ hồ. Câu hỏi của tôi sẽ là - tại sao điều này hoạt động cho Landsat-8 mà không phải là Sentinel-2? Làm thế nào rasterio có thể được sử dụng để mở dữ liệu Sentinel-2 AWS?

Câu trả lời:


9

Tôi tin rằng bạn đang sử dụng tên xô sai. Nó nên s3://sentinel-s2-l1c, không phảis3://sentinel-pds

Thử:

url = 's3://sentinel-s2-l1c/tiles/10/S/DG/2015/12/7/0/B01.jp2'

Xem thêm thông tin tại đây: http://sentinel-pds.s3-website.eu-central-1.amazonaws.com/https://aws.amazon.com/public-datasets/sentinel-2/


+1 - Sentinel-2 trên AWS quy định cụ thể: "VỊ TRÍ s3: // sentinel-s2-l1c"
user2856

Đúng, làm việc với URL trong câu trả lời. Câu trả lời nên được chấp nhận. Lưu ý: truy cập vào các tệp JP2 này bằng trình điều khiển JPEG 2000 miễn phí có hiệu suất kém. Bạn sẽ cần xây dựng GDAL từ nguồn bằng cách sử dụng SDK MrSID không miễn phí, để có được hiệu suất tốt với JP2. Tôi tự hỏi liệu có lý do gì họ đã đi với JP2 thay vì GeoTIFF không?
sgillies

@sgillies Điều đó có nghĩa là bánh xe rasterio manylinux cũng chịu hiệu suất này? Bạn có tình cờ làm bất kỳ điểm chuẩn / so sánh (công khai) nào không?
Kersten

1
Tôi không thể phân phối SDK MrSID bằng các bánh xe và vì vậy họ sử dụng trình điều khiển JP2 dựa trên Jasper miễn phí. Tôi không có điểm chuẩn để xuất bản.
sgillies
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.