Sunday, 26 February 2017

Find/Replace Atribut Teks Menggunakan Field Calculator

Apa khabar pembaca SukaGIS semua? Kali ni admin akan kongsikan satu lagi tips yang mungkin berguna untuk anda. Kalau anda biasa guna Microsot Office, mesti anda familiar dengan tool Find/Replace dalam Microsoft Word kan, fungsinya untuk cari perkataan yang anda nak gantikan dengan perkataan lain secara auto. Tapi pernah tak anda ada kes yang sama, cuma kali ni teks yang anda nak gantikan tu melibatkan atribut yang disimpan dalam table. Contoh mcm kes atribut seperti di bawah ni.



Dalam contoh tu, katakan anda nak gantikan format atribut ID dari 111-222-333 kepada 111/222/333, maksudnya anda nak gantikan character “-“ kepada “/”. Contoh satu lagi, anda nak gantikan word “Sungai” kepada “S.”. Kalau data yang nak betulkan tu sikit, takde masalah. Tapi bayangkan kalau ada berpuluh or beratus rekod nak tukar. Takkan kena taip satu-satu kot.. jenuh tu. So macamana nak buat?

Di sini saya kongsikan satu tips. Gunakan kaedah Field Calculator bersama function Replace. Format function Replace ni adalah :-

Replace ([nama field], “teks yang anda nak cari”, “teks yang anda nak ganti”)

Contohnya, kalau saya nak cari teks “-“ dan gantikan kepada teks “/” yang disimpan dalam field ID, formatnya adalah :-

Replace ([ID], “-“, “/”)

Contoh lain, kalau saya nak cari teks “Sungai” dan gantikan kepada teks “S.” yang disimpan dalam field NAMA, formatnya adalah :-

Replace ([NAMA], “Sungai”, “S.”)

OK, dah faham format function Replace tu? Sekarang dekat celah mana pulak nak taip function Replace tu? Mula-mula paparkan dulu table anda dalam ArcMap. Contoh macam table saya paparkan di bawah ni. Table ni menunjukkan maklumat point industri serta nombor ID untuk setiap point. Sekarang ni saya nak tukarkan format ID tu dari “-“ kepada “/”.



Lepas paparkan table, kalau nak selamat, mulakan Start Editing dulu.. manalah tau kot-kot tersilap nanti, boleh Undo. Lepas Start Editing, buat proses berikut :-




Penerangan gambar :-
  1. ‘Right-click’ field yang mengandungi atribut teks yang anda nak tukarkan. Dalam contoh ni saya ‘right-click’ field ID, kemudian pilih Field Calculator…
  2. Dalam dialog Field Calculator, taip Replace ([ID], “-“, “/”)
  3. Klik OK.


Hasilnya seperti di bawah. Cuba perhatikan atribut dalam field ID tu, dah bertukar kan?



Senang je kan. Selamat mencuba.


Sunday, 19 February 2017

Batch Geoprocessing

Bertemu kembali. Kali ni saya akan kongsikan topik berkenaan Batch Geoprocessing. Dalam ArcGIS, jika kita nak buat geoprocessing task, selalunya kita gunakan tool-tool dalam ArcToolBox. Contohnya, nak convert sistem koordinat kita guna tool Project, nak buat analisis zon penampan, kita guna tool Buffer, nak potong data ikut project area, kita guna tool Clip. Tapi anda perasan tak, kebanyakan tool geoprocessing ni, dia hanya accept 1 parameter input data saja. Kalau kita nak run gunakan lebih dari 1 input data, kita kena run berulang-ulang tool ni. Contohnya, cuba lihat dialog tool Clip di bawah ni.


Kalau anda perhatikan dalam dialog Clip tu, anda hanya boleh masukkan 1 layer saja kat ruangan Input Features. Kalau saya nak clip 4 layer contohnya, saya kena run tool Clip ni berulang-ulang sebanyak 4 kali. Contohnya kalau saya ada kes macam data di bawah ni.


Perhatikan saya ada 4 layer, Penempatan, Jalan, Sungai dan Mukim. Sekarang ni saya nak potong keempat-empat layer tu mengikut sempadan Project Area (sempadan kotak merah). Kalau saya nak run guna kaedah clip yang biasa, saya kena run tool Clip tu 4 kali, barulah saya akan dapat hasil seperti di bawah. Run Clip yg pertama, saya specify Input Features sebagai Penempatan, run Clip yg kedua saya specify Input Features sebagai Jalan dan begitulah seterusnya sampai complete keempat-empat layer.



Tapi di sini saya akan kongsikan 1 tips macamana nak dapatkan hasil tu dengan sekali run Clip sahaja. Caranya, gunakan kaedah batch. Follow steps berikut :-




Penerangan gambar :-
  1. Dalam ArcToolbox, klik Analysis Tools > Extract dan right click Clip, pilih Batch… (Anda boleh pilih Batch ni utk semua tool dalam ArcToolbox, tak semestinya tool Clip sahaja)
  2. Dalam dialog Clip, masukkan layer yang pertama nak clip kat Input Features
  3. Setkan clip layer di ruangan Clip Features. Dalam contoh saya ni layer Project Area.
  4. Setkan nama output layer yang nak dihasilkan dalam ruangan Output Feature Class.
  5. Nak masukkan layer kedua, klik butang +
  6. Ulang semula proses dengan masukkan layer seterusnya.
  7. Klik OK.

Mungkin anda akan cakap… “aaah… sama je, takde beza pun… kena gak buat satu-satu, masuk ulang-ulang.. “. Tapi cuba anda bayangkan kalau setiap satu layer yang anda nak clip tu datanya besar, untuk satu proses clip setiap layer mungkin ambil masa lama. Bayangkan kalau dekat 10 layer nak buat clip. Kalau nak buat kaedah Clip biasa, anda kena tunggu dulu sampai selesai 1 proses, baru boleh proceed nak clip layer yang kedua. Tapi kalau cara batch ni, anda tak payah tunggu pun. Klik je OK, lepas tu boleh terus tinggal komputer, pergi la bancuh kopi ke, pi ngeteh ke. Balik dari ngeteh tengok-tengok proses pun dah selesai untuk semua layer. Kan lagi senang kalau macamtu, menjimatkan masa anda.

Selamat mencuba.

Thursday, 9 February 2017

Buku SukaGIS

SukaGIS akan berada dalam buku tidak lama lagi.. mungkin dalam 2 bulan lagi. Boleh pre-order sesape yang berminat.. hehe

Banyak tips-tips tambahan yang tiada dalam blog yang boleh didapati dalam buku ni..




Friday, 6 January 2017

Membina Group Layer

Hari ni saya akan kongsikan satu topik yang agak santai.. berkenaan Group Layer. Ni untuk level basic.. sesiapa yang dah level advance or level otai maybe dah tau mende ni. Sesiapa yang dah biasa guna ArcMap mesti familiar dengan Table Of Contents (TOC) di dalam ArcMap kan? Bila kita masukkan layer ke dalam paparan ArcMap, layer-layer tu akan disusun di dalam TOC ni. Secara defaultnya, ArcMap akan susun layer point di atas, kemudian layer line dan last sekali layer polygon mengikut turutan. Kemudian kita susun-susun layer tu nak letak mana atas dan mana bawah mengikut kesesuaian.



Kadangkala kalau terlalu banyak layer kat dalam TOC tu boleh menyemakkan pandangan gak betul tak? Dari segi presentation pun tak bagus kalau terlalu banyak susunan layer, terpaksa kita scroll atas sampai ke bawah. Nak-nak kalau layer tu ada pulak klasifikasi symbology yang berjela-jela panjang, lagi lah bertambah panjang kita kena scroll.
Satu teknik yang boleh kita gunakan untuk mudahkan paparan dalam TOC ni ialah kumpulkan layer-layer yang berkaitan dalam 1 kategori atau 1 kumpulan. Dalam contoh gambar di atas, saya ada 8 layer di dalam senarai TOC :-
  1. Pili Bomba
  2. Parit
  3. Sungai
  4. Institusi
  5. Komersil
  6. Kediaman
  7. Mukim
  8. Daerah


Daripada 8 layer ni, saya boleh letakkan layer Parit dan Sungai di dalam kumpulan Hidrografi, Institusi, Komersil dan Kediaman di dalam kumpulan Bangunan dan Mukim serta Daerah di dalam kumpulan Sempadan Pentadbiran.



Macamana saya nak represent kumpulan ni di dalam TOC ArcMap? Caranya, kita bina Group Layer. Cara nak bina Group Layer senang je, kita cuma klik layer-layer yang kita nak kumpulkan sebagai 1 kumpulan, kemudian right-click dan pilih Group… macam step di bawah ni.




Penerangan gambar :-
  1. Klik layer-layer yang nak dikumpulkan (Tekan SHIFT untuk klik lebih dari 1 layer)
  2. Right click dan pilih Group
  3. Group Layer akan dibina dengan nama default New Group Layer
  4. Rename nama tu kepada nama yang sesuai mengikut kumpulan data

Gambar di bawah menunjukkan kesemua Group Layer yang telah dibina.



Anda boleh tutup semua layer di dalam satu kumpulan Group Layer dengan klik simbol  “-“ pada Group Layer tu.



Kalau nak lihat balik senarai layer dalam Group Layer, klik je simbol “+” pada Group Layer.



Jika anda offkan (uncheck) Group Layer, kesemua layer di dalam Group Layer tu tak akan dipaparkan dalam map walaupun anda check P layer tersebut. Seperti gambar di bawah, bila saya uncheck Group Layer Bangunan, kesemua layer bangunan (Institusi, Komersil, Kediaman) tidak dipaparkan dalam map.



OK macamana nak buang semula setting Group Layer? Kacang je, right click kat Group Layer yang anda nak buang dan pilih Ungroup.




Selamat mencuba..

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, 23 October 2016

Memapar Attribute Table di Layout ArcMap

Kadangkala saya ditanya macamana nak paparkan atribut dari dalam table untuk diletakkan di Layout ArcMap. Sebenarnya ada macam-macam kaedah anda boleh gunakan. Antaranya :-

a) Klik Add Table to Layout dari table yang anda buka.



b) Klik menu Insert > Object.. dan pilih fail Excel (kalau data anda tu dalam Excel format le)



c) Printscreen table dan add ke dalam layout sebagai picture.



d) Bina Report dan add report tu ke dalam Layout.



Mana-mana cara pun ok… semua boleh papar atribut ke dalam layout, tapi kalau anda nak paparan atribut yang lebih menarik dan nak kawal  format paparan teks (contoh nak list by Group atribut, sorting etc), gunakan kaedah yang last tu, bina Report.

Dalam tutorial ni saya akan tunjukkan macamana cara nak create report dan masukkan ke dalam Layout. Di sini saya tak tunjuk cara-cara nak buat Layout, anda boleh belajar di post saya sebelum ni di link sini.  OK… nk create report, mula-mula sekali anda kena tentukan source atribut yang anda nak letakkan dalam report tu. Anda boleh pilih samada nak pilih Layer ataupun dari Table yang berasingan dari Layer. Contohnya dalam post saya sebelum ni saya ada tunjukkan bagaimana saya create satu summarize table hasil dari analisis Frequency. Saya akan gunakan table tu untuk diletakkan dalam report dan dipaparkan dalam Layout yang telah saya bina.

Untuk create report, buat step berikut :-





Penerangan gambar :-
  1. Klik menu View > Reports > Create Report…
  2. Pilih Layer atau Table yang anda nak letakkan ke dalam report
  3. Pilih field yang anda nak letakkan dalam report.
  4. Klik arrow > untuk masukkan field yang dipilih tadi ke dalam ruangan Report Fields.
  5. Kalau anda klik button Dataset Options, anda ada beberapa pilihan untuk row yang nak diletakkan dalam report. Yang bagusnya dia ada option untuk anda letakkan hanya atribut based on apa yang anda query (Selected Set) dan Visible Extent (based on area yang anda zoom in).
  6. Klik Next>


Paparan di bawah pula akan dipaparkan. Disini anda ada pilihan samada nak formatkan paparan based on Grouping level. Dalam contoh ni saya groupkan report saya based on attribut dari field Semasa yang merujuk kepada kategori gunatanah semasa.



Penerangan gambar (alamak baru perasan le...gambar takde step nombor.. takpe le...cuba rujuk sendiri pada gambar ni ye...sorry tertinggal huhu)  :-
  1. Klik field yang anda nak setkan sebagai Grouping Level.
  2. Klik arrow >
  3. Klik Next.


Seterusnya paparan sort fields akan dipaparkan. Kalau anda nak sort record based on field tertentu, setkan field tu disini. Kalau taknak, klik saja butang Next >.



Seterusnya anda akan tiba pada paparan format layout dan orientation. Disini anda boleh setkan paparan orientation Potrait dan juga Landscape.  Klik butang Next >.



Anda akan tiba pula pada paparan Style Report. Ada macam-macam template Style Report yang disediakan. Anda boleh try and error klik je mana-mana style dalam list tu dan decide ikut citarasa anda style mana yang anda suka. Lepas tu klik Next >.



Seterusnya anda akan tiba pada paparan terakhir Report Wizard. Buat step seperti di bawah :-



Penerangan gambar :-
  1. Namakan tajuk report anda.
  2. Klik Finish.


Paparan Report Viewer akan dipaparkan seperti di bawah. Di sini anda boleh semak setting report anda. Kalau ada setting yang anda tak puas hati, anda boleh ubah semula.. contohnya kalau dilihat dalam contoh report di bawah, grouping teks “Institusi dan Kemudahan Masyarakat” dipaparkan tiga barisan. Katakan saya nak ubah pada paparan satu barisan teks dan column Shape_Area tu saya nak tukar pada nama Keluasan, saya boleh lakukan step seperti berikut :-




Penerangan gambar :-
  1. Klik butang Edit…
  2. Klik pada kotak header Grouping field dan adjust kelebaran saiz supaya teks atribut muat dalam satu barisan.
  3. Klik column Shape_Area
  4. Pada ruangan Text, rename kepada nama Keluasan.
  5. Klik butang Run Report.


Anda akan dapati paparan report berubah mengikut setting yang telah anda buat sebelum tadi. Jangan lupa klik button Save untuk save report anda. Untuk masukkan report tadi ke dalam Layout pula, buat step ni :-



Penerangan gambar :-
  1. Klik button Add report to ArcMap Layout.
  2. Pilih nak masukkan semua page atau page tertentu.
  3. Pilih nak letak garis border ke tak kat sekeliling repot. Saya pilih taknak letak supaya senang saya nak posisikan report ke mana-mana area layout tanpa mengganggu elemen peta yang lain (legend, north arrow etc).
  4. Klik OK.



Hasilnya seperti gambar di bawah. Posisikan report tu mengikut kesesuaian di atas layout.

Selamat mencuba.


Saturday, 22 October 2016

Analisis Frequency

Sebelum saya story dulu kegunaan analisis frequency ni, meh saya bagi gambaran dulu senario ni. Katakan anda ada satu data yang ada atribut yang dipecahkan dari kategori utama kepada beberapa sub kategori. Contohnya anda ada satu layer gunatanah yang ada atribut kategori utama gunatanah semasa dan dipecahkan pula kepada sub kategori aktiviti. Nak senang faham cuba lihat table pada gambar di bawah ni.



Dari gambar di atas, anda dapati kategori Pertanian terdapat beberapa pecahan sub kategori Kelapa Sawit, Getah, Tanaman-tanaman Lain etc. Kediaman pula ada sub kategori Kampung dan mungkin beberapa kategori lain. Industri ada sub kategori industri ringan, industri berat dll. Dan ada banyak lagi kategori atribut di dalam tu. Sekarang ni katakan anda nak tahu pula untuk setiap kategori, ada berapa kali kekerapan bilangan sub kategori (dalam kes ni berapa banyak jumlah polygon sebab data polygon) dan maybe berapa keluasan untuk setiap sub kategori tu. Contohnya anda nak tahu dalam kategori Pertanian, ada berapa banyak kekerapan tanaman getah dan keluasan, berapa banyak tanaman kelapa sawit dan keluasan, berapa banyak tanaman-tanaman lain dan juga keluasannya.



Di sinilah tool Frequency boleh membantu. Tool ni akan listkan unik atribut untuk field yang anda pilih bersama kekerapan bilangan untuk atribut tersebut. Penggunaan tool ni agak straight forward, yang penting anda kena faham dulu struktur table dan atribut yang anda nak analisis sebelum gunakan tool ni… maksudnya anda kena tahu dulu field mana yang merujuk pada kategori utama dan field mana pula yang merujuk kepada sub kategori.
OK, untuk buat analisis Frequency ni, follow step kat bawah ni :-



Penerangan gambar :-
  1. Dalam ArcToolbox, klik Analysis Tools > Statistics > Frequency
  2. Pilih layer yang nak analisis atribut tu.
  3. Namakan output table. Nak senang save je dalam geodatabase.
  4. Pilih field kategori utama dan field sub kategori. Boleh pilih banyak field, tak semestinya dua field je.
  5. Pilih field yang nak digunakan untuk summarize. Field ni mestilah atribut nombor. Dalam kes ni saya nak summarizekan kepada keluasan, so saya pilih Shape_Area.
  6. Klik OK.

Hasilnya anda akan dapat table seperti di bawah ni :-



Satu field baru nama FREQUENCY akan diwujudkan dalam table tu. Seperti dalam contoh gambar di atas, anda akan dapati output table yang dihasilkan menunjukkan dalam kategori Pertanian, ada 377 kawasan penanaman getah, 472 kawasan penanaman kelapa sawit dan 110 kawasan tanaman-tanaman lain. Setiap kawasan penanaman tu pula anda dah boleh tahu jumlah keluasannya (field Shape_Area).


Harap u all dapat idea sikit2.. Oops... sebelum terlupa, tool ni boleh run kalau anda ada license ArcGIS for Desktop Advance je (ArcInfo)... so kalau license Desktop Basic ngan Standard tool ni tak support.