3.7 Gigapixel

Itulah salah satu ukuran gambar peta dunia koleksi NASA BlueMarble. Dengan ukuran sebesar itu, satu piksel pada gambar sudah merepresentasikan sebuah area dengan luas 500×500 meter persegi.
Sungguh sangat menarik tuk ditampilkan dengan Kasuari. Langkah pertama yg saya harus lakukan tentu saja mendapatkan gambar tersebut.

Peta dunia dengan ukuran tersebut disajikan dalam dua versi. Versi pertama adalah 8 buah potong gambar yg harus disusun terlebih dahulu agar menjadi sebuah gambar utuh. Versi kedua (sepertinya) adalah gambar yang sudah utuh yang siap digunakan. Berhubung yang sudah jelas format gambarnya adalah yang versi pertama (tersedia dalam format JPEG dan PNG), saya coba mengunduh 8 buah gambar yg saya butuhkan.

Setelah gambar diunduh, tugas berikutnya adalah menggabungkan ke-delapan gambar tersebut menjadi satu gambar utuh. Setiap potongan gambar memiliki ukuran 21600×21600 piksel, alias sekitar 466 MP. Kalau 8 buah gambar tersebut digabung, maka ukuran akhir gambar adalah 86400×43200 piksel, alias sekitar 3.7 GP. Untuk urusan menggabungkan gambar seperti ini, saya mencoba menggunakan aplikasi montage dari ImageMagick.

Perintahnya sangat sederhana, yaitu seperti berikut ini.

$ montage {1,2,3,4,5,6,7,8}.jpg -tile 4x2 -geometry 21600 hasil.jpg

Daripada langsung menggabungkan 8 buah gambar tersebut sekaligus dalam sebuah perintah, saya tadi mencoba untuk menggabungkan setiap 2 gambar terlebih dahulu. Sehingga setelah tahap awal ini, saya memiliki 4 buah gambar dg ukuran 21600×43200 piksel. Setelah itu, saya coba gabungkan lagi 4 buah gambar tersebut menjadi satu gambar hasil yang saya harapkan.

Namun.. ternyata SISA KAPASITAS HARDDISK TIDAK CUKUP =)) Padahal sisa saat itu adalah sekitar 44GB (oya, saya make komputer di lab kampus). ImageMagick sudah cukup cerdas dg menggunakan harddisk sebagai media untuk meletakkan data sementara sehingga tidak seluruh pemrosesan dilakukan di RAM dari awal sampai akhir. Kalau tidak seperti ini, RAM 2GB yg ada mungkin sudah habis dan aplikasi tidak dapat bekerja banyak. Apa dikata ternyata harddisk yg tersisa jg tidak cukup T__T

Dengan demikian, upaya mendapatkan gambar 3.7 GP dg menggabungkan 8 buah gambar bisa dibilang gagal xD Langkah berikutnya adalah dg mencoba mengunduh gambar yg (sepertinya) sudah jadi. Ukuran berkasnya juga cukup (dan jauh) lebih besar, sampai 2.6GB.

Saya menghindari berkas yg satu ini berhubung ekstensi berkas yg dipakai tidak saya kenal. .bin.gz tidak menjelaskan sama sekali apa format berkas tersebut. Berkas readme yang ada sebenarnya sudah menyebut beberapa format, tapi tetap saja tidak ada yg saya kenal xD Daripada penasaran akhirnya saya coba unduh berkas tsb. Untungnya semua dilakukan di kampus, termasuk menggunakan koneksi internet kampus jadi saya gak perlu merelakan komputer saja tuk mengerjakan semua hal ini.

Setelah berkas tsb saya unduh dan ekstrak, saya coba gunakan file untuk mendeteksi format berkas tersebut. Namun.. file cuma bilang kalau berkas tsb adalah sebuah data T__T tetap tidak menjelaskan.. xD

Berhubung saya lg males nyobain aplikasi yg disebut di berkas readme tadi, maka saya hentikan dulu eksperimen menggunakan gambar 3.7 GP ini. Kayanya akan lbh menarik jika saya mikirin bagaimana cara lain untuk menyiapkan gambar bagi Kasuari dibanding nyari cara tuk mendapatkan satu buah gambar besar. Andai 8 gambar lbh kecil tadi bisa langsung digunakan, tentu saja akan lebih efisien.

Oh ya, dr tadi saya nyebut Kasuari, apa itu? Ya, itu nama burung di daerah irian sana. Tapi itu jg adalah nama proyek iseng2 saya terbaru =D Silakan cek langsung di http://github.com/fajran/kasuari/.

Kasuari adalah sebuah penampil gambar dg teknik “multiscale”. Gambar yg sangat besar bisa ditampilkan pada layar yg kecil dengan cara menampilkannya dalam beberapa level detil. Persis sama dengan Google Maps yg bisa digunakan untuk menampilkan peta dunia. Euh, keduanya emang aplikasi sejenis. Begitu pula dengan Seadragon dan Seadragon AJAX dari Microsoft Live Labs.

Apa yang berbeda dengan yg lain? Kalau dari fitur, tentu saja Kasuari masih kalah jauh. Namun yang jelas, Kasuari itu open source sehingga bisa dioprek dan dipakai sesuka hati. Bukan hosted service seperti Google Maps sehingga bisa dipasang di mana saja. Kasuari juga cuma menggunakan javascript, css, dan HTML Canvas untuk melakukan semua hal ini. Ada produk open source sejenis, yaitu OpenZoom, namun OpenZoom ini menggunakan Flash.

Tuk ngeliat seperti apa Kasuari itu, silakan buka http://labs.fajran.web.id/p/kasuari/bluemarble/. Peta dunia dari NASA BlueMarble dengan ukuran lebih kecil (yaitu sekitar 233 MP) ditampilkan dengan Kasuari.