Thursday, 28 February 2013

Berkursus Sambil Menikmati Angin Sejuk Cameron

Grrrrr sejukkk.... kali ni training GIS buat kat Cameron Highland. Peserta pula dari JPS Terengganu. Angin ngan hujan menambahkan lagi kegigilan saya..hehe.  Kursus ni hanya kursus asas ArcGIS, tapi memandangkan peserta dah ada fokus projek apa yang nak dilakukan, saya ubahsuai sikit silibus dan lebih tumpukan pada apa yang peserta nak. Fokus exercise lebih pada data conversion dan cleaning data lot dalam AutoCAD dan juga conversion data RT JPBD dari format MapInfo kepada Geodatabase. 


Lokasi kejadian

Hasil conversion data lot AutoCAD dan MapInfo RT JPBD 


Memandangkan aktiviti malam agak kurang di Cameron, jadual kursus pun diubahsuai ikut persetujuan kedua2 pihak. Kursus start pagi 9am hingga 12pm pada hari pertama, kemudian disambung 9pm-11mlm. So petang tu bolehlah ronda-ronda kejap cari ole-ole. Hari kedua pula macam biasa kursus 9am-5pm dan disambung perbincangan pada sebelah malam.

Menikmati panorama ladang teh


Cari ole-ole




Jagung cameron memang manis



Diharap peserta berpuas hati dengan kursus ni dan memberi manfaat dalam kerja-kerja seharian. 

Testing access sukagis dari tab ngan smartfon

Antara peserta-peserta





Untuk gambar-gambar lain bolehlah melawat fb sukagis di link ni. Terima kasih.


Sunday, 24 February 2013

Nak Link Table : Join atau Relate?


OK..kali ni kita sentuh sedikit tentang konsep Relational Database dan penggunaannya di dalam ArcGIS. Anda yang dah biasa gunakan data-data spatial seperti shapefile atau geodatabase featureclass tentu tahu kan, setiap featureclass akan ada table masing-masing yang dipanggil Feature Attribute Table (FAT). Setiap feature ni mempunyai ID unik di dalam FAT tersebut yang dipanggil Feature Identifier (FID).  FID ni bertujuan untuk menghubungkan setiap feature point, line, polygon pada rekod di dalam table. Sebab tu dalam GIS, bila anda query table, feature akan dihighlight di atas peta, dan kalau anda select feature di atas peta pulak, rekod di dalam FAT tu pun akan dihighlight. Semua tu berlaku sebab adanya FID ni.



Maklumat dalam table FAT tu anda boleh juga link ke table-table yang lain. Cuba bayangkan di jabatan anda dah ada sistem pangkalan data yang menyimpan maklumat terperinci sesuatu lot tanah, contohnya nama pemilik tanah, maklumat cukai, kategori tanah, hakmilik dan lain-lain. Sekiranya anda dah ada layer lot, semua maklumat ni boleh dilink ke table FAT layer lot anda supaya analisis lebih terperinci boleh dibuat kat layer lot anda tu.

Di dalam ArcGIS, maklumat dari satu table boleh dilink ke table yang lain kerana data model di dalam ArcGIS adalah berasaskan kepada konsep Relational Database. Dalam kata lain, maklumat dari satu table boleh dikaitkan(relate) dengan table yang lain asalkan dalam kedua-dua table yang nak di link tu ada column yang menyimpan maklumat attribut yang sama. Contohnya katalah layer lot anda ada maklumat nombor lot yang unik, table pemilik lot pun ada nombor lot yang unik, so bolehlah anda linkkan layer lot tu ke table pemilik lot menggunakan column nombor lot.



Di dalam ArcMap ada dua kaedah untuk anda linkkan table ni iaitu kaedah Join dan kaedah Relate. Bezanya, Join akan merge table yang anda link menjadi satu table.

Join akan merge dua table menjadi satu table


Relate pula tak akan merge table anda, sebaliknya table anda still maintain table yang berasingan, tetapi ArcGIS tahu ada connection antara table yang anda link tu dan bagaimana nak panggil related record tu.

Relate akan maintain table berasingan tetapi match record
akan dilinkkan.

Jenis Relationship

Jadi...macamana nak tahu bila masa nak pakai Join dan bila masa nak pakai Relate? Jawapannya anda kena tahu dulu jenis relationship antara table yang anda nak linkkan. Untuk nak faham jenis relationship ni, anda kena faham dulu maksud berikut :-

  • Origin table
  • Destination table
  • Primary Key
  • Foreign Key




Sekarang perhatikan gambar A,B,C dan D di bawah :-

Jenis relationship


Di dalam konsep Relational Database, terdapat 4 jenis relationship yang asas iaitu :-

  • one-to-one (1-1)
  • one-to-many (1-*)
  • many-to-one (*-1)
  • many-to-many (*-*)


Alamak, banyaknya jenis relationship. Macamana kita nak tahu jenis relationship antara table yang kita nak link tu yang mana satu dari 4 kategori tu. Jawapannya anda kena tahu dulu table mana yang anda anggap sebagai Origin dan table mana yang anda anggap sebagai Destination.  Kita ambil semula contoh gambar di atas. Katakan anda nak link table pemilik ke table layer lot. Dalam kes ni lot akan menjadi Origin dan table pemilik akan jadi Destination. Field/column dari table lot yang akan anda gunakan untuk link dipanggil Primary Key manakala field/column dari table pemilik yang akan dilink dipanggil Foreign Key.

Cara bacaan jenis relationship pula adalah dari Origin Table ke Destination Table. Maksudnya relationship rajah A ialah one-to-one, rajah B one-to-many, rajah C many-to-one dan rajah D many-to-many.

Kenapa perlu faham dulu jenis relationship ni? Sebabnya jenis relationship ni akan menentukan kaedah mana yang sesuai anda gunakan untuk link table dalam ArcMap, samada kaedah Join atau kaedah Relate. Join digunakan sekiranya relationship anda many-to-one atau one-to-one. Relate pula sekiranya data anda one-to-many atau many-to-many.

Kaedah Join

Sekarang kita lihat kembali contoh di bawah.

Contoh many-to-one


Saya ada layer landuse tapi dalam table landuse saya hanya menyimpan maklumat landusecode. Kalau saya nak design peta landuse untuk cetakan, takkan kat Map Legend tu saya nak letak kod betul tak. Nanti orang baca peta saya pun tak faham, apa maksud kod 1, kod 2, kod 12 etc. Kebetulan saya ada satu table berasingan yang menyimpan penerangan untuk setiap landusecode tersebut. Jadi saya boleh linkkan kedua-dua table ni untuk mendapatkan penerangan jenis gunatanah, seterusnya saya boleh gunakan maklumat jenis gunatanah tu sebagai Map Legend di atas peta saya.
Kalau lihat dari Origin dan Destination tu, apa jenis relationship dia? Many-to-one kan? So kalau many-to-one kita guna kaedah apa? Jawapannya Join. Untuk Join, rujuk step gambar di bawah :-



Penerangan gambar :-
  1. Right click kat layer Origin dan pilih Join and Relates > Join...
  2. Pastikan anda pilih Join attributes from a table
  3. Pilih field Primary Key dari Origin Table. Dalam contoh ni field dari layer Landuse.
  4. Pilih nama Destination Table yang anda nak linkkan.
  5. Pilih field Foreign Key dari Destination Table.
  6. Klik OK.


Lepas anda join kedua-dua table tu, bolehlah anda gunakan maklumat penerangan kod landuse tu untuk buat analisis dan mapping.



Kaedah Relate

Untuk contoh berikutnya, saya ada layer stesen kualiti sungai yang mengandungi ID unik stesen. Seterusnya di jabatan saya ada satu table yang menyimpan maklumat cerapan kualiti sungai setiap bulan mengikut stesen. Katakan saya ingin melihat berapakah bacaan kualiti sungai di setiap stesen pada bulan Januari, Februari sehinggalah Disember pada tahun-tahun tertentu. Ini adalah satu contoh one-to-many kerana satu stesen ada banyak bacaan kualiti sungai (Jan, Feb, Mac.... Dis). Disebabkan jenis relationship adalah one-to-many, saya akan gunakan kaedah Relate untuk link maklumat kedua-dua table ni.
Rujuk gambar di bawah untuk steps kaedah Relate :-



Penerangan gambar :-
  1. Right click kat layer Origin dan pilih Join and Relates > Relate...
  2. Pilih field Primary Key dari Origin Table. Dalam contoh ni field dari layer Station.
  3. Pilih nama Destination Table yang anda nak linkkan.
  4. Pilih field Foreign Key dari Destination Table.
  5. Namakan Relate anda.
  6. Klik OK.


Bila kedua-dua table tu dah relate, macamana anda nak lihat result dari relate tu? Ada dua cara.. kalau anda guna kaedah Identify, maklumat related record tu akan dipapar di Identify Window. Rujuk gambar di bawah :-



Penerangan gambar :-
  1. Klik tool Identify
  2. Klik station yang anda nak paparkan maklumat di peta.
  3. Maklumat dari Origin Table akan dipaparkan. Klik pada Primary Key.
  4. Nama Destination Table dipapar. Klik pada nama Destination Table.
  5. Senarai record yang match akan dipaparkan. Klik pada setiap rekod.
  6. Detail maklumat setiap rekod dari Destination Table akan dipaparkan.

Tu kalau anda nak lihat maklumat Destination Table guna kaedah Identify. Kalau anda guna kaedah Query, record dari Destination Table yang match akan dipapar kalau anda klik button Related Table dari Origin Table. Contoh seperti gambar di bawah:-



Ok..sekarang dah faham bila nak guna Join atau Relate? Senang je kan. Secara ringkasnya :-

one-to-one  : Join
many-to-one : Join
one-to-many : Relate
many-to-many : Relate




Sunday, 17 February 2013

Analisis Cross-Section Profile Guna Free Tool - ET Surface


Kali ni saya nak share satu tools percuma yang boleh digunakan bersama ArcGIS Desktop... ET Surface. Agak menarik juga tools ni bila saya cuba-cuba. Kesemua tool yang terdapat dalam ET Surface ni sebenarnya adalah tool-tool yang terdapat dalam ArcGIS 3D Analyst dan Spatial Analys, tapi yang bagusnya nak run tool ni anda tak payah ada license 3D dan Spatial Analyst pun. Waaaa... best ni.. maknanya boleh buat slope analysis, 3d analysis semua.



Tapi namanya pun free version... for sure ada limitation. Kalau yang takde limitation tu kena purchase license dia. Tapi walaupun ada limitation, sesetengah tool dalam ET Surface ni still relevan dan sesuai anda gunakan, contohnya analysis cross-section profile dalam ni yang saya rasa lebih fleksible berbanding dengan cross-section profile dalam 3D Analyst.

OK...nak download ET Surface ni anda boleh ke website http://www.ian-ko.com  Sebenarnya kat website tu ada banyak lagi free ArcGIS tools yang anda boleh cuba. Dan yang bagusnya anda boleh pilih nak download ikut version ArcGIS anda. Supported version ialah dari ArcGIS 10.1 sehinggalah latest version 10.5.

Pilih saja nak download mengikut version ArcGIS anda


Lepas download tu, double-click je file setup dan ikut arahan seterusnya. Bila dah complete install, buka ArcMap anda, dan sepatutnya anda akan nampak ET Surface dalam senarai toolbar anda. Aktifkan toolbar ET Surface tu, dan bila anda klik button ET kat toolbar tu, anda akan dapat senarai penuh tool-tool dalam ET surface seperti gambar bawah ni.

Senarai tools dalam ET Surface


So dari situ anda pilih je lah nak buat Interpolate Surface ke, TIN Surface Analysis ke, Raster Surface Analysis ke dan macam-macam lagi. Sekarang saya akan tunjuk macamana nak buat analisis cross-section guna ET Surface ni. Mudah saja, rujuk gambar di bawah :-



Penerangan gambar :-
  1. Klik button Draw cross-section line
  2. Lakar garisan scross-section atas surface (anda perlu ada surface 3D dulu samada raster atau TIN)
  3. Profile cross-section akan dipapar mengikut lakaran anda tu.


Satu lagi yang saya suka ialah selain dari cross-section tu dia papar di profile graf, anda juga ada option nak papar profile cross-section tu di atas map anda. Contoh macam gambar bawah ni :-

Profile cross-section boleh dipapar di lakaran atas map


Penerangan gambar :-
  1. Pada graf profile tu, klik menu Profile > Draw Profile on View
  2. Pilih nama surface anda.
  3. Klik OK. Anda boleh juga klik Preview untuk test tengok profile tu di atas map.
  4. Garisan profile di papar atas map.


Satu lagi features yang saya suka kat graf profile cross-section ni ialah anda boleh overlay layer atas garisan cross-section tu. Contohnya katalah saya buat garisan cross-section di atas layer landuse seperti gambar di bawah ni.



Bila saya buat graf profile cross-section, saya ada option untuk overlay layer landuse tu di atas graf profile. Dari situ saya boleh analyze lebih detail, contohnya pada profile ketinggian 1200m hingga 1400m pada jarak tertentu, landuse apa yang terdapat pada ketinggian tersebut. Wahhh bagus ni. Rujuk gambar bawah ni macamana cara-cara nak buat tu.

Maklumat layer landuse dipapar di atas profil cross-section


Penerangan gambar :-
  1. Pada graf profile, klik menu File > Add Layer
  2. Pilih layer yang nak overlay. Dalam contoh ni landuse.
  3. Pilih surface.
  4. Pilih field dalam layer overlay tu yang nak digunakan sebagai label pada graf.
  5. Klik button Finish.
  6. Perhatikan layer landuse tu bersama label di overlay di atas garisan cross section. Color symbology landuse juga akan mengikut color yang telah anda set di map anda.

Menarik kan? Free pulak tu..hehe. OK selain dari cross section, banyak lagi tools yang anda boleh cuba dalam ET Surface ni. Saya ada jugak cuba run slope analysis, tapi output raster slope saya ada pulak label "ET" kat tengah-tengah data slope tu. Dia nak suruh purchase license le tu kalau nak hilangkan "ET" tu..:) :).

Ada caption "ET" plak bila generate slope...adehh..


OK...amacam...cool tak free tool ni? Selamat mencuba.

Friday, 15 February 2013

Menjana Koordinat XY Dari Data Point


Walaupun melalui data geospatial anda boleh mengetahui kedudukan atau lokasi sesuatu point feature, tapi kadangkala anda perlukan maklumat koordinat di setiap lokasi point tersebut.. mungkin untuk tujuan rekod inventori untuk dimasukkan ke dalam database jabatan anda, atau mungkin anda perlukan info koordinat tu sebagai input untuk sistem atau applikasi yang lain. Tapi katalah table point tu takde info koordinat XY.. hmmm macamana nak dapatkan info koordinat tu?

Cuba lihat gambar di bawah. Dalam contoh tu, saya ada point taburan industri dan maklumat dalam table point industri tu hanya ada nama kawasan industri dan nama subbasin. Tapi tiada info koordinat XY untuk setiap point tu. 

Table point tiada koordinat XY


Sekarang saya akan jana koordinat XY untuk setiap point tu. Caranya mudah saja. Gunakan command Add XY Coordinates dalam ArcToolbox. Rujuk gambar di bawah :-



Penerangan gambar :-
  1. Buka ArcToolbox dan doubleclik Data Management Tools > Features > Add XY Coordinates
  2. Pilih Input Features. Dalam contoh ni point industri.
  3. Klik OK


Hasilnya seperti gambar di bawah. Dua field tambahan akan dibina dalam table tu (POINT_X, POINT_Y) dan setiap satunya akan menyimpan koordinat X dan Y.

Koordinat XY dijana selepas run command Add XY Coordinates


Koordinat yang akan dibina ialah merujuk kepada sumber sistem koordinat data anda. Maksudnya kalau point data anda tu source coordinate dia RSO maka koordinat yang akan dijana pun   adalah dalam RSO..seperti contoh data saya ni. Kalau anda nak jana kepada sistem koordinat yang lain, contohnya Darjah Perpuluhan WGS84, anda perlu project dulu data anda tu ke sistem koordinat WGS84, kemudian barulah anda run command Add XY Coordinates tu. Kalau anda kurang faham bagaimana steps nak project data anda tu ke sistem koordinat yang lain, rujuk post saya sebelum ni tajuk "Menukar sistem koordinat : RSO - WGS84, WGS84 - RSO, RSO - Cassini dll"

Selamat mencuba :):).


Saturday, 9 February 2013

Penggunaan Dataset LIDAR dalam ArcGIS


Baru-baru ni saya cuba memanipulasi data LIDAR di dalam ArcGIS 10.1. Saya ni bukanlah pakar dalam teknologi remote sensing,  image processing dan seumpamanya, tapi apa yg saya nak share disini, jika anda ada knowledge dlm bidang-bidang yang saya sebut tadi, anda boleh gunakan kelebihan feature baru dalam ArcGIS Desktop 10.1 untuk menganalisis data-data LIDAR.

LIDAR (Light detection and ranging) adalah satu teknologi remote sensing menggunakan sistem laser scanner yang membolehkan kita mendapatkan sampel2 point (dipanggil juga point cloud dataset) yang padat dalam 3D. Data-data ini seterusnya boleh dianalisis untuk menghasilkan DTM, DSM dan lain-lain.

Kelebihan dalam ArcGIS 10.1 ialah anda boleh direct baca data LIDAR ni tanpa perlu proses conversion atau import/export. So..kalau nak guna feature baru ni, terpaksalah anda upgrade version kalau still guna version lama..huhuhu..(promosi percuma utk ESRI..kena mintak komisyen nih..). Satu lagi syaratnya anda perlu ada extension 3d Analyst untuk analyze data LIDAR ni.

Kebanyakan data LIDAR yang dibekalkan sekarang adalah di dalam format binary file yang dipanggil fail LAS iaitu satu format industri standard yang dicipta oleh American Society for Photogrammetry and Remote Sensing (ASPRS).

Nak gunakan data LAS dalam ArcGIS ni ada byk cara.. samada membina LAS dataset dari LAS file, membina Terrain Dataset atau membina Mosaic dataset.  Lepas anda bina dataset melalui salah satu cara tu, barulah anda boleh analyze LAS file ni.



 Di sini saya akan tunjukkan kaedah yang mudah iaitu membina LAS dataset. LAS dataset ni akan menyimpan reference pada satu atau lebih fail LAS di disk anda.



Untuk bina LAS Dataset ni, gunakan ArcCatalog atau Catalog Window dalam ArcMap. Rujuk gambar di bawah :-



Penerangan gambar :-
  1. Right click kat folder yang dikehendaki dan pilih New > LAS Dataset
  2. Namakan LAS Dataset anda.
  3. Right click LAS Dataset yang baru buat tu dan pilih Properties.
  4. Klik tab LAS Files
  5. Klik button Add Files...
  6. Pilih senarai fail LAS anda.
  7. Klik OK.


Bila anda masukkan LAS dataset tu dalam ArcMap, secara default extent setiap fail LAS tu akan dipapar sebagai polygon outline merah.



Seterusnya masukkan toolbar LAS Dataset dalam ArcMap. Melalui toolbar tu, anda boleh view LAS dataset tu sebagai point elevation ataupun sebagai surface seperti di bawah ni..



Seterusnya ada boleh bina cross section 2D view dan juga 3D view dari data tadi. Nak buat cross section 2D view mudah saja, klik pada button LAS Dataset Profile View seperti gambar bawah ni dan define area yang anda nak. Hasilnya rajah profile view dihasilkan.



Nak jana 3D View pula, klik button LAS Dataset 3D View.  Tapi kalau computer anda tak cukup power, pastikan anda view dulu LAS dataset anda tu sebagai point elevation sebelum create 3D View. Kalau data anda dalam mode surface view, alamatnya silap-silap hang komputer anda nanti.



Banyak lagi analisis boleh dibuat once data LIDAR ni digabung dengan data-data GIS yang lain. Antaranya boleh buat floodplain mapping, landscape ecology, volume calculation, estimate kepadatan dan tinggi pokok  dan macam-macam lagi ler. Cool...