Saturday, 22 April 2017

Terima Kasih Menyokong Buku SukaGIS

Terima kasih saya ucapkan untuk anda yang telah membeli buku SukaGIS Jilid 1. Dari feedback yang saya terima, ramai yang suka dengan buku ni, terutama yang dah lama mencari buku GIS dalam versi BM. Setakat ni sudah 400 lebih naskah terjual. Untuk student-student yang nak buat projek guna ArcGIS pun sesuai guna buku ni. Banyak tutorial berguna yang boleh dijadikan panduan untuk buat tugasan.

Untuk yang masih berminat nak buat tempahan, bolehlah hubungi saya di 019 351 3770.


Taburan pembeli buku SukaGIS Semenanjung


Taburan pembeli buku SukaGIS Sabah Sarawak


Buku GIS di UTM Skudai

Buku SukaGIS di Dewan Bandaraya
Kota Kinabalu

25 naskah buku SukaGIS di Jab Alam Sekitar

5 naskah buku SukaGIS di SPR

Buku SukaGIS di UMP

Buku SukaGIS di EOC UKM

Buku SukaGIS di IRDA Johor

Buku SukaGIS di Jab Perhutanan Semenanjung Malaysia

Di lab UTM

Bersama Pengarah MaCGDI Pn Norizam. 16 naskah
di MaCGDI.

5 naskah buku SukaGIS di Jabatan Pertanian

46 naskah buku SukaGIS di JUPEM Sabah


Buku SukaGIS di Jab Mineral dan Geosains Kelantan
 

Monday, 17 April 2017

Membina Atribut dari Teks Annotation Fail AutoCAD


Topik kali ni agak menarik. Sepanjang lebih kurang 20 tahun pengalaman saya involve dalam GIS data processing, ni antara isu yang kerap dihadapi oleh user-user GIS. Berkenaan dengan isu conversion data AutoCAD kepada data GIS. Kebiasaannya, banyak company seperti company land surveyor atau consultant yang menyediakan plan dalam format AutoCAD untuk serahan kepada klien. Kadangkala timbul isu dimana klien tu dah ada sistem GIS dan dia nak integrate pulak plan AutoCAD tu kepada sistem GIS. Sebelum nak buat proses convertion data AutoCAD, anda kena faham betul-betul dulu struktur data AutoCAD dan macamana nak relatekan struktur data tu dengan struktur data GIS. Cuba perhatikan struktur fail AutoCAD seperti di bawah ni.
Struktur fail AutoCAD
Dalam 1 fail AutoCad, akan terdapat pecahan entiti Annotation, Multipatch, Point, Polygon dan Polyline. Setiap entiti tu pulak ada pecahan lagi kepada Drawing Layers. Contohnya entiti Polyline mungkin akan mengandungi Drawing Layer lot, jalanraya, kontur dan lain-lain. Maksudnya ada banyak layer wujud dalam 1 fail CAD yang sama. Walaupun kita nampak layernya asing-asing dalam Drawing Layers AutoCAD tu, tapi semua layer tu wujud dalam 1 fail CAD yang sama. Ini berbeza plak dengan konsep layer GIS sebab dalam GIS, kalau layer tu Polyline, kita selalunya akan maintain 1 featureclass sahaja, contoh lot dalam 1 layer polyline, jalanraya plak dalam 1 layer polyline yang lain dan macam tu lah seterusnya.

Apa yang saya cuba nak story kat sini, bila anda nak convert data AutoCAD ke layer GIS, anda kena study dulu nama-nama Drawing Layers dalam fail AutoCAD tu untuk tentukan layer mana yang anda nak ambil untuk convert.
Kenalpasti nama Drawing Layer sebelum buat convertion
Ok itu just selingan sikit intro struktur data CAD. Sekarang kita cite skit tentang bab convertion. Memang kebanyakan software GIS ada tools untuk convert data CAD kepada GIS, seperti tool yang anda boleh dapati dalam ArctoolBox ArcGIS Desktop. Contoh macam tool CAD to Geodatabase, atau anda boleh export layer CAD dalam Table of Contents ArcMap menjadi layer GIS. Step convert guna kaedah export ni ada saya terangkan dalam post sebelum ni, anda boleh rujuk link topik Convert CAD data ke GIS. Tapi tool-tool ni akan convert one-to-one, point CAD jadi point GIS, polyline CAD jadi polyline GIS, polygon CAD jadi polygon GIS, teks annotation CAD jadi annotation Geodatabase atau point GIS.
On-to-One convertion

Tapi kadangkala convertion tu bukanlah straight forward, contoh…, anda nak convert lot dalam fail AutoCAD jadi layer lot dalam GIS, tapi senario data anda seperti berikut :-
Fail CAD : layer lot dalam polyline, nombor lot dalam annotation
Layer GIS : layer lot dalam polygon, nombor lot nak letak dalam table polygon.


Nombor lot dan sempadan lot dalam entiti berlainan di dalam
fail AutoCAD (annotation / polyline)

Anda nak bina lot polygon dari polyline CAD, tapi nombor  lot
datang dari Annotation CAD, so camana caranya???

Kebiasannya memang teks atribut dalam fail AutoCAD ni diletakkan sebagai teks annotation. Kalau anda convert direct polyline Drawing Layer lot dari fail CAD tu kepada layer polygon GIS, bila anda klik info setiap lot nanti, tak akan ada info nombor lot, seperti yang dipaparkan dalam gambar di bawah ni.




 
Sebab apa jadi macam tu?? Sebabnya dalam CAD, nombor lot tu duduk dalam annotation, lot pulak anda convert dari polyline. Kalau anda nak buat analisis carian lot dalam GIS, memang tak boleh lah sebab nombor lot tak wujud dalam polygon.
So macamana cara yang sepatutnya nak convert kalau ada kes data macam ni? Kat sini saya kongsi sikit teknik macamana nak buat.  Kaedahnya macam ni :-
  1. Convert CAD annotation kepada geodatabase annotation
  2. Convert geodatabase annotation kepada layer point
  3. Convert polyline lot dari AutoCad kepada layer lot polygon dan import atribut point layer ke dalam polygon

Convert CAD Annotation kepada Geodatabase Annotation

Mula-mula convert dulu teks annotation dari fail AutoCAD menjadi geodatabase annotation. Follow step berikut :-

 

Penerangan gambar :-

  1. Dalam ArctoolBox, klik tool Conversion Tools > To Geodatabase > Import CAD Annotation
  2. Masukkan annotation dari fail AutoCAD ke ruangan Input Features
  3. Namakan output geodatabase annotation feature class.
  4. Masukkan nilai Reference Scale. Nilai skala ini akan digunakan untuk menentukan saiz teks annotation semasa zoom in dan zoom out ArcMap. Oleh kerana tujuan saya convert annotation ni hanya untuk jadikan sebagai layer point, saya masuk je apa-apa nilai di ruangan ni.
  5. Klik OK.


Convert Geodatabase Annotation kepada Layer Point

Step ni akan menghasilkan layer point yang mengandungi atribut dari annotation. Maksudnya nombor lot dan lain-lain atribut dari annotation akan disimpan dalam layer point yang dihasilkan nanti. Mungkin ada yang akan tanya, kenapa perlu convert dulu kepada geodatabase annotation then baru convert ke point? Tak boleh ke convert terus je dari CAD annotation menjadi point tanpa perlu convert jadi geodatabase annotation dulu? Haaa… lepas saya buat testing testing, ada beza rupanya result dua kaedah tu. Cuba perhatikan perbezaan result di bawah ni.

 
Kalau kita convert CAD annotation terus kepada point, nampak macam lari sikit kedudukan point. Ada pulak sesetengah lot tu ada 2 point dalam 1 lot. Oleh sebab dalam point tu ada atribut nombor lot, jadi kelirulah kalau dalam 1 lot ada 2 point, nak ambil atribut nombor lot dari point yang mana satu?? Nampak macam point tu lari sikit offset ke kiri sebenarnya. Sebab tu point dari lot bersebelahan dah termasuk ke dalam lot jiran di sebelah. Tapi kalau kita lihat point yang dihasilkan dari geodatabase annotation, kedudukan pointnya cantik saja ditengah-tengah lot.
OK, dalam step sebelum tadi kita dah dapat layer geodatabase annotation. Nak convert geodatabase annotation ni kepada layer point, buat step di bawah ni. Anda perlukan license ArcGIS Desktop Advanced untuk run tool ni.

 

 
Penerangan gambar :-
  1. Dalam ArcToolbox, klik tool Data Management Tools > Features > Feature to Point
  2. Masukkan geodatabase annotation dalam ruangan Input Features.
  3. Namakan output point layer.
  4. Pastikan uncheck kotak Inside (optional)
  5. Klik OK.

 
Convert Polyline kepada Polygon dan Import Atribut Point

OK, sekarang kita dah ada layer point yang dah ada atribut nombor lot. Next kita import atribut dari layer point ni masuk ke dalam polygon lot. Maknanya kena create dulu le layer lot polygon dari polyline AutoCAD tadi.  Nak buat step ni perlukan license ArcGIS Desktop Advanced gak. Follow step berikut :-

 

Penerangan gambar :-
  1. Dalam ArcToolbox, klik tool Data Management Tools > Features > Feature to Polygon
  2. Masukkan polyline dari fail AutoCAD ke ruangan Input Features
  3. Namakan output polygon lot.
  4. Dalam ruangan Label Features, pilih layer point yang anda dah hasilkan sebelum tadi untuk import atribut point masuk ke dalam polygon.
  5. Klik OK.

OK selesai sudah proses. Bila anda klik info dalam setiap lot, anda akan dapati ada atribut nombor lot dalam polygon lot tu. Bila buka atribut table polygon pun anda akan nampak senarai nombor lot dah dimasukkan dalam table.

Harap post ni dapat membantu anda bila nak import atribut teks annotation AutoCAD selepas ni.


p/s : Buku SukaGIS - Seronoknya Belajar ArcGIS (Jilid 1) telahpun berada di pasaran. Padat dengan kompilasi tutorial2. Hubungi 0193513770 untuk tempahan :)



 

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.


Buku SukaGIS Jilid 1 .. Dapatkannya Sekarang

Salam semua,..

Buku SukaGIS : Seronoknya Belajar ArcGIS (Jilid 1) telahpun berada di pasaran. Dapatkanya sekarang.

Harga RM50 (termasuk pos) Semenanjung, RM52 (termasuk pos) Sabah Sarawak. Beli 3 dan ke atas dapat diskaun RM3 setiap buku. Beli lebih dari 10 unit dapat harga spesel lagi. Tempahan boleh dibuat melalui 019-3513770 atau email saya .. azlansr@gmail.com.




Monday, 20 March 2017

Analisis Raster dan Penetapan Sistem Koordinat

Ingat tak sebelum ni saya ada post topik untuk download data percuma DEM? Jika anda ingat lagi, dalam post tu saya ada tunjukkan data raster SRTM yang kita download tu adalah dalam sistem koordinat geographic WGS84 kan? OK, kita ulangkaji sikit bab sistem koordinat dan struktur data raster.  Tentu anda tahu kan, koordinat WGS84 ni menggunakan angular unit samada decimal degree (DD), degree minute second (DMS) atau degree decimal minutes (DM). Data raster pulak struktur dia terdiri dari pixel atau kita panggil sebagai cell yang disusun dalam bentuk baris (row) dan lajur (column) . Setiap cell tu plak ada saiz yang menentukan resolution raster tu, cthnya 20m x 20m cell size. Oleh itu, setiap satu cell kita boleh tahu keluasannya.. kalau cell size 20m x 20m, maknanya keluasan 1 cell = 400 meter persegi lah.


Jadi, kalau data raster kita dalam sistem koordinat WGS84, macamana pulak nak tentukan cell size dan keluasan cell raster tu, sebab WGS84 menggunakan unit DD, DMS, DM? Rasa macam pelik je kalau kita kata keluasan cell saiz saya 0.00025 decimal degree persegi, sebab selalunya bila melibatkan pengukuran jarak, keluasan, mesti akan guna planar (projected) unit kan? Contohnya meter ke, feet ke.

Sebab tu kita kena awas, bila kita dapat satu data raster, check dulu sistem koordinat yang dia pakai sebelum buat analisis. Sesetengah analisis perlukan cell unit dalam projected unit untuk menghasilkan output yang tepat. Contohnya katalah anda nak buat analisis slope. Kalau data raster yang kita gunakan sebagai input untuk analisis slope tu dalam WGS84 dan outputnya pun kita set sebagai default WGS84 jugak, result output slope yang terhasil jadi tak betul. Sepatutnya cell size raster tu kita kena setkan dulu kepada projected unit, contohnya RSO meter ke. Cuba lihat gambar di bawah ni. Gambar A hasil analisis slope dalam WGS84, gambar B pulak hasil analisis slope dalam RSO. Jauh beza kan result dia.


Dalam gambar A, hampir keseluruhan area jadi high slope, merah belaka. Tak logik nampaknya tu. So macamana caranya nak setkan cell tu kepada projected unit sebelum buat analisis? Ada dua cara :-

  1. Guna tool Project dalam ArcToolbox untuk tukar sistem koordinat input raster dari WGS84 kepada projected coordinate system, contohnya RSO. Kalau guna cara ni, anda akan ada 2 layer raster, satu dalam WGS84, satu lagi hasil Project dalam RSO.
  2. Set output sistem koordinat analisis kepada projected coordinate system, contohnya RSO. Kalau guna cara ni, anda hanya perlu maintain satu layer raster sahaja (yang WGS84 tu) tapi output analisis akan dihasilkan dalam projected RSO. Cara ni juga boleh jimat space hardisc sebab anda tak perlu maintain 2 layer raster.


Sekarang saya akan tunjuk cara paling mudah, iaitu cara kedua. Untuk set output sistem koordinat analisis, follow step berikut :-




Penerangan gambar :-
  1. Kat menu ArcMap, klik Geoprocessing > Environments…
  2. Klik Output Coordinates
  3. Kat ruangan Output Coordinate System, set kepada As Specified Below
  4. Klik butang Spatial Reference
  5. Kat dialog Spatial Reference Properties, setkan koordinat kepada RSO
  6. Klik OK kat untuk tutup dialog Spatial Reference Properties.
  7. Sekarang disebabkan WGS84 dan RSO guna datum berbeza, anda kena buat Geographic Transformation dulu. Dalam list tu, pilih Kertau_to_WGS_1984.
  8. Klik OK.



Selesai sudah step untuk set output sistem koordinat analisis kepada sistem projected unit. Lepas tu bolehlah anda proceed pada analisis yang anda nak buat.