Hallo, teman-teman semuanya. Apa kabar klen? semoga semuanya selalu sehat dan aman, apalagi dalam masa pandemi seperti ini (vaksin mana vaksin ?? Wkwk).
Beberapa waktu belakangan ini, saya lagi seru banget ngulik-ngulik mengenai ArcPy, jadi sepertinya jika dibuatkan tulisan dan video juga akan seru. I hope so. FYI, untuk videonya sudah saya sertakan diakhir artikel.
Okay, without further ado. Let’s get started.
Jadi, enaknya kita akan membuat simulasi pekerjaan GIS ya, dengan menggunakan ArcPy. Secara singkat kira-kira langkahnya adalah seperti berkut:
- Membuat geodatabase
- Listing shapefile pada suatu folder
- Copy shapefile dari folder ke geodatabase
- Melakukan geoprocessing dengan union
- Membuat folder baru
- Copy hasil union menuju folder yang telah kita buat sebelumnya
Tujuan dari simulasi ini adalah untuk melihat melihat secara umum, bagaimana pekerjaan GIS yang biasa kita lakukan dengan ArcMap dapat juga dilakukan menggunakan script.
Pastikan sudah menginstall Software ArcGIS (saya menggunakan versi 10.4) dan juga IDE seperti PyScripter. Untuk raw data bisa menggunakan data yang saya gunakan pada simulasi tersebut, unduh disini. Untuk script yang sudah jadi silahkan unduh disini.
1. Membuat Geodatabase
Untuk syntax membuat geodatabase adalah seperti berikut :
CreateFileGDB_management (out_folder_path, out_name, {out_version})
Pastikan untuk import Libary ArcPy dan OS. Untuk parameter pertama pada syntax diatas, kita akan input out_folder_path dengan string r”D:\arcpy\tutorial_geosai” dan untuk out_name (nama geodatabase) akan kita beri nama “geosai.gdb” seperti script dibawah ini.
import os
import arcpy
from arcpy import env
arcpy.CreateFileGDB_management(r"D:\arcpy\tutorial_geosai", "geosai.gdb")
2. Listing shapefiles pada suatu folder
Untuk syntax lis feature class adalah seperti berikut:
ListFeatureClasses ({wild_card}, {feature_type}, {feature_dataset})
Pastikan kita sudah set workspace sesuai dengan dimana tempat data shapefiles berada. Untuk data yang saya gunakan, berada di folder D:\arcpy\tutorial_geosai\data. Buat sebuah variabel baru yaitu feature_classes untuk menampung list dari nama-nama feature classes yang ada pada folder tersebut. Scriptnya seperti dibawah ini.
# Listing all features in a folder
arcpy.env.workspace = r"D:\arcpy\tutorial_geosai\data"
feature_classes = arcpy.ListFeatureClasses() #return list
3. Copy shapefiles menuju geodatabase
Syntax copy adalah seperti berikut :
CopyFeatures_management (in_features, out_feature_class, {config_keyword}, {spatial_grid_1}, {spatial_grid_2}, {spatial_grid_3})
Karena listfeatureclasses pada langkah dua sebelumnya mereturn list, kita disini dapat menggunakan looping untuk menyalin tiap shapefiles pada folder tersebut menuju ke geodatabase geosai.gdb. Sriptnya seperti di bawah ini:
# Copy all feaures to gdb
for fc in feature_classes:
arcpy.CopyFeatures_management(
fc, os.path.join(r"D:\arcpy\tutorial_geosai\geosai.gdb", os.path.splitext(fc)[0]))
4. Geoprocessing Union
Syntax union:
Union_analysis (in_features, out_feature_class, {join_attributes}, {cluster_tolerance}, {gaps})
Sebelum melaukan geoprocessing union, kita harus set terlebih dahulu lokasi dari workspace, karena sekarang lokasi data sudah berubah yaitu berada di dalam suatu geodatabase dengan nama geosai.gdb. Lalu tulis script untuk union, dimana untuk input yaitu list yang berisi data dengan nama “adm_kab” dan “adm_kec”, kemudian untuk hasil union dengan nama “adm_union” seperti pada script dibawah ini.
arcpy.env.workspace = r"D:\arcpy\tutorial_geosai\geosai.gdb"
arcpy.Union_analysis(["adm_kab", "adm_kec"], "adm_union")
5. Membuat folder baru
Syntax membuat folder baru:
CreateFolder_management (out_folder_path, out_name)
Untuk membuat sebuah folder sangat simple, cukup dengan menyertakan parameter untuk lokasi folder dan kemudian nama folder. Untuk lokasi folder, saya membuatnya di D:\arcpy\tutorial_geosai dengan nama folder yaitu “data_output”, seperti dibawah ini.
arcpy.CreateFolder_management(r"D:\arcpy\tutorial_geosai", "data_output")
6. Copy hasil union ke folder
Ini merupakan tahap terakhir, pada tahap ini sebenarnya sama dengan langkah nomor tiga, jadi kita akan copy hasil union yang tersimpan pada geosai.gdb menuju folder dengan nama “data_output”, seperti yang telah kita buat sebelumnya. Script seperti dibawah ini.
arcpy.CopyFeatures_management(r"D:\arcpy\tutorial_geosai\geosai.gdb\adm_union", r"D:\arcpy\tutorial_geosai\data_output\adm_union")
Jadi sekian untuk tutorial asik-asik kita hari ini, berikut untuk yang lebih suka menonton videonya, saya sertakan juga. Thanks and see you guys on another interesting topics. Bye bye. Salam 3M.