Чтение файлов изображений 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 )

Версии (устанавливаемые через Анаконду):

растерио - 0.36.0

питон - 2,7

Извините, если вышесказанное расплывчато. Мои вопросы: почему это работает для Landsat-8, а не для Sentinel-2? Как можно использовать растерио для открытия данных Sentinel-2 AWS?

bgordon
источник

Ответы:

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 специально заявляет: «LOCATION s3: // sentinel-s2-l1c»
user2856
Да, работает с URL в ответе. Ответ должен быть принят. Примечание: доступ к этим файлам JP2 с использованием бесплатных драйверов JPEG 2000 имеет низкую производительность. Вам потребуется собрать GDAL из исходного кода, используя, например, несвободный MrSID SDK, чтобы получить достойную производительность с JP2. Интересно, есть ли причина, по которой они выбрали JP2 вместо GeoTIFF?
sgillies
@sgillies Dso, что означает, что колеса rasterio manylinux тоже страдают от этой производительности? Вы случайно не проводили какие-либо (публичные) тесты / сравнения?
Керстен
1
Я не могу распространять MrSID SDK с колесами, поэтому они используют бесплатный драйвер JP2 на основе Jasper. У меня нет тестов для публикации.
sgillies