Praktikum Sains (Data Database dan Data Spasial)
Email          : moch.ridwan@apps.ipb.ac.id
RPubs         : https://rpubs.com/Mochamamad_Ridwan/
Department  : Department of Statistics
Address     : Kampus IPB Darmaga
             Jl. Meranti Wing 22 Level 4,Bogor 16680, Jawa Barat, Indonesia.
Package yang digunakan.
## Warning: package 'knitr' was built under R version 4.0.4
## Warning: package 'tidyverse' was built under R version 4.0.4
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.3 v purrr 0.3.4
## v tibble 3.0.5 v dplyr 1.0.4
## v tidyr 1.1.3 v stringr 1.4.0
## v readr 1.4.0 v forcats 0.5.1
## Warning: package 'ggplot2' was built under R version 4.0.4
## Warning: package 'forcats' was built under R version 4.0.4
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
## Warning: package 'tigris' was built under R version 4.0.4
## To enable
## caching of data, set `options(tigris_use_cache = TRUE)` in your R script or .Rprofile.
## Warning: package 'sp' was built under R version 4.0.4
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
Koneksi Database
Database yang digunakan adalah
chinook.db
Daftar Tabel yang terdapat pada database chinook adalah:
## [1] "albums" "artists" "customers" "employees"
## [5] "genres" "invoice_items" "invoices" "media_types"
## [9] "playlist_track" "playlists" "sqlite_sequence" "sqlite_stat1"
## [13] "tracks"
Tables
Skema Database
chinook.db
Tabel-tabel yang akan digunakan pada praktikum terdiri dari:
albums, artists , customers , invoice_items , invoices , playlists , playlist_track , tracks
albums<-dplyr::tbl(chinook,"albums")
artists<-dplyr::tbl(chinook,"artists")
customers<-dplyr::tbl(chinook,"customers")
invoice_items<-dplyr::tbl(chinook,"invoice_items")
invoices<-dplyr::tbl(chinook,"invoices")
playlists<-dplyr::tbl(chinook,"playlists")
playlist_track<-dplyr::tbl(chinook,"playlist_track")
tracks<-dplyr::tbl(chinook,"tracks")| AlbumId | Title | ArtistId |
|---|---|---|
| 1 | For Those About To Rock We Salute You | 1 |
| 2 | Balls to the Wall | 2 |
| 3 | Restless and Wild | 2 |
| 4 | Let There Be Rock | 1 |
| 5 | Big Ones | 3 |
| 6 | Jagged Little Pill | 4 |
| ArtistId | Name |
|---|---|
| 1 | AC/DC |
| 2 | Accept |
| 3 | Aerosmith |
| 4 | Alanis Morissette |
| 5 | Alice In Chains |
| 6 | Antônio Carlos Jobim |
| CustomerId | FirstName | LastName | Company | Address | City | State | Country | PostalCode | Phone | Fax | SupportRepId | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | LuÃs | Gonçalves | Embraer - Empresa Brasileira de Aeronáutica S.A. | Av. Brigadeiro Faria Lima, 2170 | São José dos Campos | SP | Brazil | 12227-000 | +55 (12) 3923-5555 | +55 (12) 3923-5566 | luisg@embraer.com.br | 3 |
| 2 | Leonie | Köhler | NA | Theodor-Heuss-Straße 34 | Stuttgart | NA | Germany | 70174 | +49 0711 2842222 | NA | leonekohler@surfeu.de | 5 |
| 3 | François | Tremblay | NA | 1498 rue Bélanger | Montréal | QC | Canada | H2G 1A7 | +1 (514) 721-4711 | NA | ftremblay@gmail.com | 3 |
| 4 | Bjørn | Hansen | NA | Ullevålsveien 14 | Oslo | NA | Norway | 0171 | +47 22 44 22 22 | NA | bjorn.hansen@yahoo.no | 4 |
| 5 | František | Wichterlová | JetBrains s.r.o. | Klanova 9/506 | Prague | NA | Czech Republic | 14700 | +420 2 4172 5555 | +420 2 4172 5555 | frantisekw@jetbrains.com | 4 |
| 6 | Helena | Holý | NA | Rilská 3174/6 | Prague | NA | Czech Republic | 14300 | +420 2 4177 0449 | NA | hholy@gmail.com | 5 |
| InvoiceLineId | InvoiceId | TrackId | UnitPrice | Quantity |
|---|---|---|---|---|
| 1 | 1 | 2 | 0.99 | 1 |
| 2 | 1 | 4 | 0.99 | 1 |
| 3 | 2 | 6 | 0.99 | 1 |
| 4 | 2 | 8 | 0.99 | 1 |
| 5 | 2 | 10 | 0.99 | 1 |
| 6 | 2 | 12 | 0.99 | 1 |
| InvoiceId | CustomerId | InvoiceDate | BillingAddress | BillingCity | BillingState | BillingCountry | BillingPostalCode | Total |
|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 2009-01-01 00:00:00 | Theodor-Heuss-Straße 34 | Stuttgart | NA | Germany | 70174 | 1.98 |
| 2 | 4 | 2009-01-02 00:00:00 | Ullevålsveien 14 | Oslo | NA | Norway | 0171 | 3.96 |
| 3 | 8 | 2009-01-03 00:00:00 | Grétrystraat 63 | Brussels | NA | Belgium | 1000 | 5.94 |
| 4 | 14 | 2009-01-06 00:00:00 | 8210 111 ST NW | Edmonton | AB | Canada | T6G 2C7 | 8.91 |
| 5 | 23 | 2009-01-11 00:00:00 | 69 Salem Street | Boston | MA | USA | 2113 | 13.86 |
| 6 | 37 | 2009-01-19 00:00:00 | Berger Straße 10 | Frankfurt | NA | Germany | 60316 | 0.99 |
| PlaylistId | Name |
|---|---|
| 1 | Music |
| 2 | Movies |
| 3 | TV Shows |
| 4 | Audiobooks |
| 5 | 90’s Music |
| 6 | Audiobooks |
| PlaylistId | TrackId |
|---|---|
| 1 | 3402 |
| 1 | 3389 |
| 1 | 3390 |
| 1 | 3391 |
| 1 | 3392 |
| 1 | 3393 |
| TrackId | Name | AlbumId | MediaTypeId | GenreId | Composer | Milliseconds | Bytes | UnitPrice |
|---|---|---|---|---|---|---|---|---|
| 1 | For Those About To Rock (We Salute You) | 1 | 1 | 1 | Angus Young, Malcolm Young, Brian Johnson | 343719 | 11170334 | 0.99 |
| 2 | Balls to the Wall | 2 | 2 | 1 | NA | 342562 | 5510424 | 0.99 |
| 3 | Fast As a Shark | 3 | 2 | 1 | F. Baltes, S. Kaufman, U. Dirkscneider & W. Hoffman | 230619 | 3990994 | 0.99 |
| 4 | Restless and Wild | 3 | 2 | 1 | F. Baltes, R.A. Smith-Diesel, S. Kaufman, U. Dirkscneider & W. Hoffman | 252051 | 4331779 | 0.99 |
| 5 | Princess of the Dawn | 3 | 2 | 1 | Deaffy & R.A. Smith-Diesel | 375418 | 6290521 | 0.99 |
| 6 | Put The Finger On You | 1 | 1 | 1 | Angus Young, Malcolm Young, Brian Johnson | 205662 | 6713451 | 0.99 |
Fungsi Join
inner_join
inner_join()menghasilkan semua baris pada table x yang memiliki kesamaan nilai dengan table y, dan semua kolom dari x dan y.
inner_join() yang dicoba adalah antara tabel invoices dan invoice_items
## Joining, by = "InvoiceId"
## # Source: lazy query [?? x 13]
## # Database: sqlite 3.34.1 [C:\sqlite\db\chinook.db]
## InvoiceId CustomerId InvoiceDate BillingAddress BillingCity BillingState
## <int> <int> <chr> <chr> <chr> <chr>
## 1 1 2 2009-01-01 00~ Theodor-Heuss-S~ Stuttgart <NA>
## 2 1 2 2009-01-01 00~ Theodor-Heuss-S~ Stuttgart <NA>
## 3 2 4 2009-01-02 00~ Ullevålsveien 14 Oslo <NA>
## 4 2 4 2009-01-02 00~ Ullevålsveien 14 Oslo <NA>
## 5 2 4 2009-01-02 00~ Ullevålsveien 14 Oslo <NA>
## 6 2 4 2009-01-02 00~ Ullevålsveien 14 Oslo <NA>
## 7 3 8 2009-01-03 00~ Grétrystraat 63 Brussels <NA>
## 8 3 8 2009-01-03 00~ Grétrystraat 63 Brussels <NA>
## 9 3 8 2009-01-03 00~ Grétrystraat 63 Brussels <NA>
## 10 3 8 2009-01-03 00~ Grétrystraat 63 Brussels <NA>
## # ... with more rows, and 7 more variables: BillingCountry <chr>,
## # BillingPostalCode <chr>, Total <dbl>, InvoiceLineId <int>, TrackId <int>,
## # UnitPrice <dbl>, Quantity <int>
left_join
left_join()menghasilkan semua baris pada table x, dan semua kolom pada x dan y, dimana untuk baris pada x yang tidak memiliki kesamaan dengan y diisi dengan nilai NA pada kolom yang baru.
left_join() yang dicoba adalah antara tabel playlist_track dan playlists
## Joining, by = "PlaylistId"
## # Source: lazy query [?? x 3]
## # Database: sqlite 3.34.1 [C:\sqlite\db\chinook.db]
## PlaylistId TrackId Name
## <int> <int> <chr>
## 1 1 3402 Music
## 2 1 3389 Music
## 3 1 3390 Music
## 4 1 3391 Music
## 5 1 3392 Music
## 6 1 3393 Music
## 7 1 3394 Music
## 8 1 3395 Music
## 9 1 3396 Music
## 10 1 3397 Music
## # ... with more rows
right_join
right_join()menghasilkan semua baris pada table y, dan semua kolom pada x dan y, dimana untuk baris pada y yang tidak memiliki kesamaan dengan x akan diisi dengan nilai NA pada kolom yang baru.
right_join() yang dicoba adalah antara tabel tracks dan playlist_track
## Joining, by = "TrackId"
## # Source: lazy query [?? x 10]
## # Database: sqlite 3.34.1 [C:\sqlite\db\chinook.db]
## TrackId Name AlbumId MediaTypeId GenreId Composer Milliseconds Bytes
## <int> <chr> <int> <int> <int> <chr> <int> <int>
## 1 3402 "Band Membe~ 271 3 23 <NA> 294294 6.11e7
## 2 3389 "Revelation~ 271 2 23 <NA> 252376 4.11e6
## 3 3390 "One and th~ 271 2 23 <NA> 217732 3.56e6
## 4 3391 "Sound of a~ 271 2 23 <NA> 260154 4.23e6
## 5 3392 "Until We F~ 271 2 23 <NA> 230758 3.77e6
## 6 3393 "Original F~ 271 2 23 <NA> 218916 3.58e6
## 7 3394 "Broken Cit~ 271 2 23 <NA> 228366 3.73e6
## 8 3395 "Somedays" 271 2 23 <NA> 213831 3.50e6
## 9 3396 "Shape of T~ 271 2 23 <NA> 274597 4.47e6
## 10 3397 "Jewel of t~ 271 2 23 <NA> 233242 3.81e6
## # ... with more rows, and 2 more variables: UnitPrice <dbl>, PlaylistId <int>
full_join
full_join()menghasilkan semua baris dan kolom dari x dan y. Jika ada nilai yang tidak sama (match) antara x dan y, maka akan bernilai NA.
full_join() yang dicoba adalah antara tabel artists dan albums
## Joining, by = "ArtistId"
## # Source: lazy query [?? x 4]
## # Database: sqlite 3.34.1 [C:\sqlite\db\chinook.db]
## ArtistId Name AlbumId Title
## <int> <chr> <int> <chr>
## 1 1 AC/DC 1 For Those About To Rock We Salute You
## 2 1 AC/DC 4 Let There Be Rock
## 3 2 Accept 2 Balls to the Wall
## 4 2 Accept 3 Restless and Wild
## 5 3 Aerosmith 5 Big Ones
## 6 4 Alanis Morissette 6 Jagged Little Pill
## 7 5 Alice In Chains 7 Facelift
## 8 6 Antônio Carlos Jobim 8 Warner 25 Anos
## 9 6 Antônio Carlos Jobim 34 Chill: Brazil (Disc 2)
## 10 7 Apocalyptica 9 Plays Metallica By Four Cellos
## # ... with more rows
semi_join
semi_join()menghasilkan semua baris pada table x yang memiliki kesamaan nilai dengan table y, dan semua kolom dari x. Ini mirip denganinner_join(), bedanyainner_join()mengembalikan semua kolom dari x dan y.
semi_join() yang dicoba adalah antara tabel invoices dan customers
## Joining, by = "CustomerId"
## # Source: lazy query [?? x 9]
## # Database: sqlite 3.34.1 [C:\sqlite\db\chinook.db]
## InvoiceId CustomerId InvoiceDate BillingAddress BillingCity BillingState
## <int> <int> <chr> <chr> <chr> <chr>
## 1 1 2 2009-01-01 00~ Theodor-Heuss-S~ Stuttgart <NA>
## 2 2 4 2009-01-02 00~ Ullevålsveien 14 Oslo <NA>
## 3 3 8 2009-01-03 00~ Grétrystraat 63 Brussels <NA>
## 4 4 14 2009-01-06 00~ 8210 111 ST NW Edmonton AB
## 5 5 23 2009-01-11 00~ 69 Salem Street Boston MA
## 6 6 37 2009-01-19 00~ Berger Straße 10 Frankfurt <NA>
## 7 7 38 2009-02-01 00~ Barbarossastraß~ Berlin <NA>
## 8 8 40 2009-02-01 00~ 8, Rue Hanovre Paris <NA>
## 9 9 42 2009-02-02 00~ 9, Place Louis ~ Bordeaux <NA>
## 10 10 46 2009-02-03 00~ 3 Chatham Street Dublin Dublin
## # ... with more rows, and 3 more variables: BillingCountry <chr>,
## # BillingPostalCode <chr>, Total <dbl>
anti_join
anti_join()menghasilkan semua baris dari x yang TIDAK memiliki kesamaan dengan y, dan semua kolom yang berasal dari x.
anti_join() yang dicoba adalah antara tabel artists dan albums
## Joining, by = "ArtistId"
## # Source: lazy query [?? x 2]
## # Database: sqlite 3.34.1 [C:\sqlite\db\chinook.db]
## ArtistId Name
## <int> <chr>
## 1 25 Milton Nascimento & Bebeto
## 2 26 Azymuth
## 3 28 João Gilberto
## 4 29 Bebel Gilberto
## 5 30 Jorge Vercilo
## 6 31 Baby Consuelo
## 7 32 Ney Matogrosso
## 8 33 Luiz Melodia
## 9 34 Nando Reis
## 10 35 Pedro LuÃs & A Parede
## # ... with more rows
Data Spasial
Yang ditampilkan di pratikum ini, kepadatan Penduduk per Kecamatan di Kabupaten Bekasi
Tahun 2020
-Peta
## chr "D:/BAHAN KULIAH/SM 1/SAINS DATA/SHP FILE/idn_admbnda_adm3_bps_20200401.shp"
## Reading layer `idn_admbnda_adm3_bps_20200401' from data source `D:\BAHAN KULIAH\SM 1\SAINS DATA\SHP FILE\idn_admbnda_adm3_bps_20200401.shp' using driver `ESRI Shapefile'
## Simple feature collection with 7069 features and 16 fields
## geometry type: MULTIPOLYGON
## dimension: XY
## bbox: xmin: 95.01079 ymin: -11.00762 xmax: 141.0194 ymax: 6.07693
## geographic CRS: WGS 84
## Rows: 7,069
## Columns: 17
## $ Shape_Leng <dbl> 0.2798656, 0.7514001, 0.6900061, 0.6483629, 0.2437073, 1.35~
## $ Shape_Area <dbl> 0.003107633, 0.016925540, 0.024636382, 0.010761277, 0.00116~
## $ ADM3_EN <chr> "2 X 11 Enam Lingkung", "2 X 11 Kayu Tanam", "Abab", "Abang~
## $ ADM3_PCODE <chr> "ID1306050", "ID1306052", "ID1612030", "ID5107050", "ID7471~
## $ ADM3_REF <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ ADM3ALT1EN <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ ADM3ALT2EN <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ ADM2_EN <chr> "Padang Pariaman", "Padang Pariaman", "Penukal Abab Lematan~
## $ ADM2_PCODE <chr> "ID1306", "ID1306", "ID1612", "ID5107", "ID7471", "ID9432",~
## $ ADM1_EN <chr> "Sumatera Barat", "Sumatera Barat", "Sumatera Selatan", "Ba~
## $ ADM1_PCODE <chr> "ID13", "ID13", "ID16", "ID51", "ID74", "ID94", "ID94", "ID~
## $ ADM0_EN <chr> "Indonesia", "Indonesia", "Indonesia", "Indonesia", "Indone~
## $ ADM0_PCODE <chr> "ID", "ID", "ID", "ID", "ID", "ID", "ID", "ID", "ID", "ID",~
## $ date <date> 2019-12-20, 2019-12-20, 2019-12-20, 2019-12-20, 2019-12-20~
## $ validOn <date> 2020-04-01, 2020-04-01, 2020-04-01, 2020-04-01, 2020-04-01~
## $ validTo <date> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA~
## $ geometry <MULTIPOLYGON [°]> MULTIPOLYGON (((100.2811 -0..., MULTIPOLYGON (~
-Data
PendudukKabBekasi<-read.csv("D:/BAHAN KULIAH/SM 1/SAINS DATA/SHP FILE/Data Penduduk Kab. Bekasi.csv")
PendudukKabBekasi## Kode.Kecamatan Nama.Kecamatan Jumlah.Penduduk Kepadatan
## 1 ID3216010 Setu 144624 2327
## 2 ID3216021 Serang Baru 173585 2721
## 3 ID3216022 Cikarang Pusat 100714 2116
## 4 ID3216023 Cikarang Selatan 278476 5382
## 5 ID3216030 Cibarusah 92168 1829
## 6 ID3216031 Bojongmangu 27363 456
## 7 ID3216041 Cikarang Timur 107854 2102
## 8 ID3216050 Kedungwaringin 63660 2019
## 9 ID3216061 Cikarang Utara 278421 6430
## 10 ID3216062 Karangbahagia 97369 2112
## 11 ID3216070 Cibitung 281824 6221
## 12 ID3216071 Cikarang Barat 278237 5182
## 13 ID3216081 Tambun Selatan 505012 11717
## 14 ID3216082 Tambun Utara 215879 6272
## 15 ID3216090 Babelan 297645 4680
## 16 ID3216100 Tarumajaya 158437 2900
## 17 ID3216110 Tambelang 38461 1015
## 18 ID3216111 Sukawangi 48297 719
## 19 ID3216120 Sukatani 74944 1997
## 20 ID3216121 Sukakarya 46817 1104
## 21 ID3216130 Pebayuran 102400 1063
## 22 ID3216140 Cabangbungin 49018 986
## 23 ID3216150 Muara Gembong 378818 277
| Kode.Kecamatan | Nama.Kecamatan | Jumlah.Penduduk | Kepadatan |
|---|---|---|---|
| ID3216010 | Setu | 144624 | 2327 |
| ID3216021 | Serang Baru | 173585 | 2721 |
| ID3216022 | Cikarang Pusat | 100714 | 2116 |
| ID3216023 | Cikarang Selatan | 278476 | 5382 |
| ID3216030 | Cibarusah | 92168 | 1829 |
| ID3216031 | Bojongmangu | 27363 | 456 |
-Merger Data
Merge shapefiles dan dataset
merged_KabBekasi <- geo_join(spatial_data=AdminKecamatan,
data_frame=PendudukKabBekasi, by_sp="ADM3_PCODE",
by_df="Kode.Kecamatan", how = "inner")
merged_KabBekasi## Simple feature collection with 23 features and 19 fields
## geometry type: MULTIPOLYGON
## dimension: XY
## bbox: xmin: 106.9686 ymin: -6.482019 xmax: 107.2966 ymax: -5.918148
## geographic CRS: WGS 84
## First 10 features:
## Shape_Leng Shape_Area ADM3_EN ADM3_PCODE ADM3_REF ADM3ALT1EN
## 1 0.5871964 0.005388774 Babelan ID3216090 <NA> <NA>
## 2 0.5015490 0.004320796 Bojongmangu ID3216031 <NA> <NA>
## 3 0.4066188 0.004046014 Cabangbungin ID3216140 <NA> <NA>
## 4 0.3513376 0.003286197 Cibarusah ID3216030 <NA> <NA>
## 5 0.4748041 0.003603693 Cibitung ID3216070 <NA> <NA>
## 6 0.4915341 0.004413896 Cikarang Barat ID3216071 <NA> <NA>
## 7 0.5120708 0.004369193 Cikarang Pusat ID3216022 <NA> <NA>
## 8 0.4528430 0.004397012 Cikarang Selatan ID3216023 <NA> <NA>
## 9 0.4833011 0.004313361 Cikarang Timur ID3216041 <NA> <NA>
## 10 0.3364092 0.003265586 Cikarang Utara ID3216061 <NA> <NA>
## ADM3ALT2EN ADM2_EN ADM2_PCODE ADM1_EN ADM1_PCODE ADM0_EN ADM0_PCODE
## 1 <NA> Bekasi ID3216 Jawa Barat ID32 Indonesia ID
## 2 <NA> Bekasi ID3216 Jawa Barat ID32 Indonesia ID
## 3 <NA> Bekasi ID3216 Jawa Barat ID32 Indonesia ID
## 4 <NA> Bekasi ID3216 Jawa Barat ID32 Indonesia ID
## 5 <NA> Bekasi ID3216 Jawa Barat ID32 Indonesia ID
## 6 <NA> Bekasi ID3216 Jawa Barat ID32 Indonesia ID
## 7 <NA> Bekasi ID3216 Jawa Barat ID32 Indonesia ID
## 8 <NA> Bekasi ID3216 Jawa Barat ID32 Indonesia ID
## 9 <NA> Bekasi ID3216 Jawa Barat ID32 Indonesia ID
## 10 <NA> Bekasi ID3216 Jawa Barat ID32 Indonesia ID
## date validOn validTo Nama.Kecamatan Jumlah.Penduduk Kepadatan
## 1 2019-12-20 2020-04-01 <NA> Babelan 297645 4680
## 2 2019-12-20 2020-04-01 <NA> Bojongmangu 27363 456
## 3 2019-12-20 2020-04-01 <NA> Cabangbungin 49018 986
## 4 2019-12-20 2020-04-01 <NA> Cibarusah 92168 1829
## 5 2019-12-20 2020-04-01 <NA> Cibitung 281824 6221
## 6 2019-12-20 2020-04-01 <NA> Cikarang Barat 278237 5182
## 7 2019-12-20 2020-04-01 <NA> Cikarang Pusat 100714 2116
## 8 2019-12-20 2020-04-01 <NA> Cikarang Selatan 278476 5382
## 9 2019-12-20 2020-04-01 <NA> Cikarang Timur 107854 2102
## 10 2019-12-20 2020-04-01 <NA> Cikarang Utara 278421 6430
## geometry
## 1 MULTIPOLYGON (((107.0586 -6...
## 2 MULTIPOLYGON (((107.1884 -6...
## 3 MULTIPOLYGON (((107.1142 -6...
## 4 MULTIPOLYGON (((107.0972 -6...
## 5 MULTIPOLYGON (((107.092 -6....
## 6 MULTIPOLYGON (((107.1401 -6...
## 7 MULTIPOLYGON (((107.169 -6....
## 8 MULTIPOLYGON (((107.1477 -6...
## 9 MULTIPOLYGON (((107.2017 -6...
## 10 MULTIPOLYGON (((107.1982 -6...