Sunday, 30 April 2017

Menyelesaikan Masalah "Broken Data Link"

Pernah tak anda dapat masalah macam gambar kat bawah ni? Bila buka je fail MXD ArcMap, data tak keluar.. yang keluar tanda-tanda seruan merah kat Table of Content ArcMap tu. Istilah yang digunakan untuk problem macam ni ialah “broken data link”.



Bila dapat problem “broken data link” ni jangan panik… jangan pulak jadi “broken heart”..hihi. Selalunya problem ni jadi sebab lokasi folder (path) data telah berubah, samada anda dah rename nama folder kepada nama yang lain, atau kedudukan data dah pindah ke drive lain, contoh asal data dalam drive C:\ tapi dah pindah ke drive D:\. Problem ni boleh juga berlaku bila anda rename nama layer tu sendiri kepada nama layer yang baru. Contoh, nama asal River.shp, kemudian anda rename kepada nama Sungai.shp. Dan kebiasaannya problem ni jadi bila anda pindahkan data dan fail MXD anda dari satu komputer ke komputer yang lain. Bila jadi macam tu selalunya macamana anda solve problem tu? Di sini saya kongsikan beberapa kaedah macamana nak selesaikan.

Sebagai persediaan, perkara mula-mula kena buat.., anda kena tau dulu layer tu sekarang duduk kat folder atau drive atau dalam geodatabase mana. Anda kena tau jugak nama sebenar layer tu sebab dalam Table of Content ArcMap, kadangkala nama tu anda dah rename kepada nama yang ringkas dan sesuai. Contoh macam gambar kat atas tadi, ada nama layer River. Anda kena tahu dulu nama sebenar yang disimpan dalam folder untuk layer River tadi, kalau format shapefile, mungkin river.shp, mungkin jugak sungai.shp. Kalau format geodatabase, mungkin nama lain pulak.

Contoh perbandingan nama layer dalam Table Of Contents ArcMap
dan nama layer asal dalam geodatabase.

In case kalau anda nak tau nama asal dan kedudukan asal layer yang bermasalah tu, anda boleh buat step di bawah ni  :-




Penerangan gambar :-
  1. Dalam TOC ArcMap, buka Properties untuk layer yang anda nak semak.
  2. Klik tab Source kat dialog Layer Properties.
  3. Kalau data anda dalam geodatabase, semak kat ruangan Feature Class: untuk nama layer. Kalau data shapefile, semak kat ruangan Shapefile: untuk nama shapefile.


OK.. bila dah semak dan confirm, bolehlah anda buat beberapa cara seperti berikut ni.

1)  Set Data Source dalam ArcMap

Cara pertama yang anda boleh buat ialah dalam ArcMap, set kembali layer yang tak keluar tu kepada lokasi baru. Caranya seperti berikut :-




Penerangan gambar :-
  1. Right click kat data bermasalah dan pilih Data > Repair Data Source…
  2. Dalam ruangan Look in :, masuk dalam kedudukan folder atau geodatabase yang baru. Dalam contoh saya ni, data saya dalam feature dataset HH_Inland_Water di dalam geodatabase, jadi saya masuk ke dalam feature dataset tersebut. Kalau data anda shapefile, anda hanya perlu masuk ke dalam folder yang sebenar.
  3. Pilih layer yang sepatutnya dalam kedudukan folder atau geodatabase yang baru tadi.
  4. Klik butang Add.


OK selesai sudah. Kalau kesemua data yang bermasalah tu terletak dalam kedudukan folder atau geodatabase yang sama, ArcMap akan automatik repair kesemua data tadi, jadi tak perlulah anda repair data source satu-persatu. Tapi kalau data anda berterabur dalam folder-folder atau geodatabase berlainan, anda kena ulang proses tadi satu-persatu layer.

2)  Set Data Source dalam ArcCatalog atau Catalog Window.

Satu lagi cara yang anda boleh guna ialah betulkan lokasi data source tu dalam ArcCatalog atau Catalog Window dalam ArcMap. Satu kelebihan guna cara ni ialah kalau dalam fail MXD anda tu ada group of data dalam lokasi-lokasi folder atau geodatabase berbeza-beza, anda boleh guna kaedah Select dan Replace dalam dialog yang dipaparkan. Select lokasi lama, dan Replace kepada lokasi baru. Caranya seperti berikut :-





Penerangan gambar :-
  1. Dalam ArcCatalog atau Catalog Window, right click fail MXD yang nak dibetulkan dan pilih Set Data Source(s)…
  2. Cara ni akan create fail MXD yang baru. Namakan fail MXD baru anda.
  3. Select layer yang nak dibetulkan dalam senarai.
  4. Klik butang Replace... Kalau anda nak ubah kesemua layer sekaligus, klik butang Replace All...
  5. Di ruangan Replace with:, taipkan nama kedudukan folder atau kedudukan geodatabase yang baru.
  6. Klik butang Replace.
  7. Klik OK.


Bila dah selesai, buka fail MXD yang baru tu, sepatutnya semua layer boleh dipaparkan.

Tips Untuk Mengelakkan Kejadian Yang Sama Berulang.

OK.. untuk mengelakkan problem broken data link ni berlaku, amalkan perkara berikut bila menyediakan data dalam fail MXD.
Amalkan penyediaan folder data di kedudukan folder yang sama di mana fail MXD disimpan. Contoh, jika anda save fail MXD dalam folder \Projek,  sebaiknya data-data anda pun disimpan dalam folder \Projek tersebut.

MXD data folder data terkumpul di
dalam folder yang sama (Projek)


Cara ni juga memudahkan anda nak pindah data dan mxd ke komputer yang lain sebab semuanya dah terkumpul dalam satu folder.

Amalkan menggunakan setting Relative Pathnames sebelum save fail MXD. Dengan menggunakan setting Relative Pathnames, layer anda tak bermasalah untuk dipaparkan walaupun lokasi data berpindah ke drive yang berbeza atau ke folder yang berbeza. Cara nak set Relative Pathnames seperti di bawah ni :-



Penerangan gambar :-
  1. Pada menu ArcMap, klik File > Map Document Properties…
  2. Pada ruangan Pathnames :, pastikan anda klik checkbox Store relative pathnames to data sources
  3. Klik OK.


Tapi kalau anda dah pening kepala sangat nak pindahkan data dan fail MXD ke komputer lain sebab data anda berterabur dalam folder-folder berbeza, cara senang anda guna je lah style Map Package. Cara ni ada saya explain dalam post saya tahun 2012 di link sini.

Selamat mencuba.


p/s : Dapatkan buku SukaGIS Jilid 1 yang telah berada di pasaran. Info boleh klik di link sini.

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. Ramai juga yang puas hati dengan kualiti buku sebab menggunakan kertas berkualiti. Kandungan di dalam juga fully coloured. Untuk student-student yang nak buat projek guna ArcGIS pun sesuai guna buku ni terutama nak buat PSM, FYP etc.  Banyak tutorial berguna yang boleh dijadikan panduan untuk buat tugasan.

Tapi buku ni tak cover mende2 basic contoh, apa dia GIS layer, apa dia ArcMap, apa dia ArcCatalog, anda kena ada basic knowledge dulu tentang mende2 tu, then buku ni boleh membantu anda untuk kembangkan lagi knowledge anda. Kadangkala kita dah attend kelas GIS secara teori tapi kurang bahan rujukan untuk nak buat exercise atau tutorial. Inilah tujuan buku ni diterbitkan, untuk bantu anda fahamkan lagi apa yang anda dah belajar dalam kelas teori tu... melalui kaedah hands on.

Untuk yang masih berminat nak buat tempahan, bolehlah hubungi saya di 019 351 3770 atau email azlansr@gmail.com. Harga RM50 Semenanjung dan RM52 Sabah/Sarawak (harga dah termasuk postage).


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

5 naskah buku SukaGIS di seksyen fotogrametri Jupem HQ


4 naskah buku SukaGIS di JPS Ampang

Buku SukaGIS sesat di kota London... :)



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.