Tuesday, 14 November 2017

Buku SukaGIS Jilid 2

Buku SukaGIS Jilid 2 telahpun berada di pasaran. Cepat dapatkan sebelum kehabisan stok. Harga RM50 Semenanjung, RM52 Sabah/Sarawak.. harga dah termasuk postage. Hubungi 0193513770 untuk tempahan.





Topik-topik dalam buku ni :-

1.  PENGENALAN
2.  PENGURUSAN DATA
Pengurusan Medan Data
Geodatabase Attachment
Editor Tracking - Mengenalpasti Siapakah dan Bilakah Tarikh/Masa Data Dikemaskini
Membina Group Layer
Map Package - Kaedah Mudah Nak Pindah/Kongsi Data
Pengurusan Layer Dalam TOC : Menyelesaikan Masalah “Broken Data Link”
3.  PEMPROSESAN DATA
Merge : Menggabungkan Feature Class
Mosaic : Menggabung Raster
Clip Raster Mengikut Bentuk Polygon
Photo Geotag – Tukar Gambar Foto Anda Kepada Layer Point
Extract Nilai Z Raster DEM Kepada Data Point
Membina Atribut Dari Teks Annotation Fail AutoCAD
Convert GIS Data ke CAD Format
Membina Data 3D Surface TIN
Menjana Data Centerline
Geoprocessing – Environment Settings
Batch Geoprocessing
4.  PENGANALISAAN DATA
Analisis Buffer
Analisis Geoprocessing Overlay : Intersect vs Union
Analisis Geoprocessing Overlay : Erase
Analisis Dissolve
Analisis Frequency
Spatial Join - Mengira Jumlah Point Di Dalam Setiap Polygon
Verifikasi Data Melalui Integrasi Google Street View dan ArcGIS Desktop
Interpolation
Analisis Kecerunan (Slope Analysis)
Mengira Jarak Terhampir – Point Distance
Permodelan Hidrologi (Hydrological Modelling
Pemetaan Dataran Banjir (Floodplain Mapping)
Penggunaan Dataset LIDAR Dalam ArcGIS
Analisis Model Kesesuaian (Weighted Overlay)
Kelebihan Model Builder
Mengukur Jarak Permukaan 3D (Surface Length)
     Analisis Tarah/Potong dan Timbus (Cut and Fill)

Sunday, 22 October 2017

4 Tips Menyediakan Fail MXD Untuk Tujuan Demo/Presentation

Anda nak present final project kat lecturer menggunakan ArcMap? Kena present progress projek kat client? Kena demo projek kat seminar? Selalunya bila nak present atau demo guna ArcMap ni, anda akan readykan dulu semuanya dalam satu MXD fail kan? Takkan bila time demo baru anda nak masukkan data satu persatu..ye tak? Di sini saya kongsikan beberapa tips yang boleh anda jadikan panduan dalam menyediakan MXD fail supaya presentation anda menjadi lebih menarik dan mudah difahami audience.

1) Hasilkan paparan peta yang cantik

Lazimnya peta yang cantik akan menarik dan menangkap perhatian audience untuk menatap peta anda, seterusnya akan memberi perhatian pada presentation anda. Cantik di sini bermaksud pemilihan warna simbol yang menarik, saiz label teks yang bersesuaian dan lain-lain. Kalau peta anda nampak suram saja, lama-lama mata audience pun akan kuyu. Cuba lihat peta A dan B kat bawah ni, yang mana lebih menarik? Nampak macam peta B lebih menarik. Penggunaan simbol pada peta B lebih jelas, saiz teks label yang sedang-sedang, tak terlalu besar dan tak terlalu kecil, ditambah pula dengan penggunaan layer hillshading yang menampakkan effect 3D.



Pastikan juga warna simbol yang anda pilih tidak mengelirukan audience anda. Contohnya dalam penghasilan peta cerun, lazimnya kawasan berkecerunan tinggi digambarkan simbol warna merah manakala berkecerunan landai digambarkan simbol warna hijau. Kalau anda pilih warna yang terbalik, audience akan salah tafsir peta anda.

2) Pastikan Table of Contents (TOC) Jelas dan Tersusun

Walaupun kadangkala anda rasa part ni tak berapa penting (asalkan anda sorang je tahu dah cukup sebab anda yang akan on/off layer kat TOC tu masa demo), tapi kadangkala audience juga nak rujuk apa layer yang anda letakkan di TOC tu. Jadi, pastikan layer-layer yang anda letak dalam TOC tu teksnya jelas dan susunannya teratur. Namakan layer anda mengikut kesesuaian apa maklumat yang nak digambarkan pada layer tersebut. Contohnya jika anda paparkan layer dari shapefile landuse.shp yang menggambarkan pecahan simbol kategori zon gunatanah, adalah lebih elok anda namakan layer tu dalam TOC sebagai “Zon Gunatanah” berbanding nama “landuse.shp”.. seperti gambar B di bawah.



Jika senarai layer dalam TOC anda boleh dikategorikan kepada beberapa kumpulan data, anda juga boleh gunakan teknik Group Layer supaya susunan layer dalam TOC nampak lebih kemas. Topik berkenaan Group Layer ada saya bincangkan di link sini.



Cuba elakkan juga menggunakan nama default physical layer di dalam TOC kerana ia mungkin menyukarkan audience memahami apa maksud data yang dipaparkan.  Sebaiknya rename semula nama layer tu mengikut kesesuaian data bila anda dah masukkan ke dalam TOC. Saya bagi contoh..   antara nama  “LocAuthArea” dan “Local Authority Area”, yang mana satu lebih mudah anda faham?   Antara nama “DistCovAdmin” dan “District Coverage Administrative”, yang mana satu lebih mudah anda faham?  So..fikirkan nama layer yang sesuai dalam TOC supaya memudahkan audience memahami data anda.



3) Papar Data Mengikut Skala Bersesuaian

Kadangkala jika semua maklumat anda nak paparkan, peta anda jadi terlalu padat atau crowded dan mengganggu visual antara satu layer dengan layer yang lain. Contohnya, bayangkan anda papar polygon lot atau garis kontur keseluruhan extent Selangor. Atau bayangkan anda papar garisan sungai pada extent skala yang tak bersesuaian sehingga garis sungai pun jadi terlalu padat kerana terlalu rapat antara satu sama lain. Ni semua akan menyukarkan audience untuk membaca dan mentafsir peta anda.



Paparan teks label pada skala yang tak sesuai pula akan mengelirukan audience untuk menentukan apa sebenarnya yang anda nak labelkan. Contohnya cuba lihat peta di bawah ni. 



Terdapat paparan label nama sungai, tapi disebabkan garis sungai pun terlalu padat pada extent tersebut, macamana audience nak tahu setiap label teks nama sungai tu merujuk pada garis sungai yang mana satu, sebab garisan sungai yang terlalu rapat.
Cara yang terbaik ialah kawal paparan feature dan label teks pada layer menggunakan teknik Scale Dependent Display. Teknik ni ada saya sentuh dalam topik "Tips Jadikan Paparan ArcMap Pantas" di link sini. Sekiranya anda ada banyak layer yang taburannya padat, anda perlu plan pada skala berapakah yang anda nak paparkan untuk setiap layer, begitu juga dengan paparan label. 



4) Gunakan Bookmark

Readykan setiap kawasan yang anda nak highlight di dalam presentation atau demo anda di dalam satu Bookmark. Ini nak mengelakkan anda lupa atau tercari-cari kawasan yang anda nak tunjukkan semasa presentation nanti. Maklumlah, tetiba datang time gelabah atau nervous masa present, mulalah dah lupa apa nak tunjukkan. Audience selalunya tak suka tertunggu-tunggu. At least bila semua dah tersusun dalam Bookmark, presentation anda akan jadi lebih smooth dan kuranglah sikit perasaan panik anda tu..haha. 



Penerangan lanjut tentang Bookmark dan cara macamana nak create Bookmark ni ada saya ceritakan di link sini.

OK selebihnya tu bergantung pada skill anda lah macamana anda nak goreng masa present. Jangan sampai hangus berasap sudah. Kadangkala tak semestinya semuanya anda kena present guna ArcMap, mungkin anda boleh kombinasikan bersama powerpoint slide presentation, mengikut kreativiti anda. 

Harap-harap tips yang saya kongsikan ni memberi manfaat kepada anda semua.

Saturday, 30 September 2017

Asas Operasi Penyuntingan Data

Terdapat beberapa tutorial yang saya post sebelum ni yang ada kaitan dengan penyuntingan data atau data editing dalam ArcMap. Contohnya berkaitan tips pendigitan, pembetulan ralat overshoot dan undershoot, spatial adjustment dan lain-lain. Dalam tutorial tu, saya lebih fokuskan terus kepada kaedah penggunaan tool tertentu untuk betulkan ralat-ralat berkaitan. Bagi anda yang dah biasa atau dah ada basic dalam lakukan kerja-kerja editing dalam ArcMap mungkin tiada masalah. Tapi bagi anda yang baru pertama kali nak belajar kaedah editing dalam ArcMap ni, ada beberapa perkara asas yang anda perlu tahu dulu sebelum follow langkah-langkah yang saya tunjukkan dalam tutorial tu.

Ringkasnya, workflow penyuntingan data seperti gambarajah di bawah ni. Klik untuk besarkan gambar kalau tak jelas.



OK, kita go through satu persatu….

1 - Mulakan Sesi Penyuntingan
Sebelum boleh mulakan proses edit, kena mulakan dulu sesi penyuntingan. Macam nak bawak kereta la kan, kalau tak start enjin, camne nak jalan. Alamatnya drive buat bunyi enjin pakai mulut je la…haha. Nak mulakan sesi edit, senang je. Klik je Editor > Start Editing yang terletak dalam Editor Toolbar.



2 - Pilih Workspace
Jika dalam map anda ada layer yang terletak dalam pelbagai source, contohnya dalam folder berbeza atau geodatabase berbeza, anda kena pilih dulu nak edit dari source yang mana satu. Sekiranya ada data dalam source berbeza, ArcMap automatik akan papar dialog seperti di bawah ni lepas anda klik Start Editing.



Anda mempunyai dua pilihan. Nak klik dari senarai layer (A) boleh, nak klik dari source folder/geodatabase (B) pun boleh.

3 - Pilih Layer Dalam Dialog Create Features
Step ni depend. Ada sesetengah operasi edit yang perlukan anda pilih layer dulu dari dalam dialog Create Features ni. Contohnya nak buat pendigitan, kena pilih dulu layer apa nak digit dari dalam dialog Create Features. Ada juga operasi yang tak payah pilih layer dari dialog Create Features ni, contoh nak buat Spatial Adjustment. Bila anda klik je Start Editing, dialog Create Features ni sepatutnya akan automatik buka di posisi kanan ArcMap, berdekatan Catalog Window.

Kedudukan posisi default dialog Create Features


Tapi kalau dialog ni tak keluar lepas klik Start Editing, klik saja button Create Features di Editor Toolbar.




4 - Tentukan Properties dan Option
Sesetengah proses edit yang anda nak buat perlukan anda set beberapa properties untuk memudahkan proses edit tu. Contohnya jika anda nak buat pendigitan dan nak make sure starting point pendigitan anda tu snap dengan existing feature, lebih mudah kalau anda set dulu option snapping sebelum digit. Kalau nak buat topological edit pulak, anda kena set dulu layer apa yang terlibat dalam topology di Map Topology toolbar atau guna Geodatabase Topology Rules. Kalau nak buat Spatial Adjustment pulak, kena set layer apa yang anda nak adjust. Ringkasnya, apa yang anda nak edit akan menentukan apa properties atau option yang anda perlu set. Berbeza kaedah edit, berbeza properties yang mungkin anda kena set.

Antara properties dan option yang boleh anda set


5 - Bina Atau Edit Feature
OK, lepas tu barulah anda mulakan penyuntingan, nak digit ke, nak adjust ke, nak clean data ke atau nak gunakan mana-mana tool penyuntingan yang terdapat dalam ArcMap tu.



6 - Bina Atau Edit Atribut
Kadangkala mungkin anda nak masukkan atribut pulak lepas buat pendigitan, atau mungkin nak ubah atau nak betulkan atribut sedia ada. Caranya, select dulu feature yang anda nak masuk atau ubah atribut, kemudian klik saja butang Attributes di Editor Toolbar.



7 - Save
Haaa… jangan lupa pulak Save kerja-kerja edit anda tu. Kalau tak nanti penat je dah buat banyak-banyak tak save. Tapi jangan pulak tersilap tekan button Save. Jangan klik menu File > Save atau tekan butang gambar disket sebelah butang print tu. Yang tu untuk save fail MXD anda. Untuk save kerja-kerja edit, anda kena klik dekat Editor > Save Edits di Editor Toolbar.



Dan satu lagi, amalkan kerap klik butang Save Edits setiap kali anda rasa dah banyak buat proses edit. Bukan apa, manalah tau tetiba komputer hang ke, power failure ke, at least kerja dah save..sebabnya ArcMap ni bukannya ada fungsi Autosave macam microsoft word, powerpoint or seumpamanya.
Bila semua kerja-kerja edit dah selesai dan dah save, tamatkan proses edit dengan klik Editor > Stop Editing di Editor Toolbar.



OK, selesai satu proses workflow edit.  Harap membantu untuk anda yang baru nak start belajar edit data ni.

Friday, 22 September 2017

Buku SukaGIS Jilid 2

InshaAllah buku SukaGIS Jilid 2 akan release sedikit masa lagi. Topik kali ni difokuskan pada Pengurusan Data, Pemprosesan Data dan Penganalisaan Data. Terdapat banyak topik-topik yang menarik, antaranya Permodelan Hidrologi, Pemetaan Banjir, Model Builder dan lain-lain.


So, tungguuuu... akan muncul di pasaran sedikit masa lagi. Untuk info lanjut, boleh follow update di FB SukaGIS atau email azlansr@gmail.com atau wasap 0193513770.  TQ




Tips Jadikan Paparan ArcMap Pantas

Kalau saya tanya anda yang mana satu lebih penting untuk anda, nak map yang cantik ke atau performance yang cepat dan pantas? Tentu ramai akan jawab, kalau boleh nak dua-dua le.. ye tak? Kadang-kadang ni pun antara benda yang dilema juga, kadang-kadang kita nak buat symbology yang advanced, tapi bila zoom in zoom out jadi slow pulak. Kadang-kadang tu data yang kita papar terlalu besar, atau terlalu banyak feature, pun kadangkala boleh jadi slow.

Tapi tahukah anda ada beberapa perkara dalam ArcMap ni yang kita boleh tune untuk elakkan paparan map jadi slow? Haaa nak tahu? Di sini saya sharekan beberapa tips dan trick yang anda boleh gunakan.

Scale Dependent Display
Kadangkala, sesuatu layer yang kita paparkan mempunyai bilangan feature yang terlalu banyak hingga mengganggu visual layer-layer yang lain. Contohnya dalam map yang saya papar kat bawah ni.



Simbol warna biru tu sebenarnya layer sungai, tapi disebabkan line sungai tu terlalu banyak, dah nampak seolah-olah macam polygon, sampaikan warna polygon sempadan daerah dan jalanraya yang saya paparkan dalam map tu dah tak nampak. Dah lah layer tu ganggu layer-layer yang lain dalam map, nak draw pun jadi lembab. Lagipun takde maknanya kalau saya draw layer sungai tu secara keseluruhan sebab bukan nampak pun garis sungai tu dengan jelas, dah jadi rapat-rapat macam color polygon. Kalau saya zoom in lebih detail seperti map yang saya paparkan kat bawah ni, barulah sungai tu nampak lebih jelas.



Jadi, buat apa kita nak draw layer yang boleh menyebabkan paparan jadi slow jika maklumat yang dipapar pun tak jelas, ye tak? Lebih elok kita draw layer tu pada paparan skala yang bersesuaian sehingga maklumat nampak jelas. So, macamana nak draw layer kita pada sesuatu skala yang kita nak? Caranya gunakan teknik Scale Dependent Display.

Mula-mula Zoom In dulu sehingga anda rasakan paparan layer tu sesuai dan jelas dan tidak mengganggu layer-layer lain. Kemudian semak pada ruangan skala yang dipaparkan dalam standard toolbar ArcMap.



Dalam contoh di atas, paparan yang bersesuaian apabila saya Zoom In map ialah 1 : 135,018. Jadi saya boleh gunakan nilai skala yang ditunjukkan tu untuk set layer sungai saya supaya hanya draw apabila skala sama atau kurang dari 135,018 (kalau nak cantik, bundarkan le nombor tu, cth 1 : 135,000). Sekiranya saya zoom out melebihi skala 1 : 135,000.. layer sungai saya tak akan dipaparkan. Caranya seperti berikut :-



Penerangan gambar :-
  1. Dalam Table of Contents, double click layer yang anda nak setkan paparan skala untuk buka dialog Layer Properties.
  2. Klik tab General.
  3. Taipkan nilai skala kat ruangan Out beyond :
  4. Klik OK.
Hasilnya seperti gambar yang ditunjukkan di bawah ni. Pada paparan skala melebihi 135,000.. layer sungai tidak dipaparkan. Pada skala kurang dari 135,000 baru layer sungai muncul. Secara tak langsung, paparan map saya pun lebih cepat bila saya draw keseluruhan data pada skala melebihi 135,000.



On/Off Layer Secara Manual
Satu lagi cara anda boleh try, on off on off je layer tu kat Table of Contents. Maksudnya kalau anda rasa tak perlu papar, anda off je layer tu dalam Table of Contents. Kalau perlu nak tengok, baru anda on kan. Sebenarnya cara ni sama je macam teknik Scale Dependent Display, bezanya anda papar dan tak papar secara manually. Macam contoh gambar di bawah ni, saya lakukan tiga peringkat Zoom In pada map saya. Bila sampai peringkat Zoom In ketiga, baru saya onkan layer sungai saya untuk melihat paparan sungai.



Membina Basemap Layer
Satu lagi cara, anda boleh letakkan layer anda yang lembab nak draw tu dalam Basemap Layer. Konsep Basemap Layer ni seolah-olah sama macam Group Layer. Kalau anda tak pasti Group Layer tu apa, topik tu ada saya explain dalam post saya sebelum ni di link sini. Cuma bezanya, Basemap Layer ni kita bina khusus untuk paparkan layer dengan pantas. Cuma anda kena take note, kalau anda letakkan layer anda dalam Basemap Layer ni, ada beberapa limitation, antaranya anda tak boleh edit layer tu, dan banyak properties pada layer tu yang anda tak boleh ubah seperti label, symbology dan lain-lain. Maksudnya, sebelum jadikan layer tu sebagai Basemap Layer, anda setkan dulu semua properties yang anda nak, symbol, label dll, kemudian baru anda jadikan layer tu sebagai Basemap Layer.

Untuk bina Basemap Layer, follow step ni :-



Penerangan gambar :-
  1. Dalam Table Of Contents, right click nama data frame dan pilih New Basemap Layer
  2. Namakan basemap anda.
  3. Drag layer yang yang anda nak jadikan sebagai Basemap Layer masuk ke dalam group Basemap Layer yang anda bina tadi.


Sekarang cuba test zoom in zoom out map anda. Sepatutnya paparan jadi lebih pantas dari sebelumnya.

Aktifkan Feature Cache
Cara ni amat berguna terutamanya jika anda ada paparkan layer dari ArcSDE Geodatabase. Bila anda aktifkan feature cache ni, ArcMap akan temporary simpan feature yang anda paparkan dalam RAM komputer anda, jadi load pada network dan geodatabase akan dikurangkan. Cara nak aktifkan Feature Cache ni seperti berikut ni :-


Penerangan gambar :-
  1. Dalam Table Of Contents, double click nama data frame untuk buka Data Frame Properties.
  2. Klik tab Feature Cache
  3. Pada ruangan Auto-Cache, klik Automatically build cache when the current map extent changes dan klik OK.

OK… harap empat tips ni berguna untuk anda. Selamat mencuba.

p/s : Buku SukaGIS Jilid 2 akan release sedikit masa lagi. Tungguuuuu.... :)

Wednesday, 9 August 2017

Open Map Source Layer


Ramai org tentu suka kalau dapat overlay data GIS mereka dengan Google Satelite, Google Hybrid atau Google Streetmap...sebabnya service dari Google ni free, maklumat pun slalu dikemaskini (brgantung pd data provider). Dari Google Streetmap cthnya kita dah boleh dpt info macam2... nama jalan, landmark etc. Kalau dlm QGIS opensource, ada plugin utk view service Google ni. Macamana plak kalau dalam ArcGIS kalau kita nak overlay data Google service? Boleh ke? Kalau boleh, kan senang, tak payah kita nak convert data ke KML masuk dalam Google, kemudian import balik KML masuk dalam ArcGIS. Nak buat keje digitize dalam ArcMap pun senang, digitize terus je atas data Google dari ArcMap. Dalam MapInfo pun boleh ke?

Anda boleh try download trial version open map source layer ni di link sini.  Untuk pengguna ArcGIS, add saja fail .lyr tu ke dalam ArcMap anda, terus image google akan dipapar bersama data-data GIS anda.


Imej Google dari open layer file dipapar bersama
polygon geodatabase featureclass dalam ArcMap

Untuk live demo, play video di bawah ni.. Jika berminat dan terdapat sebarang pertanyaan dengan produk ni, boleh hubungi email mamatgis@gmail.com 





Saturday, 15 July 2017

Menganggar Laluan Tumpahan Pencemaran Melalui Analisis Steepest Path

Cuba perhatikan gambar di bawah. Katakan anda mendapat aduan terdapat kejadian pembuangan sisa toksik di lokasi X. Terdapat tiga sungai yang berhampiran di lokasi X tu, sungai A, sungai B dan sungai C.

Sungai manakah yang terlibat dari sisa
tumpahan toxic X??

Dari pemerhatian anda, agak-agaknya sisa tumpahan tu masuk ke sungai mana? Sungai A ke, sungai B ke sungai C? Pening juga nak tentukan dengan cara tengok peta je. Kalau turun site buat siasatan mungkin boleh membantu. Tapi sebenarnya dalam ArcGIS ni ada tool yang boleh membantu anda jangkakan tumpahan tu masuk ke sungai mana. Syaratnya kena ada 3 benda ni dulu :-
  1. Data surface DEM (raster, TIN, LAS dataset atau Terrain)
  2. 3D Analyst Extension
  3. Of course kena ada layer sungai

OK, bila dah memenuhi syarat-syarat tu, anda boleh gunakan tool yang dipanggil Steepest Path dalam 3D Analyst toolbar untuk create laluan aliran bermula dari titik lokasi X tu. Kaedah steepest path ni simple je, kita boleh bayangkan kalau kita lepaskan sebiji bola dari satu lokasi, kemanakah laluan bola tu akan bergerak? Sudah tentu laluan bola tu akan menuruni kawasan yang lebih rendah dan berhenti sekiranya terdapat halangan yang lebih tinggi atau curam.
   


Samalah juga dengan kes tumpahan sisa toksik tadi. Kita boleh bayangkan laluan sisa toksik tu sama mcm konsep laluan bola tadi.  Dengan menggunakan tool Steepest Path, laluan ni akan dibina sebagai line graphic. Macamana caranya? Masukkan dulu layer DEM dan layer sungai dalam ArcMap. Kemudian, follow step berikut :-




Keterangan gambar :-
  1. Buka dulu toolbar 3D Analyst
  2. Kalau dalam ArcMap anda ada beberapa data raster atau TIN atau LAS dataset atau Terrain yang anda masukkan, make sure anda setkan kepada data DEM yang bersesuaian.
  3. Klik butang Create Steepest Path
  4. Klik pada lokasi yang anda kehendaki. Laluan dalam bentuk garisan grafik akan dibina di atas peta.

Sisa tumpahan memasuki sungai A di
lokasi A2 walaupun berdekatan dengan A1

Jika anda lihat hasil analisis Steepest Path dalam contoh gambar di atas, bukan saja anda dapat tahu tumpahan tu masuk ke dalam sungai A, tapi anda juga boleh tahu anggaran tumpahan tu masuk di lokasi manakah di sungai A. Walaupun jarak terdekat dari sungai A adalah di A1, tetapi disebabkan laluan mengikut bentuk topografi DEM, ia memasuki sungai A pada lokasi A2.

Tapi kena ingat ye, ketepatan hasil analisis anda ni banyak bergantung pada ketepatan data DEM anda.

Tuesday, 6 June 2017

Membetulkan Kesalahan Arah Line Menggunakan Flip Line : Kajian Kes Sungai

Haii sume. Topik kali ni agak panjang lebar sikit. Untuk sesiapa yang selalu buat keje-keje editing or data processing, sila take note. Kalau baca topik ni lepas buka posa, pi siap2 bancuh kopi dulu. Panjang ni nak bual. Kalau baca time posa, jangan cari pasal..haha. OK.. tahukah anda, bila kita digitize sesuatu line, line tu akan ada arah atau direction, bergantung pada arah mana kita digitize? Tu antara sebab kenapa data tu dipanggil data vektor, macam masa kat sekolah dulu kita belajar subjek math, cikgu kata vector diwakili segmen garisan yang ada arah. Haaa termenung je.. lupa la tu..haha.


Tapi tu tak penting. Yang saya nak story kat sini, direction line dalam data GIS ni kadangkala memberi maksud sesuatu, contohnya arah aliran sungai, electricity flow dan lain-lain. Dan kadangkala, sesetengah analisis yang gunakan layer line ni sebagai data input perlukan kita set direction line yang betul dulu pada  setiap line dalam layer tu. Dalam Arcmap macamana kita nak tgk direction setiap line ni? Caranya, kita boleh gunakan simbol Arrow untuk draw direction setiap line.

Senarai simbol arrow dalam dialog Symbol Selector ArcMap

OK, sekarang kita dah tahu macamana nak tengok direction line dalam ArcMap. Macamana pulak nak betulkan direction line tu kalau arahnya tersilap? Ada dua cara :-

i)               Buat proses Start Editing, kemudian double-click line yang salah direction, lepas tu right click dan pilih Flip. Tapi cara ni kena buat satu-satu manually.



ii)      Guna geoprocessing tools Flip Line. Cara ni boleh ubah direction banyak line serentak based on line yang kita select.



Katakan sekarang ni saya ada satu data layer sungai, dan saya nak check setiap line sungai tu betul tak directionnya. Nak tahu direction line sungai tu betul ke salah, kita kena faham dulu sifat sungai. Sungai akan mengalir dari hulu ke hilir, anak-anak sungai mengalir dari kawasan tinggi ke kawasan rendah seterusnya memasuki sungai-sungai utama yang lebih lebar. Bila dah faham tu barulah kita boleh tentukan yang mana satu direction sungai betul dan yang mana salah based on arrow symbol yang dipaparkan. Lihat contoh gambar di bawah. Sungai dalam bulatan merah menunjukkan arah sungai yang salah, seolah-olah sungai mengalir ke atas.

Kesalahan arah sungai

Dalam kes data sungai ni, dengan melihat pada symbol arrow di atas garisan, kita boleh mengenalpasti yang mana satu sungai arah betul dan yang mana salah. Untuk membetulkan sungai yang salah arah tu, kita boleh guna arahan Flip semasa buat editing atau guna tool Flip Line seperti yang saya mentioned sebelum ni. Tapi kalau data kita ada banyak line, sanggup ke kita nak semak satu persatu arrow kat line tu? Macam dalam kes saya ni, ada 66,088 line sungai yang saya nak semak.

66,088 sungai perlu disemak. Banyak tu...

Fuhh… kerja giler woo kalau nak check satu-satu sampai berpuluh ribu line. Mau kalau lepas buat keje edit nak tido malam tengok siling nampak sungai je..hahahah. Takde ke cara yang paling mudah??

Ada satu cara. Macam saya terangkan tadi, sungai mengalir dari kawasan tinggi turun ke kawasan rendah. Jadi secara logiknya, kalau kita boleh tahu nilai ketinggian Z di setiap hujung garisan sungai, kita boleh buat perbandingan jika nilai Z ending sungai lebih tinggi dari nilai Z starting sungai, maknanya error la tu, mana boleh sungai mendaki bukit.



Perhatikan line direction sungai dalam gambar atas ni. Sungai A didigit dalam arah yang betul, menurun bukit, jadi ketinggian titik mula digit (Z1) lebih tinggi dari titik akhir digit (Z2). Sungai B pulak digit arah salah, mendaki bukit,  jadi nilai Z dah jadi terbalik, Z1 lebih rendah dari Z2. Jadi kat sini kita boleh anggap, direction untuk sesuatu line sungai adalah salah jika Z1 < Z2. Betul tak? Maknanya kalau data sungai kita tu ada atribut Z1 dan Z2, kita boleh buat carian Z1 < Z2 untuk mencari sungai yang salah arah dan lepas tu run tool Flip Line utk betulkan semua line yang salah serentak. Tak perlu le kita cari satu-satu sungai yang salah tu manually.

Teorinya nampak macam senang kan? Hehehehe. Tapi persoalannya macamana nak dapatkan nilai Z kat setiap hujung line sungai tu? Dalam kes saya ni ada 66,088 line sungai ... maknanya kalau satu line sungai ada dua Z (Z1, Z2),  saya kena dapatkan 66,088 x 2 = 132,176 nilai Z. Huhuhu. Wait seminit…don’t panic. Tau tak, dalam ArcGIS Spatial Analyst kan, ada satu tool yang boleh pindahkan nilai Z dari raster DEM kepada layer point. Nama tool tu Extract Values to Points. Cara nak guna tool ni ada saya explain dalam post yang dulu2 kat link sini.  Maksudnya, kalau saya ada data raster DEM dan kalau saya boleh dapatkan point di starting dan ending setiap line sungai, saya dah boleh dapat dah nilai Z1 dan Z2.

Tapi sebelum saya story lebih lanjut lagi tentang point starting ending ni, kita ulangkaji sikit asas data vektor line. Lihat gambar berikut :-



Setiap satu line terbentuk dari beberapa siri point yang dipanggil vertex. Dikedua-dua hujung line tu pulak point tu dipanggil Node atau Start Point/First Vertex atau End Point/Last Vertex, bergantung pada arah line. Saya lebih suka guna istilah Node, sebab masa saya mula-mula belajar GIS dulu, itulah istilah yang cikgu saya guna. Setiap line dia akan ada From Node dan To Node merujuk pada arah line.

Kenapa saya terangkan mende ni? Sebabnya dalam ArcGIS ada satu tool yang dinamakan Feature Vertices to Points. Tool ni boleh convert data line kita kepada beberapa siri point bergantung pada jenis opsyen point macamana yang kita pilih dalam tool tu, samada nak semua vertex ke, first vertex ke, last vertex ke etc. Maksudnya, bila saya run tool ni, saya bolehlah dapat data point di setiap hujung line sungai, seterusnya nanti bolehlah saya gunakan point tu untuk ambil nilai Z dari data raster DEM.

Berbalik pada problem saya tadi, untuk saya kenalpasti arah line sungai yang salah secara serentak, macam ni lah step yang saya kena buat :-

  1. Run tool Feature Vertices to Points untuk dapatkan point di kedua-dua hujung line sungai
  2. Pindahkan nilai Z dari raster DEM kepada layer point tadi
  3. Joinkan table layer point kepada table layer sungai untuk dapatkan atribut Z dari layer point masuk ke dalam layer sungai.
  4. Buat carian pada layer sungai : Z1 < Z2
  5. Run Flip Line untuk betulkan arah 


Banyak kan step tu. Tapi biasa le, dalam GIS ni kadangkala nak dapatkan hasil akhir, kena melalui beberapa step dan prosedur. Sekarang saya akan terangkan satu persatu step tu.

Jana Layer Point
Mula-mula, kita kena dapatkan layer point dulu di kedua-dua hujung line sungai, merujuk kepada point start dan point end. Kita akan hasilkan dua layer point, satu untuk simpan semua point start dan satu layer lagi untuk simpan semua point end. Faham ye maksud start dan end tu? Kalau x sure, rujuk balik gambar yang ada penerangan start, end vertex sebelum ni. Nak hasilkan layer point ni, buat step seperti di bawah ni :-



Penerangan gambar :
  1. Melalui ArcToolbox, run tool Data Management Tools > Features > Feature Vertices to Points
  2. Untuk Input Features, pilih layer line sungai
  3. Namakan output layer. Dalam contoh ni, saya nak create start point dulu pada setiap line sungai. So saya namakan output saya River_L_Start. (Beri nama yang bersesuaian ni penting supaya nanti anda tak pening kepala bila dah banyak layer anda create)
  4. Oleh sebab saya nak create start point, saya pilih opsyen START.
  5. Klik OK.


Ulangi proses yang sama untuk generate point END pula. Bila dah complete step ni, saya akan ada 2 layer point, River_L_Start dan River_L_End.

Jana Nilai Z Pada Layer Point
Next, saya akan pindahkan nilai Z dari raster DEM masuk ke dalam setiap point yang saya jana tadi. Step ni akan hasilkan satu lagi output layer point, cuma bezanya kali ni layer point yang dihasilkan ni ada atribut nilai Z. Oleh sebab anda ada 2 layer point (start point, end point) yang dihasilkan sebelum tadi, anda kena buat step ni 2 kali, untuk setiap layer point. Stepnya seperti berikut :-



Penerangan gambar :-
  1. Melalui ArcToolbox, run tool Spatial Analyst Tools > Extraction > Extract Values to Points.
  2. Untuk Input point features, pilih layer point yang anda baru hasilkan dari step sebelum tadi.
  3. Pilih layer raster DEM
  4. Namakan output layer point yang akan dihasilkan. Dalam contoh ni, untuk input point River_L_Start, output saya namakan River_L_Start_Z.
  5. Klik OK.


Field tambahan RASTERVALU akan dibina dalam output layer point yang akan menyimpan nilai Z. Ingat ye, kena buat step ni dua kali, satu untuk layer start point, dan satu lagi untuk layer end point.

Join Table
Sekarang saya dah ada dua layer point yang masing2 ada nilai Z yang saya namakan River_L_Start_Z dan River_L_End_Z. Next, saya kena joinkan dulu table kedua-dua layer point ni ke table layer sungai. Sebab apa kena join? Sebabnya kita nak buat carian Z pada layer sungai, bukannya pada layer point. Kalau anda tak berapa faham konsep join table, boleh rujuk post saya sebelum ini di link sini.

Join table start point (Z1) dan end point (Z2) kepada table sungai


Untuk join table start point kepada layer sungai, buat step berikut :-




Penerangan gambar :-
  1. Right click layer sungai dalam TOC ArcMap dan pilih Join and Relates > Join…
  2. Pastikan anda pilih option Join attributes from a table
  3. Pilih field OBJECTID kalau anda guna data geodatabase. Kalau data point anda dalam shapefile, pilih field FID.
  4. Pilih nama layer start point yang ada nilai Z tadi.
  5. Pilih field ORIG_FID
  6. Klik OK.


Ulangi step yang sama untuk join table end point pula. Setelah selesai join kedua-dua table, buka table layer sungai tadi. Anda akan nampak hasilnya seperti di bawah ni. Terdapat dua field RASTERVALU, masing-masing merujuk kepada start point Z dan end point Z.



Carian Line Sungai Salah Arah
Next, buat carian sungai yang salah arah melalui kaedah Select by Attributes.



Oleh kerana field RASTERVALU tu kita join ke dalam table sungai, kita akan nampak “nama layer”.RASTERVALU pada senarai field dalam dialog Select by Attributes. Seperti dalam contoh gambar di atas, carian yang saya lakukan ialah "River_L_Start_Z.RASTERVALU" < River_L_End_Z.RASTERVALU
Hasilnya, terdapat 7,860 line sungai yang salah arah seperti dipapar dalam table di bawah ni.

Terdapat 7,860 dari 66,088 sungai salah arah

Perghhh banyak tu. Bayangkan kalau saya nak cari satu-satu manually. OK, persoalannya sekarang, boleh percaya ke result 7,860 tu? Tepatkah cara kaedah ni? Ketepatan result sebenarnya bergantung pada ketepatan data DEM anda dan juga ketepatan lokasi sungai bila anda overlay atas data DEM. Kalau overlay data lari, dah tentu resultnya pun lari.

Betulkan Arah Sungai
Now kita dah select sungai-sungai yang salah arah. Macamana nak betulkan menjadi arah yang betul? Caranya run tool Flip Line dalam ArcToolbox… tapi buat dulu proses Start Editing tau.



Penerangan gambar :-
  1. Melalui ArcToolbox, run tool Editing Tools > Flip Line
  2. Pilih layer sungai sebagai input features
  3. Klik OK.


Selesai sudah. Proses yang panjang ni sebenarnya anda boleh automate kan kalau anda familiar dengan ModelBuilder. Semua step tu anda boleh design dalam ModelBuilder. Fuuhhh…. 2 hari nak prepare tutorial ni. Harap-harap topik yang dikongsi bermanfaat untuk anda.

Selamat mencuba.