Showing posts with label Geoprocessing. Show all posts
Showing posts with label Geoprocessing. Show all posts

Thursday, 27 December 2018

Analisis Buffer Pelbagai Jarak

Dalam posting saya sebelum ni, saya ada bincangkan mengenai analisis Buffer. Lama benor dah posting tu, tahun 2013. Sedar tak sedar dah 5 tahun. Kebiasaannya orang akan buat analisis Buffer ni untuk create zon polygon berdasarkan jarak linear tertentu dari input data samada point, line atau polygon… seperti contoh gambar di bawah ni..



Sebelum ni, saya terangkan contoh nak create zon tu based on satu jarak tertentu saja, contoh run Buffer untuk semua line jalanraya untuk produce zon polygon 20m kiri kanan setiap jalan. Tapi mungkin timbul keperluan dimana anda nak create zon buffer utk sesuatu layer mengikut jarak yang berbeza-beza berdasarkan keperluan analisis tertentu. Contoh, mungkin anda nak bina zon buffer 100m di kiri kanan sungai utama manakala zon buffer 50m pulak untuk tributari sungai yang lain, seperti contoh di bawah ni.

Jarak zon buffer berbeza-beza mengikut tributari sungai

Contoh yang lain pulak, mungkin anda ada taburan point kes penyakit dan anda nak bina jarak zon pemantauan yang berbeza-beza berdasarkan kes penyakit tertentu.

Jarak zon pemantauan berbeza-beza mengikut kes penyakit.

Untuk bina zon buffer seperti ni, anda boleh gunakan option Distance – Field bila anda run tool Buffer. Toolnya masih sama, cuma anda pilih option Field masa nak masukkan Distance dalam dialog Buffer tu. Konsep Distance – Field ni seperti gambar di bawah ni…


Jadi maksudnya, sebelum guna option ni, anda kena readykan dulu satu field untuk simpan atribut jarak zon buffer. Maksudnya macam contoh layer sungai tadi, anda kena keyin dulu dalam table layer sungai untuk sungai utama, jarak zon 100m, dan sungai lain-lain jarak zon 50m… seperti contoh di bawah ni, saya masukkan atribut jarak zon buffer untuk setiap sungai dalam field Dist_Buff.

Masukkan jarak buffer untuk setiap feature

Untuk masukkan atribut jarak pulak, anda ada dua pilihan samada masukkan nombor sahaja atau nombor beserta unit. Sekiranya anda masukkan nombor jarak sahaja, ArcGIS akan anggap anda menggunakan nilai yang bersamaan dengan map unit. Maksudnya, jika layer sungai saya tadi dalam sistem koordinat RSO, atribut nombor yang saya masukkan akan mewakili unit meter.

Atribut nombor mewakili unit meter untuk data RSO

Fieldtype pula anda boleh bina samada Integer, Float, Double ataupun Text. Tapi kalau anda nak masukkan atribut nombor beserta unit (cth “5 kilometers”), fieldtype anda tu mestilah sebagai Text. Cuba lihat contoh table di bawah ni. Ketiga-tiga field tersebut mempunyai maksud yang sama walaupun berbeza fieldtype (Integer, Text).

Beberapa pilihan fieldtype dan syntax atribut jarak buffer

Oleh kerana dalam contoh ni, layer tu dalam RSO, jadi atribut dalam field Distance dan Distance2 mewakili unit meter. Sekiranya saya ingin meletak atribut nombor dalam kilometer, saya perlu bina satu field baru (Dist_Text) sebagai fieldtype Text dan letakkan word “Kilometers” dalam setiap atribut tersebut. Nama field tu sebenarnya anda boleh letak apa-apa nama saja ikut citarasa masing2.

So, bila semua atribut dalam field tu anda dah masukkan, run saja command buffer dan setkan field tadi dalam dialog Buffer seperti contoh di bawah ni. Kalau anda tak jelas macamana nak run command Buffer ni, rujuk semula post saya sebelum ni under topik Analisis Buffer.


Mudah saja… selamat mencuba… :)

p/s : Untuk anda yang berminat mendapatkan buku Tutorial ArcGIS Desktop, dapatkan buku SukaGIS Jilid 1 dan Jilid 2. Klik link berikut untuk info lanjut :-
Info Jilid 1

Info Jilid 2

Monday, 27 August 2018

Customize Toolbox Anda

ArcToolbox adalah salah satu framework yang disediakan dalam environment ArcGIS untuk buat geoprocessing task. Kalau anda biasa gunakan ArcToolbox ni, mesti tau kan dalam tu ada macam-macam toolbox dan tools yang kita boleh guna untuk data processing, analisis dan macam-macam lagi. Walaupun ada macam-macam tool, tapi kebiasaannya bukan semua tool pun yang kita selalu pakai. Mungkin hanya beberapa tool saja yang kita kerap guna untuk buat kerja seharian. Kadang-kadang tu, disebabkan banyak sangat tool, kita tak ingat tool yang kita nak guna tu duduk dalam toolbox yang mana satu… almaklumlah guna tool pun sekali sekala je.

Cuba lihat contoh kedudukan tool macam gambar di bawah ni.


Dalam contoh di atas, katakan saya kerap gunakan tool Clip, Buffer, Append dan Slope dalam kerja harian saya. Untuk gunakan keempat-empat tool tu, saya perlu cari dalam toolbox Analysis Tools, Data Management Tools dan Spatial Analyst Tools. Walaupun kalau tak ingat kedudukan tool, kita boleh gunakan kaedah Search tool dalam Search Window, tapi sebenarnya ada cara yang lebih mudah untuk groupkan kesemua tool yang kita kerap guna, secara tak langsung nak cari tool-tool tu pun lebih cepat.

Contoh Search Window yang anda boleh gunakan untuk search tool.


OK… sekarang saya akan tunjukkan macamana kita nak customize toolbox kita supaya semua tool yang kerap kita gunakan tu dikumpulkan dalam satu toolbox. Mula-mula, create dulu satu toolbox seperti step di bawah ni.


Penerangan gambar :-
  1. Right click folder di mana anda nak create toolbox dan pilih New > Toolbox.
  2. Namakan toolbox yang baru dibina tadi. Dalam contoh ni, saya namakan toolbox sebagai My_Toolbox.

Setelah anda create toolbox tadi, Copy saja tool-tool yang anda nak kumpulkan dan Paste ke dalam toolbox anda create tadi, seperti contoh step di bawah ni.



Penerangan gambar :-
  1. Right click tool yang anda nak kumpulkan dan pilih Copy,
  2. Right click toolbox yang anda baru bina dan pilih Paste.
  3. Anda akan dapati tool tadi dah wujud dalam toolbox yang anda baru create tadi.


Setelah saya copy keempat-empat tool tadi, toolbox saya akan kelihatan seperti di bawah ni :-


So lepas ni senang le, kalau saya nak guna tool Append, Buffer, Clip dan Slope, saya cari je tool tu dalam toolbox saya ni. Tak perlu saya tercari-cari dalam toolbox yang berlainan, so menjimatkan masa dan toolbox saya pun nampak lebih simple dan mudah, hanya fokus pada tool-tool yang saya selalu guna je dalam senarai toolbox.

Senang je kan? Selamat mencuba.

ps : Dapatkan buku SukaGIS Jilid 1 dan Jilid 2, buku tutorial ArcGIS Desktop terhangat di pasaran. Jika anda ingin lihat macamana isi kandungan buku ni, klik link ni utk preview buku.

Tuesday, 9 January 2018

Multipart dan Singlepart Feature

Pernah tak anda dapat situasi macam ni.. bila anda select satu feature dalam sesuatu layer, anda dapati ArcMap bukan hanya highlight satu feature yang anda select tu saja, tapi lebih dari satu feature. Lepas tu bila anda buka pulak table layer tu, anda dapati hanya satu record saja selected, padahal dalam map nampak lebih dari satu feature ArcMap highlight. Contoh macam gambar saya tunjukkan di bawah ni.


Dalam contoh tu, saya select polygon A, tapi polygon B, C, D, E dan F pun ArcMap highlight selected sekali. Bila saya buka pulak table polygon tu, satu record saja selected. Padahal kalau ikut logik, polygon A, B, C, D, E dan F semuanya 6 polygon. Jadi sepatutnya 6 record selected la kan? Memandai pulak ArcMap ni select 1 record je. Kenapa jadi macam tu? Haaa… tipah tertipu… feature macam ni dipanggil multipart feature. Seolah-olah beberapa feature digroupkan jadi satu, dalam contoh ni seolah-olah 6 polygon digroupkan jadi 1 polygon. Kadangkala multipart feature ni berguna juga, contohnya untuk kurangkan jumlah record dalam table sekiranya data anda tu besar sangat saiz. Boleh jadi juga multipart ni untuk anda gabungkan beberapa feature sekiranya mempunyai atribut yang sama, contohnya Pulau Langkawi yang mempunyai pulau-pulau kecil disekeliling, tapi kesemuanya mempunyai atribut DAERAH = Langkawi.


Tapi kadangkala kan, ada sesetengah kes tak sesuai pulak kalau kita gabungkan beberapa feature menjadi satu feature. Contoh katakan anda nak klik setiap polygon tadi dan nak tahu pulak berapa keluasan polygon tu. Kalau anda rujuk balik gambar polygon A, B, C, D, E dan F yang saya tunjukkan kat atas tadi, anda dapati dalam table tu ada maklumat keluasan disimpan dalam field Shape_Area. Tapi keluasan yang ditunjukkan tu mewakili jumlah luas kesemua polygon, sebab semua dah digroupkan jadi satu polygon. Macamana pulak kalau saya nak tahu polygon A luas berapa, polygon B luas berapa?? Dalam kes macam ni, anda kena ungroupkan semula polygon tu menjadi polygon-polygon berasingan. Bila anda dah ungroup, feature polygon ni dipanggil singlepart feature. Itulah maksud multipart dan singlepart.

OK.. macamana nak convert multipart feature jadi singlepart feature. Ada dua cara, bergantung pada keadaan bersesuaian. 

1) Explode Multipart Feature Tool

Cara pertama, guna tool Explode Multipart Feature. Bila masa sesuai guna tool ni? OK sendiri tanya sendiri jawab..kehkeh. Tool ni sesuai anda guna kalau feature yang anda nak ungroup tu tak banyak atau anda dah kenalpasti yang mana satu feature multipart yang anda nak convertkan ke singlepart. Tool ni anda kena guna dalam editing mode, maknanya kena buat proses Start Editing dulu le. Satu lagi, tool ni letak dalam toolbar Advanced Editing. So kena masukkan dulu toolbar tu.

Bila dah start edit, follow step kat bawah ni.

Penerangan gambar :-
  1. Untuk select feature, klik tool Edit Tool pada Editor Toolbar, kemudian klik kat feature yang anda nak tukar ke singlepart.
  2. Setelah feature tu ArcMap highlight, klik tool Explode Multipart Feature.


Anda akan dapati setiap polygon tadi akan menjadi polygon berasingan (tak semestinya polygon je, boleh juga untuk line dan point). Dalam contoh ni, setelah saya klik tool Explode Multipart Feature, saya dapati dalam table polygon tadi dah jadi 6 record bermaksud 6 polygon berasingan dan setiap record tu pulak menunjukkan maklumat keluasan setiap polygon dalam field Shape_Area.



2) Geoprocessing Tool : Multipart To Singlepart

Kalau anda rasa dalam layer anda tu ada banyak multipart feature dan anda sendiri tak pasti di mana lokasi multipat feature tu, cara yang paling mudah, run je tool Multipart To Singlepart dalam ArcToolbox. Cuma bezanya, cari ni akan hasilkan output layer yang baru yang akan mengandungi semua single part feature. Caranya seperti berikut ni.




Penerangan gambar :-
  1. Dalam ArcToolbox, klik Data Management Tools > Features > Multipart To Singlepart
  2. Kat ruangan Input Features, pilih layer yang anda nak convert ke singlepart.
  3. Namakan output layer.
  4. Klik OK.


Itulah dua kaedah nak tukar multipart ke singlepart feature yang saya nak kongsikan. Amacam, dah faham sekarang? Harap topik ni dapat membantu anda. Untuk anda yang berminat nak beli buku tutorial ArcGIS, dapatkan buku SukaGIS Jilid1 dan Jilid2 sementara stok masih ada.. :) 

Jumpa lagi….

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.



Monday, 10 April 2017

Menggabung Raster (Mosaic)

Dalam post saya sebelum ni, ada saya bincangkan tentang kaedah menggabungkan feature class menggunakan kaedah Merge. Tapi feature class ni melibatkan data vector, macam shapefile ke, geodatabase feature ke. Tapi kalau anda ada beberapa data raster, macamana anda nak gabungkan menjadi satu raster sahaja? Contoh cuba lihat gambar di bawah ni. Gambar ni menunjukkan dua data raster yang berasingan tetapi duduk bersebelahan.



Istilah menggabungkan data raster ni dipanggil Mosaic. Dalam ArcGIS ni, ada dua kaedah yang kita boleh gunakan untuk menggabungkan raster :-

  • Menggabung secara virtual menggunakan Mosaic Dataset. Mosaic Dataset ni sendiri sebenarnya adalah satu data model di dalam geodatabase. Maksudnya nak guna kaedah Mosaic Dataset, raster mosaic anda mesti disimpan di dalam geodatabase.
  • Menggabung secara kekal dimana data-data raster anda digabung menjadi satu layer raster (single raster dataset). Maksudnya macam dalam gambar di atas tadi, dua raster tu digabungkan menjadi satu raster.

Tak kira lah anda guna teknik mana-mana pun, hasil output raster tu boleh dikembangkan lagi sekiranya terdapat data raster baru yang nak dimasukkan. Contohnya dari dua data raster yang saya dah gabungkan jadi satu tu, kalau ada pulak raster yang baru bersebelahan dalam negeri Pahang yang saya nak gabungkan, boleh je.

Dalam contoh ni, saya akan tunjukkan cara gabungkan data-data raster secara kekal menjadi satu single raster dataset. Dalam ArcGIS, ada beberapa geoprocessing tool yang anda boleh guna kalau nak buat kaedah ni, bergantung pada  samada target output raster dah wujud atau tak. Antara tool tu adalah :-

  • Mosaic_To_New_Raster : gunakan tool ni kalau anda nak gabungkan data-data raster kepada output raster yang baru.


  • Mosaic : Tool ni anda guna kalau anda dah ada output raster tapi nak gabung atau nak tambah input raster baru ke dalam output raster tu.


  • Workspace_To_Raster_Dataset : Teknik ni sesuai kalau anda ada berpuluh atau beratus data raster dalam satu folder dan nak gabungkan serentak ke dalam output raster dataset.


Persediaan Sebelum Mosaic
Sebelum buat mosaic ni, pastikan dulu apakah Pixel Type/Depth yang anda nak setkan pada output raster nanti. Pixel Type/Depth yang anda pilih tu mesti match dengan Pixel Type/Depth pada data input raster yang anda masukkan, kalau tak nanti result output anda jadi tak tepat. Apa dia Pixel Type/Depth ni? Senang cite, Pixel Type/Depth ni akan tentukan nilai data yang anda boleh simpan dalam setiap cell raster anda tu. Rujuk rajah bawah ni untuk penerangan setiap Pixel Type/Depth dalam ArcGIS.



Macamana anda nak tahu input raster data anda tu guna Pixel Type/Depth yang mana satu? Senang je, anda boleh check dalam Properties, seperti cara di bawah ni.


Penerangan gambar :-

  1. Dalam Catalog, right-click input raster anda dan pilih Properties…
  2. Semak kat ruangan Pixel Type dan Pixel Depth
Dalam dialog Properties tu anda boleh tahu juga input raster data tu guna berapa jumlah Bands. Semua info-info ni berguna untuk anda setkan dalam output raster nanti.

Proses Mosaic
OK, oleh kerana saya decide nak gabungkan kesemua raster saya ni ke dalam target output raster yang baru, saya akan gunakan kaedah Mosaic_To_New_Raster. Caranya, follow step berikut :-


Penerangan gambar :-
  1. Dalam ArcToolbox, run tool Mosaic_To_New_Raster dalam toolbox Raster Management Tools > Raster > Raster Dataset
  2. Pilih input raster yang nak digabungkan.
  3. Pilih lokasi di mana anda nak simpan output raster tu. Kalau anda nak bina output raster geodatabase, pilih geodatabase. Kalau nak bina output sebagai fail raster, pilih folder.
  4. Namakan output raster dataset anda tu. Kalau anda nak bina format raster Grid atau raster geodatabase, tak perlu taip apa-apa extension. Kalau nak bina sebagai fail raster, ada beberapa format yang ArcGIS support seperti Erdas Imagine (.img), BIL (.bil), bitmap (.bmp), JPEG (.jpg) dan lain-lain.
  5. Tentukan Pixel Type/Depth
  6. Masukkan jumlah bilangan Bands.
  7. Yang lain-lain tu optional. Klik OK.

Hasilnya jadilah seperti gambar di bawah ni. Dua raster tadi digabungkan menjadi satu raster dataset.





Saturday, 1 April 2017

Clip Raster Mengikut Bentuk Polygon

Cuba perhatikan gambar data raster di bawah ni. Raster ni menunjukkan data DEM merangkumi area Sabah, Sarawak dan Kalimantan yang saya perolehi dari sample World Data ESRI.



Katakan, daripada data DEM ni, saya cuma nak extract layer raster DEM area Sabah saja, contoh macam gambar berikut ni.



Macamana caranya? Kalau anda perhatikan dalam senarai toolbox, ada satu tool dipanggil Clip. Sebenarnya ada dua tool Clip ni dalam toolbox, satu dalam Analysis Tools > Extract. Yang ni untuk anda potong data vektor mengikut bentuk Clip Layer. Satu lagi tool terletak dalam Data Management Tools > Raster > Raster Processing. Tool ni anda boleh gunakan untuk potong data raster anda mengikut area tertentu, samada mengikut bentuk kotak rectangle atau mengikut bentuk sempadan polygon data anda.

Tool Clip data vektor dan data raster

Contoh macam data DEM raster saya tadi, kalau saya nak potong data DEM tu mengikut bentuk sempadan negeri Sabah, pertama sekali saya kena ada dulu layer boundary Sabah dalam bentuk polygon. Ataupun kalau anda ada layer kombinasi semua sempadan negeri Malaysia, select dulu state Sabah. Contoh macam gambar berikut ni, saya select dulu area Sabah dan ArcMap akan hightlight selection symbol biru.

Select dulu boundary yang nak digunakan untuk Clip

Bila dah ready layer boundary polygon, buat step berikut ni :-



Penerangan gambar :-
  1. Dalam ArcToolbox, ‘double click’ tool Clip dalam Data Management Tools > Raster > Raster Processing.
  2. Pilih layer raster yang anda nak potong.
  3. Pilih layer boundary polygon.
  4. Jangan lupa check kotak Use Input Features for Clipping Geometry. Kalau tak nanti output raster anda akan jadi bentuk kotak rectangle.
  5. Namakan output layer raster. Format raster boleh dalam tiff, img, geodatabase raster dan macam-macam lagi. Dalam contoh ni, saya setkan output sebagai format img.
  6. Klik OK.


Result akan jadi seperti di bawah ni. Senang je kan? 



Ada satu lagi tool yang anda boleh cuba untuk buat fungsi yang serupa. Tool ni dipanggil Extract by Mask, terletak dalam toolbox Spatial Analyst Tools > Extraction. Tapi nak run tool ni kena ada extension Spatial Analyst dulu.

OK… selamat mencuba.. jumpa lagi... :)
p/s : Buku SukaGIS jilid 1 telah berada dipasaran. Kalau berminat boleh le buat tempahan ye.