Lettura dei file di immagine S3 Sentinel-2 con rasterio


12

Al momento sto riscontrando un errore "Accesso negato" dopo aver utilizzato rasterio per aprire i file di immagine Sentinel-2 AWS .jp2 (attualmente ospitati da Sinergise e disponibili qui ).

Il mio codice è simile al seguente:

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

La risposta è:

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

Non sono sicuro se sto usando correttamente gli ambienti rasterio aws, è necessaria la chiave token della sessione aws anche se sono fornite le chiavi segreta e d'accesso? Dovrei anche aggiungere che questa funzione funziona correttamente se fornita con un URL Landsat-8 (ad es. Http://landsat-pds.s3.amazonaws.com/L8/139/045/LC81390452014295LGN00/LC81390452014295LGN00_B1.TIF )

Versioni (installate tramite Anaconda):

rasterio - 0.36.0

pitone - 2.7

Scusa se quanto sopra è vago. Le mie domande sarebbero: perché funziona con Landsat-8 ma non con Sentinel-2? Come si può utilizzare rasterio per aprire i dati di Sentinel-2 AWS?

Risposte:


9

Credo che tu stia usando il nome del bucket sbagliato. Dovrebbe essere s3://sentinel-s2-l1c, nos3://sentinel-pds

Provare:

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

Maggiori informazioni qui: http://sentinel-pds.s3-website.eu-central-1.amazonaws.com/ e https://aws.amazon.com/public-datasets/sentinel-2/


+1: Sentinel-2 su AWS specifica in modo specifico: "LOCATION s3: // sentinel-s2-l1c"
user2856

Sì, funziona con l'URL nella risposta. La risposta dovrebbe essere accettata Nota: l'accesso a questi file JP2 utilizzando driver JPEG 2000 gratuiti ha scarse prestazioni. Dovrai creare GDAL dalla fonte usando, ad esempio, l'SDK MrSID non gratuito, per ottenere prestazioni decenti con JP2. Mi chiedo se c'è una ragione per cui sono andati con JP2 invece di GeoTIFF?
sgillies,

@sgillies Questo significa che anche le ruote di rasterio manylinux subiscono questo colpo di prestazione? Hai fatto per caso dei benchmark / confronti (pubblici)?
Kersten,

1
Non riesco a distribuire l'SDK MrSID con le ruote e quindi usano il driver JP2 basato su Jasper gratuito. Non ho benchmark da pubblicare.
sgillies,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.