Tuesday, 1 January 2013

Geodatabase Domain


Topik kali ini akan membincangkan berkenaan Geodatabase Domain. Sebelum kita proceed lebih detail, saya nak tanya sikit.. ermm pernah tak anda menghadapi masalah data-data atribut yang caca marba, attribut tak standard, ada atribut yang duplicate dan kadang-kadang ada kod yang tak valid. Contohnya bila anda buka table data anda, ada maklumat nama-nama mukim seperti berikut :-

- PEKAN SUNGAI PENCHALA
- PEKAN SUNGAI PENCALA
- PEKAN SG PENCHALA
- Pekan Sungai Penchala

Kalau lihat contoh nama mukim di atas, ada pelbagai versi nama yang pengguna masukkan semasa proses data entry walhal semuanya merujuk pada mukim yang sama. Kalau kita terjemahkan maksud data tu mungkin tiada masalah kerana kita faham semuanya merujuk pada maksud yang sama, tetapi komputer akan menterjemahkan setiap satu nama mukim tu pada maksud yang berbeza. Oleh itu, problem ler nanti kalau anda nak buat proses query pada data anda sebab data anda tu tak seragam.

Atribut yang tidak konsisten akan menimbulkan masalah
bila proses query nak dilakukan


So macamana nak selesaikan masalah ni. Salah satu penyelesaian mudah ialah gunakan Geodatabase Domain. Fungsi Geodatabase Domain adalah untuk memastikan supaya data anda hanya mempunyai set atribut dan kod yang sah semasa proses data entry dilakukan melalui ArcGIS Desktop. Secara tak langsung ianya dapat mengelakkan kesalahan kemasukan data dan memastikan data anda tu standard, seragam dan konsisten.

Geodatabase domain membolehkan kod dan
atribut diseragamkan


Syarat pertama nak buat Geodatabase Domain ni ialah data anda mesti dalam format geodatabase dulu. Kalau data anda tu dalam shapefile, tak boleh lah nak buat Geodatabase Domain ni. Kemudian anda kena tentukan apakah kod untuk setiap atribut yang anda akan letakkan di dalam table anda tu. Nak mudah faham, lihat pada gambar di bawah ni dulu.



Senarai tu menunjukkan jenis aktiviti untuk kelas gunatanah. Jika dilihat dari senarai tu, terdapat maklumat keterangan untuk setiap aktiviti dan juga kod bagi mewakili setiap aktiviti tu. Katakan user buat proses editing layer gunatanah dan ingin memasukkan maklumat aktiviti gunatanah di dalam setiap polygon gunatanah. Saya pula ingin mengawal dan seragamkan agar user tu tak masukkan aktiviti-aktiviti yang tidak berkaitan dan ejaan yang tidak seragam. Caranya ialah saya akan jadikan senarai aktiviti tadi sebagai attribute domain di dalam geodatabase. Bagaimana caranya? Mudah saja... rujuk gambar bawah :-



Penerangan nombor :
  1. Right click geodatabase mana yang anda nak letakkan domain tu. (data/layer anda pun mesti berada dalam geodatabase tu)
  2. Pilih Properties.
  3. Klik tab Domain, kemudian isikan nama Domain.
  4. Pilih Field Type sebagai Text dan Domain Type sebagai Coded Values.
  5. Masukkan senarai kod-kod tadi beserta penerangan aktiviti.


OK siap dah attribute domain anda.. tapi macamana nak linkkan domain tu ke field di dalam table anda. Selagi anda tak linkkan domain tu, kod-kod dan senarai aktiviti tu tak akan keluar di dalam table anda bila anda nak buat data entry nanti. Katakan dalam table layer gunatanah saya ada field ACTIVITIES dan saya ingin linkkan domain tadi kt field tu. Caranya seperti gambar di bawah :-



Penerangan nombor :
  1. Klik pada field yang nak di linkkan domain tu. Dalam contoh saya ni field ACTIVITIES.
  2. Klik kat ruangan domain. Domain-domain yang telah anda bina tadi akan disenaraikan. Klik pada domain yang berkaitan.
  3. Klik OK.


Selesai sudah. So apa berlaku bila anda edit field yang ada link domain tu nanti dalam ArcMap? Haaa disinilah kelebihan domain. Bila anda nak masukkan data pada field ACTIVITIES tu nanti, anda tak perlu taip pun attribut. Contoh katalah saya digitize satu polygon gunatanah mewakili aktiviti Perumahan Terancang. Saya tak perlupun taip perkataan 'Perumahan Terancang' tu di dalam table sebab dalam ArcMap nanti senarai atribut tu akan automatik keluar sebagai senarai pilihan (combo box). Saya hanya perlu klik saja atribut dari senarai yang dipapar. So kalau tak perlu taip, maknanya takde la kesalahan menaip atribut... betul tak?

Field yg mengandungi domain membolehkan pengguna klik pada
senarai pilihan atribut semasa proses data entry


Selamat mencuba.

12 comments:

  1. TQ so much.....semoga usaha anda dalam menyebarkan ilmu mendapat manfaat kepada semua..

    Zulkifli

    ReplyDelete
  2. Betul....saya baru faham ape fungsi geodatabase domain ni....aritu masa kursus arcGIS...saya x faham sebab terlampau banyak input yg masuk dalam kepala...hehehee..tqqq

    ReplyDelete
  3. Salam.
    Encik, saya nak tanya..
    Saya mempunyai masalah di mana luas kawasan yang berbeza.
    Maksud saya, saya ada satu layer iaitu layer catchment dan layer kedua saya adalah land use untuk catchment tersebut.
    Daripada attribute table utk layer catchment (layer 1), jumlah luas saya berbeza dengan jumlah luas yang didapati daripada layer land use punya attribute table (layer 2). Bezanya sangat banyak.
    Adakah ini disebabkan masalah seperti dalam post ini?

    Terima kasih.

    ReplyDelete
    Replies
    1. wsalam..
      post ni cuma menerangkan cara2 utk mengawal dan validate attribute.. keluasan berbeza antara dua layer maybe ada beberapa faktor.. antaranya :-
      i) adakah coordinate system kedua2 data tu sama?
      ii) Field apa yg digunakan utk pengiraan luas? Adakah unit ukuran sama (meter, hectare etc)
      iii) Polygon kedua2 layer adakah betul2 share boundary atau terdapat gap or overlap di sempadan catchment?

      Delete
    2. Terima kasih di atas cadangan faktor-faktor tersebut.
      I really appreciate your help.

      Saya masih baru2 belajar berkenaan gis & arcgis software dan website ini banyak membantu. Terima kasih.
      Semoga Allah membalas jasa anda dengan sesuatu yang lebih baik.

      Delete
  4. Assalam.. harap dapat membantu.. dimana dan bagaimana sy boleh dapatkan peta DEM? utk kajian tesis tentang kegagalan cerun.. terima kasih..

    ReplyDelete
    Replies
    1. wsalam.. berapa resolution DEM yang diperlukan??

      Delete
  5. sy x pasti resolution.. di kawasan cameron highland.

    ReplyDelete
  6. salam.
    kenapa saya buat 'field type': short integer, dekat field attribute table x keluar domain ye?

    ReplyDelete