P3d-Peta Choropleth
A choropleth map (from Greek χῶρος “area/region” and πλῆθος“multitude”) is a type of thematic map in which areas are shaded or patterned in proportion to a statistical variable that represents an aggregate summary of a geographic characteristic within each area, such as population density or per-capita income.
Installing the Library
Pada penggunaan pertama, silahkan install terlebih dahulu package yang digunakan dengan menuliskan kode berikut ini :
install.packages("sf") # Untuk memakai fungsi st_read nya
install.packages("tigris") # Untuk 'Memotong' SHP
install.packages("ggplot2") # Untuk Visualisasi Peta
install.packages("dplyr") # untuk pakai fungsi Glimpse nya
Selanjutnya load package yang telah di install dengan kode berikut ini
library(sf)
library(ggplot2)
library(tigris)
library(dplyr)
Spatial Data Structure
Salah satu tipe data spasial yang paling umum digunakan adalah shapefile, walaupun banyak tipe data yang lain, untuk sesi kali ini, kita fokus pada bentuk data ini saja.
Reading Spatial Data
Data yang akan kita gunakan adalah Indonesia - Subnational Administrative Boundaries yang bisa diakses di HumData, data ini berisi :
|
|
Data-data tersebut, bisa diakses juga pada Link berikut ini :
Admin 0 : Berisi SHP Indonesia (Zip 26 MB)
Admin 1 : Berisi SHP Indonesia Per Provinsi (Zip 28 MB)
Admin 2 : Berisi SHP Indonesia Per Kabupaten (Zip 40.5 MB)
Admin 3 : Berisi SHP Indonesia per Kecamatan (Zip 78.5 MB)
Silahkan Download dan Extract file tersebut, pada praktikum ini, Kita hanya akan menggunakan SHP per Kabupaten (Admin 2)
Percobaan Pertama Jabar di Indonesia
Memasukkan Data SHP
Untuk memasukkan Data SHP, bisa dilakukan dengan melakukan akses pada file SHP yang telah anda download.
<-"D:/GDrive/01-Event/06-KSN-Peta/HumData/idn_admbnda_adm2_bps_20200401.shp" Admin2Kabupaten
Jika Anda ingin tahu seperti apa file SHP tersebut di R, bisa memakai fungsi glimpse
dari Package dplyr
glimpse(Admin2Kabupaten)
## chr "D:/GDrive/01-Event/06-KSN-Peta/HumData/idn_admbnda_adm2_bps_20200401.shp"
Kita perlu merubahnya menjadi melalui fungsi ‘st_read’ dari Package ‘sf’
<-st_read(Admin2Kabupaten) Admin2
## Reading layer `idn_admbnda_adm2_bps_20200401' from data source `D:\GDrive\01-Event\06-KSN-Peta\HumData\idn_admbnda_adm2_bps_20200401.shp' using driver `ESRI Shapefile'
## Simple feature collection with 522 features and 14 fields
## geometry type: MULTIPOLYGON
## dimension: XY
## bbox: xmin: 95.01079 ymin: -11.00762 xmax: 141.0194 ymax: 6.07693
## geographic CRS: WGS 84
Dapat dilihat, sudah berubah
glimpse(Admin2)
## Rows: 522
## Columns: 15
## $ Shape_Leng <dbl> 2.360029, 1.963994, 4.590182, 3.287754, 4.448584, 4.9072...
## $ Shape_Area <dbl> 0.22896809, 0.15413587, 0.23639581, 0.31616114, 0.343038...
## $ ADM2_EN <chr> "Aceh Barat", "Aceh Barat Daya", "Aceh Besar", "Aceh Jay...
## $ ADM2_PCODE <chr> "ID1107", "ID1112", "ID1108", "ID1116", "ID1103", "ID110...
## $ ADM2_REF <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ ADM2ALT1EN <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ ADM2ALT2EN <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ ADM1_EN <chr> "Aceh", "Aceh", "Aceh", "Aceh", "Aceh", "Aceh", "Aceh", ...
## $ ADM1_PCODE <chr> "ID11", "ID11", "ID11", "ID11", "ID11", "ID11", "ID11", ...
## $ ADM0_EN <chr> "Indonesia", "Indonesia", "Indonesia", "Indonesia", "Ind...
## $ ADM0_PCODE <chr> "ID", "ID", "ID", "ID", "ID", "ID", "ID", "ID", "ID", "I...
## $ date <date> 2019-12-20, 2019-12-20, 2019-12-20, 2019-12-20, 2019-12...
## $ validOn <date> 2020-04-01, 2020-04-01, 2020-04-01, 2020-04-01, 2020-04...
## $ validTo <date> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,...
## $ geometry <MULTIPOLYGON [°]> MULTIPOLYGON (((96.26836 4...., MULTIPOLYGO...
Memasukkan Data via File CSV
Data CSV bagaimana yang perlu digabungkan dengan file SHP?
Setiap File SHP biasanya disertai bentuk file lainnya, seperti : cpg
, dbf
, prj
,sbn
,sbx
,shp.xml
,shx
Anda cuma perlu fokus pada file dbf
atau dBase database file
saja.
Saya biasanya, buka file dbf nya, tambahkan 1 atau lebih kolom baru dengan nama kolom sebagai Data Kuantitatif yang akan menentukan gradasi warna, lalu simpan sebagai csv
. File dbf
bisa dengan mudah anda buka melalui Microsoft Excel atau software lain yang sejenis.
<-read.csv("https://raw.githubusercontent.com/Nr5D/BatasWilayahID/main/JabarIndonesia.csv",
JabarIndonesiaheader=TRUE, sep=";")
Merge Data
Merge Data dilakukan dengan memmbandingkan primary key
antara Spatial Data (Admin2
hasil import file SHP) dan Data Frame (JabarIndonesia
hasil Import File CSV), karena CSV yang dipakai berasal dari file dbf
biasanya tidak ada masalah. Ini menggunakan fungsi geo_join()
dari package tigris
<- geo_join(spatial_data=Admin2,
merged_JabarIndonesia data_frame=JabarIndonesia, by_sp="ADM2_PCODE",
by_df="ADM2_PCODE", how = "inner")
Atur Warna
Anda bisa mengatur warna sendiri berikut sebagai contoh :
<- c("green", "yellow", "red", "red4") mycol
Menampilkan Plot Peta Chloropleth
<-ggplot()+
pDATAgeom_sf(data=merged_JabarIndonesia,aes(fill=DATA))+
scale_fill_gradientn(colours=mycol)+
labs(title="Jabar dan Indonesia")
pDATA
Percobaan Kedua : Jabar di Pulau Jawa Saja
<-read.csv("https://raw.githubusercontent.com/Nr5D/BatasWilayahID/main/JabarJawa.csv",
JabarJawaheader=TRUE, sep=";")
Gabungkan Data
<- geo_join(spatial_data=Admin2,
merged_JabarJawa data_frame=JabarJawa, by_sp="ADM2_PCODE",
by_df="ADM2_PCODE", how = "inner")
Tampilkan Plot Data nya
<-ggplot()+
pDATAgeom_sf(data=merged_JabarJawa,aes(fill=DATA))+
scale_fill_gradientn(colours=mycol)+
labs(title="Jabar dan Pulau Jawa")
pDATA
Perbedaan dari 2 Percobaan
Perbedaan Utamanya hanya ada pada data yang dimasukkan CSV
: JabarIndonesia
dan JabarJawa
Seperti Apa Perbedaaannya
Dimensi Data
dim(JabarIndonesia)
## [1] 522 5
dim(JabarJawa)
## [1] 122 5
Lihat Lebih Jauh
head(JabarIndonesia)
## Shape_Leng Shape_Area ADM2_EN ADM2_PCODE DATA
## 1 6.732280 0.1494304 Simeulue ID1101 NA
## 2 4.907219 0.1534414 Aceh Singkil ID1102 NA
## 3 4.448584 0.3430383 Aceh Selatan ID1103 NA
## 4 3.473021 0.3374562 Aceh Tenggara ID1104 NA
## 5 5.037148 0.4434042 Aceh Timur ID1105 NA
## 6 3.676889 0.3834894 Aceh Tengah ID1106 NA
head(JabarJawa)
## Shape_Leng Shape_Area ADM2_EN ADM2_PCODE DATA
## 1 1.2780153 0.000880270 Kepulauan Seribu ID3101 NA
## 2 0.8389714 0.011833671 Kota Jakarta Selatan ID3171 NA
## 3 1.0211135 0.015089248 Kota Jakarta Timur ID3172 NA
## 4 0.3837589 0.003912531 Kota Jakarta Pusat ID3173 NA
## 5 0.5903399 0.010251018 Kota Jakarta Barat ID3174 NA
## 6 1.1430047 0.011458928 Kota Jakarta Utara ID3175 NA
Lihat Lebih Jauh Lagi
glimpse(JabarIndonesia)
## Rows: 522
## Columns: 5
## $ Shape_Leng <dbl> 6.7322801, 4.9072187, 4.4485844, 3.4730211, 5.0371477, 3...
## $ Shape_Area <dbl> 0.149430413, 0.153441369, 0.343038263, 0.337456209, 0.44...
## $ ADM2_EN <chr> "Simeulue", "Aceh Singkil", "Aceh Selatan", "Aceh Tengga...
## $ ADM2_PCODE <chr> "ID1101", "ID1102", "ID1103", "ID1104", "ID1105", "ID110...
## $ DATA <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
glimpse(JabarJawa)
## Rows: 122
## Columns: 5
## $ Shape_Leng <dbl> 1.2780153, 0.8389714, 1.0211135, 0.3837589, 0.5903399, 1...
## $ Shape_Area <dbl> 0.000880270, 0.011833671, 0.015089248, 0.003912531, 0.01...
## $ ADM2_EN <chr> "Kepulauan Seribu", "Kota Jakarta Selatan", "Kota Jakart...
## $ ADM2_PCODE <chr> "ID3101", "ID3171", "ID3172", "ID3173", "ID3174", "ID317...
## $ DATA <int> NA, NA, NA, NA, NA, NA, 939, 921, 31, 912, 829, 485, 709...
Tugas
- Tugas Praktikum 3.a
- Praktikkan penggunaan
inner_join()
,left_join()
,right_join()
,full_join()
,semi_join()
,anti_join()
untuk menggabungkan 2 buat table dari databasechinook.db
atauNorthwind_large.sqlite
- Praktikkan penggunaan
- Tugas Praktikum 3.b
- Buat satu Peta dari daerah Anda masing-masing (Kecamatan, Kabupaten), Anda bebas menggunakan data apapun.
- Tugas dikerjakan dengan
rmarkdown
dan dipublish dirpubs
masing-masing, yang dikumpulkan dinewlms
berupa filehtml
, jangan lupa, sertakan url rpubs di filehtml
yang dikumpulkan dinewlms
.
Badan Informasi Geospasial, abdul.aziz@big.go.id↩︎