BLANTERVIO103

Menambahkan Nomor Berurutan ke Tabel Terurut di ArcGIS

Menambahkan Nomor Berurutan ke Tabel Terurut di ArcGIS
10/21/2023
Menambahkan Nomor Berurutan ke Tabel Terurut di ArcGIS

Menambahkan nomor berurutan ke tabel terurut di ArcMap ArcGIS adalah salah satu tugas yang sering dilakukan oleh para analis GIS. Ada beberapa cara untuk melakukannya, tapi pada tutorial kali ini kita akan menggunakan script Python.

Langkah pertama dalam menambahkan nomor berurutan ke tabel terurut adalah memastikan bahwa tabel kita sudah terurut sesuai dengan kriteria yang Anda inginkan. Misalnya, jika kita ingin memberikan nomor berurutan ke data spasial berdasarkan kolom tertentu, pastikan Anda telah mengurutkan tabel berdasarkan kolom tersebut.

Biasanya metode yang digunakan adalah berdasarkan urutan Object ID (OID). Namun akan kita coba ke tingkat lanjut dengan membuat urutan berdasarkan 2 buah kolom atau lebih. Contoh mengurutkan berdasarkan tahun, bulan, hari dan lain semacamnya. Berikut adalah langkah-langkah untuk menambahkan nomor berurutan ke tabel terurut di ArcMap menggunakan script Python:

Menambahkan Nomor Berurutan ke Tabel Terurut di ArcMap


Mengurutkan Nomor Berdasarkan FID

#Pre-logic Script Code:
rec=0
def autoIncrement(): 
    global rec 
    pStart = 1  
    pInterval = 1 
    if (rec == 0):  
        rec = pStart  
    else:  
        rec += pInterval  
    return rec

#Expression:
autoIncrement()

Kode diatas adalah kode Python yang digunakan dalam ArcGIS Field Calculator untuk melakukan penomoran (incremental numbering) secara otomatis berdasarkan urutan FID pada kolom tertentu di atribut tabel. 

 

Mengurutkan Nomor Tingkat Lanjut

#Pre-logic Script Code:
mxd = arcpy.mapping.MapDocument("CURRENT")
lr=arcpy.mapping.ListLayers(mxd)[0]
tbl=arcpy.da.TableToNumPyArray(lr,("FID","A","B"))
bs=sorted(tbl, key=lambda x: (x[1], x[2]))
aDict={}
for i,row in enumerate(bs):
 aDict[row[0]]=i
def sortSeq(fid):
 return aDict[fid]

#Expression:
sortSeq( !FID!)

Kode tersebut adalah kode Python untuk menghitung urutan sequential (berurutan) dari nilai pada dua kolom "A" dan "B" dalam sebuah layer di ArcMap dan menyimpan hasilnya dalam bentuk tabel yang telah diurutkan. Berikut adalah penjelasan dari setiap bagian kode tersebut:

  1. `mxd = arcpy.mapping.MapDocument("CURRENT")`: Kode ini membuka proyek ArcMap yang sedang aktif ("CURRENT") dan menyimpannya dalam variabel `mxd`.
  2. `lr = arcpy.mapping.ListLayers(mxd)[0]`: Kode ini mengambil layer pertama dari daftar layer yang ada di proyek ArcMap yang aktif dan menyimpannya dalam variabel `lr`.
  3. `tbl = arcpy.da.TableToNumPyArray(lr, ("FID", "A", "B"))`: Kode ini mengonversi data dari layer `lr` menjadi sebuah NumPy array dengan memilih kolom "FID", "A", dan "B" dari layer tersebut. NumPy array ini akan disimpan dalam variabel `tbl`.
  4. `bs = sorted(tbl, key=lambda x: (x[1], x[2]))`: Kode ini mengurutkan NumPy array `tbl` berdasarkan nilai kolom "A" terlebih dahulu, dan jika ada nilai yang sama dalam kolom "A", maka akan mengurutkan berdasarkan kolom "B". Hasil pengurutan disimpan dalam variabel `bs`.
  5. `aDict = {}`: Membuat sebuah dictionary kosong yang akan digunakan untuk menyimpan nilai indeks (urutan sequential) dari nilai dalam kolom "FID".
  6. `for i, row in enumerate(bs):`: Kode ini melakukan loop melalui setiap baris dalam NumPy array `bs` beserta indeksnya, dengan bantuan fungsi `enumerate`.
  7. `aDict[row[0]] = i`: Memasukkan nilai indeks `i` ke dalam dictionary `aDict` dengan kunci (key) berupa nilai dalam kolom "FID" (`row[0]`). Dengan cara ini, kita akan memiliki mapping antara nilai pada kolom "FID" dengan urutan sequentialnya.
  8. `def sortSeq(fid):`: Mendefinisikan sebuah fungsi bernama `sortSeq` yang menerima satu parameter `fid`.
  9. `return aDict[fid]`: Fungsi `sortSeq` akan mengembalikan nilai yang terdapat pada dictionary `aDict` berdasarkan kunci `fid`.

Perhatikan pada kolom ID, gunakan FID jika ditabelnya memakai Feature ID dan gunakan OID jika ditabelnya memakai Object ID. Selain itu perhatikan juga nama kolom kondisionalnya, disini mimin memakai nama kolom "A" dan "B" untuk memudahkan saja. 

Dengan begitu, setelah kode ini dijalankan, kita akan mendapatkan urutan nomor berdasarkan kondisi 2 kolom yang berbeda yaitu kolom "A" dan "B". Berikut video tutorial untuk melengkapi penjelasan yang sudah mimin buat diatas.

VIDEO TUTORIAL

Baca Juga:
 
Baiklah sekian dulu untuk sharing kali ini tentang Cara Menghitung Nomor Berurutan ke Tabel Terurut Menggunakan ArcMap - ArcGIS. Jika ada saran, tanggapan, pertanyaan, link mati serta request silakan gunakan kotak komentar, halaman kontak atau sosial media yang ada di website Lapak GIS. Terima Kasih.
Share This Article :
Lapak GIS

Lapak GIS adalah Tempat Berbagi Pengetahuan tentang Geographic Information System (GIS) dan Remote Sensing (Pengindraan Jauh).

6210244686568305774