EKSTRAKSI NILAI PIKSEL CITRA DAN KURVA PANTULAN OBJEK MENGGUNAKAN R PROGRAMMING

Kali ini kita akan mencoba mengekstraksi nilai dari data raster yang kadang – kadang kita butuhkan untuk klasifikasi citra atau membuat kurva pantulan objek di lapangan. Sebelumnya kita perlu memunculkan library terlebih dahulu, dimana dalam kasus ini kita hanya membutuhkan library(raster). Jadi munculkan saja library raster abaikan library yang lain pada code di bawah.

r-0601

Selanjutnya kita munculkan data citra melalui fungsi RasterBrick (brick())dimana lebih cepat dalam mengolah data seperti yang dijelakan pada tutorial sebelumnya. Kemudian kita visualisasikan melalui ggRGB() dimana kita harus menambahkan library Rstoolbox atau plotRGB(),  dimana dalam kurung kita isikan citra kita yaitu r, kemudian kita masukkan nama saluran untuk membebntuk komposit warna, jika kita ingin membuat komposit warna asli maka r (red) kita isikan  3, g(green) kita isikan 2, dan b(blue) kita isikan 1. Kita juga dapat mengaplikasikan penajaman citra misal linier, yaitu dengan menambahkan stretch = “lin”.

r-0602

Berikut adalah hasilnya komposit warna inframerah yang menonjolkan objek vegetasi, dimana objek vegetasi berwarna merah dan objek bangunan berwarna kehijauan, dan objek herba atau sawah berwarna hijau tapi gelap, karena sawah pada waktu itu masih tergenang air. Kita nanti akan mengextraks kurva pantulan dari masing – masing dari objek tersebut.

r-0603

Sebelum kita mengekstrak nilai piksel dari masing – masing saluran citra kita membutuhkan objek titik yang dapat berupa shapefile atau .rds. Kali ini kita akan menggunakan shapefile dimana kita hanya membutuhkan attribut kelas yang berisikan nama objek yang dalam kasus ini adalah herba, lahan terbangun, dan vegetasi. Unutk memunculkan data shapefile di R kita menggunakan fungsi shapefile() dan Untuk megetahui persebaran dari titik – titik sample kita gunakan fungsi plot()

r-0604

Berikut adalah titik – titik pesebaran sample yang akan diekstrak nilainya dan dibuat kurva pantulan.

r-0605

Kita menggunakan fungsi names(r) <- c(nama julat), karena nama file sebelumnya kurang bisa mencerminkan julat saluran panjang gelombang. Untuk mengekstrack nilainya kita menggunakan fungsi extract(r, sampl) dimana r adalah citra dan sampl adalah titik – titik shapefile. Gunakan fungsi head() untuk memunculkan nilainya.

r-0606

Berikut adalah hasilnya, nilai setiap titik sesuai dengan saluran citra.

r-0607

Kita akan membuat kurva pantulan citra melalui nilai yang telah kita sampel sebelumnya. Kita membutuhkan kurva pantulan karena kurva pantulan dapat menunjukkan karakteristik objek. Dari nilai semua yang telah kita ambil melalui sampel sebelumnya kita perlu merata – ratakannya untuk membuat kurva pantulan dengan menggunakan fungsi aggregate(df, list(sampl$kelas), mean) dan untuk memunculkan nilai kita membutuhkan fungsi head().

r-0608

Berikut adalah hasilnya, dimana kita melihat untuk kolom judul masih belum terlalu bagus jadi perlu mengubahnya agar lebih mudah dibaca.

r-0609

Kita menggunakan fungsi rownames()

r-0610

Berikut adalah hasilnya dan dapat kita lihat lebih mudah dibaca.

r-0611

Kita membuat warna dari masing – masing objek menggunakan fungsi mycolor() , kemudian kita butuh untuk mengubah dari data.frame menjadi matrix melalui fungsi as.matrix(), dan Selanjutnya sebelum mengeplot data pada tempat plot, kita membutuhkan tempat plot kosong melalui plot()

r-0613

Berikut adalah hasilnya dimana muncul tempat plot data kosong, dimana sumbu Y merupakan nilai dijital dan kurva x adalah saluran citra.

r-0614

Selanjutnya kita akan memunclkan kurva pantulan pada tempat plot, menggunakan code di bawah yang berisikan sampel data yang sebelumnya kita ambil (ms) dan mycolor sebelumnya yang telah kita buat.

r-0615

Berikut adalah hasilnya yang mana menunjukkan pantulan objek sesuai dengan julat panjang geombannya. Kita tidak tahu warna apa mewakili panjang gelombang apa karena tidak adanya legenda.

r-0616

Oleh sebab itu kita perlu menampilkan legenda agar lebih mudah dalam membaca kurva tersebut. Kita membutuhkan fungsi title() dan legend().

r-0617

Berikut adalah hasil representasi pantulan objek sesuai dengan julatnya, dimana kita ketahui bahwa kerva pantulan vegetasi memiliki perbedaan yang jauh antara saluran merah dan inframerah dekat. Citra yang digunakan dalam tutorial kali ini adalah nilai dijital belum dilakukan koreksi radiometri apapun, sehingga untuk saluran 1 (biru) dan 2 (hijau) masih memiliki pantulan yang lebih tinggi dari saluran merah.

r-0618

Berikut adalah pengenalan tentang kegunaan R untuk ekstraksi nilai piksel citra dan membuat kurva pantulan, jika terdapat kesalahan atau kekurangan semoga dapat ditambahkan dan dibenarkan, karena proses masih dalam proses belajar.

Sumber : Rspatial

*** SEMOGA BERMANFAAT ***

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s