Wednesday, 19 February 2014

Memapar Data Format S-57

Satu hari seorang kenalan saya yang saya kenal melalui blog SukaGIS ni contact saya dan menyatakan hasrat untuk berkongsi tutorial yang telah beliau sediakan untuk dimasukkan ke dalam blog ni. Jawapan saya ... why not.. sharing is caring... hehehe.. 

So untuk topik kali ni, saya masukkan tutorial yang disediakan oleh beliau. Sebarang pertanyaan tentang topik ni bolehlah hubungi beliau di email kama.yus77@gmail.com

Tutorial: Mengimport data format S-57 kepada shapefile

Pernahkan anda mendengar S-57 format? S-57 format merupakan standard format yang dikeluarkan oleh Pertubuhan Hidrografi SeDunia -International Hydrographic Organization (IHO). Format ini merupakan format rasmi bagi Pejabat Hidrografi di seluruh dunia dalam menghasilkan Carta Panduarah Elektronik (Electronic Navigational Chart) dan seterusnya dipaparkan dalam Electronic Chart Display and Information System (ECDIS) untuk panduarah pelayaran. S-57 format berfungsi merekodkan ciri-ciri pencartaan yang berkaitan bagi keselamatan panduarah seperti garisan pantai,kedalaman, boya, lampu suar dan sebagainya.

Carta Panduarah Elektronik 


Electronic Chart Display and Information System (ECDIS)

Untuk tutorial kali ini adalah untuk memaparkan S-57 data ke dalam ArcMap, terlebih dahulu dapatkan add-in tool esri-s57-viewer pada laman web www.esri.com dan muat turunkan data S-57 untuk kawasan Laut China Selatan pada laman sesawang http://scsenc.eahc.asia/



1.         Install add-in tool esri-s57-viewer dan masukkan data S-57 ke dalam ArcMap





Paparan 4 cell S-57 untuk kawasan Laut China Selatan


Pada Esri-s57-viewer toolbar, anda boleh membuat pilihan untuk menukar paparan skema warna mengikut kesesuaian dan juga pilhan untuk memaparkan fitur. Untuk makluman anda, S-52 merupakan salah satu piawaian yang dikeluarkan oleh IHO untuk paparan bersesuaian dengan keadaan kapal yang belayar tanpa mengira waktu (malam/siang).


Tetapan Esri-s57-viewertoolbar

Note on S-57
S-57 update files contain information on how to update a distributed S-57 base data file. The base files normally have the extension .000 while the update files have extensions like .001, .002 and so on. The S-57 reader will normally read and apply all updates files to the in memory version of the base file on the fly. The feature data provided to the application therefore includes all the updates
Untuk mengetahui S-57 katalog sila ke URL http://www.s-57.com/

Kita akan mengeksport layer berikut ke dalam format shape file.
·         SOUNDG – Sounding - Points
·         WRECKS – Wrecks – Points
·         LIGHTS – Light - Point
·         COALNE – Coastline – Lines
·         DEPCNT – Depth Contour - Lines
·         DEPARE – Depth Area – Polygon

1.         Pilih layer SOUNDG_P pada cell EA20001, klik sebelah kanan, Data – Export Data, pilih direktori untuk simpan dan namakan sebagai SOUNDG_1.shp. Lakukan langkah yang sama untuk cell EA20002, EA20003 dan EA20004.





Hasil eksport untuk layer SOUNDG dari 4 cell

Untuk paparan lebih informatif anda boleh paparkan basemap yang disediakan oleh ESRI.



2.         Langkah seterusnya adalah menyatukan semua layer SOUNDG menjadi satu dengan menggunakan Geoprocessing Tool-Merge








3.         Lakukan langkah 1 dan 2 untuk layer WRECKS,  LIGHTS , COALNE, DEPCNT dan DEPARE. 

Hasil MERGE
Shapefile untuk layer SOUNDG, WRECKS, LIGHTS, COALNE, DEPCNT dan DEPARE dari S-57 format

4. Langkah seterusnya adalah mengenal pasti jumlah wreck yang berada di kawasan sempadan maritime Malaysia berdasarkan layer WRECK dari cell S-57 untuk perairan Laut China Selatan.
Data Terlibat: Malaysia.shp dan Wreck_merge.shp

Masukan layer Malaysia.shp dan Wreck_merge.shp ke dalam ArcMap dan lakukan clip geoprocessing. Clip adalah satu proses ‘extract’ dari input feature (layer wreck) yang di paparkan bersama dengan clip feature (Malaysia.shp).



Untuk mengetahui jumlah bilangan wreck di perairan Malaysia adalah dengan membuka AttributeTable pada layer WRECK_Clip


5.         Langkah seterusnya adalah mengenal pasti jenis WRECK kategori dan jumlah bilangan kategori.


Berdasarkan Query di atas terdapat 5 jenis WRECK kategori termasuk kategori yang tidak dikenal pasti Berikut adalah attribute (Katagori WRECK) berdasarkan S-57 standard.



Langkah seterusnya adalah mengenal pasti jumlah bilangan WRECK berdasarkan setiap kategori. Ulangi langkah yang sama untuk mengenal pasti kategori yang lain



6.         Membuat tetapan simbologi pada layer WRECKS dengan double klik layer pada Table of Contents (TOC)  windows, seterusnya pilih Categories-Unique values dan Add All Values.


Hasil selepas membuat  tetapan paparan Jenis wreck

7. Langkah seterusnya adalah membuat map layout, pada menu utama klik View, Layout View. Pastikan Layout toolbar telah diaktifkan dengan klik Customize, Toolbars, Layout.
Pada Layout toolbar button  , pilih USA tab dan pilih ConterminousUSA.mxd option dan klik finish. Selepas itu, double klik pada tajuk map dan taip Taburan Karaman di Perairan Malaysia dan klik OK.

Hasil map yang telah dibuat dan anda boleh mula cetak



Thursday, 6 February 2014

Kursus ArcGIS Desktop 10.2 - Jabatan Perkhidmatan Veterinar

Lama betul tak update blog ni. Nak share sikit... saya baru selesai conduct kursus ArcGIS Desktop 10.2. Peserta kali ni dari Seksyen Epidemiologi dan Survelan, Jabatan Perkhidmatan Veterinar. Latar belakang peserta terdiri dari pelbagai, ada yang fresh dalam ArcGIS dan ada juga yang pernah menggunakan ArcGIS. Kalau mengikut perancangan, kursus ini adalah sebagai asas persiapan untuk peserta menghadiri kursus lanjutan selepas ini.

Harap rajin2 lah practise ye lepas kursus ni..hehe 









Sunday, 8 December 2013

Tips Mendigit : Kaedah Right Angle, Trace Offset dan Tangent Curve

Kali ni saya ingin berkongsi tips  3 kaedah pendigitan yang mungkin berguna untuk anda, Right Angle,  Trace Offset dan Tangent Curve.  OK, apa maksud istilah Right Angle,  Trace Offset dan Tangent Curve ni? Biar saya terangkan dulu..

i) Right Angle

Katakan anda nak digit segmen yang bersudut tepat antara satu segmen dengan segmen yang lain. Contoh anda nak digit atap rumah atau bangunan di atas gambar foto udara. Setiap bucu rumah tu bersudut tepat kan?



Cara paling mudah mendigit untuk mendapatkan segment bersudut tepat ialah menggunakan tool Right Angle.  Tool ni terdapat di dalam Editor toolbar, seperti gambar di bawah.

Tool Right Angle


Klik pada tool Right Angle tersebut dan mulakan pendigitan seperti biasa dan anda akan dapati setiap segmen akan dibina bersudut tepat antara satu sama lain.

Hasil digit kaedah Right Angle, segment
bersudut tepat


ii) Trace Offset.

Kadangkala anda nak digit line yang selari dengan line sedia ada pada jarak offset tertentu. Contohnya anda dah digit line bahu kiri jalan, kemudian anda nak digit bahu kanan jalan yang selari dengan bahu kiri jalan tadi dan pada jarak offset tertentu.



Cara paling mudah ialah gunakan trace bersama option offset.  Klik pada tool Trace di dalam Editor toolbar, seperti di bawah.


Tool Trace


Kemudian tekan 'O' di keyboard untuk mendapatkan window Trace Options. Masukkan nilai offset. Dalam contoh ni, lebar jalan yang nak saya digit ialah 6 meter. Jadi saya masukkan nilai 6 di ruangan Offset. (Anda boleh ukur lebar jalan tu menggunakan tool Measure dalam Tool toolbar).

Masukkan jarak Offset sebelum trace


Kemudian saya klik atas line jalan yang saya telah digit sebelum ni dan terus trace di atas line tersebut. Hasilnya line baru dalam jarak offset 6 meter dari line sedia ada akan dibina.

Trace di atas garis merah, hasil offset garis oren


iii) Tangent Curve

Bagaimana pula untuk mendigit garis lengkung, contohnya simpang jalan atau bahu jalan yang shape melengkung.



Selain dari mendigit kaedah stream mode atau membina jarak vertex yang rapat untuk mendapatkan garis lengkung, anda juga boleh gunakan satu kaedah yang dinamakan Tangent Curve.

Hanya 2 vertex dibina antara garis lengkung


Rajah di bawah menunjukkan kedudukan Tangent Curve di dalam Editor toolbar.

Kedudukan tool Tangent Curve


Gunakan tool ni hanya jika anda ingin mendigit garis lengkung sahaja. Contohnya, cuba lihat cara pendigitan saya seperti rajah di bawah ni.



Pada segmen vertex 1 - 2, saya gunakan tool Straight Segment kerana garisan tu bersifat lurus. Pada vertex 2 - 3, saya tukar pada mod tool Tangent Curve kerana saya ingin digit garis melengkung, manakala pada vertex 3 - 4, saya kembali kepada mod Straight Segment. Melalui kaedah Tangent Curve, hanya bilangan vertex yang minima diperlukan tetapi hasilnya adalah garisan lengkung atau curve yang lebih kemas. Cuba bandingkan kaedah Tangent Curve ni dengan pendigitan stream mode seperti rajah di bawah ni.

Lebih banyak vertex dibina pada garis lengkung
sekiranya pendigitan di dalam stream mode

Bilangan vertex yang banyak akan dibina di atas garis lengkung di dalam pendigitan stream mode manakala pendigitan Tangent Curve, hanya 2 vertex sahaja diperlukan di antara dua garis lengkung.

Tuesday, 12 November 2013

Menjana Data Centerline

Pernah tak anda berhadapan situasi di mana anda ada data line kiri kanan tapi anda nak generate centerline dari line kiri kanan tu? Contohnya anda dapat data yang menunjukkan tebing sungai (river casing) dan anda nak generate sungai centerline dari data tebing sungai tu. Ataupun mungkin anda ada data bahu jalan (road casing) dan anda nak generate centerline jalan dari data road casing tu. Cuba lihat contoh data river casing dan road casing seperti di bawah.



Sekiranya anda nak digit centerline tu secara manual, anda boleh gunakan sketch tool Midpoint dalam ArcMap Editor toolbar. Satu cara mudah yang boleh anda lakukan secara automated adalah dengan menggunakan geoprocessing tool Collapse Dual Lines to Centerline di dalam ArcToolbox. Cara ni tak memerlukan anda digit secara manual, jadi kaedah ni lebih cepat dan mudah. OK untuk tutorial kali ni saya akan tunjukkan macamana nak generate road centerline dari data road casing saya seperti gambar di bawah :-



Mudah saja caranya, lakukan step seperti di bawah ni :-



Penerangan gambar :-
  1. Buka ArcToolbox dan klik Cartography Tools > Generalization > Collapse Dual Lines to Centerline
  2. Masukkan input features, dalam contoh ni layer road casing saya.
  3. Namakan output layer yang akan menyimpan data centerline tu.
  4. Setkan Maximum Width iaitu lebar maksimum jalan yang anda benarkan untuk generate centerline tu.
  5. Klik OK.


Cuba lihat hasilnya seperti gambar di bawah. Road centerline terhasil dari data road casing tadi. 

Road centerline terhasil dari data road casing


Tapi tool ni ada juga kelemahannya sebab kalau shape road casing kita terlalu complicated, kemungkinan centerline yang dihasilkan tak berapa tepat, contohnya kalau road casing yang ada roundabout atau curve line di persimpangan yang terlalu rapat. Contohnya cuba lihat centerline yang dihasilkan dari data road casing saya seperti di bawah ni..




Perhatikan line merah zig zag zig zag tu. Anda perlu betulkan problem line tu melalui proses manual editing.




Tapi still kira ok ler compare kalau anda nak buat manual digitizing keseluruhan centerline. Jadi kesimpulannya tool ni bergantung pada how complicated data line anda. Kalau shape casing tu simple, tool ni boleh generate fully automated centerline,.. tapi kalau shape yang agak complicated macam contoh data atas ni, tool ni jadi semi automated ler, maksudnya anda kena combine dengan proses manual editing juga.


Saturday, 9 November 2013

Membetulkan Kesalahan Undershoot Secara Automatik

Untuk anda yang selalu buat kerja-kerja editing data, kadangkala pening gak kan bila tengok data-data yang ada macam-macam error. Contohnya error overlap, duplicate, overshoot, undershoot dan lain-lain. Setiap jenis error ni ada kaedah berbeza bagaimana nak betulkan error tu.  Untuk topik kali ni, saya akan tunjukkan contoh bagaimana nak betulkan kesalahan undershoot.

Untuk anda yang tak familiar istilah undershoot, maksud error ni ialah line yang tak snap pada segmen line di hadapannya. Contoh macam gambar di bawah..

Error Undershoot


Kalau anda lihat dalam gambar tu, line yang di dalam circle merah menunjukkan kesalahan undershoot sebab tak snap, kemungkinan disebabkan kesalahan semasa mendigit. Dalam senario sebenar, kemungkinan gap ni terlalu kecil sehingga sukar untuk anda lihat dengan mata kasar, tapi untuk contoh tutorial ni, saja saya gapkan besar sikit supaya senang anda nak nampak. Kalau error macam ni setakat 2, 3 je dalam data anda, mungkin takde masalah nak betulkan satu persatu. Tapi bayangkan kalau error macam ni ada berpuluh-puluh, beratus.. jenuh tu nak klik satu-satu suruh snap (..ermm tau tak nak snap manual satu-satu?? kalau tak tau nantilah saya post dalam topik lain).

OK kali ni saya tunjukkan kaedah auto macamana nak betulkan error macam ni. Mula-mula kita kena dapatkan dulu purata anggaran jarak untuk undershoot tu. Caranya kita boleh gunakan tool Measure untuk ukur jarak gap antara line yang tak snap tu. Caranya seperti di bawah :-

Ukur dulu gap undershoot untuk mendapatkan tolerance
snapping yang sesuai


Penerangan gambar :-
  1. Klik button Measure
  2. Klik pada End Vertex line yang undershoot
  3. Double klik pada segment line dihadapannya
  4. Perhatikan jarak gap dan unit jarak.


Dalam contoh di atas, jarak yang dipaparkan lebih kurang 1.9 meter. Maksudnya sekiranya saya setkan tolerance snapping lebih dari 1.9 meter, line tu akan snap kepada segment line dihadapannya. OK sekarang macamana kita nak snapkan line tu secara automatik? Gunakan tool Extend Line di dalam ArcToolbox. Sebelum kita run tool Extend Line ni, cadangan saya kita run tool ni dalam Editing mode. Maksudnya kena buat proses Start Editing dulu ler. Tujuannya sekiranya kita tersilap extend, kita ada option untuk Undo balik edit. Kalau kita run tool Extend Line ni diluar dari Editing mode, bahaya juga, takut tersilap masuk tolerance snapping, habis data kita snap pada line yang tak sepatutnya.

OK... sekarang, assuming kita dalam Editing mode, buat step seperti di bawah :-

Tool Entend Line


Penerangan gambar :-
  1. Buka ArcToolbox dan klik pada Editing Tools > Extend Line.
  2. Pilih layer yang anda nak betulkan kesalahan undershoot. Kalau ada selected line dalam layer tu, tool ni akan fokus betulkan error pada line yang anda select sahaja.
  3. Masukkan jarak tolerance snapping. Dalam contoh sebelum ni, jarak gap line yang saya ukur ialah 1.9 meter. So saya masukkan anggaran jarak 2.5 disini, bermaksud mana-mana line undershoot yang jarak kurang dari 2.5 meter, dia akan auto snap.
  4. Pastikan unit ukuran adalah sama dengan unit jarak yang anda ukur menggunakan tool Measure sebelum ni.
  5. Klik OK.

Hasilnya seperti di bawah. Lihat semula line di dalam circle merah tu. Semuanya dah snap ke line segment di depannya secara automatik.

Error undershoot yang dah clean


Selamat mencuba.