Friday, April 17, 2015

Contoh Kasus Penggunaan Hadoop dan HBase untuk Memproses Real World Data: Visualisasi dan Klasifikasi Pergerakan Kapal-kapal Kargo di Alur Laut Pelabuhan Long Beach dan Los Angeles

Penjelasan tentang apa itu HBase telah dibahas pada artikel HBase: Hyper NoSQL Database. Untuk pembahasan yang lebih lugas dan komprehensif disertai ilustrasi yang lebih memudahkan pemahaman, dapat dibaca di buku "Teknologi Big Data: Sistem Canggih dibalikGoogle, Yahoo!, Facebook, IBM". Tidak hanya tentang HBase, buku ini tentu juga membahas teknologi Big Data lainnya seperti Google File System, Google MapReduce, Google Bigtable serta Hadoop yang terdiri atas Hadoop Distributed File System (HDFS) dan Hadoop MapReduce. Pembahasan diawali dengan penjelasan tentang definisi Big Data yang disertai dengan beberapa contoh aplikasi Big Data dalam dunia bisnis modern, lalu diakhiri dengan tutorial untuk menjalankan Hadoop dan HBase secara standalone maupun sebagai distributed system.
Bagi mereka yang baru mengenal Hadoop maupun HBase pasti menginginkan paling tidak satu contoh kasus penggunaan Hadoop maupun HBase dalam memproses data sungguhan dari dunia nyata. Oleh karena itu, kali ini akan dibahas salah satu contoh penggunaan Apache HBase dan Hadoop untuk memproses real world data atau data sungguhan dari dunia nyata, bukan data simulasi, bukan data yang dipilah-pilah untuk keperluan simulasi juga bukan data untuk keperluan demo suatu produk.
Data tersebut adalah sekumpulan data digital yang didapatkan dengan merekam secara terus menerus informasi yang dipancarkan oleh transmitter AIS dari kapal-kapal yang melintasi perairan pantai barat Amerika Utara, tepatnya adalah area yang termasuk dalam zone 11 dari UTM (Universal Transverse Mercator). Gambar 1 menunjukkan pembagian zone pada UTM. Batas zone 11 adalah dari 30 derajat Lintang Utara s.d. 40 derajat Lintang Utara, dari 114 derajat Bujur Barat s.d. 120 derajat Bujur Barat. Kumpulan data AIS ini dapat di-download dari www.MarineCadastre.gov dengan terlebih dahulu mengajukan permohonan registrasi untuk mendapatkan username dan password.



Gambar 1. Universal Transverse Mercator zones ( www.marinecadastre.gov )
Sebelum dilanjutkan, sebelumnya akan dijelaskan dahulu tentang apa itu AIS ( Automatic Identification System ). AIS adalah sistem yang terpasang di kapal laut yang memungkin kapal tersebut mengirimkan data secara periodik ke kapal lainnya maupun ke instalasi di darat dengan menggunakan media gelombang elektromagnet VHF ( Very High Frequency ). Kapal-kapal maupun instalasi darat yang menerima pancaran data dari AIS suatu kapal, tentunya akan dapat mengetahui identitas maupun kondisi kapal sumber pancaran tersebut ( silakan simak gambar 2 ). Data yang dipancarkan oleh AIS memuat 3 jenis informasi, yaitu:

  1. Informasi Statis ( Static Information ), terdiri atas: (1) Nama Panggilan Kapal / Call Sign; (2) Type Code; (3) Nomor IMO ( International Maritime Organisation ); (4) Nomor MMSI ( Maritime Mobile Service Identity ); dan (5) Dimensi Kapal.
  2. Informasi Dinamis ( Dynamic Information ), terdiri atas: (1) Posisi Kapal (Lintang, Bujur); (2) SOG ( Speed over Ground ); (3) COG ( Course over Ground ); (4) Heading; (5) Current Status; dan (6) ROT ( Rate of Turn ).
  3. Informasi terkait Pelayaran ( Voyage-specific Information ), terdiri atas: (1) Tujuan Pelayaran ( Destination ); (2) ETA ( Estimated Time of Arrival ); dan (3) Draft.


Gambar 2. Ilustrasi AIS (Automatic Identification System) pada Kapal Laut
Kumpulan data AIS yang di-download dari www.MarineCadastre.gov terdiri atas 3 kelompok data yaitu: (1) Data Broadcast (broadcast data), yang terdiri atas: Posisi Kapal (longitude, latitude), SOG, COG, Heading, ROT, baseDateTime (waktu pancaran AIS direkam), Vessel Status, Voyage ID, MMSI, Receiver Type, Receiver ID; (2) Data Kapal (vessel data), yang terdiri atas: MMSI, IMO, Call Sign, Name, Type Code, Length, Width; (3) Data Pelayaran (voyage data), yang terdiri atas: Voyage ID, Destination, Cargo, Draft, ETA, Start Time, End Time, MMSI.
Kali ini data AIS yang di-download dari www.MarineCadastre.Gov akan digunakan untuk: (1) Memvisualisasikan pergerakan kapal-kapal kargo yang berlayar di perairan dan alur laut sekitar pelabuhan Los Angeles dan Long Beach, California. Gambar 3 menunjukkan area perairan di sekitar pelabuhan Los Angeles dan Long Beach; (2) Mengklasifikasikan kapal-kapal kargo tersebut berdasarkan attribut yang melekat pada tiap kapal. Untuk mencapai tujuan ini, ada 6 parameter yang digunakan, yakni:
  1. Posisi (longitude, latitude) kapal pada suatu waktu tertentu. Pada kumpulan data AIS yang di-download dari www.MarineCadastre.Gov, pancaran data AIS direkam dengan tenggang waktu 1 menit ( pancaran data AIS disimpan 1 menit sekali ). Ini berarti, posisi kapal pemancar juga dicatat tiap 1 menit sekali.
  2. Type Code, adalah kode yang menunjukkan tipe kapal. Misalnya, type code 70 s.d. 77 adalah kode untuk kapal kargo.
  3. Draft, menunjukkan kedalaman badan kapal dihitung dari permukaan air.
  4. Tujuan Pelayaran ( Destination ), adalah nama pelabuhan yang dituju dalam suatu pelayaran.
  5. Status ( Current Status ), menunjukkan status suatu kapal. Misalnya: status At Anchor berarti kapalnya sedang berlabuh jangkar; status Making Way berarti kapal sedang bergerak / berlayar di air.
  6. Kebangsaan ( Nationality ), menunjukkan asal kebangsaan dari suatu kapal. Informasi kebangsaan dapat diketahui dari nomor MMSI yang dipancarkan oleh AIS kapal yang bersangkutan. Pada nomor MMSI tersebut terdapat bagian yang menunjukkan kebangsaan kapal.


Gambar 3. Area Perairan di sekitar Pelabuhan Los Angeles dan Long Beach
Keenam parameter diatas juga dapat dikelompokkan dalam 2 jenis informasi: (1) Informasi spatiotemporal, yaitu: Posisi Kapal (longitude, latitude) yang terus berubah dari waktu ke waktu sesuai pergerakan kapal; (2) Informasi attribut kapal, yaitu: Type Code, Draft, Destination, Status, dan Kebangsaan. Informasi spatiotemporal akan digunakan untuk memvisualisasikan pergerakan kapal dengan menyusun titik-titik koordinat posisi kapal menjadi suatu Geometry Object tipe LineString. Dalam suatu LineString, titik-titik koordinat posisi kapal disusun berurutan berdasarkan waktu. Jika LineString ini dibaca dengan aplikasi GIS, ia akan menghasilkan garis putus-putus yang menggambarkan track kapal. Titik-titik yang menyusun garis putus-putus tersebut menunjukkan posisi kapal yang direkam dengan interval 1 menit. Kemudian, informasi atribut kapal akan digunakan untuk mengklasifikasikan track-track kapal yang dihasilkan dari visualisasi informasi spatiotemporal.
Tahap pertama yang akan dilakukan dalam rangka visualisasi dan klasifikasi pergerakan kapal dengan menggunakan HBase adalah dengan membuat tabel HTable untuk menyimpan kumpulan data AIS yang telah disiapkan. Dalam hal ini, kita harus menentukan row key, column key, dan value dari HTable tersebut. Kita sebut saja HTable ini dengan nama BroadcastTable, row key = VesselTypeID.Draft.Status.MMSI, column key = posisi kapal(longitude, latitude) yang telah di-convert menjadi geohash, dan value = 3 jenis informasi yang dipancarkan AIS (dalam hal ini adalah gabungan dari data broadcast, data kapal, dan data pelayaran yang terdapat dalam kumpulan data AIS yang di-download dari www.MarineCadastre.Gov). Setelah itu, kita upload kumpulan data AIS yang direkam sepanjang bulan Juli 2009 saja ke BroadcastTable di server HBase.
Selanjutnya, dengan menggunakan data AIS yang sudah tersimpan di HBase dalam tabel bernama BroadcastTable, kita akan menyusun LineString yang terdiri atas titik-titik koordinat posisi suatu kapal (longitude, latitude) dalam suatu pelayaran keluar / masuk pelabuhan Los Angeles maupun pelabuhan Long Beach. Titik-titik koordinat posisi kapal ini disusun berurutan berdasarkan waktu perekaman/pencatatan dengan interval satu menit. Kemudian pada LineString ini akan kita sertakan informasi tentang atribut kapal yang bersangkutan. LineString yang dinyatakan dalam format WKT (Well Known Text) kita gabungkan dengan data atribut kapal dalam format yang dapat dibaca oleh software GIS. Dalam hal ini kita akan menggabungkannya dengan format vertical bar separated value (VBSV) seperti berikut:
LINESTRING( pos0.Longitude pos0.Latitude, pos1.Longitude pos1.Latitude, pos2.Longitude pos2.Latitude, ...,posN.Longitude posN.Latitude )|MMSI|IMO Number|Call Sign|Name|Type Code|Length|Width

keterangan: pos0, pos1, pos2, ..., posN adalah koordinat posisi kapal yang disusun berurutan berdasarkan waktu perekaman dengan interval satu menit.
Kemudian, LineString yang sudah disertai data atribut kapal ini kita simpan ke dalam bentuk file teks sehingga dihasilkan sebuah file teks yang berisi data dalam format Vertical Bar Separated Value (VBSV) yang memuat data Geometry Object tipe LineString dalam format WKT dan data teks atribut kapal. Selanjutnya kita buka data VBSV ini dengan menggunakan software OpenJUMP Plus ( sebuah software GIS open source ) yang akan menampilkan tiap LineString dalam bentuk garis putus-putus yang merupakan visualisasi dari track pergerakan kapal yang keluar / masuk pelabuhan Los Angeles maupun pelabuhan Long Beach selama bulan Juli 2009. Garis putus-putus yang menggambarkan track pergerakan kapal ini juga telah disertai dengan data-data atribut kapal sehingga kita dapat mengklasifikan track-track ini berdasarkan data-data atribut tersebut. Hasil visualisasi dan klasifiksinya dapat disimak pada gambar 4, 5, 6, 7 dan 8 sebagai berikut:
  1. Gambar 4 Visualisasi track-track pergerakan kapal tanpa diklasifikasikan. Dalam hal ini kita tidak dapat membedakan kapal apa bergerak kemana.
  2. Gambar 5 Visualisasi pergerakan kapal yang diklasifikasikan berdasarkan type code. Dalam hal ini, garis-garis warna orange menunjukkan kapal kargo dengan type code 71 sedangkan garis-garis warna kuning adalah track-track kapal kargo dengan type code 79.
  3. Gambar 6 Visualisasi pergerakan kapal yang diklasifikasikan berdasarkan draft kapal. Garis-garis warna orange adalah track-track kapal dengan draft kurang dari 5 meter, sedangkan garis-garis kuning menunjukkan track-track pergerakan kapal dengan draft 5 meter keatas.
  4. Gambar 7 Visualisasi pergerakan kapal yang diklasifikasikan berdasarkan pelabuhan tujuan pelayaran ( destination ). Garis-garis ungu menggambarkan pergerakan kapal-kapal kargo yang berlayar dengan tujuan pelabuhan Los Angeles, sedangkan garis-garis kuning adalah track-track kapal kargo dengan tujuan pelabuhan Long Beach.
  5. Gambar 8 Visualisasi pergerakan kapal yang diklasifikasikan berdasarkan kebangsaan ( nationality ). Garis-garis ungu menggambakan pegerakan kapal-kapal kargo berkebangsaan Jepang. Dari sini kita dapat mengetahui bahwa kapal-kapal kargo Jepang pasti berlabuh di pelabuhan Long Beach dan tidak pernah berlabuh di pelabuhan Los Angeles. Garis-garis kuning adalah track-track pelayaran kapal-kapal kargo berkebangsaan Denmark. Kita dapat menyimak bahwa kapal-kapal kargo Denmark hampir semuanya berlabuh di pelabuhan Los Angeles, hanya ada sejumlah kecil yang berlabuh di pelabuhan Long Beach.


Gambar 4. Visualisasi track-track pergerakan kapal tanpa diklasifikasikan


Gambar 5. Visualisasi pergerakan kapal yang diklasifikasikan berdasarkan type code (garis-garis orange: type code 71, garis-garis kuning: type code 79)


Gambar 6. Visualisasi pergerakan kapal yang diklasifikasikan berdasarkan draft kapal (garis-garis orange: draft < 5 m, garis-garis kuning: draft >= 5 m)


Gambar 7. Visualisasi pergerakan kapal yang diklasifikasikan berdasarkan pelabuhan tujuan pelayaran (garis-garis ungu: kapal dengan tujuan Los Angeles, garis-garis kuning: tujuan Long Beach)


Gambar 8. Visualisasi pergerakan kapal yang diklasifikasikan berdasarkan kebangsaan (garis-garis ungu: kapal kargo Jepang, garis-garis kuning: kapal kargo Denmark)

Demikian contoh kasus penggunaan HBase untuk memproses data dari dunia nyata ( real world data ), bukan data simulasi ataupun data yang dipilah-pilah untuk keperluan simulasi dan juga bukan data yang ditujukan untuk demo suatu produk perangkat lunak.
Sebenarnya, dalam percobaan ini saya menggunakan dua cara, yaitu: (1) Visualisasi dan klasifikasi dengan menggunakan HBase; dan (2) visualisasi dan klasifikasi dengan memakai tool AIS TrackBuilder milik MarineCadastre.Gov yang dijalankan menggunakan software ESRI ArcGIS. Dalam percobaan ini saya menemukan bahwa dengan menggunakan HBase yang diinstal pada cluster Hadoop yang terdiri atas 11 komputer, proses visualisasi dan klasifikasi dapat dilakukan dengan kecepatan sekitar 18 kali lebih cepat daripada menggunakan software ESRI ArcGIS yang dilengkapi tool AIS TrackBuilder.

2 comments:

Falianto Muhammad said...

Mas Wijaya, bisa nggk kasih link yang spesifik untuk download data AIS seperti yang ada pada gambar. Pemula agak bingung nih
Terima Kasih

Vijjam Wjaya said...

Seperti yg saya tulis di artikel, data AIS bisa diunduh dari MarineCadastre.gov dgn mengajukan permohonan registrasi ( via email) terlebih dahulu.

Atau, silakan PM saya via email wijaya1414{at mark}gmail[dot]com