การอ่านไฟล์รูปภาพ S3 Sentinel-2 พร้อม rasterio


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 หรือไม่แม้ว่าจะมีการให้รหัสลับและการเข้าถึงหรือไม่ ฉันควรเพิ่มด้วยว่าฟังก์ชั่นนี้ทำงานอย่างถูกต้องหากมี Landsat-8 url (เช่นhttp://landsat-pds.s3.amazonaws.com/L8/139/045/LC81390452014295LGN00/LC81390452014295LGN00_B1.TIF )

รุ่น (ติดตั้งผ่านแอนาคอนดา):

rasterio - 0.36.0

หลาม - 2.7

ขออภัยถ้าข้างต้นไม่ชัดเจน คำถามของฉันจะเป็น - เหตุใดจึงทำงานกับ Landsat-8 แต่ไม่ใช่ Sentinel-2 rasterio สามารถใช้เพื่อเปิดข้อมูล Sentinel-2 AWS ได้อย่างไร

คำตอบ:


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

ใช่ทำงานกับ URL ในคำตอบ คำตอบควรได้รับการยอมรับ หมายเหตุ: การเข้าถึงไฟล์ JP2 เหล่านี้โดยใช้ไดรเวอร์ JPEG 2000 ฟรีมีประสิทธิภาพไม่ดี คุณจะต้องสร้าง GDAL จากซอร์สโดยใช้ตัวอย่างเช่น MrSID SDK ที่ไม่มีค่าใช้จ่ายเพื่อรับประสิทธิภาพที่ดีกับ JP2 ฉันสงสัยว่ามีเหตุผลที่พวกเขาไปกับ JP2 แทนที่จะเป็น GeoTIFF หรือไม่?
sgillies

@sgillies Dsoes นั่นหมายถึง rasterio manylinux wheels ที่ได้รับผลกระทบเช่นนี้หรือไม่? คุณได้ทำการเปรียบเทียบ / เปรียบเทียบกับบุคคลอื่นโดยบังเอิญหรือไม่?
Kersten

1
ฉันไม่สามารถแจกจ่าย MrSID SDK กับวงล้อได้ดังนั้นพวกเขาจึงใช้ไดร์เวอร์ JP2 แบบ Jasper ฟรี ฉันไม่มีเกณฑ์มาตรฐานในการเผยแพร่
sgillies
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.