utils

2.4. Mengunduh dan Mengekstrak file SHP

Tujuan: Mengunduh dari suatu alamat di web (biasanya dalam bentuk zip) dan mengekstrak pada folder kerja agar dapat diolah pada proses selanjutnya.

Syarat: Paket yang diperlukan adalah GISTools dan utils.

Tidak semua fila data yang diperlukan berada di komputer. Banyak data spasial (sebagian bersifat dinamis, atau selalu ter-update) yang berada di suatu server web yang harus diakses dengan mengunduhnya. R mempunyai kemampuan untuk mengunduh data ini, yang biasanya dalam format zip, kemudian mengekstraknya sesuai dengan lokasi (folder) yang diinginkan.

Fungsi yang akan digunakan adalah download.files() dan unzip().

Siapkan RStudio dan kita mulai membangun scriptnya.

Beberapa langkah utama adalah sebagai berikut:

Pertama adalah menyiapkan lingkungannya, dengan membersihkan semua object dan window plot.


# === MEMULAI R
rm(list=ls()) # Menghapus semua data
graphics.off() # Menutup semua grafik

# Menentukan folder kerja
setwd("D:/_randmm/project02")
getwd() # Periksa direktori kerja
list.files() # Periksa file pada direktori kerja
# ===

Berikutnya adalah mengunggah paket kedalam sistem, yaitu paket utils dan GISTools:


# Unggah paket GISTools dan utils
library(GISTools)
library(utils)

Paket utils diperlukan untuk pengunduhan dan pengekstrakan file. Sedangkan GISTools untuk menampilkan hasil akhir.

Untuk mendapatkan data SHP pada lokasi di seluruh dunia dengan beragam tema, kita dapat unduh dari berbagai situs yang menyediakan secara gratis. Biasanya data ini adalah data spasial pada skala yang tidak besar dan sangat terbatas tema fiturnya. Penyedia data ini antara lain adalah:

Langkah berikutnya adalah mendefinisikan variabel yang berisi lokasi (alamat) file di web, alamat di komputer lokal, dan nama file lokal. Variabel ini hanya untuk memudahkan jika sewaktu-waktu ada yang akan diubah.


# Variabel yang digunakan
FileOrigin <- "http://httsan.web.id/R/karawang_adm.zip"
DirLocal <- "D:/_randmm/project02/data"
FileLocal <- "karawang_adm.zip"
FileDirLocal <- paste(DirLocal, FileLocal, sep="/", collapse = NULL)

Langkah berikutnya adalah mengunduh dan mengekstrak file data spasial SHP. Pada contoh ini, data yang akan diunduh adalah batas administrasi Kabupaten Karawang, Jawa Barat, dengan besar file adalah sekitar 150 Kb dalam format zip. Dalam file zip tersebut bisa terdapat lebih dari satu file SHP. Lokasi file bisa dimana saja selama server mengizinkan file untuk diakses secara langsung.

Data yang diunduh akan disimpan dalam folder “data” pada folder kerja.

Script untuk proses pengunduhan dan ekstraksi adalah sebagai berikut:


# Proses unduh dan unzip
download.file(FileOrigin, dest= FileDirLocal, mode="wb")
unzip(zipfile= FileDirLocal, exdir= DirLocal)

Jika semua proses diatas telah selesai (yakinkan melalui pemeriksaan pada folder kerja), maka selanjutnya adalah mengunggah file SHP ke sistem sebagai object melalui fungsi readShapePoly(), kemudian menampilkan hasil pengunduhan ini melalui perintah plot().


# Baca file SHP dan jadikan object
KW_admkab <-readShapePoly(fn= paste(DirLocal, "KW_admkab", sep ="/"))
KW_admkec <-readShapePoly(fn= paste(DirLocal, "KW_admkec", sep ="/"))

#Tampilkan pada window plot
par(mfrow= c(1,2))
plot(KW_admkab, asp=1)
plot(KW_admkec, asp=1)

 

Hasil yang ditampilkan adalah sebagai berikut:

Hasil pengunduhan dan tampilan pada window plot.

Hasil pengunduhan dan tampilan pada window plot.

Simpan file script dengan nama Project_02_3.R.

Proses lengkap dapat dilihat pada laman Project_02_3.html.


Referensi fungsi:


Catatan pembaruan:

  • Karena pertimbangan besar file contoh, maka data contoh diganti dengan data batas kabupaten Karawang, Jawa Barat.
  • Tampilan pada window plot diubah menjadi dua kolom untuk menampilkan dua data plot dalam satu baris.