3/16/2021
Contents
1 Data Spasial 1
1.1 Jenis Data Spasial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Tipe Data Spasial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Input Data 2
3.1 Impor dataset dari R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2 Input Data External . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.3 Input data dari Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4 Plotting Data 5
4.1 Menampilkan Peta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Menampilkan Data pada peta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.3 Menambahkan atribut-atribut dalam peta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5 Pembobot Spasial 12
5.1 Pembobot Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2 Pembobot Titik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1 Data Spasial
1. Data Titik (Point Pattern) : Lokasi suatu kejadian, contoh : lokasi pohon di hutan, lokasi sarang
burung pada pohon
2. Data Kontinu (Continuous Data) : Kejadian yang bersifat kontinu dalam suatu ruang, contoh : pola
curah hujan, pola salinitas air tanah, dll
3. Data Area : Kejadian dipisahkan dalam zona, contoh : kepadatan penduduk kabupaten/kota, dll.
1
1.2 Tipe Data Spasial
1. Data Vector
Data vektor adalah data yang direpresentasikan sebagai suatu mosaik berupa garis (arc/line), polygon
(daerah yang dibatasi oleh garis yang berawal dan berakhir pada titik yang sama), titik/point (node yang
mempunyai label), dan nodes (merupakan titik perpotongan antara dua buah garis).
Kegunaan Data Vektor untuk analisa yang membutuhkan ketepatan posisi, misalnya pada basis data batas-
batas kadaster. Contoh penggunaan lainnya adalah untuk mendefinisikan hubungan spasial dari beberapa
fitur.
Keuntungan : ketepatan dalam merepresentasikan fitur titik, batasan dan garis lurus.
Kelemahan : ketidakmampuannya dalam mengakomodasi perubahan gradual.
2. Data Raster
Data raster adalah data yang sering dihasilkan dari penginderaan jauh. Data Raster sering disebut juga
dengan sel grid. Pada data raster, obyek geografis direpresentasikan sebagai struktur sel grid yang
disebut dengan pixel (picture element).
Pada data raster, resolusi (definisi visual) tergantung pada ukuran pixel-nya. Dengan kata lain, resolusi
pixel menggambarkan ukuran sebenarnya di permukaan bumi yang diwakili oleh setiap pixel pada citra.
Semakin kecil ukuran permukaan bumi yang direpresentasikan oleh satu sel, semakin tinggi resolusinya.
Data raster sangat baik untuk merepresentasikan batas-batas yang berubah secara gradual, seperti
jenis tanah, kelembaban tanah, vegetasi, suhu tanah, dan sebagainya.
Kelemahan : besarnya ukuran file, semakin tinggi resolusi grid-nya semakin besar pula ukuran filenya.
Masing-masing format data mempunyai kelebihan dan kekurangan. Pemilihan format data yang digunakan
sangat tergantung pada tujuan penggunaan, data yang tersedia, volume data yang dihasilkan, ketelitian
yang diinginkan, serta kemudahan dalam analisa.
Data vektor relatif lebih ekonomis dalam hal ukuran file dan presisi dalam lokasi, tetapi sangat sulit untuk
digunakan dalam komputasi matematik.
Sebaliknya, data raster biasanya membutuhkan ruang penyimpanan file yang lebih besar dan presisi lokasinya
lebih rendah, tetapi lebih mudah digunakan secara matematis.
library(sp)
library(rgdal)
library(spData)
library(readxl)
library(raster)
library(spdep)
3 Input Data
Input data yang akan digunakan di R dapat dilakukan dengan beberapa cara :
2
3.1 Impor dataset dari R
R telah menyediakan data set yang dapat digunakan dalam package dataset yang dapat diakses dengan
dataset:: atau dataset yang tersedia dalam package.
Berikut akan diinput data Colombus dari package spData. Cara memanggil data columbus ini adalah
data(columbus)
str(columbus)
Dilihat dari struktur data columbus memiliki 49 observasi dan 22 variabel. List yang ditandai dengan awalan
$ adalah masing-masing variabel yang ada dan diikuti dengan tipe data dan awalan dari data pada variabel.
Misal : dalam data columbus terdapat variabel bernama AREA yang bertipeNUMERIC dan data yang ada pada
variabel AREA adalah 0.3094, 0.2593, dan seterusnya sampai dengan 49 data.
Untuk mengetahui deskripsi dari data dapat digunakan help()
help(columbus)
The columbus data frame has 49 rows and 22 columns. Unit of analysis: 49 neighbourhoods
in Columbus, OH, 1980 data. In addition the data set includes a polylist object polys with
the boundaries of the neighbourhoods, a matrix of polygon centroids coords, and col.gal.nb, the
neighbours list from an original GAL-format file. The matrix bbs is DEPRECATED, but retained
for other packages using this data set.
3
Usage columbus
Format This data frame contains the following columns:
AREA computed by ArcView
PERIMETER computed by ArcView
COLUMBUS_ internal polygon ID (ignore)
COLUMBUS_I another internal polygon ID (ignore)
POLYID yet another polygon ID
NEIG neighborhood id value (1-49); conforms to id value used in Spatial Econometrics book.
HOVAL housing value (in $1,000)
INC household income (in $1,000)
CRIME residential burglaries and vehicle thefts per thousand households in the neighborhood
OPEN open space in neighborhood
PLUMB percentage housing units without plumbing
DISCBD distance to CBD
X x coordinate (in arbitrary digitizing units, not polygon coordinates)
Y y coordinate (in arbitrary digitizing units, not polygon coordinates)
NSA north-south dummy (North=1)
NSB north-south dummy (North=1)
EW east-west dummy (East=1)
CP core-periphery dummy (Core=1)
THOUS constant=1,000
NEIGNO NEIG+1,000, alternative neighborhood id value
Dapat juga kita menggunakan data yang sudah tersimpan dalam penyimpanan kita. File yang digunakan
dapat berupa file .xlsx atau file .csv. Cara yang digunakan adalah dengan menggunakan fungsi read_excel
atau read_csv dalam library(readxl). Contoh penggunaan nya adalah :
setwd("D:\\") #setting working directory sampai dengan folder dimana file berada
Untuk melihat dimensi, struktur, dan data dari datagiziburuk dapat menggunakan syntax
dim(data.giziburuk)
## [1] 27 5
str(data.giziburuk)
4
## tibble [27 x 5] (S3: tbl_df/tbl/data.frame)
## $ kode kabko: num [1:27] 3201 3202 3203 3204 3205 ...
## $ KABKOT : chr [1:27] "BOGOR" "SUKABUMI" "CIANJUR" "BANDUNG" ...
## $ Giziburuk : num [1:27] 211 117 133 186 132 110 104 111 159 129 ...
## $ Long : num [1:27] 107 107 107 108 108 ...
## $ Lat : num [1:27] -6.54 -7.07 -7.05 -7.07 -7.34 ...
head(data.giziburuk)
## # A tibble: 6 x 5
## ‘kode kabko‘ KABKOT Giziburuk Long Lat
## <dbl> <chr> <dbl> <dbl> <dbl>
## 1 3201 BOGOR 211 107. -6.54
## 2 3202 SUKABUMI 117 107. -7.07
## 3 3203 CIANJUR 133 107. -7.05
## 4 3204 BANDUNG 186 108. -7.07
## 5 3205 GARUT 132 108. -7.34
## 6 3206 TASIKMALAYA 110 108. -7.43
Dapat dilihat bahwa data gizi buruk memiliki 27 observasi dan 5 variabel. Variabel-variabel tersebut adalah
kode kabkot, KABKOT, Giziburuk, Long, dan Lat.
Jika data belum tersimpan atau terdownload dalam pc, dapat dilakukan input data langsung dari web yang
memuat data. Contohnya dengan
4 Plotting Data
Membuat plot di R dapat digunakan dengan banyak cara. Dapat menggunakan base plot atau bisa juga
menggunakan levelplot seperti fungsi spplot.
Untuk membuat peta, diperlukan Shape File. Shape file adalah file yang memiliki informasi geografis
dan merupakan penyimpanan vektor digital untuk menyimpan lokasi geometris dan informasi atribut.
Suatu shape file minimal harus memiliki 3 file wajib yaitu :
• .shp: format bentuk; fitur geometri itu sendiri
• .shx: format indeks bentuk; indeks posisi dari geometri fitur untuk memungkinkan pencarian maju dan
mundur dengan cepat
• .dbf: format atribut; atribut kolom untuk setiap bentuk, dalam format dBase IV.
5
4.1 Menampilkan Peta
Untuk menampilkan peta dengan membaca file shp, digunakan fungsi readOGR dalam package rgdal.
Berikut akan dicontohkan cara menampilkan peta dari file yang ada di dalam data columbus
columbusmap<-readOGR(system.file("shapes/columbus.shp", package="spData"))
plot(columbusmap)
Shp yang digunakan sebelumnya berasal dari data columbus yang ada dalam package spData. Selanjutnya
akan dibuat peta dari file external.
File .shp, .shx, dan .dbf harus tersimpan dalam 1 folder dengan nama yang sama. Selanjutnya folder
tersebut dapat diakses dengan atribut dsn dalam fungsi readOGR()
6
jabar <- readOGR(dsn="D:\\petajabar27", layer="Peta Jabar 27")
plot(jabar)
Untuk menampilkan data dalam peta digunakan fungsi spplot. Misalnya dari peta wilayah yang sudah kita
jalankan sebelumnya, ingin dilihat salah satu variabel yang ada dalam data colombus yaitu variabel HOVAL
(harga rumah dalam satuan $1,000).
Digunakan fungsi spplot dengan parameter peta wilayah yang telah dibuat dan nama variabel. Judul
peta dapat ditambahkan dengan menambah argumen sub="judul peta"
spplot(columbusmap,"HOVAL",sub="Map of HOVAL")
7
100
90
80
70
60
50
40
30
20
Map of HOVAL
Contoh selanjutnya, misalnya kita ingin melihat pendapatan rumah tangga yang ada dalam variabel INC
maka dapat menggunakan syntax
spplot(columbusmap,"INC",sub="Map of INC")
8
30
25
20
15
10
Map of INC
Untuk menambahkan text, misalnya nama kabupaten/kota dalam peta digunakan fungsi text. Berikut
adalah parameter yang digunakan
• text yang ingin ditampilkan : berisi nama kolom/variabel yang akan ditampilkan, dalam hal ini karena
akan ditampilkan nama kabkot dalam peta, maka dipilih kolom/variabel KABKOT
9
BEKASI
KARAWANG
KOTA BEKASI
KOTA DEPOK
INDRAMAYU
SUBANG
BOGOR
KOTA BOGOR PURWAKARTA
KOTA CIREBON
CIREBON
SUMEDANG MAJALENGKA
KOTA
BANDUNG CIMAHI
BARAT
KOTA SUKABUMI KOTA BANDUNG
KUNINGAN
SUKABUMI
BANDUNG
CIANJUR
CIAMIS
GARUT KOTA TASIKMALAYAKOTA BANJAR
TASIKMALAYA
PANGANDARAN
Pemberian waran pada peta dapat dilakukan dengan menggunakan fungsi pallete. Pada contoh, akan digu-
nakan warna rainbow. Warna rainbow akan memberikan gradasi warna dari merah ke ungu yag jumlahnya
sesuai dengan parameter yang dimasukkan.
Misal : rainbow (10) artinya akan dibuat 10 gradasi warna antara merah sampai ke ungu.
Pembedaan warna dapat disesuaikan dengan variabel yang kita inginkan. Misal, kita ingin warna yang
berbeda tiap IDKAB2 maka pada parameter col= dituliskan variabel jabar$IDKAB2
palette(rainbow(10))
plot(jabar,col=jabar$IDKAB2)
text(jabar,’KABKOT’,cex=0.3)
10
BEKASI
KARAWANG
KOTA BEKASI
KOTA DEPOK
INDRAMAYU
SUBANG
BOGOR
KOTA BOGOR PURWAKARTA
KOTA CIREBON
CIREBON
SUMEDANG MAJALENGKA
KOTA
BANDUNG CIMAHI
BARAT
KOTA SUKABUMI KOTA BANDUNG
KUNINGAN
SUKABUMI
BANDUNG
CIANJUR
CIAMIS
GARUT KOTA TASIKMALAYAKOTA BANJAR
TASIKMALAYA
PANGANDARAN
Jika sebelumnya pewarnaan hanya berdasar IDKAB, maka selanjutnya pewarnaan akan berdasar dari data
yang ada.
Misalnya kita akan mengelompokkan daerah berdasarkan kondisi gizi buruk yang ada di kolom
Giziburuk. Akan dibedakan menjadi 3 kelompok, yang masing-masing kelompok memiliki warna
hijau-kuning-merah sesuai dengan keadaan Giziburuk.
Maka dapat digunakan syntax
spplot(jabar, "gizi", col.regions=colfunc(6), cuts = 5, main="Peta Sebaran") #membuat plot dengan data d
11
Peta Sebaran
300
250
200
150
100
5 Pembobot Spasial
Berikut adalah ilustrasi tentang pembobot spasial
12
• Untuk pembobot area digunakan konsep ketetanggan dengan metode bishop, rook, atau queen
• Untuk pembobot titik, digunakan konsep jarak dengan metode K-nn, inverse, atau eksponential.
Berikut akan dicontohkan pembobot area dengan konsep ketetanggaan menggunakan fungsi poly2nb. Data
yang digunakan adalah data columbus. Dan metode yang digunakan adalah metode queen
queen.w1<-nb2mat(queen.w,style= "B")
head(queen.w1)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
## 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0
## 2 1 0 1 1 0 0 0 0 0 0 0 0 0 0
## 3 1 1 0 1 1 0 0 0 0 0 0 0 0 0
## 4 0 1 1 0 1 0 0 1 0 0 0 0 0 0
## 5 0 0 1 1 0 1 0 1 1 0 1 0 0 0
## 6 0 0 0 0 1 0 0 0 1 0 0 0 0 0
## [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26] [,27]
## 1 0 0 0 0 0 0 0 0 0 0 0 0 0
## 2 0 0 0 0 0 0 0 0 0 0 0 0 0
## 3 0 0 0 0 0 0 0 0 0 0 0 0 0
## 4 0 0 0 0 0 0 0 0 0 0 0 0 0
## 5 1 1 0 0 0 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0 0 0 0 0 0
## [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36] [,37] [,38] [,39] [,40]
## 1 0 0 0 0 0 0 0 0 0 0 0 0 0
13
## 2 0 0 0 0 0 0 0 0 0 0 0 0 0
## 3 0 0 0 0 0 0 0 0 0 0 0 0 0
## 4 0 0 0 0 0 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0 0 0 0 0 0
## [,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48] [,49]
## 1 0 0 0 0 0 0 0 0 0
## 2 0 0 0 0 0 0 0 0 0
## 3 0 0 0 0 0 0 0 0 0
## 4 0 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0 0
plot(st_geometry(columbus.map), border="white",col=’gray’)
coords<-st_coordinates(st_centroid(st_geometry(columbus.map)))
plot(queen.w, coords, add = TRUE, col = "red")
Selanjutnya akan digunakan data yang sama untuk pembobotan area dan konsep ketetanggaan dengan
metode Rook.
14
Perbedaannya pada parameter queen dipilih pilihan FALSE
plot(st_geometry(columbus.map), border="white",col=’grey’)
15
5.2 Pembobot Titik
1. Ekstrak koordinat
D<-as.matrix(dist(coordinates(columbus),method="euclidean"))
head (D)
16
## 1001 10.143177 13.389615 6.476057 6.439544 5.989098 6.780740 8.468827 8.532900
## 1006 6.385297 9.129169 5.262634 5.730594 6.150225 6.924335 6.273516 7.438977
## 1002 8.326080 11.842387 4.430677 4.444875 4.156547 4.981447 6.414375 6.533266
## 1007 4.011398 7.762503 2.748746 3.439300 4.363894 4.915698 3.115782 4.601574
## 1008 3.374271 4.804083 6.609873 7.335529 8.314708 8.833079 6.019675 8.053725
## 1011 1042 1041 1017 1043 1019 1012
## 1005 13.711330 10.490235 9.888868 14.517249 14.443022 11.552360 15.724901
## 1001 15.188420 8.476589 7.721270 15.266075 12.058740 11.816469 17.040922
## 1006 11.040654 8.134895 7.680756 11.562050 12.195293 8.497112 12.984798
## 1002 13.514809 6.609276 5.906539 13.371051 10.385875 9.850914 15.290814
## 1007 9.272355 5.616581 5.405377 9.068987 9.623994 5.648116 10.990111
## 1008 6.823586 9.299977 9.229546 7.949672 13.115199 5.832392 8.848529
## 1035 1032 1020 1021 1031 1033 1034
## 1005 12.180329 11.204003 11.175591 13.482362 13.407051 13.461476 13.729476
## 1001 10.336562 10.209682 10.758148 13.615500 12.812749 12.435339 12.322736
## 1006 9.643470 8.312736 8.146025 10.423137 10.387420 10.540475 10.937541
## 1002 8.430593 8.157769 8.712137 11.614241 10.755487 10.391479 10.326326
## 1007 6.823210 5.161093 4.987386 7.507044 7.218034 7.365712 7.840975
## 1008 10.139951 7.760932 6.675627 7.672605 8.728000 9.533651 10.466923
## 1045 1013 1022 1044 1023 1046 1030 1024
## 1005 17.89268 18.12241 14.661476 17.94064 15.67553 19.60817 15.257552 15.453209
## 1001 14.69637 19.11704 14.677561 15.08192 15.47664 16.44723 13.826194 14.640233
## 1006 16.41655 15.26096 11.598568 16.03672 12.61168 18.04781 12.450687 12.459871
## 1002 13.67927 17.25701 12.656001 13.72953 13.43263 15.38600 11.840709 12.587263
## 1007 14.56390 12.94056 8.630649 13.73913 9.56078 16.06710 9.334264 9.277353
## 1008 18.40872 11.32460 8.886894 17.37254 10.10012 19.85284 11.785435 10.844079
## 1047 1016 1014 1049 1029 1025 1028 1048
## 1005 22.66643 18.79971 20.48088 20.03867 16.73740 17.33559 18.22742 22.68873
## 1001 19.37661 19.31722 21.36729 17.12308 15.86295 16.88245 16.93904 19.51695
## 1006 21.26934 15.80718 17.59093 18.16040 13.74878 14.28303 15.33815 21.10079
## 1002 18.47516 17.35142 19.46962 15.82005 13.81481 14.82555 14.93858 18.46611
## 1007 19.39829 13.13278 15.17079 15.84918 10.56534 11.16443 12.16958 19.03827
## 1008 23.21116 12.28082 13.70732 19.44898 12.08634 11.98129 14.14177 22.76628
## 1015 1027 1026
## 1005 22.37715 18.32913 19.49792
## 1001 22.95545 17.40226 18.79252
## 1006 19.40692 15.34309 16.46848
## 1002 20.98929 15.35996 16.73865
## 1007 16.76878 12.15936 13.30854
## 1008 15.75123 13.61896 14.36067
K-nearest neighbors atau knn adalah algoritma yang berfungsi untuk melakukan klasifikasi suatu data
berdasarkan data pembelajaran (train data sets), yang diambil dari k tetangga terdekatnya (nearest
neighbors). Dengan k merupakan banyaknya tetangga terdekat.
K-nn dengan 1-nn
#K-nn
w3<-knearneigh(coordinates(columbus), k=1, longlat= TRUE)
knn.w<-nb2listw(knn2nb(w3))
summary(knn.w)
17
## Characteristics of weights list object:
## Neighbour list object:
## Number of regions: 49
## Number of nonzero links: 49
## Percentage nonzero weights: 2.040816
## Average number of links: 1
## Non-symmetric neighbours list
## Link number distribution:
##
## 1
## 49
## 49 least connected regions:
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
## 49 most connected regions:
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
##
## Weights style: W
## Weights constants summary:
## n nn S0 S1 S2
## W 49 2401 49 75 232
1−nn
18
K-nn dengan 2-nn
w2=knearneigh(coords, k=2)
knn.w2=nb2listw(knn2nb(w2))
summary(knn.w2)
19
2−nn
Metode Inverse Distance Weights adalah salah satu metode interpolasi untuk menaksir suatu nilai
pada lokasi yang tidak tersampel berdasarkan data disekitarnya. Metode ini sering digunakan dalam
kegiatan eksplorasi karena dalam proses perhitungannya lebih sederhana dan mudah dipahami.
Metode invers distance weights sama dengan metode double power distance weight dengan alpha=1
#row-normalized
diag(w)<-0
rtot<-rowSums(w, na.rm =T)
w_std<-w/rtot
rowSums(w_std, na.rm=T)
## 1005 1001 1006 1002 1007 1008 1004 1003 1018 1010 1038 1037 1039 1040 1009 1036
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 1011 1042 1041 1017 1043 1019 1012 1035 1032 1020 1021 1031 1033 1034 1045 1013
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 1022 1044 1023 1046 1030 1024 1047 1016 1014 1049 1029 1025 1028 1048 1015 1027
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 1026
## 1
20
invers.w<-mat2listw(w_std, style="W")
summary(invers.w)
21
Inverse Distance
#Eksponential
alpha<-2
w2<-exp(-alpha*D)
diag(w2)<-0
rtot<-rowSums(w2, na.rm =T)
rtot
22
## 0.147947913 0.057594408 0.035246053 0.046590528 0.006467291 0.106080820
## 1026
## 0.042992874
w_std<-w2/rtot
rowSums(w_std, na.rm=T)
## 1005 1001 1006 1002 1007 1008 1004 1003 1018 1010 1038 1037 1039 1040 1009 1036
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 1011 1042 1041 1017 1043 1019 1012 1035 1032 1020 1021 1031 1033 1034 1045 1013
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 1022 1044 1023 1046 1030 1024 1047 1016 1014 1049 1029 1025 1028 1048 1015 1027
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 1026
## 1
eksp.w=mat2listw(w_std, style="W")
summary(eksp.w)
23
Eksponential Distance Weights
24