Читання файлів зображень S3 Sentinel-2 з растеріо


12

В даний час спостерігається помилка "Відмовлено у доступі" після використання rasterio для відкриття файлів зображень Sentinel-2 AWS .jp2 (на даний момент розміщений Sinergise і його можна знайти тут ).

Мій код виглядає приблизно так:

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

Відповідь така:

---------------------------------------------------------------------------
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 

Я не впевнений, чи правильно я використовую середовищі rasterio aws, чи потрібна клавіша маркера Aws сесії, навіть якщо надані секретні та ключі доступу? Я також повинен додати, що ця функція працює правильно, якщо надається URL Landsat-8 (тобто http://landsat-pds.s3.amazonaws.com/L8/139/045/LC81390452014295LGN00/LC81390452014295LGN00_B1.TIF )

Версії (встановлені через Anaconda):

растеріо - 0,36,0

пітон - 2,7

Вибачте, якщо сказане вище розпливчасте. Мої запитання були б - чому це працює для Landsat-8, але не для Sentinel-2? Як можна використовувати растеріо для відкриття даних AWS Sentinel-2?

Відповіді:


9

Я вважаю, що ви використовуєте неправильну назву відра. Це має бути s3://sentinel-s2-l1c, ніs3://sentinel-pds

Спробуйте:

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

Більше інформації тут: http://sentinel-pds.s3-website.eu-central-1.amazonaws.com/ та https://aws.amazon.com/public-datasets/sentinel-2/


+1 - Sentinel-2 на AWS спеціально повідомляє: "МІСЦЕ s3: // sentinel-s2-l1c"
користувач2856

Так, працює з URL у відповіді. Відповідь слід прийняти. Примітка: доступ до цих файлів JP2 за допомогою безкоштовних драйверів JPEG 2000 має низьку продуктивність. Вам потрібно буде створити GDAL з джерела, використовуючи, наприклад, невільний MrSID SDK, щоб отримати гідну продуктивність з JP2. Цікаво, чи є причина, що вони пішли з JP2 замість GeoTIFF?
sgillies

@sgillies Dsoes, які означають, що колеса rasterio manylinux також зазнають цієї продуктивності? Чи випадково ви зробили якісь (загальнодоступні) орієнтири / порівняння?
Керстен

1
Я не можу розповсюджувати MrSID SDK колесами, тому вони використовують безкоштовний драйвер JP2 на базі Jasper. Я не маю орієнтирів для публікації.
sgillies
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.