Jadi, GDAL baru- baru ini menambahkan fitur baru yang memungkinkan pembacaan acak file bucket S3. Saya ingin memotong gambar GDAL dari beberapa ubin gambar tanpa harus mengunduh seluruh file. Saya hanya melihat dokumentasi yang sangat jarang tentang cara mengkonfigurasi dan mengakses ember S3 melalui GDAL dan saya sedikit bingung tentang bagaimana memulainya? Apakah seseorang akan berbaik hati untuk memberikan contoh / tutorial yang sangat singkat tentang bagaimana seseorang akan mengatur sistem file virtual untuk GDAL untuk mencapai tujuan ini? Poin bonus jika solusi Anda memungkinkannya dituliskan melalui Python!
Untuk memperjelas: Kami sudah melakukannya dengan Python. Masalah dengan Python adalah Anda harus mengunduh seluruh gambar untuk mengoperasikannya. Versi terbaru GDAL memiliki dukungan untuk memasang bucket S3 sehingga jika kita perlu mengatakan pemangkasan sebagian kecil dari gambar, kita dapat beroperasi secara langsung pada bagian yang lebih kecil itu. Sayangnya, karena fitur ini baru dirilis pada cabang stabil pada bulan Januari, saya belum menemukan dokumentasi apa pun tentangnya. Jadi solusinya harus menggunakan sistem VSI3 dalam rilis terbaru GDAL atau dengan cerdas menggunakan sistem untuk mencegah pengguna dari perlu mengunduh seluruh gambar ke drive EBS untuk beroperasi di atasnya.
Artinya hadiah akan diberikan untuk menjawab yang menggunakan VSI API yang ditemukan di versi terbaru GDAL sehingga seluruh file tidak perlu dibaca ke dalam memori atau disk. Selain itu, kami, keranjang yang kami gunakan tidak selalu publik sehingga banyak trik HTTP yang diposting tidak akan berfungsi di banyak situasi kami.
sumber
Jawaban:
Saya telah menemukan ketika ada sesuatu yang tidak terdokumentasi dengan baik di GDAL, yang melihat melalui tes mereka dapat berguna.
The
/vsis3
uji modul memiliki beberapa contoh sederhana, meskipun tidak memiliki contoh benar-benar membaca potongan.Saya telah menyusun kode di bawah ini berdasarkan modul tes, tetapi saya tidak dapat menguji karena GDAL / vsis3 memerlukan kredensial dan saya tidak memiliki akun AWS.
sumber
Karena
/vsis3/
diimplementasikan dalam GDAL, Anda juga dapat menggunakanrasterio
untuk membaca kumpulan data Windows S3. Ini membutuhkan kredensial Anda untuk diatur untuk boto atau menggunakan pengendali sesi AWS rasterios .Lihat juga rasterios windowed-rw dan VSI docs.
sumber
Coba gunakan file XML untuk menyimpan info WMS, detail lebih lanjut ada di dokumentasi GDAL WMS .
Berikut adalah contoh file XML WMS untuk mengambil data dari API Elevasi Mapzen:
Anda kemudian dapat klip ke kotak pembatas seperti:
sumber
Saya tidak tahu banyak tentang bucket S3 tetapi tampaknya ini adalah drive penyimpanan cloud dengan otentikasi menggunakan layanan http REST. yaitu dapat digunakan sebagai titik pemasangan biasa, dengan uri terkait.
Jika Anda mencari memotong bagian gambar / raster maka file tersebut harus dalam format yang sesuai.
Lihatlah spesifikasi TMS http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification
(Mungkin netCDF juga bisa melakukan triknya.)
GDAL juga membaca dan menulis format TMS. Pada dasarnya ini hanya struktur direktori standar dengan beberapa file metadata.
Sekarang, triknya adalah membuat url dengan parameter parameter geografis melalui driver TMS.
Lihatlah dokumentasi driver TMS OpenLayers: http://dev.openlayers.org/docs/files/OpenLayers/Layer/TMS-js.html Untuk melihat bagaimana menangani permintaan berdasarkan lokasi, zoom dan luasan.
Tentu saja itu bisa dilakukan dengan Python. Anda pertama-tama perlu membuat URI "titik pemasangan" (atau jalur) yang sesuai dengan viscurl (sesuai dengan dokumentasi) dan kemudian, setelah dipasang pergi ke ubin khusus sesuai dengan spesifikasi TMS (yang merupakan perpanjangan dari jalur) .
sumber