Showing posts with label Query. Show all posts
Showing posts with label Query. Show all posts

Sunday, 12 May 2019

Tips : Carian Attribute Text Menggunakan Button LIKE


Salam Ramadhan semua,

Dalam post saya 7 tahun lepas topik Attribute Query vs Spatial Query, saya ada ceritakan kaedah nak buat carian maklumat dalam table menggunakan dialog Select by Attributes dalam ArcMap. Kalau yang dah beli buku SukaGIS Jilid 1 tu, anda boleh juga rujuk topik ni di mukasurat 113. Dalam topik kali ni, saya nak kongsikan satu tips buat carian atribut menggunakan salah satu button dalam dialog Select by Attributes tu. Sebelum tu, cuba perhatikan dulu gambar dialog Select by Attributes di bawah ni..



Perasan tak dalam dialog tu ada satu button nama dia button Like. Tahu tak macamana nk guna button Like ni untuk buat carian? Kalau button Like Facebook tu expert le ek macamana nak guna…kehkeh. OK.. fungsi button Like ni sebenarnya untuk buat searching sebahagian text dalam attribute anda. Maknanya nak guna button Like ni, attribute mesti dalam text, kalau attribute format number tak boleh guna button ni.

Sekarang saya bagi contoh senarai atribut seperti dalam table di bawah :-



Dalam contoh table tu, katakan anda nak senaraikan semua atribut Nama yang bermula dari perkataan ‘Pekan’. Macamana nak buat carian camni? Haaa… masa ni lah bergunanya button Like tu. Dengan menggunakan button Like dalam dialog Select by Attributes, anda boleh buat carian macam ni :-

Nama LIKE ‘Pekan%’

Result carian yang anda akan dapat adalah Pekan Kapar, Pekan Meru dan Pekan Batu Lapan Belas. Tanda percent % selepas perkataan Pekan tu bermaksud “cari semua nama yang bermula dengan perkataan Pekan dan tak kisah berakhir dengan apa2 perkataan”. Jadi tanda % ni anda boleh taipkan samada di akhir perkataan atau di awalan perkataan atribut, bergantung pada keperluan anda. Contohnya, lihat pulak atribut dalam table di bawah ni :-


Jika carian anda :-

Nama LIKE ‘%Batu%’

Result yang anda dapat ialah :-

Batu Tiga, Pekan Batu Sembilan, Puchong Batu Dua Belas

Tapi jika carian anda :-

Nama LIKE ‘Batu%’

Result yang anda dapat ialah Batu Tiga saja.

OK, satu lagi tanda % ni bergantung juga pada jenis data anda. %  ni valid untuk data File Geodatabase, Shapefile dan ArcSDE Geodatabase saja. Jika data anda tu Personal Geodatabase, gantikan % tu dengan *, contohnya Nama Like ‘Batu*’… senang je.

Di bawah ni contoh dialog Select by Attributes yang telah saya buat carian LIKE ‘%Batu%’ dan result yang diperolehi dalam table attribute. 



Kalau anda kurang jelas macamana nak gunakan  dialog ni, rujuk post saya Attribute Query vsSpatial Query sebelum ni or buka buku SukaGIS Jilid 1 page 113.

Okayyy… selamat mencuba..





Tuesday, 9 May 2017

Pelbagai Kaedah Selection

Cuba anda perhatikan kat menu ArcMap Selection > Interactive Selection Method. Ada empat pilihat kaedah selection :-

  1. Create New Selection
  2. Add to Current Celection
  3. Remove From Current Selection
  4. Select From Current Selection




Klik pulak kat menu ArcMap Selection > Select by Attributes. Dalam dialog Select by Attributes pun ada empat pilihat kaedah selection yang sama.



Tau tak apa maksud 4 pilihan selection tu? Bila masa-masa yang sesuai nak guna keempat-empat kaedah tu? OK… saya story sikit apa maksud keempat-empat kaedah selection ni. Mula-mula yang anda perlu tahu, kalau anda setkan 4 kaedah ni melalui Interactive Selection Method, setting ni hanya effect kalau anda buat selection cara interactive. Tau tak cara interactive tu macamana? Style selection interactive ni maksudnya anda klik tool Select Features kemudian anda klik-klik atau drag box di atas map untuk buat selection.



Kalau anda setkan 4 kaedah selection ni melalui Select by Attributes pulak, setting ni hanya effect untuk hasil selection yang anda buat melalui dialog Select by Attributes.
OK, sekarang kita tengok contoh-contoh untuk 4 kaedah selection ni.

Create New Selection

Ni adalah default setting untuk selection method dalam ArcMap. Bila anda set kepada kaedah ni, setiap selection pada data yang anda buat dalam Arcmap dikira sebagai selection yang baru. Maksudnya, setiap kali anda buat selection, selection sedia ada akan dihapuskan dan selection baru akan dihasilkan. Perhatikan gambar di bawah. Polygon outline biru adalah hasil selection secara interactive yang saya buat secara interactive melalui kaedah drag box mengikut lakaran kotak garisan merah.



Setiap kali selection yang saya buat melalui kaedah drag box ni, selection lama akan dihapuskan dan selection polygon baru akan dihasilkan.

Add to Current Selection

OK, sekarang katakan selection polygon saya seperti dipaparkan di bawah ni (polygon outline biru).



Kemudian baru saya perasan, alamak… polygon A, B, C tu tertinggal pulak dari selection, patutnya saya nak include sekali. So macamana cara yang senang nak buat? Kalau guna kaedah Create New Selection, kalau saya klik polygon A, B, C tu, nanti selection sedia ada akan hilang, sebab Create New Selection akan sentiasa menghasilkan result selection yang baru. Dalam kes saya ni, saya taknak hilangkan selection sedia ada tu, saya cuma nak tambah 3 lagi polygon masuk ke dalam hasil selection.
Jadi, cara yang senang, kita setkan kaedah selection kepada Add to Current Selection. Oleh sebab saya nak select polygon A, B, C tu dengan cara klik di atas map, jadi saya kena setkan dalam menu Interactive Selection Method,.. seperti di bawah ni.



Kemudian bolehlah saya klik ketiga-tiga polygon A, B, C tu, resultnya jadilah seperti di bawah.



Remove From Current Selection

OK, dalam contoh data saya ni, disebabkan data ni dalam format geodatabase, setiap polygon ada info keluasan yang disimpan dalam field Shape_Area. Next, katakan dari hasil selection sebelum tadi, saya taknak ambil kira polygon yang berkeluasan kurang dari 2000 meter square. Semua polygon yang berkeluasan kurang dari 2000 meter square mesti dibuang dari result selection sedia ada. Cara mudah, setkan kepada kaedah Remove From Current Selection. Cara senang nak cari polygon keluasan kurang dari 2000 meter square ialah gunakan kaedah Select by Attributes kan?? Sebab info keluasan tu dah ada dalam attribute table melalui field Shape_Area. So, setting Remove From Current Selection ni kena buat dalam dialog Select by Attributes le, jangan buat kat Interactive Selection Method pulak.



Seterusnya, selepas saya buat query Shape_Area < 2000, dapatlah result selection seperti di bawah. Kalau anda nak belajar macamana nak buat query guna dialog Select By Attributes ni, boleh rujuk post saya tahun 2012  sebelum ni di link sini.

Polygon berkeluasan kurang dari 2000 m square dibuang
dari result selection sedia ada (bulatan merah)


Select From Current Selection

Data yang saya gunakan dalam contoh ni adalah data gunatanah, so warna-warna polygon yang anda nampak tu ada info status gunatanah, Kediaman, Pertanian, Industri etc. Next, katakan dari senarai selection tadi, saya hanya berminat nak tahu info polygon yang berstatus atribut Kediaman sahaja. Sebelum tu, terlupa plak nak cerita.. macamana anda nak tahu ada berapa jumlah rekod hasil dari selection yang anda buat? Atau dalam kata lain, ada berapa jumlah polygon yang anda dah select tu? Cara senang, buka je atribut table, kat bawah table tu ada dinyatakan berapa jumlah selected. Macam dalam gambar di bawah ni, dinyatakan ada 68 rekod/polygon result selection daripada jumlah keseluruhan 1424 rekod/polygon.



Berbalik pada cerita tadi, kalau saya nak tahu ada berapa banyak polygon status Kediaman dari selection sedia ada, cara mudah saya setkan dulu method Select From Current Selection dari dialog Select by Attributes.



Kemudian saya buat query LUTYPE = ‘Kediaman’ (sebab dalam data saya ni, atribut ‘Kediaman’ disimpan dalam field LUTYPE). Dapatlah result seperti di bawah. Bila saya buka table, ada 17 record selected berbanding 68 record sebelum ini.



OK dah faham dah maksud keempat-empat kaedah selection tu? Jadi, gunakan ikut situasi yang sesuai kerana ia mungkin boleh menjimatkan masa anda.


Selamat mencuba.

p/s : dapatkan segera buku SukaGIS sementara stok masih ada. Untuk info lanjut, klik link ini.

Sunday, 1 January 2017

Mengira Jarak Terhampir - Point Distance

Selamat tahun baru 2017 kepada semua warga SukaGIS. Pejam celik pejam celik dah 5 tahun dah usia SukaGIS ni rupanya. Setakat ni blog dah mencapai 148,155 pageview dan page FB SukaGIS dah mencapai 1,390 like. Kira OK le tu. Sempena hari pertama bulan pertama tahun 2017 ni, saya akan kongsikan satu topik baru. Topik ni berkenaan Proximity Analysis pengiraan jarak. Saya bagi satu senario dulu. 

Katakan anda nak pergi ke sesuatu event, contohnya seminar ke, conference ke, kursus ke… dan anda nak cari lokasi hotel-hotel yang berdekatan dengan event tu untuk menginap. Selalunya kalau cerita pasal lokasi berdekatan ni, mesti kita nak tahu anggaran jarak kan??



So dalam ArcGIS, ada satu analisis yang dipanggil Point Distance. Analisis ni akan mengira jarak dari input point feature yang kita tentukan kepada setiap point feature yang berhampiran di sekeliling input point tu. Jarak yang dikira pula adalah jarak lurus radius disekeliling input point (lihat arrow gambarajah di atas tu). Syarat penggunaan tool ni seperti berikut :-

  1. Kena ada 2 layer point, ingat ye, layer point sahaja. Line ngan polygon tak jalan.
  2. Untuk kedua2 layer point tu,  1 layer mewakili input (dalam contoh ni, lokasi event) dan 1 lagi mewakili point2 terhampir (dalam contoh ni, hotel).
  3. Seelok-eloknya kedua2 layer point menggunakan sistem koordinat yang sama.
  4. Part ni leceh sikit.. anda kena guna lesen ArcGIS Desktop Advanced kalau nak execute tool ni. Desktop Basic/ArcView ngan Desktop Standard/ArcEditor tak support.


OK..next cara nak guna tool. Follow cara berikut :-



Penerangan gambar :-
  1. Dalam ArcToolbox, pilih Analysis Tools > Proximity > Point Distance
  2. Setkan Layer Input Point Feature.
  3. Setkan Layer Point Feature yang anda nak cari anggaran jarak tu.
  4. Namakan output table. Hasil pengiraan jarak akan diletakkan dalam table ni.
  5. Textbox Search Radius ni optional. Kalau anda isi, ArcGIS akan cari jarak disekitar radius yang anda masukkan saja. Kalau anda tak isi, dia akan kira jarak untuk kesemua point.
  6. Klik OK.

Macamana nak tengok hasilnya. Anda kena buka output table yang digenerate tu. Cuba lihat contoh output table yang dihasilkan di bawah ni.

Hasil analisis Point Distance


Anda akan dapati 3 field diwujudkan dalam table tu… INPUT_FID, NEAR_FID dan DISTANCE. OK… penerangan setiap field seperti berikut :-
  1. INPUT_FID : id unik untuk layer input point yang anda setkan tadi. Kalau input point anda tu shapefile, field ID ni = FID. Kalau anda gunakan layer geodatabase sebagai input point, field ID dia adalah OBJECTID.
  2. NEAR_FID : id setiap point yang berdekatan, dalam kes ni id hotel.
  3. DISTANCE : jarak dari setiap id point berdekatan kepada id input point (jarak setiap hotel ke lokasi event)


Tapi kalau tengok pada result dalam table tu, susah untuk anda tentukan hotel-hotel terhampir sebab result semua dalam bentuk nombor id, betul tak? Macamana nak tahu id 125 ni hotel mana, id 124 ni hotel mana.. kecuali anda kena check satu2 dengan buka table layer hotel plak… kan. Satu kerja la plak. So cara mudah nak buat camne?? Haaa kena la gunakan skill skit… guna kaedah join table. Anda joinkan field FID / OBJECTID dari table hotel kepada field NEAR_ID dari output table result tu.

Joinkan table untuk memudahkan mengenalpasti point terhampir

Result Join Table


Kalau tak faham macamana nak buat join table tu, boleh refer pada post saya sebelum ni di link sini.

Sekian… selamat mencuba.

Sunday, 29 March 2015

Spatial Join - Mengira Jumlah Point Di Dalam Setiap Polygon

Saya akan kongsikan satu tip yang mungkin berguna untuk anda. Katakan anda ada satu layer mengandungi sejumlah point dan satu layer mengandungi beberapa polygon. Mungkin anda ingin mendapatkan keputusan berikut :-

  1. Berapakah jumlah point kampung dalam setiap mukim?
  2. Ada berapa jumlah point punca-punca pencemaran dalam setiap subcatchment sungai? (soalan common kat Jab Alam Sekitar :) )
Kalau data point anda sikit mungkin bolehlah anda kira secara manual. Tapi macamana kalau ada beratus-ratus point? Atau beribu-ribu point? Jenuh tu nak kira manually.
 
Contoh taburan kampung dalam sempadan mukim

Gambar atas menunjukkan contoh data point kampung yang saya overlay dengan data polygon mukim. Dalam contoh ni, data point saya hanya mengandungi atribut nama kampung dan tidak dinyatakan setiap kampung tu terletak di dalam mukim mana. Sekiranya saya nak generate summary berapa banyakkah jumlah kampung yang ada dalam setiap mukim, cara yang paling mudah ialah saya gunakan kaedah Spatial Join.

Spatial Join dari point layer kepada polygon layer ni akan bagi kita 2 option iaitu :-
  • Samada kita nak summarize numeric atribut yang terdapat dalam point dan mendapatkan jumlah point dalam polygon atau :
  • Samada kita nak transfer atribute dari point masuk ke dalam polygon based on point yang paling hampir dari sempadan polygon (contoh mcm kita ada poygon lot dan nombor lot disimpan dalam layer point .. selalunya kes ni untuk data convert dari AutoCAD)

Option Spatial Join


OK, untuk buat Spatial Join, ikut step di bawah :-




Penerangan gambar :-
  1. Dalam Table of Contents ArcMap, right click layer polygon.
  2. Pilih Joins and Relates > Join…
  3. Make sure pilih Join data from another layer based on spatial location
  4. Pilih layer point yang anda nak summarizekan total.
  5. Sebab kita nak dapatkan total point, pilih option summary numeric attribute.
  6. Taip nama output layer samada shapefile atau geodatabase.
  7. Klik OK.


Hasilnya anda boleh semak dalam layer baru yang dihasilkan. Buka table untuk layer baru tu dan rujuk pada field Count_.

Contoh result, jumlah kampung dalam setiap
mukim ditunjukkan dalam field Count_







Wednesday, 22 October 2014

Editor Tracking - Mengenalpasti Siapakah dan Bilakah Tarikh/Masa Data Dikemaskini

Kali ni saya akan share dengan u all satu topik yang agak menarik dan mungkin amat berguna untuk digunakan dalam kerja seharian anda. 

Senario

"Siapa yang digit lot ni ye? Jalan ni bila masa dikemaskini ye?" Hmmmm... Sekiranya anda menguruskan transaksi data yang besar, contohnya lot gunatanah atau road network kawasan bandar, pernahkah timbul persoalan time bilakah sesuatu lot atau jalanraya tu diupdate, dan   sekiranya ramai editor yang terlibat dalam proses pengemaskinian, siapakah yang update sesuatu lot atau jalanraya tersebut??


Bagaimana anda nak track atau log proses editing yang berlaku di dalam data anda tu? Jawapannya ialah dengan menggunakan editor tracking di dalam geodatabase. Bila anda enable saja editor tracking pada data anda di dalam geodatabase ni, setiap perubahan edit yang berlaku pada data tu akan di log dan direkodkan di dalam field yang anda tentukan. Maklumat yang direkodkan melibatkan siapa yang edit dan bilakah tarikh dan masa proses edit itu berlaku. Contoh seperti gambar di bawah ni, setiap lot tu saya boleh tahu siapa yang edit dan bilakah tarikh dan masa diedit.



So macamana nak enable editor tracking ni dalam data anda? Mudah je, sesimple right click atau boleh guna juga tool di dalam Arctoolbox.

Enable Editor Tracking - Cara 1

Ni cara yang paling simple. Lakukan seperti step di bawah :-



Penerangan gambar :-
  1. Dalam ArcCatalog atau Catalog window, right click pada data dan pilih Manage
  2. Pilih Enable Editor Tracking...
  3. Dialog akan dipaparkan menyatakan 4 field akan dibina di dalam data anda iaitu created_user, created_date, last_edited_user dan last_edited_date. Klik Yes.
  4. Dialog pengesahan akan dipaparkan menyatakan editor tracking telah berjaya diset di dalam data anda. Klik OK.


Apabila anda buka properties pada data anda tadi, anda akan melihat ruangan tab Editor Tracking seperti di bawah:-



Step ni ada limitation sikit, seperti yang anda lihat, 4 field default yang dibina akan dinamakan sebagai created_user, created_date, last_edited_user dan last_edited_date.

created_user : siapa user yang mula-mula create feature
created_date : bila tarikh dan masa feature tu mula dicreate
last_edited_user : siapa user yang terakhir kemaskini feature
last_edited_date : bila tarikh dan masa terakhir feature tu dikemaskini

Kalau anda gunakan step ni, anda tak boleh ubah nama-nama field tu... dan step ni juga akan rekod tarikh dan masa dalam format UTC (Coordinated Universal Time). Sekiranya lokasi kerja-kerja editing anda hanya melibatkan time zone yang sama, contohnya anda kerja kat Malaysia je, takde nak replicate data ke oversea, ataupun data anda tidak dipublish sebagai feature service di dalam ArcGIS for Server, better anda guna Database Time Zone saja sebab format UTC ni kadang-kadang agak mengelirukan.

Enable Editor Tracking - Cara 2

Cara ni agak lebih fleksible. Anda boleh tentukan nama field anda sendiri dan boleh pilih samada nak guna format tarikh/masa dalam UTC atau Database Time. Caranya seperti di bawah :-



Penerangan gambar :-
  1. Dalam Arctoolbox, klik Data Management Tools > Fields > Enable Editor Tracking
  2. Pilih data yang anda nak set editor tracking.. mesti data geodatabase tau... shapefile cannot.
  3. Taip nama field untuk simpan user yang mula-mula create feature.
  4. Taip nama field untuk simpan tarikh/masa
  5. Taip nama field untuk simpan user yang terakhir kemaskini
  6. Taip nama field untuk simpan tarikh/masa terakhir kemaskini
  7. Klik checkbox Add fields if they don't exist (optional)
  8. Pilih DATABASE_TIME
  9. Klik OK


Di dalam contoh di atas, saya telah create 4 custom field untuk editor tracking iaitu Pengguna_Bina (macam lawak la plak nama field ni bila translate), Tarikh_Bina, Pengguna_Kemaskini dan Tarikh_Kemaskini manakala format tarikh/masa pula saya gunakan database_time.

Penggunaan Editor Tracking

Cuba lihat contoh data lot di bawah. Setiap lot yang saya klik menggunakan tool Identify akan memaparkan maklumat pengguna dan tarikh dikemaskini.



Sekiranya anda menggunakan personal atau file geodatabase, nama pengguna tu akan direkod mengikut Windows Login Name. Untuk ArcSDE Geodatabase pula, anda boleh pilih samada menggunakan Windows Login ataupun database login.

Sekarang lihat pula perubahan yang berlaku pada attribut apabila saya kemaskini lot terbabit. Contohnya saya pecah lot kepada dua bahagian. Perhatikan perbezaan attribut diruangan field Tarikh_Bina dan Tarikh_Kemaskini seperti di bawah ni :-



Maklumat di atas menunjukkan lot terlibat didigit bertarikh 16/9/2014 dan proses edit pecah lot berlaku pada tarikh 22/10/2014. Menarik kan? Maknanya saya boleh tahu bila tarikh dan masa proses edit berlaku dalam setiap lot dan siapa yang edit lot tu. Tapi perlu diingat, tracking editor hanya boleh track tarikh/masa TERAKHIR edit setiap feature dan bukannya track setiap tarikh berlaku perubahan edit dalam feature yang sama. Contohnya jika saya cantum kembali lot tu pada tarikh 23/10/2014, maklumat yang direkod pada Tarikh_Kemaskini hanya maklumat tarikh cantum, jadi saya tidak tahu history lot tu sebenarnya pernah berlaku proses pecah lot pada 22/10/2014. Sekiranya keperluan anda untuk track every changes yang berlaku dalam proses edit, mungkin kena guna teknologi Versioning dalam ArcSDE Geodatabase sebab Versioning boleh handle historical data.

Satu lagi yang menarik bila data anda ada maklumat tarikh/masa dalam setiap feature ni, of coz anda boleh buat query based on tarikh/masa. Contohnya saya nak kenalpasti lot yang dikemaskini selepas bulan September 2014.. jadi saya buat je query seperti di bawah :-




Try ler....

Sunday, 24 March 2013

Clip to Shape : Memapar Data Ikut Pelbagai Bentuk


Kadangkala bila anda nak design map anda dalam ArcMap Data Frame, anda nak supaya data anda tu mengikut sesuatu bentuk atau fokus kepada kawasan kajian anda sahaja. Contohnya macam ni.. saya ada dua layer.. (1) Layer mukim Semenanjung (2) Layer gunatanah daerah Kuantan. Tapi bila saya nak buat map, saya nak paparkan hanya gunatanah dalam mukim Kuala Kuantan sahaja... macam gambar di bawah ni..



Untuk anda yang biasa gunakan geoprocessing overlay analysis, mungkin anda rasa satu cara yang boleh dibuat ialah gunakan Intersect atau Clip analysis. Boleh juga... tapi geoprocessing analysis akan menghasilkan output dataset yang baru.. maksudnya nanti saya akan ada dua layer gunatanah.. satu layer gunatanah daerah Kuantan dan satu lagi layer gunatanah mukim Kuala Kuantan. Takde masalah sebenarnya, tapi kadangkala kalau ada banyak sangat temporary layer nanti, space storage anda makin lama makin bertambah sekiranya anda tak delete data-data yang tak diperlukan lagi. Lagipun anda nak create layer tu  hanya sementara sahaja untuk tujuan buat mapping.

Geoprocessing Clip/Intersect akan
menghasilkan output dataset baru


Satu cara yang mudah dan menjimatkan space ialah gunakan teknik Clip to Shape di dalam Data Frame. Kelebihan teknik ni ialah dia boleh paparkan data dalam ArcMap anda tu ikut pelbagai bentuk tanpa perlu menghasilkan dataset yang baru. Walaupun anda nampak data anda tu diubah dalam pelbagai bentuk, tapi sebenarnya dia tak alter actual data anda. Perubahan bentuk tu hanya untuk tujuan paparan sahaja.   Sekali lagi reminder, sekiranya keperluan anda tu nak create dataset yang baru, jangan gunakan teknik ni..gunakan analysis Intersect atau Clip. Rujuk gambar bawah ni untuk perbezaan teknik Clip to Shape berbanding teknik geoprocessing Clip/Intersect.

Perbezaan geoprocessing Clip/Intersect dan Clip to Shape


OK sekarang saya akan tunjukkan macamana nak buat Clip to Shape ni. Sekali lagi, objektif saya sekarang ialah nak create map gunatanah di dalam mukim Kuala Kuantan sahaja. Tapi data mukim saya sekarang ni menunjukkan mukim keseluruhan Semenanjung. Jadi mula-mula saya kena buat Definition Query dulu pada data mukim saya supaya hanya memaparkan polygon sempadan Kuala Kuantan sahaja. Untuk anda yang kurang faham macamana nak buat Definition Query, rujuk pada post saya tentang Definition Query di link sini. Hasil Definition Query saya akan jadi seperti gambar di bawah.

Hasil Definition Query layer mukim = 'Kuala Kuantan'


Seterusnya saya akan gunakan Clip to Shape untuk "potong" data gunatanah Kuantan saya tu supaya mengikut bentuk (shape) sempadan mukim Kuala Kuantan. Caranya seperti gambar di bawah :-



Penerangan gambar :-
  1. Right click dalam map anda dan pilih Data Frame Properties...
  2. Klik tab Data Frame
  3. Pada ruangan Clip Options, pilih Clip to shape
  4. Klik butang Specify Shape...
  5. Pilih option Outline of Features dan pilih layer yang akan menjadi rujukan shape. Dalam contoh saya ni layer Mukim
  6. Klik OK.


Tadaaa... hasilnya seperti di bawah ni.

Gunatanah di 'clip' mengikut 'shape' mukim


Shape yang anda nak papar tu bukan hanya mengikut bentuk sempadan polygon saja, tapi yang bestnya anda boleh juga buat free sketch untuk define shape tu..contohnya anda boleh gunakan Draw tool untuk lukis grafik atas peta tu, kemudian paparkan data anda mengikut bentuk grafik yang anda lukis. Contoh macam di bawah ni, saya lukis simple grafik di atas peta gunatanah saya.



Kemudian saya gunakan teknik Clip to Shape, tapi kali ni saya gunakan option Outline of Selected Graphic(s).. dan hasilnya seperti di bawah.

Gunatanah di 'clip' mengikut 'shape' grafik


So lepas ni kalau nak buat map untuk hasilkan data-data shape temporary tu, gunakan saja Clip to Shape. Selamat mencuba.


Sunday, 21 October 2012

ArcGIS Definition Query


Sebelum saya teruskan topik ni, anda semua mesti faham dulu konsep query ataupun carian maklumat di dalam pangkalan data. Kalau rasa-rasa tak sure, rujuk dulu topik query yang saya post sebelum ni di link sini. OK, pernah tak anda hadapi situasi macam ni.... anda nak buat map untuk menunjukkan sesuatu kawasan mukim atau daerah sahaja, tapi data yang anda ada tu menunjukkan keseluruhan negeri.  Nak memudahkan faham apa maksud yang saya cuba sampaikan ni, cuba perhatikan gambar di bawah. Gambar (A) menunjukkan keadaan data saya sekarang.. ada layer mukim, daerah dan sungai untuk keseluruhan Negeri Sembilan.. tapi saya nak cuba buat map macam dalam  gambar (B).. menunjukkan layer mukim, daerah dan sungai di dalam daerah Kuala Pilah sahaja.




Sebenarnya data yang dipaparkan pada gambar (B) adalah data yang sama yang dipaparkan pada gambar (A)..tanpa buat apa-apa proses editing atau analisis overlay.  Mungkin ada yang cakap... "owhh nak buat data jadi macam gambar (B) tu senang je, run saja geoprocessing overlay CLIP atau INTERSECT..."  OK... betul juga.. tapi proses geoprocessing tu akan menghasilkan layer yang baru.. maksudnya anda akan dapat layer baru untuk sungai, daerah dan mukim.
Ada satu lagi cara yang lebih mudah.. tak perlu run geoprocessing, tak perlu editing nak delete polygon or line... iaitu menggunakan kaedah Definition Query... ni yang saya nak share untuk topik kali ini.

Konsep Definition Query

Kalau anda familiar dengan carian maklumat menggunakan Attribute Query di dalam ArcMap, kaedah Definition Query ni sebijik sama macam Attribute Query. Kalau Attribute Query tu, anda buka window Select by Attributes tu, pastu buat query menggunakan SQL statement kan?? Macam contoh gambar bawah ni...



So kalau sebijik sama, apa bezanya?? Bezanya dari segi result query yang dipaparkan. Lihat contoh perbezaan result seperti di bawah.

Perbandingan result Attribute Query dan Definition Query


Dalam gambar (A), saya buat carian daerah Kuala Pilah menggunakan kaedah Attribute Query. Hasilnya, daerah Kuala Pilah di highlight warna outline biru (default color selection ArcMap) di atas peta... tapi daerah-daerah lain masih dipaparkan. Dalam gambar (B) pula, saya buat carian yang sama, tapi menggunakan kaedah Definition Query. Hasilnya hanya polygon daerah Kuala Pilah sahaja dipaparkan... daerah-daerah lain tu hilang.. bukan maksudnya dia delete, cuma dia sorokkan sekejap dan ArcMap cuma paparkan polygon yang saya query sahaja. Tulah bezanya.

Jadi kalau anda lihat penerangan saya tadi, nak buat Definition Query ni, syarat pertama sekali, data anda tu mesti ada attribute yang boleh anda querykan. Contohnya dalam ketiga-tiga layer mukim, daerah dan sungai saya tadi, saya ada attribute nama daerah.  Sebab tu saya boleh buat query daerah Kuala Pilah untuk ketiga-tiga layer tadi. Kalau takda attribute yang boleh dibuat query nak buat macamana?? Kalau macam tu..terpaksalah anda buat geoprocessing overlay, guna CLIP ke, INTERSECT ke...

Cara Nak Buat Definition Query

OK, kalau dah faham konsep dia, macamana nak buat query ni. Mudah saja. Caranya seperti gambarajah di bawah. Kalau gambar tu tak clear, klik kat gambar tu untuk besarkan..



Penerangan gambarajah :-
1. Right click layer yang nak buat Definition Query dalam Table of Content ArcMap pastu dan pilih Properties
2. Bila dapat window Layer Properties, klik tab Definition Query
3. Klik butang Query Builder
4. Buat proses query macam kaedah Attribute Query
5. Hasil query akan dipaparkan dalam ruangan Definition Query. Semak dulu syntax dalam ruangan tu betul ke tak sebelum klik OK.

Dalam contoh tadi, saya buat Definition Query untuk layer daerah. Di dalam query builder tu, saya buat query [DISTRICT] = 'Kuala Pilah'.. hasilnya seperti di bawah ni.



Kalau anda lihat result tu, hanya polygon daerah Kuala Pilah dipaparkan. Tapi mukim dan sungai masih dipapar untuk keseluruhan Negeri Sembilan. Jadi saya perlu ulang proses tadi, cuma kali ini proses Definition Query yang perlu saya buat adalah untuk layer mukim dan sungai pula. Bila saya dah buat query untuk ketiga-tiga layer tu, dapatlah result seperti di bawah ni.



Senang je kan.. tak payah dah buat analisis CLIP, cuma syaratnya macam saya bagitau tadi ler, mesti ada attribute yang boleh kita query.