Membaca file gambar S3 Sentinel-2 dengan rasterio


12

Saat ini saya mengalami kesalahan 'Akses Ditolak' setelah menggunakan rasterio untuk membuka file gambar .jp2 Sentinel-2 AWS (saat ini di-host oleh Sinergise dan dapat ditemukan di sini ).

Kode saya terlihat seperti ini:

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

Jawabannya adalah:

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

Saya tidak yakin apakah saya menggunakan lingkungan rasterio aws dengan benar, apakah kunci token sesi aws diperlukan bahkan jika kunci rahasia dan akses diberikan? Saya juga harus menambahkan bahwa fungsi ini berfungsi dengan benar jika disediakan dengan url Landsat-8 (yaitu http://landsat-pds.s3.amazonaws.com/L8/139/045/LC81390452014295LGN00/LC81390452014295LGN00_B1.TIF )

Versi (diinstal melalui Anaconda):

rasterio - 0.36.0

python - 2.7

Maaf jika di atas tidak jelas. Pertanyaan saya adalah - mengapa ini bekerja untuk Landsat-8 tetapi tidak untuk Sentinel-2? Bagaimana rasterio dapat digunakan untuk membuka data AWS Sentinel-2?

Jawaban:


9

Saya yakin Anda menggunakan nama bucket yang salah. Seharusnya s3://sentinel-s2-l1ctidaks3://sentinel-pds

Mencoba:

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

Lihat info lebih lanjut di sini: http://sentinel-pds.s3-website.eu-central-1.amazonaws.com/ dan https://aws.amazon.com/public-datasets/sentinel-2/


+1 - Sentinel-2 di AWS secara khusus menyatakan: "LOCATION s3: // sentinel-s2-l1c"
user2856

Yap, berfungsi dengan URL di jawabannya. Jawaban harus diterima. Catatan: akses ke file JP2 ini menggunakan driver JPEG 2000 gratis memiliki kinerja yang buruk. Anda harus membangun GDAL dari sumber menggunakan, misalnya, MrSID SDK yang tidak bebas, untuk mendapatkan kinerja yang layak dengan JP2. Saya ingin tahu apakah ada alasan mereka menggunakan JP2 alih-alih GeoTIFF?
sgillies

@sgillies Dsoes itu berarti roda rasterio manylinux juga terkena dampak kinerja ini? Apakah Anda secara kebetulan melakukan tolok ukur / perbandingan (publik)?
Kersten

1
Saya tidak dapat mendistribusikan SDK MrSID dengan roda dan karena itu mereka menggunakan driver JP2 berbasis Jasper gratis. Saya tidak memiliki tolok ukur untuk diterbitkan.
sgillies
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.