أكثر

كيف تقرأ صور Landsat من Amazon S3 باستخدام Python؟

كيف تقرأ صور Landsat من Amazon S3 باستخدام Python؟


أرغب في قراءة صور Landsat من Amazon S3 ومعالجتها باستخدام Python


في هذه المرحلة ، لم أقم بتطبيق هذه الأشياء بنفسي ، لكن النهج الذي أخطط له هو الجمع بين boto والمعلومات الموجودة على صفحة Amazon على Landsat على AWS. للوهلة الأولى ، يبدو أنها مهمة قابلة للتنفيذ إلى حد ما. خيار آخر هو استخدام لاندسات الذي يمكن العثور عليه على جيثب ، والذي يعتمد على لغة بايثون ويمكنه التفاعل مع AWS.


يجب أن تكون قادرًا على قراءة Landsat مباشرةً من استخدام S3/ vsicurl /معالج الملف. قبل ترميزه في Python ، تحقق مما إذا كان يمكنك الوصول إلى ملف من سطر الأوامر. أنا فكر في/ vsicurl /قد يعمل في الإصدار gdal-2.0 أو 1.11 ، ولكن من الأفضل استخدام الإصدار الأحدث (2.1.2).

gdalinfo /vsicurl/http://landsat-pds.s3.amazonaws.com/L8/001/003/LC80010032014272LGN00/LC80010032014272LGN00_B1.TIF

هناك نوعان من متغيرات البيئة التي يمكنك تعيينها لتحسين الأداء. جرب هذا:

env CPL_VSIL_CURL_ALLOWED_EXTENSIONS = tif VSI_CACHE = TRUE GDAL_DISABLE_READDIR_ON_OPEN = TRUE gdalinfo /vsicurl/http://landsat-pds.s3.amazonaws.com/L8/001/003/LC80010032014272LC100

لاحظ أن بعض هذه الخيارات تعمل فقط مع gdal> = 2.1.2 الذي تم إصداره في نوفمبر 2016. إذا كان بإمكانك الحصول على gdalinfo لعرض البيانات الوصفية الصحيحة ، فيجب أن يعمل وصول Python إلى مجموعة البيانات. إليك مثال عشوائي:

من osgeo import gdal import numpy gdal.SetConfigOption ('CPL_VSIL_CURL_ALLOWED_EXTENSIONS'، 'tif') gdal.SetConfigOption ('VSI_CACHE'، 'TRUE') gdal.SetConfigOption ('GDAL_DISABLE_' ' vsicurl / http: //landsat-pds.s3.amazonaws.com/L8/001/003/LC80010032014272LGN00/LC80010032014272LGN00_B1.TIF ') xoff، yoff، xcount، ycount = (4000، 4000، 256، 256) np_array = ds. GetRasterBand (1) .ReadAsArray (xoff، yoff، xcount، ycount)

شاهد الفيديو: DICOM الصور الرقمية الطبية والتعامل معها باستخدام بايثون