Seismic Processing,

Interactive Muting pada Seismic Un*x

12:39:00 AM Leo Cahya D 0 Comments


Disclaimer: banyak istilah, arti, dan hal-hal lain yang saya rubah arti atau pengertiannya sehingga kadang tidak seperti arti sebenarnya. Tujuan saya melakukan itu untuk memudahkan pembaca dalam memahami isi dari post-post seperti ini. ”

Setahun terakhir saya sedang tertarik dengan yang namanya prosessing seismik karena ingin melihat kecocokan model yang dibuat pada SPECFEM-nya Komatitsch and Martin dengan hasil forward modellingnya. Well, minimnya pelatih di Laboraturium Paradigm dan kadang error juga software Echos-nya  memaksa saya beralih menggunakan seismic un*x dalam hal pengolahan. Selain open source, tutorialnya pun banyak di internet, untuk yang bahasa Indonesia dapat dilihat di ensiklopedi seismik milik Agus Abdullah, P.hd. (terima kasih untuk ilmu dan inspirasi dari blog beliau)

Muting merupakan salah satu tahap dalam pengolahan data seismik untuk menghilangkan noise gelombang langsung dengan cara merendahkan bahkan bisa dengan membuat nilainya menjadi nol pada matriks yang kita tunjuk sebagai gelombang langsung.  Pada seismic un*x perintahnya adalah sumute. Kekurangannya disini kita harus memasukkan satu persatu matriks yang akan kita mute. Tentu akan lebih mudah lagi jika kita melakukan muting dengan cara interaktif seperti pada software-software terkenal (contoh: Echos Paradigm, dll) bukan?

Pada seismic un*x sebenarnya sudah ada contoh pada demo untuk muting tapi hanya sekedar untuk contoh data suplane. Oleh karena itu saya buat bashscript interactive muting untuk data dengan shot banyak (baik untuk yang tipe split spread shot juga).

Langkah-langkahnya :
1. Taruh program ini pada file data berada. Edit parameter di dalam file mutepick sesuai dengan parameter data anda. Jalankan sh mutepick pada terminal. Lalu pick titik-titik garis mute-nya.




Sebelum muting

Setelah muting


























2. Setelah preview hasil pick mute anda untuk 1 shot ditampilkan dan hasilnya OK, sekarang run program octave/matlab mute_parring.m
3. Setelah file par dibuat menggunakan kode octave/matlab di atas, selanjutnya kita aplikasikan dengan bash script muteit berikut:
4. Setelah itu lanjutkan saja perintah setelah mute it berjalan

Setelah perintah dari program terakhir dijalankan maka data anda setiap shot sudah diberlakukan muting. Kira-kira begitu saja postingan saya. InsyaAllah untuk berikutnya saya akan menceritakan tentang interactive velocity picking menggunakan bashscript di seismic unix.

see ya,
L

0 comments:

C++,

Tutorial Pemrograman 2 : Algoritma, Alur Jalan Program, Aritmatika, pokoknya dasar..

11:58:00 PM Leo Cahya D 0 Comments


Disclaimer: banyak istilah, arti, dan hal-hal lain yang saya rubah arti atau pengertiannya sehingga kadang tidak seperti arti sebenarnya. Tujuan saya melakukan itu untuk memudahkan pembaca dalam memahami isi dari post-post seperti ini. ”

Bismillah..
Hello Digital World,

Oke, terakhir kita membahas tentang compiler editor dll. Sekarang kita akan memahami bagaimana alur komputer menjalankan perintah kita dari program. Tapi sebelumnya kita akan belajar dulu dasarnya menulis program di C++.

Misal kita akan membuat program tentang pertambahan dua bilangan yang sama dan hasil dari akar 22/7 yang kira-kira dalam C++ seperti ini :


Alright, don’t panic. Ini cuma program simpel yang intinya cuma 10 baris. Bisa kita lihat pada penulisan program C++ terdiri dari pertama header dan inti perintah yang kita tulis di dalam kurung kurawal setelah int main() .


Header adalah semacam kumpulan fungsi-fungsi. Biasanya untuk pemrograman sederhana menyelesaikan problem-problem perhitungan pada saat saya kuliah, saya hanya menggunakan iostream, math, dan conio (fungsi dari 3 header tersebut dapat dilihat pada gambar di atas).

Untuk sementara ini hiraukan dulu using namespace std, int main, return 0, getch() itu untuk apa. Yang penting sekarang, jika ingin menulis program, kita menulis di bagian inti perintah tersebut. Seperti


Oke kembali ke program yang paling atas tadi, intinya adalah :



Jika perintah di atas di-compile, lalu program dijalankan maka hasil pada terminal kurang lebih seperti ini jika kita masukkan nilai a = 9



Kenapa bisa begitu? Oke dengan menganggap kita punya suatu tempat bernama memory, kita akan melihat perubahan pada memory dan terminal saat program berjalan. Alur jalannya perintah di atas kurang lebih berikut :



Line 8 : deklarasi variable a


Line 9: deklarasi veriable b


Line 10 : deklarasi variable akarpi



Oke, dalam suatu program perlu yang namanya deklarasi variable. Caranya menulis :

tipedata(spasi)namavariabel

Contoh di atas int a dan int b,  berarti kita disana membuat variabel bernama a dan b yang dimana hanya bisa diisikan angka bulat. Lalu float akarpi, yang artinya kita membuat variable bernama akarpi yang bisa diisi dengan angka desimal. Jadi inget saja, int buat angkat bulet, float buat koma-komaan :p Oke lanjuuuuut…

Line 11 : "penghitung a + a, dan akar pi" akan ditampilkan pada terminal pada baris pertama dengan perintah cout<<, perintah endl digunakan seperti menekan enter pada saat kita mengetik untuk pindah baris ke baris terminal ke 2.


Line 12 : "masukkan nilai a = " akan ditampilkan pada terminal pada baris kedua dengan perintah cout<<.


Line 13 : cin>>a; angka apapun yang diketik pada saat perintah baris ini dijalankan lalu ditekan enter, maka angka tersebut menjadi nilai variabel a pada memori. Misal kita masukkan 9.




Line 14 : perintah ini berarti nilai variabel a ditambah nilai variabel a dimasukkan ke variabel b.


Line 15 : perintah ini digunakan untuk menampilkan hasil perhitungan.



Intermezzzooo… cout bisa dilakukan berulang-ulang dengan menambahkan “<<”. Seperti kita lihat pada perintah "cout<<"hasil "<<a<<"+"<<a<<" adalah "<<b<<endl;". Untuk menampilkan suatu text menggunakan double aphostrhope (“”) dan untuk menampilkan nilai suatu variabel tanpa menggunakan itu. Misal jika kita perintahkan cout<<a; maka yang keluar pada terminal adalah nilai dari variabel a, jika kita tambah double aphostrhope, cout<<”a”, maka yang keluar pada terminal adalah huruf a. Oke lanjut…

Line 16 : perintah pada line tersebut untuk menghitung akar 22/7 alias pi. Nilai hasil perhitungan akan masuk pada memory di variabel akarpi.




Intermezzzooo… Anda akan melihat fungsi sqrt(input), sqrt merupakan salah satu fungsi dari header math.h yang digunakan  untuk mencari akar dari suatu variabel atau perhitungan. Selain sqrt, banyak fungsi yang terdapat pada header math.h seperti mencari sin, logaritma, dan lain-lain. Ok lanjut.

Line 17 : menampilkan kalimat “akar dari 22/7 adalah ” lalu diikuti nilai dari variabel akarpi.




Oke itu kira-kira alur dari jalannya program tersebut. Saya harap anda menjadi lebih paham bagaimana alur perintah yang kita tulis pada program itu dijalankan oleh komputer. Untuk selanjutnya kita akan membahas perulangan dan bagaimana komputer menjalankan alur perintahnya.

See ya,

0 comments:

game

Indie Gaming(?)

11:17:00 PM Leo Cahya D 0 Comments


Hello Digital World,

Hobi saya nge-game, tapi bukan gamer suka yang main game AAA (istilah game yang dirilis oleh suatu company dengan budget tinggi, ex: EA, Rockstar, etc). Bukannya gak suka gamenya tapi leptop ane gak kuat gan hehe.

So, untuk mengurangi dosa pembajakan dan mencari game yang kuat untuk leptop saya cuma main game-game indie. Game indie dibuat oleh developer-developer yang biasanya cuma mau eksperimen atau membuat game dari suatu film atau novel yang dia fans-kan atau memang membuat game semau mereka tanpa ada batasan kalau misalnya mereka bekerja di suatu company yang gede. Mostly game indie itu free, tapi ada juga yg berbayar, dan ada juga yang emang berbayar tapi rela memberikan link bajakannya supaya pembeli tidak merasa tertipu jadi bisa nyoba dulu, kalo ngefans ya beli :) (kayak game Hotline Miami, game grafik 2D retro yang ternyata malah laris keras).

Berikut ada beberapa game indie free yang saya suka, dan ada linknya :)



Game pesawat-pesawatan abstrak buatan si Cactus alias pembuat Hotline Miami. Ceritanya tentang kejadian dimana ternyata mata manusia itu alien yang menyerang bumi. Terus ada dua manusia yang punya indera keenam (jadi gak butuh mata) yang nyupir pesawat dan ngelawan alien-alien tersebut.



Kayaknya saya tidak perlu menjelaskan ini game apa, semuanya sudah pada tahu. Ini game horror fenomenal bergaya Amnesia: The Dark Descent yang dimana kita disuruh mencari 8 kertas pada malam hari sebelum senter kita mati disaat lagi diuber sama hantu jangkung juga.



Gameplaynya seperti Slender, game ini ceritanya kita seorang terpidana yang dihukum daripada cuma mati dipenjara dijadikan subjek eksperimen pada suatu objek supernatural yang ditemukan oleh pemerintah Amerika. Cukup ngeri juga. Dulu saya sering main ini waktu eksperimen suhu selama 2 hari di deket Maguwo.



Saya fans digimon dari kecil ya wajar aja kalau saya suka ini. Ini game buatan fans digimon yang mau mengkonversi versi tamagotchi / digivicenya ke versi PC. Layarnya kecil sih dan cuma sekedar merawat digimon sampai evolve ke level tinggi dan battle, tapi lumayan untuk disambi waktu lagi ngerjain tugas :)

Itu dulu deh, kalau saya nemu yang lebih bagus nanti saya update lagi.

See ya,
L

--

Oh iya, baru-baru ini saya denger ada berita penembakan di sekolah itu terus yang disalahin video  game ya? Menurut saya sih kalau game terus harus di ban karena mengubah seseorang jadi pembunuh itu gak logis. Orang saya main Sim City gak bikin saya jadi presiden dan main Harvest Moon gak bikin saya tukang kebon handal hehe :)

0 comments:

Event

IESO 2013

8:39:00 PM Leo Cahya D 0 Comments


Hello Digital World,

Selama tanggal 13-16 Maret kemarin Saya, Miss Portugal, dan Invisibleman menemani Pak Dosen Geolistrik, Pak Dosen Geografi, dan Pak Dosen Instrumentasi  mengasisteni dan sekaligus cari makan gratis  anak-anak sma terpilih untuk menyelamatkan dunia digital dari digimon jahat seleksi  International Earth Science Olympiad di India besok. Lokasi seleksinya di University Hotel deket Bandara Adisutjipto. Di situ kita mendampingi mereka mengerjakan tugas-tugas seperti Beachballnya seismologi, Pseudo apparent resistivity dipole-dipole, gravitasi, magnetik, dan seismik refraksi.




Overall selama disana cukup nyaman, anak-anaknya pinter banget, kadang malah pertanyaannya malah sampai membuat jadi asistennya terlihat bingung, untung asisten pun jago ngeles membuat bingung mereka kembali jadi mereka berhenti bertanya lagi (jangan dicontoh). Yah intinya mereka sudah mengerti dasar-dasar dari hal-hal yang dosen-dosen geofisika ajarkan.
Saya males mau menceritakan lengkapnya, intinya gitu aja deh hehe.

See ya,
L

--
Ps. Ini cuplikan suatu dialog saat cofeebreak di sana..

Pak Dosen Geolistrik      : “Wah kamu kok flu, sering ngelembur ini pengantin muda”
Pak Dosen Geografi        : “Hahaha iya pak”
Saya                               : “Hahaha.. Pak, saya denger pengantin muda itu juga penyakit maag-nya
                            sering kambuh lo kalau malam”
Pak Dosen Geografi        : “Oh, kalau aku untung gak ada penyakit maag”
Saya                               : “Masak pak? Bukannya biasanya tengah malem gitu bilang ‘Maaaag..
   Mamaaaag..’”
Pak Dosen Geolistrik      : “Hahaha anarkis kamu!”

0 comments:

C++,

Tutorial Pemrograman 1 : Metode Komputasi? Programming? Coding?

8:34:00 PM Leo Cahya D 0 Comments


Disclaimer: banyak istilah, arti, dan hal-hal lain yang saya rubah arti atau pengertiannya sehingga kadang tidak seperti arti sebenarnya. Tujuan saya melakukan itu untuk memudahkan pembaca dalam memahami isi dari post-post seperti ini. ”

Hello Digital World,
Treteteteeeeet! hore posting pertama.. Bismillah..

Oke, jadi sekitar dua tahun lalu saya sempat terkaget-kaget sampai sembelit saya tersembuhkan dengan adanya suatu mata kuliah bernama metode komputasi (rodo alay sih, janjane biasa wae). Pas itu  asistennya (yang sekarang profesinya sudah berubah menjadi seismologist kuota killer movie downloader) mengajarkan metode komputasi dengan menggunakan bahasa C++. Saya sempet bingung juga kenapa perlu belajar itu, kenapa perlu belajar membuat program, karena yang saya tahu waktu itu geofisika = ngeklik-ngeklik software entuk minyak nek ora emas dll.

“Kalau anda membuat peta konturnya seperti itu, mending mulai besok kita semua kalau membuat data kontur-nya manual saja” – Dosen Fisika Gunung Api, Mekanika, Fisika Dasar.

Kalimat di atas diucapkan dosen saya saat salah satu mahasiswa menanyakan kenapa hasil dari kontur ada value yang berbentuk seperti anomali. Lalu sang presenter pun menjawab itu bukan tapi efek gridding kriging softwarenya entah error atau bagaimana, padahal sebenarnya gridding menggunakan kriging memerlukan data yang terdistribusi normal. Oke disini lah kenapa menurut saya kenapa kita diberikan matakuliah metode komputasi, MAG, dan MAG 2 dengan pelajaran programming, minimal kita bisa mengerti cara kerja software, bagaimana kita tahu kesalahan software jika terjadi malfunction, dan memahami penggunaan software-software geofisika yang beberapa ada yang tidak user-friendly ataupun ada GUI-nya. Maksimal ya syukur-syukur bisa membuat software, simulasi numerik atau program untuk menunjang kuliah atau kerja kita besok.


gambar (kiri) software buatan mas Ali. (kanan) simulasi seismik & hasil data sintetiknya


Well, kalau begitu kita langsung ke pokok bahasan.
A: Apa itu metode komputasi?
B: Ya, menyelesaikan problem menggunakan komputer. Misal kita mau invers suatu matriks.
A: Kenapa menggunakan komputer? Aku pinter Aljabar Linier kok, hitung manual ajah.
B: Kemaki tenan kowe cah.. Ya sudah tolong inverse matriks 5000x5000..
A: 
Aint nobody got time for that!

So, Intinya metode komputasi itu sebenarnya memperbudak komputer untuk menyelesaikan problem kita (yang males kita kerjakan secara manual, hehe :p). Tapi sayangnya memerintah komputer itu tidak segampang memerintah pokemon. Saat kita membuat program atau mau ngerun list program dari suatu software kita  harus membuat perintah dengan aturan yang berbeda-beda satu dengan yang lain.

Kalau Matlab itu pokemon, tentu lebih parah dari Magikarp


Selain membuat perintah, beberapa hal seperti programming menggunakan bahasa C++ atau Fortran dll menggunakan compiler untuk mengubah perintah itu ke dalam bentuk programnya yang dapat dijalankan. Anggap saja begini, untuk bahasa pemrograman, misal C++ dengan software DevCPP (atau editor+compiler lain),  kita pertama mengetik perintah di editor, lalu saat kita pencet F9 atau “compile” itu kita menggunakan compiler menerjemahkannya ke bahasanya si komputer sehingga hasilnya sebuah program yang biasanya berekstensi “.exe”.



A : OO… Katanya tiap bahasa pemrograman tadi aturannya beda-beda, jadi perlu belajar satu-satu dari awal dong kalau perlu belajar? Susyah cetar membahana :((
B: Well, memang aturannya beda, tapi yang terpenting itu bagaimana kamu paham alur dari cara program itu dijalankan :) kalau paham, InsyaAllah cepat kok untuk mempelajari bahasa lainnya :) Yah seperti kita main Call Of Duty di X360 , PS3, Wii ataupun PC kalau tau cara mainnya dan suka, tetep aja kan kita enjoy migrasinya :)
A: Supaya paham bagaimana ya?
B: Di post selanjutnya akan saya jelaskan, dengan contoh menggunakan C++, bagaimana cara memahami alur dari kerja komputer saat menjalankan program kita. Jadi siapkan editor+compiler seperti Devcpp atau codeblock ya!

See you,
L

0 comments: