17

Jul 14

Script Ular Python

Screen Shot 2014-07-16 at 11.32.19 PM

 

Kalau ada yang mengatakan Python adalah bahasa pemrograman interpretatif yang banyak gunanya, saya sependapat. Terutama kalau berkenaan dengan perangkat lunak semacam ArcGIS. Lebih spesifik lagi berkenaan dengan pemrosesan data dalam jumlah banyak. Tulisan ini juga ada kaitannya dengan publikasi bulan lalu yang baru membahas batch processing dari menu di ArcToolbox.

Suatu siang dihubungi seorang kawan kuliah karena ada masalah mengolah data series untuk 2 lokasi yang berbeda. Pokoknya hari itu juga harus selesai diproses karena hasilnya akan dipresentasikan esokan hari. Saat pembicaraan ditelepon ia bilang sudah dikerjakan seperti monyet, semalaman sudah kurang tidur dan katanya belum beres. Dua anaknya sudah beberapa hari ini kurang terurus dengan baik karena ia mengerjakan data itu serta belajar untuk persiapan ujian. Saya sempat bertanya-tanya, kok dikerjakan seperti monyet?. Pembicaraan diakhiri dengan perjanjian saya harus membantu mengerjakan di lab. komputer kampus dalam beberapa menit lagi.

Tidak berapa lama kemudian saya jalan kaki ke kampus, ternyata sudah ditunggu. Saya sempat bertanya dikerjakan seperti monyet itu bagaimana? Kok sampai belum beres bla bla bla. Ternyata itu proses pengerjaan secara manual, yaitu dengan malakukan pemrosesan data satu per-satu. Woh…., istilahnya cara monyet. Saya sempat bertanya mengapa tidak menggunakan batch processing yang tersedia di ArcToolbox?, eh ternyata data seriesnya per-10 harian dari tahun 2001 hingga 2013. Ya lumayan pegal kalau gitu, apalagi kalau 2 lokasi. Kalau mau mudah harus dengan Script Ular Phyton.

Teman saya hendak menggunakan cell statistics yang ada di Spatial Analyst ArcGIS itu guna summary nilai yang ada disetiap data yang dimiliki itu, per tahun gitu. Sebenarnya di help ArcGIS petunjuk sudah ada, bahkan script dasarnya pun sudah disediakan, yaitu:

# Name: CellStatistics_Ex_02.py
# Description: Calculates a per-cell statistic from multiple rasters
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster01 = "degs"
inRaster02 = "negs"
inRaster03 = "cost"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute CellStatistics
outCellStatistics = CellStatistics([inRaster01, inRaster02, inRaster03], "RANGE", "NODATA")

# Save the output 
outCellStatistics.save("C:/sapyexamples/output/cellstats")

Script di atas tinggal di modifikasi sedikit, yaitu bagian environtment settings, set local variables, execute cellstatistics dan save the output. Sesuaikan saja dengan keadaan yang ada. Misalnya environtment settings, tinggal diarahkan pada alamat folder dimana data disimpan. Misalnya, c:/datasig/raster/. maka tulis saja menjadi seperti ini:

# Set environment settings
env.workspace = "C:/datasig/raster/"

Kemudian set local variables mengacu pada nama setiap file yang akan di proses. Misalnya nama filenya ada a2001_1, a2001_2,a2001_3,a2001_4,a2001_5, maka bagian set local variable menjadi seperti ini:

# Set local variables
inRaster01 = "a2001_1"
inRaster02 = "a2001_2"
inRaster03 = "a2001_3"
inRaster04 = "a2001_4"
inRaster05 = "a2001_5"

Setelah itu  bagian execute cellstatistics menjadi seperti ini:

# Execute CellStatistics
outCellStatistics = CellStatistics([inRaster01, inRaster02, inRaster03,
inRaster04, inRaster05], "RANGE", "NODATA")

Setelah itu  bagian terakhir menyesuaikan bagian save the output menjadi seperti ini umpamanya:
# Save the output 
outCellStatistics.save("C:/datasig/raster/output/a2001_Range.tif")

Nah perlu diperhatikan  “RANGE”, “NODATA”  pada execute cellstatistics. Itu bagian yang mengatur fungsi cell statistics yang akan dilakukan. Apakah Range, Mean, Sum dll. Untuk detilnya bisa lihat disini saja. Oh iya, terkait bahasa-bahasa semacam ular Phyton ini, perlu jeli dan teliti. Misalnya kurang tanda atau kelebihan  ” ” (kutip)  atau  , (koma) dll, script ya tidak jalan dong. Cukup yang perlu saja yang dituliskan. Ini kejadian. Saya sudah pulang dari Lab, dihubungi lagi karena katanya scriptnya rusak. Eh begitu saya balik dan membaca lagi isinya, ternyata ada tanda “-” yang sebenarnya tidak diperlukan didalamnya. Oalah. Lha itulah bahasa. Sama sebenarnya dengan “Thanks”. Kalau diucapkan kurang “s”, maka yang terdengar adalah “Tank”. Maknanya sudah berbeda. Kira-kira demikian kalau berurusan dengan bahasa. Mudah-mudahan ada manfaatnya.

Saya sengaja menulis kisah ini sebagai pengingat. Sudah beberapa tahun terakhir malas dengan kode-kode. Ternyata tidak boleh sepenuhnya saya tinggalkan. Ternyata masih ada gunanya, paling tidak nulungi teman biar tidak menggunakan cara monyet untuk mengerjakan data sebanyak itu. Sebab tidak efektif dan tidak efisien.

No comments yet, be the first.

Leave a Reply