Saya memiliki sekitar 1.000 gambar satelit dalam format tiff, dan saya ingin membuat shapefile yang akan berfungsi sebagai indeks untuk raster. Ini mirip dengan katalog raster, tetapi saya tidak ingin membuat katalog raster.
Beberapa kendala yang dapat saya lihat, adalah bahwa gambar di georefrensi, sehingga tidak berbentuk persegi panjang (saya berbicara tentang area data).
Untuk memperjelas, saya memerlukan poligon untuk menutupi hanya piksel non-nol (atau non nodata) dari raster, dan bukan seluruh raster persegi panjang. Sebagian besar jawaban sejauh ini, memberikan poligon persegi panjang, yang mencakup data, serta piksel non-data.
Gambar saya
Hasil yang diberikan oleh alat yang telah saya periksa (seperti raster catlog, berbagai Arcscripts, skrip Python khusus yang diberikan dalam salah satu jawaban):
Hasil yang saya inginkan:
sumber
Jawaban:
Ada sebuah plugin di QGIS bernama Image Boundary . Ini adalah alat yang hebat. Dalam alat ini ada opsi untuk "Piksel Valid" yang akan menghilangkan tepi hitam gambar satelit, misalnya.
sumber
Kode berikut akan mengambil input raster, mendapatkan jangkauannya, dan menyisipkan jangkauan itu ke dalam poligon FeatureClass:
Anda dapat menjalankannya di jendela ArcMap Python dengan mengatur
in_raster
danfc
seperti itu:di mana
r_extent
ada kelas fitur poligon yang ada. Kemudian salin kodenya dan jalankan. Saya mendapatkan ini:sumber
Anda dapat menggunakan gdaltindex untuk ini: http://www.gdal.org/gdaltindex.html
Namun itu masih akan membuat persegi panjang (misalnya 4 + 1 poin) dalam sistem referensi yang sama dengan gambar. Tapi saya bertanya-tanya apakah itu benar-benar masalah: seberapa besar gambar Anda?
sumber
Saya mencoba alat "Image Boundary" di QGIS tetapi gagal dengan beberapa raster.
Opsi lain yang bekerja untuk saya adalah: - 1. Mengkonversi raster input ke nomor digital tunggal dengan menggunakan utilitas baris perintah gdal_translate.
gdal_translate -co kompres = lzw -b 1 -ot byte -scale 1 1 inp.tif out.tif
Ini akan membuat raster dengan nilai 1 di mana-mana inp.tif memiliki nilai bukan nol.
Shapefile keluaran akan memiliki batas non-segi empat, dengan beberapa titik poligon, mengikuti batas aktual gambar.
sumber
Jika Anda tertarik pada solusi yang ditulis, coba perintah gdal nearblack . Anda dapat menggunakan flag -white untuk mengambil data yang dibatasi oleh spasi juga. Anda dapat mempologonisasi output untuk menghasilkan jejak non-persegi panjang dari data raster.
sumber
Saya percaya bahwa, di dunia ArcGIS Anda dapat mencapainya dengan alat 3D Analyst \ Conversion \ From Raster \ Raster Domain .
sumber
Ada alat di ArcGIS 3D Analyst yang disebut Raster Domain yang membuat jejak poligon atau polyline dari bagian data dari dataset raster - dan mengabaikan sel-sel NoData. Bekerja dengan baik untuk saya.
sumber
Anda bisa membuat katalog raster dengan referensi spasial yang ditugaskan, menambahkan katalog raster ke ArcMap, dan kemudian "Ekspor Jejak Kaki". Ingatlah bahwa ada opsi untuk membuat katalog raster "TIDAK DAPATKAN" sehingga Anda tidak membuat duplikat dari setiap dataset raster.
sumber