Saturday 20 October 2012

Convert CAD data ke GIS


Jika dalam post saya sebelum ni, saya ada ceritakan tentang cara-cara nak convert GIS data ke CAD format (boleh rujuk link ni), kali ni terbalik pulak. Saya akan tunjukkan cara nak convert data dari CAD ke format GIS , memandangkan ramai user yang tanya saya macamana nak buat benda ni dalam ArcGIS. Sebenarnya simple saja, sebab semua tool-tool tu dah ada dalam ArcGIS Desktop.

Perlukah Convert fail CAD ke format GIS?

Kenapa perlu convert ke GIS format? Bukankah ArcGIS boleh direct view je data-data AutoCAD? OK, sebenarnya bergantung pada keperluan analisis anda. Kalau anda cadang nak view atau overlay je data-data AutoCAD tu, tak payah convert pun takpe sebab ArcGIS support direct view data-data CAD. Tapi katakanlah anda nak gunakan data line dari fail CAD tu untuk kira jarak atau nak dapatkan keluasan dari data polygon dalam AutoCAD tu, atau mungkin anda nak gunakan layer dalam CAD tu untuk analisis geoprocessing dengan data-data anda yang lain,... so kalau macam tu anda perlu convert data tu ke GIS format. Dalam ArcGIS, anda ada pilihan samada nak convert CAD layer tu samada ke format shapefile ataupun geodatabase.

Perbandingan Struktur layer data CAD dan GIS

Kalau anda biasa dengan fail CAD, anda tentu nampak perbezaan ketara antara struktur layer data CAD dan layer data GIS. Di dalam satu fail CAD akan terkandung pelbagai layer manakala data GIS selalunya diasingkan dalam layer-layer yang berlainan. Contohnya katalah saya buka satu fail topo CAD 3757A.DXF dari JUPEM, di dalam satu fail DXF tu akan mengandungi semua layer... sungai, kontur, jalan dan lain-lain. Kalau saya guna default setting untuk open fail tu, pening gak saya nak tentukan yang mana satu layer contour, yang mana satu layer sungai, yang mana satu layer jalan??

1 fail DXF terkandung pelbagai Drawing Layer

Jadi...kalau saya nak view layer kontur sahaja, saya perlu tahu apakah nama layer yang mewakili kontur dalam layer DXF tu, seterusnya saya onkan layer kontur tu saja, layer-layer lain yang tak berkenaan saya offkan. So, samalah kalau saya nak convert fail DXF tu ke GIS format, saya perlu onkan layer tertentu sahaja yang hendak saya convert satu persatu. Contohnya, kalau saya nak convert layer contour, onkan layer contour saja, kemudian buat proses conversion. Kalau saya nak convert layer sungai pulak, onkan layer sungai saja, kemudian buat proses conversion. Begitulah seterusnya.


Onkan hanya layer yang anda ingin lihat di dalam ArcMap

Proses Conversion

Secara ringkas, step untuk convert data CAD ni ke format GIS adalah seperti berikut :-

1) Pastikan dulu layer nak convert tu terletak dalam featuretype apa di dalam fail CAD tadi.. adakah layer tu dalam featuretype Annotation, Point, Polyline, Polygon atau Multipatch. Kalau tak sure, draw fail CAD tu satu persatu dalam ArcMap, mula-mula onkan Annotation, kemudian tengok kat map. Kemudian onkan pulak Polyline dan seterusnya sehingga anda nampak data yang anda perlukan.

Contoh layer-layer di dalam featuretype Polyline di dalam fail CAD


2) Next, study dulu fail CAD tu untuk tentukan nama layer yang hendak anda convert tu. Part ni yang kadang2 agak payah juga, sebab kadangkala nama layer dalam fail tu tak standard. Kalau anda nak convert layer sungai, tak semestinya nama layer di dalam fail CAD tu dinamakan layer "SUNGAI", semua ni bergantung pada pihak pemilik data bagaimana dia namakan layer dalam fail tu. Kalau anda tak sure, gunakan butang Identify dan klik atas feature yang anda nak convert tu. Contoh, kalau anda nak convert layer contour, klik atas mana-mana line contour. Bila keluar window Identify tu, lihat apakah nama layer CAD yang dipaparkan kat ruangan Layer.

Klik di atas feature dan kenalpasti nama layer dahulu di dalam window Identify


3) Seterusnya, onkan hanya nama layer yang telah anda kenalpasti dalam step (2) sebelum ni. Dalam contoh step (2) kat atas tu, nama layer contour yang dipaparkan adalah CONT_LINE. Jadi saya akan onkan layer CONT_LINE sahaja di dalam ArcMap sekiranya saya hendak convert layer contour tadi. Caranya seperti gambar di bawah ni.


Penerangan gambar :
  i. Buka Properties
 ii. Klik tab Drawing Layers
iii. Klik butang Disable All
iv. Klik Layer Name CONT_LINE

Hasilnya hanya CAD layer contour akan dipaparkan seperti di bawah :-


Hanya layer CONT_LINE dipaparkan merujuk pada layer garis kontur


4) Sekarang barulah saya mulakan proses conversion. Caranya mudah saja, rujuk gambar di bawah.



Penerangan gambar :
  i. Right click layer dan pilih Data > Export Data...
 ii. Masukkan nama output samada shapefile atau geodatabase
iii. Klik OK

Selesai sudah. Data anda telahpun diconvert dari layer CAD menjadi GIS layer shapefile atau geodatabase. Mudah saja kan? Tapi peringatan... data yang telah anda convert tu mungkin memerlukan proses semakan dan editing sekiranya anda perlukan data yang sempurna dari segi topology. Ini kerana kemungkinan data yang telah anda convert tu terdapat error dari segi connectivity, overlap feature dan lain-lain memandangkan AutoCAD tidak mementingkan kesempurnaan topology pada drawing layer.

Selamat mencuba.. :)



16 comments:

  1. Bagaimana data CAD yg tidak mempunyai projection

    ReplyDelete
    Replies
    1. Sekiranya drawing asal CAD tu ada reference origin coordinate semasa draw dalam AutoCAD, kita boleh define balik Spatial Reference dalam ArcGIS thru ArcCatalog. Tapi kalau drawing asal pun takde reference, better betulkan balik dari AutoCAD. Kalau nak betulkan dari ArcGIS, boleh juga sekiranya kita ada reference layer dan gunakan tools Spatial Adjustment dalam ArcMap utk tarik data tu kepada reference layer.. lebih kurang konsep georeference image...

      Delete
    2. Salam..boleh tolong detailkan cara-cara convert untuk data CAD yang tiada projection?

      Delete
    3. Salam... cara convert tetap sama prosesnya. Cuma selepas conversion tu, cuba overlay ngan basemap yg kita ada dlm pelbagai projection. Cth, mungkin kita ada basemap dlm rso, cassini dan wgs84. Cuba overlay data yg dh convert tu ke dalam ketiga2 basemap td, tgk yg mana satu match. Katakan data tu match masuk dlm basemap rso, so kita definelah spatial reference data tu sebagai RSO. Kalau ketiga2 pun tak masuk, maybe masa dia buat drawing tu dlm autocad takde base on mana2 origin koordinat. Yg ni maybe susah sikit kecuali kita tahu exactly kat mana kedudukan data tu dalam basemap kita, then kita boleh buat proses spatial adjustment utk adjust balik data tu ke kedudukan sebenar.

      Delete
  2. Cikgu :

    kalau buat spatial adjustment tapi skala berbeza pulak dengan basemap yang kita ada...huhu..ada cara tak?

    ReplyDelete
    Replies
    1. source data yg kita adjust tu still akan based pada skala data yg asal dari segi detail features.. cthnya kalau kita adjust data yg based skala dia 50,000 kepada data skala 5,000, sudah tentu data dari skala 50,000 tu telah di generalize walaupun adjustment dilakukan mengikut data skala 5,000 .. spatial adjustment cuma boleh membantu dari segi transformation coordinate, adjust herotan geometry, align feature mengikut sempadan dll.

      Delete
  3. salam...saya nak tnya bagaimana jika kita hendak convert annotation layer dari CAD ke GIS?cntohnya, jika saya mahu setiap layer seperti layer jalan mempunyai annotation layer yang tersendiri apabila export ke GIS. Bolehkah kita menggunakan software tertentu seperti FME untuk membuatnya?terima kasih..

    ReplyDelete
    Replies
    1. salam.. kaedah convert layer annotation ni depend pada kita nk link ke feature apa (ie point, line, polygon.) Kalau nk link annotation tu ke polygon, 1 cara kita boleh guna spatial join..syaratnya sume text tu betul2 trletak dlm polygon. Kalau line, maybe boleh convert dulu annotation tu ke point kemudian gunakan analysis NEAR utk tarik teks yg terhampir dgn line tu. Guna FME pun saya rasa boleh, lagipun FME ni khusus utk kerja2 conversion, transformation ETL. Tapi saya agak kurang arif guna FME ni.

      Delete
    2. terima kasih atas penerangan yang diberikan.
      saya nak tanya berkenaan data CAD. bagaimana untuk membuat CAD layer data model?dan bolehkah kita kategorikan jenis - jenis layer dalam CAD?terima kasih..

      Delete
    3. saya kurang clear soalan ni. Ni lebih menjurus pada software autocad ke or dlm arcgis?

      Delete
    4. owh..maafkan sya..ni lebih menjurus pada software AutoCAD..apa fungsi data model sebelum CAD ditukar KE GIS?..berkenaan dengan kategorikan jenis layer tu, bolehkah kita kategorikan layer yang dibuat dalam AutoCAD?cntohnya ikut 12 kategori dalam standard MS1759..

      Delete
    5. Saya tak pernah guna software autocad jd x dpt nk jwb soalan tu. Yg saya pernah buat ialah convert data cad ke gis mnggunakan sware arcgis. Yg sy tahu autocad lebih pada drawing sware..bukan purely gis sware, tp x sure la pulak tentang autodesk map.

      Delete
  4. Salam,
    boleh tak admin terangkan serba sedikit mengenai perbezaan antara data drawing (dwg) dengan data (dxf) dalam autocad dan kelebihan masing - masing?terima kasih..

    ReplyDelete
    Replies
    1. wsalam...

      saya tak brape explore sgt tentang autocad, tapi yg saya tau kedua2 data dwg dan dxf ni boleh dipapar di dalam arcgis. tq..

      Delete
  5. salam..macam mana kita nak ubah data attribute shapefile yabg terbalik. maksud sy data asal dilapangan kedudukan asal sebelah kiri tapi bila papar di arcgis kedudukan sebelah kanan..hrap dpt penjelasan utk masalah ini.

    ReplyDelete
    Replies
    1. salam... saya kurang jelas.. maksudnya kedudukan fieldname/column dalam table ke?

      Delete