Odczytywanie plików obrazów S3 Sentinel-2 za pomocą rasterio


12

Mam obecnie błąd „Odmowa dostępu” po użyciu rasterio do otwarcia plików obrazów Sentinel-2 AWS .jp2 (obecnie hostowanych przez Sinergise i można je znaleźć tutaj ).

Mój kod wygląda następująco:

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

Odpowiedź brzmi:

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

Nie jestem pewien, czy poprawnie używam środowisk awaster rasterio, czy klucz tokena sesji aws jest wymagany, nawet jeśli podano klucze tajne i klucze dostępu? Powinienem również dodać, że ta funkcja działa poprawnie, jeśli jest dostarczana z adresem URL Landsat-8 (tj. Http://landsat-pds.s3.amazonaws.com/L8/139/045/LC81390452014295LGN00/LC81390452014295LGN00_B1.TIF )

Wersje (instalowane przez Anaconda):

rasterio - 0,36

python - 2.7

Przepraszam, jeśli powyższe jest niejasne. Moje pytania brzmiałyby: dlaczego to działa dla Landsat-8, ale nie dla Sentinel-2? Jak można użyć rasterio do otwierania danych Sentinel-2 AWS?

Odpowiedzi:


9

Uważam, że używasz niewłaściwej nazwy wiadra. To powinno być s3://sentinel-s2-l1c, nies3://sentinel-pds

Próbować:

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

Zobacz więcej informacji tutaj: http://sentinel-pds.s3-website.eu-central-1.amazonaws.com/ i https://aws.amazon.com/public-datasets/sentinel-2/


+1 - Sentinel-2 na AWS wyraźnie stwierdza: „LOKALIZACJA s3: // sentinel-s2-l1c”
użytkownik2856,

Tak, działa z adresem URL w odpowiedzi. Odpowiedź powinna zostać zaakceptowana. Uwaga: dostęp do tych plików JP2 przy użyciu bezpłatnych sterowników JPEG 2000 ma niską wydajność. Musisz zbudować GDAL ze źródła, używając na przykład niewolnego MrSID SDK, aby uzyskać przyzwoitą wydajność z JP2. Zastanawiam się, czy istnieje powód, dla którego wybrali JP2 zamiast GeoTIFF?
sgillies,

@sgillies Czy Dsoes oznacza, że ​​koła rasterio manylinux również odczuwają ten hit wydajności? Czy przypadkiem przeprowadziłeś jakieś (publiczne) testy porównawcze / porównania?
Kersten,

1
Nie mogę rozpowszechniać zestawu MrSID SDK wraz z kołami, dlatego używają one darmowego sterownika JP2 opartego na Jasper. Nie mam testów do opublikowania.
sgillies,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.