Intro
Jadi kali ini saya ingin mencoba package rayshader
untuk 3D visualisation, berhubung kasus Covid-19 di Surabaya saat ini sangat mengkhawatirkan (zona hitam) per hari ini, maka saya coba kasus Covid-19 di Surabaya ini sebagai use case, mungkin ada manfaat yang bisa didapat nanti.
rayshader
sendiri fungsi utamanya adalah membuat 3D graph terutama untuk map, topografi, kontur, render satelit dan bisa juga untuk men-translate atau membuat efek 3D pada grafik ggplot
seperti yang akan saya coba kali ini.
Workflow
- Download data, download data shp Indonesia hingga level 4 (kelurahan/desa) dan data jumlah kasus terkonfirmasi covid di Surabaya level kelurahan.
- Preprocess data .shp dengan data Covid-19 Surabaya
- Membuat 2D map dengan
ggplot2
sebagai background untuk 3D graph - Membuat grafik 3D dengan
rayshader
Download Data
Data shapefile atau shp Indonesia bisa didownload di website GADM, download hingga level 4 (kelurahan/desa). Untuk data kasus Covid-19 Surabaya busa dilihat di website resmi pemkot.
Preprocess data
Tahap ini agak tricky karena nama kelurahan yang terdaftar di shapefile data penulisannya beda dengan di website Covid-19 Surabaya misal Pacarkembang
dan Pacar Kembang
, padahal nama kelurahan ini akan digunakan untuk join id 2 data tersebut sehingga harus identik. Akhirnya, terpaksa menyamanakan penulisan nama kelurahan di data Covid-19 Surabaya dengan penulisan di shapefile secara manual.
Steps :
- Import .rds (shapefile) level 4 data ke dalam R
- Filter ambil kota Surabaya saja
- Buat data frame berisi ID dan nama kelurahan dara data .rds yang sudah diimport
- Mencari centroid data dari tiap-tiap kelurahan
- Import data kasus covid Surabaya (yang sudah diedit manual penamaan nama Kelurahannya)
- Merge data .rds dan kasus covid-19
- Ubah .rds yang sudah diimport menjadi data frame dengan
fortify
- Merge data frame yang sudah didapat dengan data ID dan nama kelurahan di step 1
- Merge data map dengan data kasus covid Surabaya (border dan centroid)
- Replace
NA
dengan 0
- Ubah .rds yang sudah diimport menjadi data frame dengan
Import Data
|
|
Intro
Jadi kali ini saya ingin mencoba package rayshader
untuk 3D visualisation, berhubung kasus Covid-19 di Surabaya saat ini sangat mengkhawatirkan (zona hitam) per hari ini, maka saya coba kasus Covid-19 di Surabaya ini sebagai use case, mungkin ada manfaat yang bisa didapat nanti.
rayshader
sendiri fungsi utamanya adalah membuat 3D graph terutama untuk map, topografi, kontur, render satelit dan bisa juga untuk men-translate atau membuat efek 3D pada grafik ggplot
seperti yang akan saya coba kali ini.
Workflow
- Download data, download data shp Indonesia hingga level 4 (kelurahan/desa) dan data jumlah kasus terkonfirmasi covid di Surabaya level kelurahan.
- Preprocess data .shp dengan data Covid-19 Surabaya
- Membuat 2D map dengan
ggplot2
sebagai background untuk 3D graph - Membuat grafik 3D dengan
rayshader
Download Data
Data shapefile atau shp Indonesia bisa didownload di website GADM, download hingga level 4 (kelurahan/desa). Untuk data kasus Covid-19 Surabaya busa dilihat di website resmi pemkot.
Preprocess data
Tahap ini agak tricky karena nama kelurahan yang terdaftar di shapefile data penulisannya beda dengan di website Covid-19 Surabaya misal Pacarkembang
dan Pacar Kembang
, padahal nama kelurahan ini akan digunakan untuk join id 2 data tersebut sehingga harus identik. Akhirnya, terpaksa menyamanakan penulisan nama kelurahan di data Covid-19 Surabaya dengan penulisan di shapefile secara manual.
Steps :
- Import .rds (shapefile) level 4 data ke dalam R
- Filter ambil kota Surabaya saja
- Buat data frame berisi ID dan nama kelurahan dara data .rds yang sudah diimport
- Mencari centroid data dari tiap-tiap kelurahan
- Import data kasus covid Surabaya (yang sudah diedit manual penamaan nama Kelurahannya)
- Merge data .rds dan kasus covid-19
- Ubah .rds yang sudah diimport menjadi data frame dengan
fortify
- Merge data frame yang sudah didapat dengan data ID dan nama kelurahan di step 1
- Merge data map dengan data kasus covid Surabaya (border dan centroid)
- Replace
NA
dengan 0
- Ubah .rds yang sudah diimport menjadi data frame dengan
Import Data
|
|
Intro
Jadi kali ini saya ingin mencoba package rayshader
untuk 3D visualisation, berhubung kasus Covid-19 di Surabaya saat ini sangat mengkhawatirkan (zona hitam) per hari ini, maka saya coba kasus Covid-19 di Surabaya ini sebagai use case, mungkin ada manfaat yang bisa didapat nanti.
rayshader
sendiri fungsi utamanya adalah membuat 3D graph terutama untuk map, topografi, kontur, render satelit dan bisa juga untuk men-translate atau membuat efek 3D pada grafik ggplot
seperti yang akan saya coba kali ini.
Workflow
- Download data, download data shp Indonesia hingga level 4 (kelurahan/desa) dan data jumlah kasus terkonfirmasi covid di Surabaya level kelurahan.
- Preprocess data .shp dengan data Covid-19 Surabaya
- Membuat 2D map dengan
ggplot2
sebagai background untuk 3D graph - Membuat grafik 3D dengan
rayshader
Download Data
Data shapefile atau shp Indonesia bisa didownload di website GADM, download hingga level 4 (kelurahan/desa). Untuk data kasus Covid-19 Surabaya busa dilihat di website resmi pemkot.
Preprocess data
Tahap ini agak tricky karena nama kelurahan yang terdaftar di shapefile data penulisannya beda dengan di website Covid-19 Surabaya misal Pacarkembang
dan Pacar Kembang
, padahal nama kelurahan ini akan digunakan untuk join id 2 data tersebut sehingga harus identik. Akhirnya, terpaksa menyamanakan penulisan nama kelurahan di data Covid-19 Surabaya dengan penulisan di shapefile secara manual.
Steps :
- Import .rds (shapefile) level 4 data ke dalam R
- Filter ambil kota Surabaya saja
- Buat data frame berisi ID dan nama kelurahan dara data .rds yang sudah diimport
- Mencari centroid data dari tiap-tiap kelurahan
- Import data kasus covid Surabaya (yang sudah diedit manual penamaan nama Kelurahannya)
- Merge data .rds dan kasus covid-19
- Ubah .rds yang sudah diimport menjadi data frame dengan
fortify
- Merge data frame yang sudah didapat dengan data ID dan nama kelurahan di step 1
- Merge data map dengan data kasus covid Surabaya (border dan centroid)
- Replace
NA
dengan 0
- Ubah .rds yang sudah diimport menjadi data frame dengan
Import Data
|
|
Get Centroid
Ini tahap yang critical dalam membuat visualisasi 3D. kegunaan centroid point adalah untuk 3D bar akan berada nantinya. Data shapefile adalah data batas-batas antar wilayah, sehingga titik-titiknya berada di setiap batas wilayah (border), sedangkan centroid adalah titik tengah dari wilayah tersebut. Data centroid sudah tersedia saat kita import .rds file. Cara mendapatkannya adalah:
|
|
|
|
Import data kasus Covid-19 Surabaya
|
|
Merge data
Ubah idn_map
menjadi data frame dengan function fortify
dari ggplot2
. Merge dengan idn_map_dict
yang dibuat di step 1. Guananya untuk menambahkan nama kelurahan ke data hasil fortify
-ing.
|
|
|
|
Merge data map dengan data covid_sby (border map)
|
|
Merge data centroid dengan data covid_sby (centroid map)
|
|
Membuat 2D Map
Membuat 2D map dengan 1ggplot2` yang akan digunakan sebagai background dari 3D map.
|
|
Save map as PNG
|
|
Kegunaan data centroid yang dibuat sebelumnya adalah untuk menampilkan point merah seperti di map diatas.
Membuat 3D map
|
|
Render Video
|
|
Refferences :