Apa format biner dari ROI ENVI (Klasik)?

11

Saya seorang Pythonist di kantor yang penuh dengan pengguna ENVI / IDL. Saya telah membuat beberapa alat untuk membantu menjembatani kesenjangan, tetapi satu hambatan besar adalah file .roi ENVI Classic, yang banyak digunakan rekan saya.

Saya dapat dengan mudah mengimpor ROI ENVI 5 ke Python, karena format berbasis teks mudah diurai. Namun, saya tidak memiliki perasaan yang baik untuk format biner dari file .roi ENVI Classic, yang merupakan sebagian besar pertukaran data dalam grup saya. Apakah ada yang punya kode yang membaca atau menulis file-file ini, atau wawasan tentang bagaimana orang bisa melakukannya?

Agak membosankan untuk menjalankan ENVI 5 setiap kali saya ingin bolak-balik - saya lebih suka menyelesaikan masalah di sumbernya jika memungkinkan.

Daven Quinn
sumber

Jawaban:

1

Saya bukan ahli python, tetapi ini seharusnya relatif mudah dilakukan jika Anda sudah menulis skrip yang dapat menguraikan, membaca, dan menulis file ASCII standar.

Menurut Harris Geospatial Solutions, pengembang ENVI saat ini, file gambar biner ENVI (dijelaskan di sini) harus terdiri dari file biner dan file header ASCII (didefinisikan dengan contoh di sini) . Untuk membaca file gambar ENVI, Anda harus menguraikan header ASCII dan mengakses tipe data (integer, float, ditandatangani / tidak ditandatangani, dll.), Jumlah band, interleave (Urutan Band, Band-disisipkan-oleh- pixel, atau Band-interleaved-by-line ), urutan byte, dan informasi data terkait lainnya. Perhatikan dengan seksama deskripsi format file header dan contoh yang ditautkan ke atas.

Sekarang setelah Anda tahu potongan biner mana yang harus dibaca pada suatu waktu, urutannya, dan band mana yang termasuk di dalamnya, Anda siap membaca data gambar .

Tombak
sumber
Apakah ROI ENVI disimpan sebagai file gambar? Saya kira mereka memiliki "ukuran spasial yang sama dengan raster induknya" menurut Harris Geospatial , tetapi di UI, setengah-piksel (dibagi dua secara diagonal) dipilih saat diseret untuk membuat ROI, jadi sepertinya ini harus menjadi format vektor semacam, kecuali ada semacam bendera raster dua-bit (untuk menentukan arah segitiga). Bagaimanapun, saya akan mencoba seperti yang Anda sarankan dan lihat seberapa jauh saya dapatkan!
Daven Quinn
Saya pikir "file gambar biner ENVI" adalah sepasang file, satu tanpa ekstensi dan satu dengan ekstensi ".hdr". Tapi, file .roi tampaknya dalam format biner yang berbeda? Omong-omong, jika semua yang Anda ingin lakukan adalah memuat file .hdr, gunakan paket python ini: spectralpython.net
MD004
Tidak, saya pasti mencari solusi untuk membaca / menulis ROI secara langsung, bukan hanya header, yang dapat dibaca dengan misalnya GDAL tergantung pada format ...
Daven Quinn