Tuesday, 9 October 2012

Mengajar ArcGIS lagi

Hari ni saya mengendalikan kursus ArcGIS Desktop 10 lagi... kali ini participant agak ramai, lebih kurang 20 org.. daripada TNB dan juga Uniten. Sebahagian daripada mereka telahpun biasa menggunakan ArcGIS Desktop versi 9.x... jadi dalam kursus ni saya lebih menekankan perbezaan dan ciri-ciri baru di dalam versi 10 berbanding dengan versi 9.


Nampaknya mereka teruja dengan ciri-ciri dalam versi 10 ni. Selamat belajar...


Kasi effect 'fish eye' ala2 wide lense skit..



Kusyuk buat exercise


Uishh seriusnyer..


Nyorok2 tu buka fb ler tu...

Friday, 14 September 2012

Attribute Query vs Spatial Query


Kali ni saya nak tunjukkan salah satu fungsi asas di dalam GIS iaitu Query atau fungsi Carian. Kalau anda belajar definasi asas GIS, tentu anda tahu kan fungsi-fungsi asas GIS adalah :-



Proses Query sebenarnya adalah proses yang anda akan lakukan apabila anda ingin mencari sesuatu maklumat di dalam mana-mana sistem pangkalan data, tidak semestinya di dalam aplikasi GIS. Contohnya katalah saya menggunakan RDBMS SQL Server, saya boleh menaip arahan SELECT seperti di bawah untuk menyenaraikan atribut yang terdapat di dalam table LOT.

Contoh query menggunakan SELECT statement di dalam MS SQL Server



So, nampaknya kalau macam contoh kat atas ni, mungkin ada yang tertanya, kalau nak buat query, tak payah guna GIS pun boleh buat. Tapi apa kelebihan kalau proses query ni di buat dalam GIS? Haaa.. kalau macam contoh di atas tu, memanglah kita boleh buat query dan dapatkan hasil, tapi dia tak dapat tunjukkan di mana lokasi terdapatnya maklumat tersebut. Itulah salah satu kelebihan dalam GIS, selain kita boleh buat query untuk listkan maklumat, GIS juga boleh menunjukkan dimanakah lokasi hasil query tersebut. Dengan itu, ia boleh membantu kita di dalam membuat keputusan, melihat pola taburan dan hubung kaitan dengan maklumat-maklumat lain di atas peta.

OK stop cerita intro pasal query. Sekarang saya akan fokuskan pada dua jenis query dalam GIS iaitu :-
- Attribute Query (yang ni tak pakai GIS pun boleh buat)
- Spatial Query (haaa yang ni special... software GIS je boleh buat)

Cuba lihat dulu sample data di bawah ni :-




Data tu menunjukkan taburan sungai dan point-point kampung di dalam Lembangan Sungai Langat. Secara ringkas, atribut yang terdapat di dalam kedua-dua layer tu adalah :-
i) Sungai : nama-nama sungai
ii) Kampung : nama-nama kampung

Daripada maklumat yang diberikan tu, bermakna saya boleh mencari dimanakah nama sungai tertentu yang saya kehendaki untuk layer sungai. Untuk layer kampung pula, saya boleh cari nama-nama kampung yang saya nak. OK katakan saya nak buat query senario berikut :-

"Tunjukkan pada saya nama-nama kampung yang di dalam lingkungan 1km dari Sungai Langat"

Hmmm, macamana nak buat tu? Sungai Langat mungkin saya boleh query sebab dalam layer sungai ada atribut nama-nama sungai. Nama kampung pula saya boleh cari kalau saya tahu apa nama kampung yang saya nak. Tapi dalam kes ni, saya tak tahu pun jarak setiap kampung dari sungai kerana dalam layer kampung saya, hanya ada atribut nama-nama kampung je, tak ada pun maklumat jarak.




Haa, kat sinilah powernya analisis Spatial Query dalam GIS. OK sekarang saya akan tunjukkan step macamana nak buat query dari senario tadi. Di sini saya nak bagi tip, untuk memudahkan kerja,  kita kena fahamkan betul-betul dulu objektif senario tadi. Cari dulu keyword dalam senario analisis tu. Macam dalam contoh tadi : "Tunjukkan pada saya nama-nama kampung yang di dalam lingkungan 1km dari Sungai Langat". Keywordnya adalah :-
i) Nama-nama kampung
ii) Jarak lingkungan 1KM
iii) Jarak tu hanya dari Sungai Langat

Mula-mula kita kena cari dulu kat mana Sungai Langat dari dalam layer sungai tu. Cara mudah nak buat ni, gunakan saja Attribute Query sebab dalam layer sungai dah memang ada senarai nama-nama sungai.

Attribute Query
Untuk step nak buat Attribute Query, rujuk pada gambar di bawah ni.



Penerangan gambar di atas :
1) Klik pada menu Selection > Select by Attributes dalam ArcMap.
2) Pilih layer sungai
3) Klik field mana dalam layer sungai tu yang menyimpan maklumat nama-nama sungai
4) Double-clik butang Get Unique Value untuk mendapatkan senarai nama-nama sungai
5) Apabila nama sungai dah dipaparkan, double-click nama Sungai Langat.
6) Klik OK.

Hasil query yang ditunjukkan pada data saya adalah seperti di bawah. Garisan warna biru cerah tu menunjukkan Sungai Langat.

Hasil query : Sg Langat



Selesai satu problem. Sekarang macamana pula nak cari kampung dalam lingkungan 1KM dari Sungai Langat tadi. Yang ni kita tak boleh guna Attribue Query sebab maklumat jarak 1KM tu takda dalam table kampung. Penyelesaiannya gunakan kaedah Spatial Query.

Spatial Query
Untuk step nak buat Spatial Query, rujuk pada gambar di bawah ni.



Penerangan gambar di atas :
1) Klik pada menu Selection > Select by Location dalam ArcMap.
2) Pilih layer Kampung dalam ruangan Target Layer.
3) Pilih layer Sungai dalam ruangan Source Layer.
4) Pastikan anda klik check-box Use selected features. Dengan cara ni analisis akan fokus pada selected sungai sahaja (dalam kes ni, Sungai Langat)
5) Pilih Target layer(s) features are within the Source layer feature. Ini merujuk pada analisis jarak lingkungan. Ada banyak lagi senarai kalau anda klik dropdown box kat ruangan Spatial selection method tu.
6) Taipkan jarak dan unit. (1 kilometer)
7) Klik butang OK.

Tadaaa... hasilnya seperti di bawah. Nampak tak dot-dot biru cerah sepanjang Sungai Langat tu? Itulah kampung-kampung yang terlibat.

Hasil query: Taburan kampung 1KM dari Sg Langat


Kalau saya nak lihat senarai nama-nama kampung yang terlibat, saya buka saja table untuk layer kampung tu dan lihat pada ruangan Selected.

Hasil query : Senarai kampung 1KM dari Sg Langat


OK. Harap anda faham sekarang bila kes-kes yang sesuai nak gunakan Attribute Query dan bila masa sesuai nak guna Spatial Query. Selamat mencuba.


Monday, 27 August 2012

Georeferencing


Baru-baru ini saya diminta untuk membangunkan data geospatial kawasan-kawasan Projek Kajian Impak Alam Sekitar (EIA) yang telah diluluskan oleh Jabatan Alam Sekitar. Sumber data yang diberikan kepada saya adalah laporan-laporan  kajian EIA yang telah disediakan oleh consultant. Daripada dalam laporan tebal-tebal tu, saya dikehendaki mencari peta-peta yang sesuai yang mewakili kawasan projek, seterusnya peta tu saya perlu scan dan laksanakan proses screen digitizing untuk membina data polygon sempadan projek. 

Contoh laporan-laporam EIA yang perlu di scan


Contoh-contoh peta dalam laporan yang perlu di georeference


Dari segi accuracy, keperluan dari client saya tidaklah memerlukan high accuracy, almaklum sumber data pun dari peta laporan, terdapat pula beberapa peta yang disediakan oleh consultant tidak berskala, tidak mempunyai sumber koordinat. Cukup sekadar ingin mengetahui feature2 yang terdapat pada surrounding area project dan anggaran keluasan kawasan projek tersebut. OK, itu cuma latar belakang berkenaan projek tu, tapi macamana kaedah nak bina data sempadan lokasi projek dari peta laporan yang saya scan tu? Disinilah perlunya proses georeferencing.

Takrifan Georeferencing
Bila kita scan peta dari bentuk hardcopy kepada imej digital, imej yang dihasilkan tu tidak mempunyai info koordinat. Katalah kita scan pelan atau peta ke dalam format JPEG, TIFF dan sebagainya, fail-fail tu hanyalah fail imej yang tiada rujukan koordinat. Kalau anda semua familiar ngan GIS tentu tau kan, apa jadi kalau kita overlay data kita yang tiada rujukan koordinat dengan data-data GIS lain. For sure data tu tak masuk, dalam kata lain tak boleh nak overlay. Maksudnya, kalau saya terus buat proses screen digitizing dari peta yang saya scan tadi, maknanya sempadan projek yang saya digitize pun tak akan masuk le kalau saya overlay dengan data-data basemap yang lain.

Jadi secara ringkasnya georeferencing adalah satu proses untuk membina rujukan data GIS kita kepada lokasi kedudukan sebenar di muka bumi melalui penggunaan sistem koordinat tertentu. Dalam kes saya ni, saya perlu georeference kan dulu peta-peta lokasi projek yang saya dah scan tu sebelum mulakan proses screen digitizing di atas peta JPEG tersebut.


Kaedah Georeferencing

Nak buat georeferencing dalam ArcGIS ni, anda perlu gunakan ArcMap. Secara ringkasnya, step yang anda perlu buat adalah :
- Masukkan toolbar georeferencing
- Masukkan layer yang anda nak georeference tu
- Bina Link
- Semak RMS error link yang dah dibina
- dan last sekali jangan lupa save transformation

Steps nak buat georeferencing


Di bawah ni adalah contoh toolbar georeferecing dan penerangan ringkas setiap tool dan menu di toolbar tu.




Penyediaan Awal Sebelum Proses Georeference
Sebelum nak mulakan proses georeference ni, anda perlu pastikan dulu adakah terdapat maklumat koordinat di atas peta yang anda scan tu.  Sebaiknya, minimum 3 lokasi koordinat diperlukan di atas peta tersebut. Lihat seperti peta di bawah. Pada persilangan grid no (1), (2) dan (3) tu saya boleh tentukan nilai koordinat dengan merujuk pada koordinat latitude dan longitude di penjuru atas dan kiri peta tu.




Macamana pula kalau peta tu takda info koordinat, macam peta kat bawah ni.



Kalau kes macam ni, anda perlu ada rujukan data samada data vektor atau raster untuk buat proses georeference. Macam dalam contoh imej lot di atas, mungkin saya boleh gunakan data vektor lot untuk mencari kedudukan nombor lot yang terdapat di dalam imej tu, seterusnya saya boleh link kan sempadan lot pada peta yang scan tu kepada sempadan lot data rujukan vektor.



Georeference Menggunakan Koordinat
Lihat pada kedudukan persilangan grid (1) seperti di bawah, nilai X dan Y seperti tertera di peta adalah X = 116-12-30, Y = 5-13-30



Sekiranya koordinat yang hendak dimasukkan adalah di dalam format latitude longitude seperti imej di atas, perkara pertama yang perlu anda lakukan ialah setkan Sistem Koordinat Data Frame anda kepada WGS84.



Seterusnya untuk linkkan kedudukan persilangan grid (1) tu kepada koordinat X = 116-12-30 dan Y = 5-13-30, rujuk gambar di bawah.


Penerangan proses adalah seperti berikut :-

(1) Left click pada kedudukan persilangan grid (1)
(2) Gerakkan mouse dan right click untuk mendapatkan pop-up menu
(3) Pada pop-up menu, pilih Input DMS of Lot and Lat
(4) Masukkan nilai koordinat Latitude dan Longitude.

Macamana pula kalau kat peta tu tiada garisan persilangan grid? Contoh macam peta di bawah ni.

Peta tiada garisan persilangan grid 


Sudah tentu susah nak tentukan kedudukan mana yang perlu anda klik untuk bina link kan? Selalunya kalau peta macam tu, cara mudah saya draw saja persilangan garisan grafik menggunakan Draw toolbar, kemudian baru saya bina link pada kedudukan persilangan tu.

Lukis garis persilangan grid menggunakan Draw toolbar


Sekiranya anda uncheck setting Auto Adjust, anda akan dapat melihat garisan biru dipaparkan merujuk pada garisan link dari kedudukan persilangan grid kepada kedudukan sebenar koordinat.

Garisan biru menunjukkan garisan link


Setelah lengkap link yang anda bina, klik pada menu Update Display untuk mengemaskini kedudukan imej kepada kedudukan koordinat sebenar. Anda juga boleh semak ketepatan kedudukan link melalui View Link Table pada georeferencing toolbar. Sekiranya anda rasakan nilai Residual tu terlalu besar, delete sahaja link tersebut dan bina semula link.

Buka dialog Link Table untuk menyemak ketepatan link.


Akhir sekali, bila anda dah rasa puas hati dengan kedudukan imej tu, save transformation dengan memilih Update Georeferencing pada Georeferencing toolbar.


Proses Update Georeferencing akan membina fail tambahan yang dinamakan World File. Fail ini akan mempunyai tambahan abjad W di akhiran extension, sebagai contoh, sekiranya nama imej anda adalah MyFile.JPG, world file yang akan dibina adalah MyFile.JGW. World File ni akan digunakan oleh aplikasi ArcGIS untuk menentukan kedudukan sebenar lokasi imej yang telah di georeference. So, jangan sekali-kali delete fail ni, kalau tak nanti anda kena buat balik proses georeferencing.

Georeference Menggunakan Data Rujukan
Contoh sebelum ni kalau peta tu ada info koordinat, senang sikit nak georeference sebab kita boleh terus key-in nilai koordinat di dalam dialog Enter Coordinate. Macamana pula kalau kat atas peta tu takda langsung info koordinat? Kalau kes macam ni, anda perlukan data rujukan samada data vektor dan raster, lepas tu anda perlu cari feature apa atas imej tu yang anda boleh padankan dengan feature dalam data rujukan anda. Bila dah jumpa feature yang boleh dipadankan, bina link antara feature di atas imej dengan feature di dalam data rujukan.

Seperti gambar di bawah, untuk memadankan lot-lot di atas imej yang saya scan tu, saya perlu mengenalpasti dahulu kedudukan lot tersebut di dalam data vektor lot. Cara yang saya lakukan adalah menggunakan kaedah carian Select By Attributes untuk mencari nombor-nombor lot tersebut. Bila dah jumpa lot tu dalam data rujukan vektor, saya pun zoom pada extent yang sesuai untuk memudahkan saya bina link antara imej dan data rujukan tu. 

Bina link dari lot dalam imej kepada lot rujukan vektor


Proses yang seterusnya samalah seperti kaedah sebelum ni iaitu Update Display dan Update Georeferencing. Imej di bawah menunjukkan imej yang telah digeoreference menggunakan data vektor sungai sebagai data rujukan. Polygon sempadan merah pula menunjukkan sempadan projek yang saya digit di atas imej tersebut.

Sempadan projek (garisan merah) yang telah didigit di atas imej yang telah digeoreference


Tips Tambahan
Kadangkala agak sukar untuk kita laksanakan proses georeferencing terutama melalui kaedah padanan kepada data rujukan. Antara punca-puncanya adalah seperti tiada data rujukan yang sesuai, data rujukan yang tidak terkini (perubahan pada lot, lot tidak wujud) dan lain-lain. Dalam kes-kes seperti ini, kita mungkin memerlukan data-data tambahan untuk memudahkan proses tersebut. Contohnya mungkin kita perlu gabungkan link kepada data lot, sungai, jalanraya dan sebagainya.

Satu lagi kaedah yang saya gunakan ialah melaksanakan kaedah carian lokasi melalui aplikasi Google Earth. Setelah menjumpai lokasi yang sepadan, lakarkan kawasan tersebut di dalam Google Earth, kemudian save kepada KML dan import balik fail KML tu ke dalam ArcGIS untuk dijadikan data rujukan. Anda boleh rujuk kepada post saya sebelum ini di sini untuk steps bagaimana nak import fail KML ke dalam ArcGIS.



Tuesday, 14 August 2012

Layout View - Jom Design Map


Salam semua... berjumpa lagi. Rasanya ni post saya yang last sebelum bercuti raya. Nampaknya semua orang dah mood raya sekarang. OK, stop cerita pasal raya dulu. Kali ni saya nak kongsi tentang bab kartografi iaitu design atau compose map. Kenapa nak design map ni? Selalunya kita design map bila nak buat perkara-perkara di bawah ni :-

- kita nak cetak peta yang menunjukkan hasil analisis yang kita dah buat
- maybe nak buat poster untuk seminar, pameran etc
-Nak masukkan map tu dalam aplikasi GIS samada desktop application atau Web application

Ok... yang saya nak kongsi di sini adalah lebih fokus kepada design map untuk tujuan cetakan. Bila kita nak cetak map tu, for sure mesti kita nak design cantik-cantik kan? Lebih-lebih lagi kalau kita nak tunjukkan peta tu untuk pameran, seminar dan sebagainya. Tips yang mula-mula sekali yang perlu kita ambil tahu masa nak design map ni ialah, ada beberapa faktor yang mempengaruhi map design, antaranya seperti objektif peta yang nak dihasilkan, siapakah audience, saiz peta yang nak dihasilkan dan penentuan skala.

Faktor-faktor yang perlu diambil kira semasa merekabentuk peta


Kemudian, anda perlu menggunakan kreativiti anda untuk memilih simbol-simbol, warna-warna dan teks yang sesuai untuk diletakkan di dalam peta tu. Dalam kata lain, nak design map ni perlukan sedikit sentuhan seni ler..hehe. Selalunya kesilapan ketara yang saya lihat apabila membuat peta adalah pemilihan saiz teks yang tidak sesuai, contohnya map hanya bersaiz A4 atau A3, tetapi saiz teks diruangan Legend terlalu besar, so nampak janggal map tu. Pemilihan warna juga perlu sesuai supaya warna tidak nampak terlalu garang atau terlalu lembut. Keseimbangan visual juga penting supaya elemen-elemen di atas peta tu seimbang, takde la nanti nampak ada bahagian-bahagian yang kosong atau tertumpu pada sesuatu sudut. Contohnya perhatikan kedua-dua map di bawah, satu di dalam orientasi Potrait dan satu lagi di dalam Landscape.

Map 1 : orientasi Potrait

Map 2 : orientasi Landscape



Kedua-dua map tu memaparkan maklumat yang sama, tetapi pada pandangan mata anda yang mana satu lebih menarik? Sudah tentu yang map potrait tu kan? Sebab map tu nampak balance, padat tapi yang map landscape tu nampak ada banyak ruangan kosong di bahagian kanan peta terutama di sudut bawah.

Dalam ArcMap, nak design map ni anda kena buat di dalam Layout View. Nak masuk ke Layout View simple je, klik je kat menu View > Layout View. Kemudian tentukan elemen apa anda nak masukkan dalam peta tu, contohnya tajuk peta, bar skala, penunjuk arah utara, legend dan lain-lain.




Contohnya kalau anda nak masukkan legend dalam peta tu, klik kat menu Insert > Legend. Bila Legend dah dipaparkan di dalam peta, drag saja dan letakkan di posisi yang sesuai.



Macamana pula kalau nak masukkan sistem grid koordinat di sekeliling frame peta tu? Yang tu anda tak boleh cari dalam menu Insert. Anda perlu buka Data Frame Properties dulu, samada klik pada menu View > Data Frame Properties atau right click di dalam map dan pilih Properties daripada popup menu.




Kemudian, klik kat tab Grids dan pilih samada nak paparkan grid Graticule (Latitude, Longitude), Measured Grid (RSO, Cassini) atau Reference Grid. Kemudian tekan saja butang Next untuk arahan seterusnya.




Hasilnya seperti gambar di bawah ni. Dalam contoh tu, saya gunakan grid Graticule kerana unit yang dipaparkan di dalam Latitude Longitude.




OK, katakan anda nak buat poster saiz sebesar AO dan kat ofis anda tiada plotter yang sesuai untuk print map tu, atau mungkin anda nak print menggunakan high quality punya plotter yang terdapat di kedai-kedai printing. Tapi kat kedai tu takda software ArcGIS, macamana anda nak print? Cara mudahnya, export saja map anda tu ke format PDF supaya di kedai printing nanti anda boleh print menggunakan software Adobe Acrobat.




Macam contoh hasil map di bawah ni adalah map yang saya print dari format PDF. Kualitinya agak memuaskan kerana menyamai kualiti fail asal di dalam ArcMap.




Disini saya ingin kongsikan contoh-contoh map yang telah saya design untuk client saya menggunakan aplikasi ArcMap ni.

Kombinasi 3 data frame di dalam 1 layout view

Kombinasi data imej satelit google dan maklumat bergambar


Kombinasi peta dan penerangan aplikasi yang dibangunkan

Kombinasi peta bersama data 3D







Friday, 3 August 2012

Kursus GIS - UNITEN

Salam semua.. hari ni saya conduct kursus ArcGIS lagi... peserta kali ini adalah dari UNITEN. Kali ni kursus yang saya conduct ni menggunakan kaedah On Job Training (OJT).. takda lah formal class sangat.. lebih pada berkonsepkan perbincangan dan latihan amali serta topik-topik yang diterangkan lebih fokus kepada  job scope dan projek yang dikendalikan oleh peserta-peserta. Kebanyakannya menyentuh pada topik 3D dan Spatial Analyst. Hmmm kering jugak tekak mengajar time-time bulan posa ni.

Peserta sedang sibuk berbincang dan berlakon...hihihi



Hari ni baru masuk hari ke 4 kursus, ada balance 6 hari lagi. Next week sambung lagi 2 hari, relak sikit mengajar macamni, seminggu kelas 2 hari saja. 

Antara analisis yang dihasilkan dalam kelas - analisis Viewshed


Hopefully peserta-peserta semua faham tentang topik-topik yang diajarkan. Berjumpa lagi next week.